From 488b7269cc04d430fd908635886cc9ddfdacd607 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Thu, 29 Aug 2019 04:25:20 +0200 Subject: [PATCH] first version of proj 1 --- .../2019/Project1/html/._Project1-bs000.html | 349 ++++++++++-- .../2019/Project1/html/Project1-bs.html | 349 ++++++++++-- doc/Projects/2019/Project1/html/Project1.html | 332 +++++++++-- .../Project1/ipynb/ipynb-Project1-src.tar.gz | Bin 210 -> 211 bytes doc/Projects/2019/Project1/pdf/Project1.p.tex | 270 ++++++++- doc/Projects/2019/Project1/pdf/Project1.pdf | Bin 233258 -> 276767 bytes doc/Projects/2019/Project1/pdf/Project1.tex | 266 ++++++++- doc/Projects/2019/Project1/pdf/Project1.tex~ | 531 ++++++++++++++++++ .../Projects/2019/Project1/Project1.do.txt | 279 ++++++++- 9 files changed, 2214 insertions(+), 162 deletions(-) create mode 100644 doc/Projects/2019/Project1/pdf/Project1.tex~ diff --git a/doc/Projects/2019/Project1/html/._Project1-bs000.html b/doc/Projects/2019/Project1/html/._Project1-bs000.html index d90fd1c30..5589bbbbb 100644 --- a/doc/Projects/2019/Project1/html/._Project1-bs000.html +++ b/doc/Projects/2019/Project1/html/._Project1-bs000.html @@ -50,19 +50,30 @@ Automatically generated HTML file from DocOnce source 3, None, '___sec1'), - ('Part b): Ridge Regression with resampling', 3, None, '___sec2'), - ('Part c): Lasso Regression with resampling', 3, None, '___sec3'), - ('Part e) OLS, Ridge and Lasso regression with resampling', + ('Part b) Resampling techniques', 3, None, '___sec2'), + ('Part c): Bias-variance tradeoff', 3, None, '___sec3'), + ('Part d): Ridge Regression on the Franke function with ' + 'resampling', 3, None, '___sec4'), - ('Background literature', 2, None, '___sec5'), - ('Introduction to numerical projects', 2, None, '___sec6'), + ('Part e): Lasso Regression on the Franke function with ' + 'resampling', + 3, + None, + '___sec5'), + ('Part f): Introducing real data', 3, None, '___sec6'), + ('Part g) OLS, Ridge and Lasso regression with resampling', + 3, + None, + '___sec7'), + ('Background literature', 2, None, '___sec8'), + ('Introduction to numerical projects', 2, None, '___sec9'), ('Format for electronic delivery of report and programs', 2, None, - '___sec7'), - ('Software and needed installations', 2, None, '___sec8')]} + '___sec10'), + ('Software and needed installations', 2, None, '___sec11')]} end of tocinfo --> @@ -102,13 +113,16 @@ MathJax.Hub.Config({ @@ -142,7 +156,7 @@ MathJax.Hub.Config({
Department of Physics, University of Oslo, Norway

-

Aug 26, 2019

+

Aug 29, 2019


@@ -155,59 +169,316 @@ regression methods, including the Ordinary Least Squares (OLS) method, Ridge regression and finally Lasso regression. The methods are in turn combined with resampling techniques. +

+We will first study how to fit polynomials to a specific +two-dimensional function called Franke's +function. This +is a function which has been widely used when testing various +interpolation and fitting algorithms. Furthermore, after having +established the model and the method, we will employ resamling +techniques such as cross-validation in order to perform a +proper assessment of our models. We will also study in detail the +so-called Bias-Variance trade off. + +

+The Franke function, which is a weighted sum of four exponentials reads as follows +$$ +\begin{align*} +f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)}+\frac{3}{4}\exp{\left(-\frac{(9x+1)^2}{49}- \frac{(9y+1)}{10}\right)} \\ +&+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. +\end{align*} +$$ + +

+The function will be defined for \( x,y\in [0,1] \). Our first step will +be to perform an OLS regression analysis of this function, trying out +a polynomial fit with an \( x \) and \( y \) dependence of the form \( [x, y, +x^2, y^2, xy, \dots] \). We will also include cross-validation as +resampling technique. As in homeworks 1 and 2, we can use a uniform +distribution to set up the arrays of values for \( x \) and \( y \), or as in +the example below just a set of fixed +values for \( x \) and \( y \) with a given step +size. We will fit a +function (for example a polynomial) of \( x \) and \( y \). Thereafter we +will repeat much of the same procedure using the Ridge and Lasso +regression methods, introducing thus a dependence on the bias +(penalty) \( \lambda \). + +

+Finally we are going to use (real) digital terrain data and try to +reproduce these data using the same methods. We will also try to go +beyond the second-order polynomials metioned above and explore +which polynomial fits the data best. + +

+The Python fucntion for the Franke function is included here (it performs also a three-dimensional plot of it) +

+ + +

from mpl_toolkits.mplot3d import Axes3D
+import matplotlib.pyplot as plt
+from matplotlib import cm
+from matplotlib.ticker import LinearLocator, FormatStrFormatter
+import numpy as np
+from random import random, seed
+
+fig = plt.figure()
+ax = fig.gca(projection='3d')
+
+# Make data.
+x = np.arange(0, 1, 0.05)
+y = np.arange(0, 1, 0.05)
+x, y = np.meshgrid(x,y)
+
+
+def FrankeFunction(x,y):
+    term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2))
+    term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1))
+    term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2))
+    term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2)
+    return term1 + term2 + term3 + term4
+
+
+z = FrankeFunction(x, y)
+
+# Plot the surface.
+surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm,
+                       linewidth=0, antialiased=False)
+
+# Customize the z axis.
+ax.set_zlim(-0.10, 1.40)
+ax.zaxis.set_major_locator(LinearLocator(10))
+ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
+
+# Add a color bar which maps values to colors.
+fig.colorbar(surf, shrink=0.5, aspect=5)
+
+plt.show()
+
+

Part a): Ordinary Least Square on the Franke function with resampling

-We will thus again generate our own dataset for a function \( \mathrm{FrankeFunction}(x,y) \) where -\( x,y \in [0,1] \) could be defined by random numbers computed with the uniform -distribution. The function \( f(x,y) \) is the Franke function. You should explore also the addition -an added stochastic noise to this function using the normal distribution \( \cal{N}(0,1) \). +We will generate our own dataset for a function +\( \mathrm{FrankeFunction}(x,y) \) with \( x,y \in [0,1] \). The function +\( f(x,y) \) is the Franke function. You should explore also the addition +an added stochastic noise to this function using the normal +distribution \( \cal{N}(0,1) \).

-Write your own code (using either a matrix inversion or a singular value decomposition from e.g., numpy ) or use your code from homeworks 1 and 2 -and perform a standard least square regression analysis using polynomials in \( x \) and \( y \) up to fifth order. Find the confidence intervals of the parameters \( \beta \) by computing their variances, evaluate the Mean Squared error (MSE) +Write your own code (using either a matrix inversion or a singular +value decomposition from e.g., numpy ) or use your code from +homeworks 1 and 2 and perform a standard least square regression +analysis using polynomials in \( x \) and \( y \) up to fifth order. Find the +confidence intervals of the parameters \( \beta \) by computing their +variances, evaluate the Mean Squared error (MSE) + $$ MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, $$ -and the \( R^2 \) score function. -If \( \tilde{\hat{y}}_i \) is the predicted value of the \( i-th \) sample and \( y_i \) is the corresponding true value, then the score \( R^2 \) is defined as +

+and the \( R^2 \) score function. If \( \tilde{\hat{y}}_i \) is the predicted +value of the \( i-th \) sample and \( y_i \) is the corresponding true value, +then the score \( R^2 \) is defined as + $$ R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, $$ +

where we have defined the mean value of \( \hat{y} \) as + $$ \bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. $$ -

-Perform a resampling of the data where you split the data in training data and test data. Implement the \( k \)-fold cross-validation algorithm and/or the bootstrap algorithm -and evaluate again the MSE and the \( R^2 \) functions resulting from the test data. Evaluate also the bias and variance of the final models using for example equation (7.9) in the textbook of Hastie et al. - -

Part b): Ridge Regression with resampling

+

Part b) Resampling techniques

-Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous exercise or howework 2 (see also chapter 3.4 of Hastie et al., equations (3.43) and (3.44)). Perform the same analysis as in the previous exercise (for the same polynomials and include resampling techniques) but now for different values of \( \lambda \). Compare and analyze your results with those obtained in part a). Study the dependence on \( \lambda \) while also varying eventually the strength of the noise in your expression for \( \mathrm{FrankeFunction}(x,y) \). - -

Part c): Lasso Regression with resampling

+Perform a resampling of the data where you split the data in training +data and test data. Here you can write your own function or use the +function for splitting training data provided by Scikit-Learn. +This function is called \( train\_test\_split \).

-This part is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code or, in this case, you can also use the functionalities of scikit-learn. Give a critical discussion of the three methods and a judgement of which model fits the data best. - -

Part e) OLS, Ridge and Lasso regression with resampling

+It is normal in essentially all Machine Learning studies to split the +data in a training set and a test set (sometimes also an additional +validation set). There +is no explicit recipe for how much data should be included as training +data and say test data. An accepted rule of thumb is to use +approximately \( 2/3 \) to \( 4/5 \) of the data as training data.

-At the end, you should pesent a critical evaluation of your results and discuss the applicability of these regression methods to the type of data presented here. +Implement the \( k \)-fold cross-validation algorithm (write your own +code) and and evaluate again the MSE and the \( R^2 \) functions resulting +from the test data. You can compare your own code with that from +Scikit-Learn if needed. -

Background literature

+

Part c): Bias-variance tradeoff

+ +

+With a code which does OLS and includes resampling techniques, +we will now discuss the bias-variance tradeoff in the context of +continuous predictions such as regression. However, many of the +intuitions and ideas discussed here also carry over to classification +tasks and basically all Machine Learning algorithms. + +

+Consider a +dataset \( \mathcal{L} \) consisting of the data +\( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \). + +

+Let us assume that the true data is generated from a noisy model + +$$ +\boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon}. +$$ + +

+Here \( \epsilon \) is normally distributed with mean zero and standard +deviation \( \sigma^2 \). + +

+In our derivation of the ordinary least squares method we defined then +an approximation to the function \( f \) in terms of the parameters +\( \boldsymbol{\beta} \) and the design matrix \( \boldsymbol{X} \) which embody our model, +that is \( \boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta} \). + +

+The parameters \( \boldsymbol{\beta} \) are in turn found by optimizing the means +squared error via the so-called cost function + +$$ +C(\boldsymbol{X},\boldsymbol{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\boldsymbol{\ +y}-\boldsymbol{\tilde{y}})^2\right]. +$$ + +

+Show that you can rewrite this as +$$ +\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\bm\ +{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])\ +^2+\sigma^2. +$$ + +

+Explain what the terms mean, which one is the bias and which one is +the variance and discuss their interpretations. + +

+Discuss the bias and variance tradeoff as function +of your model complexity (the degree of the polynomial) and the number +of data points, and possibly also your training and test data. + +

+Try to make a figure similar to Fig. 2.11 of Hastie, Tibshirani, and +Friedman, see the references below. You will most likely not get an +equally smooth curve! + +

Part d): Ridge Regression on the Franke function with resampling

+ +

+Write your own code for the Ridge method, either using matrix +inversion or the singular value decomposition as done in the previous +exercise or howework 2 (see also chapter 3.4 of Hastie et al., +equations (3.43) and (3.44)). Perform the same analysis as in the +previous exercises (for the same polynomials and include resampling +techniques) but now for different values of \( \lambda \). Compare and +analyze your results with those obtained in parts a-c). Study the +dependence on \( \lambda \). + +

+Study also the bias-variance tradeoff as function of various values of +the parameter \( \lambda \). Comment your results. + +

Part e): Lasso Regression on the Franke function with resampling

+ +

+This part is essentially a repeat of the previous two ones, but now +with Lasso regression. Write either your own code or, in this case, +you can also use the functionalities of Scikit-Learn (recommended). +Give a +critical discussion of the three methods and a judgement of which +model fits the data best. + +

Part f): Introducing real data

+ +

+With our codes functioning and having been tested properly on a +simpler function we are now ready to look at real data. We will +essentially repeat in part g) what was done in parts a-e). However, we +need first to download the data and prepare properly the inputs to our +codes. We are going to download digital terrain data from the website +https://earthexplorer.usgs.gov/, + +

+In order to obtain data for a specific region, you need to register as +a user (free) at this website and then decide upon which area you want +to fetch the digital terrain data from. In order to be able to read +the data properly, you need to specify that the format should be SRTM +Arc-Second Global and download the data as a GeoTIF file. The +files are then stored in tif format which can be imported into a +Python program using + +

+ + +

scipy.misc.imread
+
+

+Here is a simple part of a Python code which reads and plots the data +from such files + +

+ + +

import numpy as np
+from imageio import imread
+import matplotlib.pyplot as plt
+from mpl_toolkits.mplot3d import Axes3D
+from matplotlib import cm
+
+# Load the terrain
+terrain1 = imread('SRTM_data_Norway_1.tif')
+# Show the terrain
+plt.figure()
+plt.title('Terrain over Norway 1')
+plt.imshow(terrain1, cmap='gray')
+plt.xlabel('X')
+plt.ylabel('Y')
+plt.show()
+
+

+If you should have problems in downloading the digital terrain data, +we provide two examples under the data folder of project 1. One is +from a region close to Stavanger in Norway and the other Møsvatn +Austfjell, again in Norway. +Feel free to produce your own terrain data. + +

Part g) OLS, Ridge and Lasso regression with resampling

+ +

+Our final part deals with the parameterization of your digital terrain +data. We will apply all three methods for linear regression as in +parts a-c), the same type (or higher order) of polynomial +approximation and the same resampling techniques to evaluate which +model fits the data best. + +

+At the end, you should pesent a critical evaluation of your results +and discuss the applicability of these regression methods to the type +of data presented here. + +

Background literature

  1. For a discussion and derivation of the variances and mean squared errors using linear regression, see the Lecture notes on ridge regression by Wessel N. van Wieringen
  2. The textbook of Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer, chapters 3 and 7 are the most relevant ones for the analysis here.
-

Introduction to numerical projects

+

Introduction to numerical projects

Here follows a brief recipe and recommendation on how to write a report for each @@ -225,7 +496,7 @@ project.

  • Try to establish a practice where you log your work at the computerlab. You may find such a logbook very handy at later stages in your work, especially when you don't properly remember what a previous test version of your program did. Here you could also record the time spent on solving the exercise, various algorithms you may have tested or other topics which you feel worthy of mentioning.
  • -

    Format for electronic delivery of report and programs

    +

    Format for electronic delivery of report and programs

    The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report: @@ -242,7 +513,7 @@ Finally, we encourage you to collaborate. Optimal working groups consist of 2-3 students. You can then hand in a common report. -

    Software and needed installations

    +

    Software and needed installations

    If you have Python installed (we recommend Python3) and you feel pretty familiar with installing different packages, diff --git a/doc/Projects/2019/Project1/html/Project1-bs.html b/doc/Projects/2019/Project1/html/Project1-bs.html index d90fd1c30..5589bbbbb 100644 --- a/doc/Projects/2019/Project1/html/Project1-bs.html +++ b/doc/Projects/2019/Project1/html/Project1-bs.html @@ -50,19 +50,30 @@ Automatically generated HTML file from DocOnce source 3, None, '___sec1'), - ('Part b): Ridge Regression with resampling', 3, None, '___sec2'), - ('Part c): Lasso Regression with resampling', 3, None, '___sec3'), - ('Part e) OLS, Ridge and Lasso regression with resampling', + ('Part b) Resampling techniques', 3, None, '___sec2'), + ('Part c): Bias-variance tradeoff', 3, None, '___sec3'), + ('Part d): Ridge Regression on the Franke function with ' + 'resampling', 3, None, '___sec4'), - ('Background literature', 2, None, '___sec5'), - ('Introduction to numerical projects', 2, None, '___sec6'), + ('Part e): Lasso Regression on the Franke function with ' + 'resampling', + 3, + None, + '___sec5'), + ('Part f): Introducing real data', 3, None, '___sec6'), + ('Part g) OLS, Ridge and Lasso regression with resampling', + 3, + None, + '___sec7'), + ('Background literature', 2, None, '___sec8'), + ('Introduction to numerical projects', 2, None, '___sec9'), ('Format for electronic delivery of report and programs', 2, None, - '___sec7'), - ('Software and needed installations', 2, None, '___sec8')]} + '___sec10'), + ('Software and needed installations', 2, None, '___sec11')]} end of tocinfo --> @@ -102,13 +113,16 @@ MathJax.Hub.Config({

    @@ -142,7 +156,7 @@ MathJax.Hub.Config({
    Department of Physics, University of Oslo, Norway

    -

    Aug 26, 2019

    +

    Aug 29, 2019


    @@ -155,59 +169,316 @@ regression methods, including the Ordinary Least Squares (OLS) method, Ridge regression and finally Lasso regression. The methods are in turn combined with resampling techniques. +

    +We will first study how to fit polynomials to a specific +two-dimensional function called Franke's +function. This +is a function which has been widely used when testing various +interpolation and fitting algorithms. Furthermore, after having +established the model and the method, we will employ resamling +techniques such as cross-validation in order to perform a +proper assessment of our models. We will also study in detail the +so-called Bias-Variance trade off. + +

    +The Franke function, which is a weighted sum of four exponentials reads as follows +$$ +\begin{align*} +f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)}+\frac{3}{4}\exp{\left(-\frac{(9x+1)^2}{49}- \frac{(9y+1)}{10}\right)} \\ +&+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. +\end{align*} +$$ + +

    +The function will be defined for \( x,y\in [0,1] \). Our first step will +be to perform an OLS regression analysis of this function, trying out +a polynomial fit with an \( x \) and \( y \) dependence of the form \( [x, y, +x^2, y^2, xy, \dots] \). We will also include cross-validation as +resampling technique. As in homeworks 1 and 2, we can use a uniform +distribution to set up the arrays of values for \( x \) and \( y \), or as in +the example below just a set of fixed +values for \( x \) and \( y \) with a given step +size. We will fit a +function (for example a polynomial) of \( x \) and \( y \). Thereafter we +will repeat much of the same procedure using the Ridge and Lasso +regression methods, introducing thus a dependence on the bias +(penalty) \( \lambda \). + +

    +Finally we are going to use (real) digital terrain data and try to +reproduce these data using the same methods. We will also try to go +beyond the second-order polynomials metioned above and explore +which polynomial fits the data best. + +

    +The Python fucntion for the Franke function is included here (it performs also a three-dimensional plot of it) +

    + + +

    from mpl_toolkits.mplot3d import Axes3D
    +import matplotlib.pyplot as plt
    +from matplotlib import cm
    +from matplotlib.ticker import LinearLocator, FormatStrFormatter
    +import numpy as np
    +from random import random, seed
    +
    +fig = plt.figure()
    +ax = fig.gca(projection='3d')
    +
    +# Make data.
    +x = np.arange(0, 1, 0.05)
    +y = np.arange(0, 1, 0.05)
    +x, y = np.meshgrid(x,y)
    +
    +
    +def FrankeFunction(x,y):
    +    term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2))
    +    term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1))
    +    term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2))
    +    term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2)
    +    return term1 + term2 + term3 + term4
    +
    +
    +z = FrankeFunction(x, y)
    +
    +# Plot the surface.
    +surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm,
    +                       linewidth=0, antialiased=False)
    +
    +# Customize the z axis.
    +ax.set_zlim(-0.10, 1.40)
    +ax.zaxis.set_major_locator(LinearLocator(10))
    +ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
    +
    +# Add a color bar which maps values to colors.
    +fig.colorbar(surf, shrink=0.5, aspect=5)
    +
    +plt.show()
    +
    +

    Part a): Ordinary Least Square on the Franke function with resampling

    -We will thus again generate our own dataset for a function \( \mathrm{FrankeFunction}(x,y) \) where -\( x,y \in [0,1] \) could be defined by random numbers computed with the uniform -distribution. The function \( f(x,y) \) is the Franke function. You should explore also the addition -an added stochastic noise to this function using the normal distribution \( \cal{N}(0,1) \). +We will generate our own dataset for a function +\( \mathrm{FrankeFunction}(x,y) \) with \( x,y \in [0,1] \). The function +\( f(x,y) \) is the Franke function. You should explore also the addition +an added stochastic noise to this function using the normal +distribution \( \cal{N}(0,1) \).

    -Write your own code (using either a matrix inversion or a singular value decomposition from e.g., numpy ) or use your code from homeworks 1 and 2 -and perform a standard least square regression analysis using polynomials in \( x \) and \( y \) up to fifth order. Find the confidence intervals of the parameters \( \beta \) by computing their variances, evaluate the Mean Squared error (MSE) +Write your own code (using either a matrix inversion or a singular +value decomposition from e.g., numpy ) or use your code from +homeworks 1 and 2 and perform a standard least square regression +analysis using polynomials in \( x \) and \( y \) up to fifth order. Find the +confidence intervals of the parameters \( \beta \) by computing their +variances, evaluate the Mean Squared error (MSE) + $$ MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, $$ -and the \( R^2 \) score function. -If \( \tilde{\hat{y}}_i \) is the predicted value of the \( i-th \) sample and \( y_i \) is the corresponding true value, then the score \( R^2 \) is defined as +

    +and the \( R^2 \) score function. If \( \tilde{\hat{y}}_i \) is the predicted +value of the \( i-th \) sample and \( y_i \) is the corresponding true value, +then the score \( R^2 \) is defined as + $$ R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, $$ +

    where we have defined the mean value of \( \hat{y} \) as + $$ \bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. $$ -

    -Perform a resampling of the data where you split the data in training data and test data. Implement the \( k \)-fold cross-validation algorithm and/or the bootstrap algorithm -and evaluate again the MSE and the \( R^2 \) functions resulting from the test data. Evaluate also the bias and variance of the final models using for example equation (7.9) in the textbook of Hastie et al. - -

    Part b): Ridge Regression with resampling

    +

    Part b) Resampling techniques

    -Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous exercise or howework 2 (see also chapter 3.4 of Hastie et al., equations (3.43) and (3.44)). Perform the same analysis as in the previous exercise (for the same polynomials and include resampling techniques) but now for different values of \( \lambda \). Compare and analyze your results with those obtained in part a). Study the dependence on \( \lambda \) while also varying eventually the strength of the noise in your expression for \( \mathrm{FrankeFunction}(x,y) \). - -

    Part c): Lasso Regression with resampling

    +Perform a resampling of the data where you split the data in training +data and test data. Here you can write your own function or use the +function for splitting training data provided by Scikit-Learn. +This function is called \( train\_test\_split \).

    -This part is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code or, in this case, you can also use the functionalities of scikit-learn. Give a critical discussion of the three methods and a judgement of which model fits the data best. - -

    Part e) OLS, Ridge and Lasso regression with resampling

    +It is normal in essentially all Machine Learning studies to split the +data in a training set and a test set (sometimes also an additional +validation set). There +is no explicit recipe for how much data should be included as training +data and say test data. An accepted rule of thumb is to use +approximately \( 2/3 \) to \( 4/5 \) of the data as training data.

    -At the end, you should pesent a critical evaluation of your results and discuss the applicability of these regression methods to the type of data presented here. +Implement the \( k \)-fold cross-validation algorithm (write your own +code) and and evaluate again the MSE and the \( R^2 \) functions resulting +from the test data. You can compare your own code with that from +Scikit-Learn if needed. -

    Background literature

    +

    Part c): Bias-variance tradeoff

    + +

    +With a code which does OLS and includes resampling techniques, +we will now discuss the bias-variance tradeoff in the context of +continuous predictions such as regression. However, many of the +intuitions and ideas discussed here also carry over to classification +tasks and basically all Machine Learning algorithms. + +

    +Consider a +dataset \( \mathcal{L} \) consisting of the data +\( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \). + +

    +Let us assume that the true data is generated from a noisy model + +$$ +\boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon}. +$$ + +

    +Here \( \epsilon \) is normally distributed with mean zero and standard +deviation \( \sigma^2 \). + +

    +In our derivation of the ordinary least squares method we defined then +an approximation to the function \( f \) in terms of the parameters +\( \boldsymbol{\beta} \) and the design matrix \( \boldsymbol{X} \) which embody our model, +that is \( \boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta} \). + +

    +The parameters \( \boldsymbol{\beta} \) are in turn found by optimizing the means +squared error via the so-called cost function + +$$ +C(\boldsymbol{X},\boldsymbol{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\boldsymbol{\ +y}-\boldsymbol{\tilde{y}})^2\right]. +$$ + +

    +Show that you can rewrite this as +$$ +\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\bm\ +{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])\ +^2+\sigma^2. +$$ + +

    +Explain what the terms mean, which one is the bias and which one is +the variance and discuss their interpretations. + +

    +Discuss the bias and variance tradeoff as function +of your model complexity (the degree of the polynomial) and the number +of data points, and possibly also your training and test data. + +

    +Try to make a figure similar to Fig. 2.11 of Hastie, Tibshirani, and +Friedman, see the references below. You will most likely not get an +equally smooth curve! + +

    Part d): Ridge Regression on the Franke function with resampling

    + +

    +Write your own code for the Ridge method, either using matrix +inversion or the singular value decomposition as done in the previous +exercise or howework 2 (see also chapter 3.4 of Hastie et al., +equations (3.43) and (3.44)). Perform the same analysis as in the +previous exercises (for the same polynomials and include resampling +techniques) but now for different values of \( \lambda \). Compare and +analyze your results with those obtained in parts a-c). Study the +dependence on \( \lambda \). + +

    +Study also the bias-variance tradeoff as function of various values of +the parameter \( \lambda \). Comment your results. + +

    Part e): Lasso Regression on the Franke function with resampling

    + +

    +This part is essentially a repeat of the previous two ones, but now +with Lasso regression. Write either your own code or, in this case, +you can also use the functionalities of Scikit-Learn (recommended). +Give a +critical discussion of the three methods and a judgement of which +model fits the data best. + +

    Part f): Introducing real data

    + +

    +With our codes functioning and having been tested properly on a +simpler function we are now ready to look at real data. We will +essentially repeat in part g) what was done in parts a-e). However, we +need first to download the data and prepare properly the inputs to our +codes. We are going to download digital terrain data from the website +https://earthexplorer.usgs.gov/, + +

    +In order to obtain data for a specific region, you need to register as +a user (free) at this website and then decide upon which area you want +to fetch the digital terrain data from. In order to be able to read +the data properly, you need to specify that the format should be SRTM +Arc-Second Global and download the data as a GeoTIF file. The +files are then stored in tif format which can be imported into a +Python program using + +

    + + +

    scipy.misc.imread
    +
    +

    +Here is a simple part of a Python code which reads and plots the data +from such files + +

    + + +

    import numpy as np
    +from imageio import imread
    +import matplotlib.pyplot as plt
    +from mpl_toolkits.mplot3d import Axes3D
    +from matplotlib import cm
    +
    +# Load the terrain
    +terrain1 = imread('SRTM_data_Norway_1.tif')
    +# Show the terrain
    +plt.figure()
    +plt.title('Terrain over Norway 1')
    +plt.imshow(terrain1, cmap='gray')
    +plt.xlabel('X')
    +plt.ylabel('Y')
    +plt.show()
    +
    +

    +If you should have problems in downloading the digital terrain data, +we provide two examples under the data folder of project 1. One is +from a region close to Stavanger in Norway and the other Møsvatn +Austfjell, again in Norway. +Feel free to produce your own terrain data. + +

    Part g) OLS, Ridge and Lasso regression with resampling

    + +

    +Our final part deals with the parameterization of your digital terrain +data. We will apply all three methods for linear regression as in +parts a-c), the same type (or higher order) of polynomial +approximation and the same resampling techniques to evaluate which +model fits the data best. + +

    +At the end, you should pesent a critical evaluation of your results +and discuss the applicability of these regression methods to the type +of data presented here. + +

    Background literature

    1. For a discussion and derivation of the variances and mean squared errors using linear regression, see the Lecture notes on ridge regression by Wessel N. van Wieringen
    2. The textbook of Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer, chapters 3 and 7 are the most relevant ones for the analysis here.
    -

    Introduction to numerical projects

    +

    Introduction to numerical projects

    Here follows a brief recipe and recommendation on how to write a report for each @@ -225,7 +496,7 @@ project.

  • Try to establish a practice where you log your work at the computerlab. You may find such a logbook very handy at later stages in your work, especially when you don't properly remember what a previous test version of your program did. Here you could also record the time spent on solving the exercise, various algorithms you may have tested or other topics which you feel worthy of mentioning.
  • -

    Format for electronic delivery of report and programs

    +

    Format for electronic delivery of report and programs

    The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report: @@ -242,7 +513,7 @@ Finally, we encourage you to collaborate. Optimal working groups consist of 2-3 students. You can then hand in a common report. -

    Software and needed installations

    +

    Software and needed installations

    If you have Python installed (we recommend Python3) and you feel pretty familiar with installing different packages, diff --git a/doc/Projects/2019/Project1/html/Project1.html b/doc/Projects/2019/Project1/html/Project1.html index da316d785..e71047065 100644 --- a/doc/Projects/2019/Project1/html/Project1.html +++ b/doc/Projects/2019/Project1/html/Project1.html @@ -49,19 +49,30 @@ div { text-align: justify; text-justify: inter-word; } 3, None, '___sec1'), - ('Part b): Ridge Regression with resampling', 3, None, '___sec2'), - ('Part c): Lasso Regression with resampling', 3, None, '___sec3'), - ('Part e) OLS, Ridge and Lasso regression with resampling', + ('Part b) Resampling techniques', 3, None, '___sec2'), + ('Part c): Bias-variance tradeoff', 3, None, '___sec3'), + ('Part d): Ridge Regression on the Franke function with ' + 'resampling', 3, None, '___sec4'), - ('Background literature', 2, None, '___sec5'), - ('Introduction to numerical projects', 2, None, '___sec6'), + ('Part e): Lasso Regression on the Franke function with ' + 'resampling', + 3, + None, + '___sec5'), + ('Part f): Introducing real data', 3, None, '___sec6'), + ('Part g) OLS, Ridge and Lasso regression with resampling', + 3, + None, + '___sec7'), + ('Background literature', 2, None, '___sec8'), + ('Introduction to numerical projects', 2, None, '___sec9'), ('Format for electronic delivery of report and programs', 2, None, - '___sec7'), - ('Software and needed installations', 2, None, '___sec8')]} + '___sec10'), + ('Software and needed installations', 2, None, '___sec11')]} end of tocinfo --> @@ -102,7 +113,7 @@ MathJax.Hub.Config({

    Department of Physics, University of Oslo, Norway

    -

    Aug 26, 2019

    +

    Aug 29, 2019


    Regression analysis and resampling methods

    @@ -113,59 +124,316 @@ regression methods, including the Ordinary Least Squares (OLS) method, Ridge regression and finally Lasso regression. The methods are in turn combined with resampling techniques. +

    +We will first study how to fit polynomials to a specific +two-dimensional function called Franke's +function. This +is a function which has been widely used when testing various +interpolation and fitting algorithms. Furthermore, after having +established the model and the method, we will employ resamling +techniques such as cross-validation in order to perform a +proper assessment of our models. We will also study in detail the +so-called Bias-Variance trade off. + +

    +The Franke function, which is a weighted sum of four exponentials reads as follows +$$ +\begin{align*} +f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)}+\frac{3}{4}\exp{\left(-\frac{(9x+1)^2}{49}- \frac{(9y+1)}{10}\right)} \\ +&+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. +\end{align*} +$$ + +

    +The function will be defined for \( x,y\in [0,1] \). Our first step will +be to perform an OLS regression analysis of this function, trying out +a polynomial fit with an \( x \) and \( y \) dependence of the form \( [x, y, +x^2, y^2, xy, \dots] \). We will also include cross-validation as +resampling technique. As in homeworks 1 and 2, we can use a uniform +distribution to set up the arrays of values for \( x \) and \( y \), or as in +the example below just a set of fixed +values for \( x \) and \( y \) with a given step +size. We will fit a +function (for example a polynomial) of \( x \) and \( y \). Thereafter we +will repeat much of the same procedure using the Ridge and Lasso +regression methods, introducing thus a dependence on the bias +(penalty) \( \lambda \). + +

    +Finally we are going to use (real) digital terrain data and try to +reproduce these data using the same methods. We will also try to go +beyond the second-order polynomials metioned above and explore +which polynomial fits the data best. + +

    +The Python fucntion for the Franke function is included here (it performs also a three-dimensional plot of it) +

    + + +

    from mpl_toolkits.mplot3d import Axes3D
    +import matplotlib.pyplot as plt
    +from matplotlib import cm
    +from matplotlib.ticker import LinearLocator, FormatStrFormatter
    +import numpy as np
    +from random import random, seed
    +
    +fig = plt.figure()
    +ax = fig.gca(projection='3d')
    +
    +# Make data.
    +x = np.arange(0, 1, 0.05)
    +y = np.arange(0, 1, 0.05)
    +x, y = np.meshgrid(x,y)
    +
    +
    +def FrankeFunction(x,y):
    +    term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2))
    +    term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1))
    +    term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2))
    +    term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2)
    +    return term1 + term2 + term3 + term4
    +
    +
    +z = FrankeFunction(x, y)
    +
    +# Plot the surface.
    +surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm,
    +                       linewidth=0, antialiased=False)
    +
    +# Customize the z axis.
    +ax.set_zlim(-0.10, 1.40)
    +ax.zaxis.set_major_locator(LinearLocator(10))
    +ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
    +
    +# Add a color bar which maps values to colors.
    +fig.colorbar(surf, shrink=0.5, aspect=5)
    +
    +plt.show()
    +
    +

    Part a): Ordinary Least Square on the Franke function with resampling

    -We will thus again generate our own dataset for a function \( \mathrm{FrankeFunction}(x,y) \) where -\( x,y \in [0,1] \) could be defined by random numbers computed with the uniform -distribution. The function \( f(x,y) \) is the Franke function. You should explore also the addition -an added stochastic noise to this function using the normal distribution \( \cal{N}(0,1) \). +We will generate our own dataset for a function +\( \mathrm{FrankeFunction}(x,y) \) with \( x,y \in [0,1] \). The function +\( f(x,y) \) is the Franke function. You should explore also the addition +an added stochastic noise to this function using the normal +distribution \( \cal{N}(0,1) \).

    -Write your own code (using either a matrix inversion or a singular value decomposition from e.g., numpy ) or use your code from homeworks 1 and 2 -and perform a standard least square regression analysis using polynomials in \( x \) and \( y \) up to fifth order. Find the confidence intervals of the parameters \( \beta \) by computing their variances, evaluate the Mean Squared error (MSE) +Write your own code (using either a matrix inversion or a singular +value decomposition from e.g., numpy ) or use your code from +homeworks 1 and 2 and perform a standard least square regression +analysis using polynomials in \( x \) and \( y \) up to fifth order. Find the +confidence intervals of the parameters \( \beta \) by computing their +variances, evaluate the Mean Squared error (MSE) + $$ MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, $$ -and the \( R^2 \) score function. -If \( \tilde{\hat{y}}_i \) is the predicted value of the \( i-th \) sample and \( y_i \) is the corresponding true value, then the score \( R^2 \) is defined as +

    +and the \( R^2 \) score function. If \( \tilde{\hat{y}}_i \) is the predicted +value of the \( i-th \) sample and \( y_i \) is the corresponding true value, +then the score \( R^2 \) is defined as + $$ R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, $$ +

    where we have defined the mean value of \( \hat{y} \) as + $$ \bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. $$ -

    -Perform a resampling of the data where you split the data in training data and test data. Implement the \( k \)-fold cross-validation algorithm and/or the bootstrap algorithm -and evaluate again the MSE and the \( R^2 \) functions resulting from the test data. Evaluate also the bias and variance of the final models using for example equation (7.9) in the textbook of Hastie et al. - -

    Part b): Ridge Regression with resampling

    +

    Part b) Resampling techniques

    -Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous exercise or howework 2 (see also chapter 3.4 of Hastie et al., equations (3.43) and (3.44)). Perform the same analysis as in the previous exercise (for the same polynomials and include resampling techniques) but now for different values of \( \lambda \). Compare and analyze your results with those obtained in part a). Study the dependence on \( \lambda \) while also varying eventually the strength of the noise in your expression for \( \mathrm{FrankeFunction}(x,y) \). - -

    Part c): Lasso Regression with resampling

    +Perform a resampling of the data where you split the data in training +data and test data. Here you can write your own function or use the +function for splitting training data provided by Scikit-Learn. +This function is called \( train\_test\_split \).

    -This part is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code or, in this case, you can also use the functionalities of scikit-learn. Give a critical discussion of the three methods and a judgement of which model fits the data best. - -

    Part e) OLS, Ridge and Lasso regression with resampling

    +It is normal in essentially all Machine Learning studies to split the +data in a training set and a test set (sometimes also an additional +validation set). There +is no explicit recipe for how much data should be included as training +data and say test data. An accepted rule of thumb is to use +approximately \( 2/3 \) to \( 4/5 \) of the data as training data.

    -At the end, you should pesent a critical evaluation of your results and discuss the applicability of these regression methods to the type of data presented here. +Implement the \( k \)-fold cross-validation algorithm (write your own +code) and and evaluate again the MSE and the \( R^2 \) functions resulting +from the test data. You can compare your own code with that from +Scikit-Learn if needed. -

    Background literature

    +

    Part c): Bias-variance tradeoff

    + +

    +With a code which does OLS and includes resampling techniques, +we will now discuss the bias-variance tradeoff in the context of +continuous predictions such as regression. However, many of the +intuitions and ideas discussed here also carry over to classification +tasks and basically all Machine Learning algorithms. + +

    +Consider a +dataset \( \mathcal{L} \) consisting of the data +\( \mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\} \). + +

    +Let us assume that the true data is generated from a noisy model + +$$ +\boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon}. +$$ + +

    +Here \( \epsilon \) is normally distributed with mean zero and standard +deviation \( \sigma^2 \). + +

    +In our derivation of the ordinary least squares method we defined then +an approximation to the function \( f \) in terms of the parameters +\( \boldsymbol{\beta} \) and the design matrix \( \boldsymbol{X} \) which embody our model, +that is \( \boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta} \). + +

    +The parameters \( \boldsymbol{\beta} \) are in turn found by optimizing the means +squared error via the so-called cost function + +$$ +C(\boldsymbol{X},\boldsymbol{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\boldsymbol{\ +y}-\boldsymbol{\tilde{y}})^2\right]. +$$ + +

    +Show that you can rewrite this as +$$ +\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\bm\ +{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])\ +^2+\sigma^2. +$$ + +

    +Explain what the terms mean, which one is the bias and which one is +the variance and discuss their interpretations. + +

    +Discuss the bias and variance tradeoff as function +of your model complexity (the degree of the polynomial) and the number +of data points, and possibly also your training and test data. + +

    +Try to make a figure similar to Fig. 2.11 of Hastie, Tibshirani, and +Friedman, see the references below. You will most likely not get an +equally smooth curve! + +

    Part d): Ridge Regression on the Franke function with resampling

    + +

    +Write your own code for the Ridge method, either using matrix +inversion or the singular value decomposition as done in the previous +exercise or howework 2 (see also chapter 3.4 of Hastie et al., +equations (3.43) and (3.44)). Perform the same analysis as in the +previous exercises (for the same polynomials and include resampling +techniques) but now for different values of \( \lambda \). Compare and +analyze your results with those obtained in parts a-c). Study the +dependence on \( \lambda \). + +

    +Study also the bias-variance tradeoff as function of various values of +the parameter \( \lambda \). Comment your results. + +

    Part e): Lasso Regression on the Franke function with resampling

    + +

    +This part is essentially a repeat of the previous two ones, but now +with Lasso regression. Write either your own code or, in this case, +you can also use the functionalities of Scikit-Learn (recommended). +Give a +critical discussion of the three methods and a judgement of which +model fits the data best. + +

    Part f): Introducing real data

    + +

    +With our codes functioning and having been tested properly on a +simpler function we are now ready to look at real data. We will +essentially repeat in part g) what was done in parts a-e). However, we +need first to download the data and prepare properly the inputs to our +codes. We are going to download digital terrain data from the website +https://earthexplorer.usgs.gov/, + +

    +In order to obtain data for a specific region, you need to register as +a user (free) at this website and then decide upon which area you want +to fetch the digital terrain data from. In order to be able to read +the data properly, you need to specify that the format should be SRTM +Arc-Second Global and download the data as a GeoTIF file. The +files are then stored in tif format which can be imported into a +Python program using + +

    + + +

    scipy.misc.imread
    +
    +

    +Here is a simple part of a Python code which reads and plots the data +from such files + +

    + + +

    import numpy as np
    +from imageio import imread
    +import matplotlib.pyplot as plt
    +from mpl_toolkits.mplot3d import Axes3D
    +from matplotlib import cm
    +
    +# Load the terrain
    +terrain1 = imread('SRTM_data_Norway_1.tif')
    +# Show the terrain
    +plt.figure()
    +plt.title('Terrain over Norway 1')
    +plt.imshow(terrain1, cmap='gray')
    +plt.xlabel('X')
    +plt.ylabel('Y')
    +plt.show()
    +
    +

    +If you should have problems in downloading the digital terrain data, +we provide two examples under the data folder of project 1. One is +from a region close to Stavanger in Norway and the other Møsvatn +Austfjell, again in Norway. +Feel free to produce your own terrain data. + +

    Part g) OLS, Ridge and Lasso regression with resampling

    + +

    +Our final part deals with the parameterization of your digital terrain +data. We will apply all three methods for linear regression as in +parts a-c), the same type (or higher order) of polynomial +approximation and the same resampling techniques to evaluate which +model fits the data best. + +

    +At the end, you should pesent a critical evaluation of your results +and discuss the applicability of these regression methods to the type +of data presented here. + +

    Background literature

    1. For a discussion and derivation of the variances and mean squared errors using linear regression, see the Lecture notes on ridge regression by Wessel N. van Wieringen
    2. The textbook of Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer, chapters 3 and 7 are the most relevant ones for the analysis here.
    -

    Introduction to numerical projects

    +

    Introduction to numerical projects

    Here follows a brief recipe and recommendation on how to write a report for each @@ -183,7 +451,7 @@ project.

  • Try to establish a practice where you log your work at the computerlab. You may find such a logbook very handy at later stages in your work, especially when you don't properly remember what a previous test version of your program did. Here you could also record the time spent on solving the exercise, various algorithms you may have tested or other topics which you feel worthy of mentioning.
  • -

    Format for electronic delivery of report and programs

    +

    Format for electronic delivery of report and programs

    The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report: @@ -200,7 +468,7 @@ Finally, we encourage you to collaborate. Optimal working groups consist of 2-3 students. You can then hand in a common report. -

    Software and needed installations

    +

    Software and needed installations

    If you have Python installed (we recommend Python3) and you feel pretty familiar with installing different packages, diff --git a/doc/Projects/2019/Project1/ipynb/ipynb-Project1-src.tar.gz b/doc/Projects/2019/Project1/ipynb/ipynb-Project1-src.tar.gz index 02a09a19b15a661e5fa078bd46b0bc54930f79d8..8d8c1d06521f76b35320fe29c55a76e8ba8c9fe7 100644 GIT binary patch literal 211 zcmb2|=3sbWmLAK%{Pz6$EG9#NP~Yg;^6vI^ z`wR2Fs4e~RH>Qrqn8$ei=jAs~@6n1+Eiw06xozFkDVMidE}s?i%6RSaMZU=;**z<# zYUKJXc3|4j3IBh>`FqcQ+9Tm5-`o;$$LLtE zPEgG5?~Ane%O48b_2Sb?&6BlqHAP8>6}G*u`Dl3KZN>aY?wfYU^#1=P%YY0jB<^oL LrN_>o!N33j$E{?7 literal 210 zcmb2|=3rRzA~}|U`R)0GSxkl^t%=v|j@C9Q79J~%UD2(_A{ehwwn#X8vSH_i%HMrl zrK#mXOa5=SY^mn>zV4a+`tHh!`#-%%oDx(TdeSoe>z7GcMYZu6w!*P~rxT-m+ZJ6) zja)r(#qqTz#a=g$Bu*{Muif-7FMmbu_Wgf~ZC&d=d9I0`{v`M2bF+$%ino0^p92=z&WqWSRHMHvGp6j|?87^{6UEP_YaOevHq)$ diff --git a/doc/Projects/2019/Project1/pdf/Project1.p.tex b/doc/Projects/2019/Project1/pdf/Project1.p.tex index 7bd7e93f0..da45b59e4 100644 --- a/doc/Projects/2019/Project1/pdf/Project1.p.tex +++ b/doc/Projects/2019/Project1/pdf/Project1.p.tex @@ -45,6 +45,12 @@ final, % draft: marks overfull hboxes, figures with paths \usepackage[pdftex]{graphicx} +\usepackage{ptex2tex} +% #ifdef MINTED +\usepackage{minted} +\usemintedstyle{default} +% #endif + \usepackage[T1]{fontenc} %\usepackage[latin1]{inputenc} \usepackage{ucs} @@ -149,7 +155,7 @@ Project 1 on Machine Learning, deadline September 30, 2019 % --- begin date --- \begin{center} -Aug 26, 2019 +Aug 29, 2019 \end{center} % --- end date --- @@ -163,42 +169,272 @@ regression methods, including the Ordinary Least Squares (OLS) method, Ridge regression and finally Lasso regression. The methods are in turn combined with resampling techniques. +We will first study how to fit polynomials to a specific +two-dimensional function called \href{{http://www.dtic.mil/dtic/tr/fulltext/u2/a081688.pdf}}{Franke's +function}. This +is a function which has been widely used when testing various +interpolation and fitting algorithms. Furthermore, after having +established the model and the method, we will employ resamling +techniques such as cross-validation in order to perform a +proper assessment of our models. We will also study in detail the +so-called Bias-Variance trade off. + + +The Franke function, which is a weighted sum of four exponentials reads as follows +\begin{align*} +f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)}+\frac{3}{4}\exp{\left(-\frac{(9x+1)^2}{49}- \frac{(9y+1)}{10}\right)} \\ +&+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. +\end{align*} + +The function will be defined for $x,y\in [0,1]$. Our first step will +be to perform an OLS regression analysis of this function, trying out +a polynomial fit with an $x$ and $y$ dependence of the form $[x, y, +x^2, y^2, xy, \dots]$. We will also include cross-validation as +resampling technique. As in homeworks 1 and 2, we can use a uniform +distribution to set up the arrays of values for $x$ and $y$, or as in +the example below just a set of fixed +values for $x$ and $y$ with a given step +size. We will fit a +function (for example a polynomial) of $x$ and $y$. Thereafter we +will repeat much of the same procedure using the Ridge and Lasso +regression methods, introducing thus a dependence on the bias +(penalty) $\lambda$. + +Finally we are going to use (real) digital terrain data and try to +reproduce these data using the same methods. We will also try to go +beyond the second-order polynomials metioned above and explore +which polynomial fits the data best. + + +The Python fucntion for the Franke function is included here (it performs also a three-dimensional plot of it) +\bpycod +from mpl_toolkits.mplot3d import Axes3D +import matplotlib.pyplot as plt +from matplotlib import cm +from matplotlib.ticker import LinearLocator, FormatStrFormatter +import numpy as np +from random import random, seed + +fig = plt.figure() +ax = fig.gca(projection='3d') + +# Make data. +x = np.arange(0, 1, 0.05) +y = np.arange(0, 1, 0.05) +x, y = np.meshgrid(x,y) + + +def FrankeFunction(x,y): + term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2)) + term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1)) + term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2)) + term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2) + return term1 + term2 + term3 + term4 + + +z = FrankeFunction(x, y) + +# Plot the surface. +surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm, + linewidth=0, antialiased=False) + +# Customize the z axis. +ax.set_zlim(-0.10, 1.40) +ax.zaxis.set_major_locator(LinearLocator(10)) +ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) + +# Add a color bar which maps values to colors. +fig.colorbar(surf, shrink=0.5, aspect=5) + +plt.show() + +\epycod + \paragraph{Part a): Ordinary Least Square on the Franke function with resampling.} -We will thus again generate our own dataset for a function $\mathrm{FrankeFunction}(x,y)$ where -$x,y \in [0,1]$ could be defined by random numbers computed with the uniform -distribution. The function $f(x,y)$ is the Franke function. You should explore also the addition -an added stochastic noise to this function using the normal distribution $\cal{N}(0,1)$. +We will generate our own dataset for a function +$\mathrm{FrankeFunction}(x,y)$ with $x,y \in [0,1]$. The function +$f(x,y)$ is the Franke function. You should explore also the addition +an added stochastic noise to this function using the normal +distribution $\cal{N}(0,1)$. + +Write your own code (using either a matrix inversion or a singular +value decomposition from e.g., \textbf{numpy} ) or use your code from +homeworks 1 and 2 and perform a standard least square regression +analysis using polynomials in $x$ and $y$ up to fifth order. Find the +confidence intervals of the parameters $\beta$ by computing their +variances, evaluate the Mean Squared error (MSE) -Write your own code (using either a matrix inversion or a singular value decomposition from e.g., \textbf{numpy} ) or use your code from homeworks 1 and 2 -and perform a standard least square regression analysis using polynomials in $x$ and $y$ up to fifth order. Find the confidence intervals of the parameters $\beta$ by computing their variances, evaluate the Mean Squared error (MSE) \[ MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, \] -and the $R^2$ score function. -If $\tilde{\hat{y}}_i$ is the predicted value of the $i-th$ sample and $y_i$ is the corresponding true value, then the score $R^2$ is defined as + +and the $R^2$ score function. If $\tilde{\hat{y}}_i$ is the predicted +value of the $i-th$ sample and $y_i$ is the corresponding true value, +then the score $R^2$ is defined as + \[ R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, \] + where we have defined the mean value of $\hat{y}$ as + \[ \bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. \] -Perform a resampling of the data where you split the data in training data and test data. Implement the $k$-fold cross-validation algorithm and/or the bootstrap algorithm -and evaluate again the MSE and the $R^2$ functions resulting from the test data. Evaluate also the bias and variance of the final models using for example equation (7.9) in the textbook of Hastie \emph{et al.} +\paragraph{Part b) Resampling techniques.} +Perform a resampling of the data where you split the data in training +data and test data. Here you can write your own function or use the +function for splitting training data provided by \textbf{Scikit-Learn}. +This function is called $train\_test\_split$. + +It is normal in essentially all Machine Learning studies to split the +data in a training set and a test set (sometimes also an additional +validation set). There +is no explicit recipe for how much data should be included as training +data and say test data. An accepted rule of thumb is to use +approximately $2/3$ to $4/5$ of the data as training data. + + +Implement the $k$-fold cross-validation algorithm (write your own +code) and and evaluate again the MSE and the $R^2$ functions resulting +from the test data. You can compare your own code with that from +\textbf{Scikit-Learn} if needed. -\paragraph{Part b): Ridge Regression with resampling.} -Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous exercise or howework 2 (see also chapter 3.4 of Hastie \emph{et al.}, equations (3.43) and (3.44)). Perform the same analysis as in the previous exercise (for the same polynomials and include resampling techniques) but now for different values of $\lambda$. Compare and analyze your results with those obtained in part a). Study the dependence on $\lambda$ while also varying eventually the strength of the noise in your expression for $\mathrm{FrankeFunction}(x,y)$. -\paragraph{Part c): Lasso Regression with resampling.} -This part is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code or, in this case, you can also use the functionalities of \textbf{scikit-learn}. Give a critical discussion of the three methods and a judgement of which model fits the data best. +\paragraph{Part c): Bias-variance tradeoff.} +With a code which does OLS and includes resampling techniques, +we will now discuss the bias-variance tradeoff in the context of +continuous predictions such as regression. However, many of the +intuitions and ideas discussed here also carry over to classification +tasks and basically all Machine Learning algorithms. + +Consider a +dataset $\mathcal{L}$ consisting of the data +$\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}$. + +Let us assume that the true data is generated from a noisy model + +\[ +\bm{y}=f(\boldsymbol{x}) + \bm{\epsilon}. +\] + +Here $\epsilon$ is normally distributed with mean zero and standard +deviation $\sigma^2$. + +In our derivation of the ordinary least squares method we defined then +an approximation to the function $f$ in terms of the parameters +$\bm{\beta}$ and the design matrix $\bm{X}$ which embody our model, +that is $\bm{\tilde{y}}=\bm{X}\bm{\beta}$. + +The parameters $\bm{\beta}$ are in turn found by optimizing the means +squared error via the so-called cost function + +\[ +C(\bm{X},\bm{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\bm{\ +y}-\bm{\tilde{y}})^2\right]. +\] + +Show that you can rewrite this as +\[ +\mathbb{E}\left[(\bm{y}-\bm{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\bm\ +{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\bm{\tilde{y}}\right])\ +^2+\sigma^2. +\] + +Explain what the terms mean, which one is the bias and which one is +the variance and discuss their interpretations. -\paragraph{Part e) OLS, Ridge and Lasso regression with resampling.} -At the end, you should pesent a critical evaluation of your results and discuss the applicability of these regression methods to the type of data presented here. +Discuss the bias and variance tradeoff as function +of your model complexity (the degree of the polynomial) and the number +of data points, and possibly also your training and test data. + +Try to make a figure similar to Fig.~2.11 of Hastie, Tibshirani, and +Friedman, see the references below. You will most likely not get an +equally smooth curve! + +\paragraph{Part d): Ridge Regression on the Franke function with resampling.} +Write your own code for the Ridge method, either using matrix +inversion or the singular value decomposition as done in the previous +exercise or howework 2 (see also chapter 3.4 of Hastie \emph{et al.}, +equations (3.43) and (3.44)). Perform the same analysis as in the +previous exercises (for the same polynomials and include resampling +techniques) but now for different values of $\lambda$. Compare and +analyze your results with those obtained in parts a-c). Study the +dependence on $\lambda$. + +Study also the bias-variance tradeoff as function of various values of +the parameter $\lambda$. Comment your results. + +\paragraph{Part e): Lasso Regression on the Franke function with resampling.} +This part is essentially a repeat of the previous two ones, but now +with Lasso regression. Write either your own code or, in this case, +you can also use the functionalities of \textbf{Scikit-Learn} (recommended). +Give a +critical discussion of the three methods and a judgement of which +model fits the data best. + +\paragraph{Part f): Introducing real data.} +With our codes functioning and having been tested properly on a +simpler function we are now ready to look at real data. We will +essentially repeat in part g) what was done in parts a-e). However, we +need first to download the data and prepare properly the inputs to our +codes. We are going to download digital terrain data from the website +\href{{https://earthexplorer.usgs.gov/}}{\nolinkurl{https://earthexplorer.usgs.gov/}}, + +In order to obtain data for a specific region, you need to register as +a user (free) at this website and then decide upon which area you want +to fetch the digital terrain data from. In order to be able to read +the data properly, you need to specify that the format should be \textbf{SRTM +Arc-Second Global} and download the data as a \textbf{GeoTIF} file. The +files are then stored in \emph{tif} format which can be imported into a +Python program using + +\bpycod +scipy.misc.imread +\epycod + +Here is a simple part of a Python code which reads and plots the data +from such files + +\bpycod +import numpy as np +from imageio import imread +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from matplotlib import cm + +# Load the terrain +terrain1 = imread('SRTM_data_Norway_1.tif') +# Show the terrain +plt.figure() +plt.title('Terrain over Norway 1') +plt.imshow(terrain1, cmap='gray') +plt.xlabel('X') +plt.ylabel('Y') +plt.show() +\epycod + +If you should have problems in downloading the digital terrain data, +we provide two examples under the data folder of project 1. One is +from a region close to Stavanger in Norway and the other Møsvatn +Austfjell, again in Norway. +Feel free to produce your own terrain data. + +\paragraph{Part g) OLS, Ridge and Lasso regression with resampling.} +Our final part deals with the parameterization of your digital terrain +data. We will apply all three methods for linear regression as in +parts a-c), the same type (or higher order) of polynomial +approximation and the same resampling techniques to evaluate which +model fits the data best. + +At the end, you should pesent a critical evaluation of your results +and discuss the applicability of these regression methods to the type +of data presented here. diff --git a/doc/Projects/2019/Project1/pdf/Project1.pdf b/doc/Projects/2019/Project1/pdf/Project1.pdf index 4f3b2f826bb9a621bd1f69000d9e5658a8f5721e..906633c04c5565c3ca2c4545ad05d1a72bd2c4c1 100644 GIT binary patch delta 175547 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 xGJ-~rwtbYnn`kgtcdk7;bLky#lzeh!@tZQpk zFu44WCZD!v?bGtwqI+-VU~SO4h-2|Gc)3HNJp-(*2W9to5D_`CbCN@HQ=ysb3sZI% zJksfZn4O*0d&X<=;Djji`$m(v%5ADbRZnBh?zd^NEsuWAE|xR&={N^E%YB|XBXq~B zxb$xAn$*s;)r}{;(`pJu5}Md&Nkx@Pijj}UBJa@;7By~o!r#;xmBdk+mYZ3=wuc~eu*JCQtpnS7yForYX1_d#b(wUiP|% z{xzwr(lr(Y+nx4e)(Q$8!u-`;F8S^|AHQfCc=)0Bq8%?gY>P?iZ?|7>QdgAwti9Rj zcg3Ujh|SK=5L$bjb_ySMBW1YdPz}<5)m1QvXn82>l>!M2R-9ge4ZLySi{jyh*(15^ z^d#;_neO1>v2~exGu4G%3iod?5uaq+%PtC4@!vJGM0`cE`%WZ&>g6lmvlK_(v_LGh z#D+doi3nRckx-ECqLOKnOjW`}h_oF|>YY`}Pe)BX?3OBs*4~d)crJ>_in#ZGzCI%p zF_O21H;6&wd2~VRmSLWx%A9#0JCOJ>!1*N16Ma{h2{u z+3j)XKT~XDq_63ol(%CwhNgOdO%)>gI;!<1$J7r@9*Q}xIiToxeQ>~^dPBj&@a;k& z-bL@)olF$>@_V%SY;jnh9ijF5KolTWl6~y&z;?vvr(+MYa?bO#IvXBed@!r7h1LIC zP54OR&;j~L*SqVt60f7DNohCn%UGWLpxRc@MDLzkr%X>DvG_9mPL7X%TD|z2zzf4w zv;I*t%dqM%fG=~NtA;71w`L4)dKUtBS~mz_~7tw}ys%1!FD@dC~|@lCBcD!AO?OY3U+ z*TUcN126tj>k{HCrXkgTi(Bt*sCVH}?kWRa%8hEzX#T5PhqLr}TjSLk%(eG53(GO{ zxZ98ZeE1~FA@bQG;wZ|PjMnhEWBw@qMWgB#gz+8&%9W@VwCQ*R938olcdH1}V&sB+pL{^GfRP00~sETYCkOH#sZ zOLS^}!Us|Nq~*xK4)eH+2GNXYH{O$^y>cTdmhDOE!ncyTMKNJMVh290Eq~rNYPs=u z{-t_%VT@($!vk+l%6au9={;=SLwugy7dQGiX>99`ZQE?@#G z&UxPd;JjyW_H2*$WPR4!>-)R$!*dY`%CPMbv=!QZ+B+9U=k^p5yIj!Td~0xE^ByKy zphvFISV}`CO8;yC^aNqE2Z$pUv}ihV&sa=-Uiyk(?z1wqvtbIl3}k|jU5$EMWcD1f zcQ}*w)^g-#&2(N|{unlLM8cg(?0u}rN=>7jeBz!aWhV;k*yV8f90rf`#YU7mua8=) z2~B{C6_hQA={2n#Iv)9+2R_XmBNt3HaeUL5)k!My;FB)_EIG%!DrfzC3U97+Jj&!N z)g@B`d0Mq)K3zNPpNmH?@9?&JJgYO>-W}q&cZ$WNwOl{mZ{j2X-zKe;ckr{_f^ZlJR=&$1+G`BE8Aa^`Sl&kq?E3I-1UQh zE==uVfRyZkS~~zQmy1y!f1~Ph&w7jF$e$YawsF%_M*O&+xF=kZO74)3cIAof$?>qi zgg`pAT?$lJIgO91A=#gP6$__1KLXfroDlmFez;%c@@Nt}_YcMoYW(b2ZD6IU3o`*F zy;WS)ARR|}oHTcGCI`<{>J);KgN~s+8!h*$rzrss{jKk16mKT^+=G*|Jx*$`LrmMV zE>}3c6C@~D*KD~ywzAF}o1Cz}-5BE(hCL$84bIz3Ipg20xtufgZAuUImK4p^Qn7nQYmtUzR%1rozmYmAAaZ7Q zB!ha6Wr{nVzlzlOCb0*7tp0wqC6nLVudCQ1`aZCw`)mt$$%T)h(8V5Q$w6pfI0yR;s(jvJTXk|GWDodR zZTCmcD7nc3Z{SILc`q>HfPDaFCCH6(5Fww}w2I#Yu2%Cov<+e)c?oNmxnO6pAi#SilD&E!|{qw zRPR2?II&}z&h6;!usM>JWIkhROMyTzu(;@Ge+HM*(i#0K?#x%iEVPF>xeRoH0&(={ z%A2Y%bg+}T)(_3iUL-%#T$bPba#ayX!yddyf(3K(e>1RRtgM;@Endi`mnX`hL?}U; zB4`|i73CZj$M#mEMlzqs^~QNRyj}Wb!hW^8i<@>onpwXp=6*jJbz5^Ttk>GUlBM{_ zFNmK&#c*|B@)^ZraFzMNtp^;3ez}x2zuNnYG`G2mm0X9E+kB`sm)hj?;JA*4VkVa=es<~ zdhvE^&7cvV=QN5NA>~o@U8-BzWAYaF(lO`r8_Sa zyHZL_xa}lzu;m$XzXwe4?0RajIhd$@TIKt1Z>~gfOQm)ZJFX(k`z|b>4pd{pkF#%i zhs8%tviS#IpQm*Jn=5{FO!s#cXMJry(US;Py1N9n*o$d}dJ8os)+uq5CLG#wW528t z@e(|R%<`;`a&7CM`%D#m@K5O;+6Txhw@ENFU1V}A%PkUISk>5^(Z@jIUU~x(ta3qz2L$3q44tje~blg_WuzJkZjyM|EKLh5BLbEdl3MQOq^oDGS3?POsu9BxCJW=7TRo! zW)?#xyi@7UY%VityixKravd}g4szTor#mh1`g0n(a&jt3NzL}%j{m&1cGwGB?$>r*7W1dQQB0W@81Cne(2*>pgi;#hu}^J zd@%r{Nbr^wOEEl5Js3}_7!IBv0|cH%rXMbY;jDn{0WX;-i*cm{4N?|EFVUm~fr$;1 z22T`25SLJiK=ByU{0_qar9&B^1Ej&^zhwHpVf@OgYbWdJOP8a-E~3FqyC+Wt3sA;9 zgkSR)0KxX{)sV_ipxXF{u*lt}c0lCB)!Ck-#$-4#NuN?j9lD%4WO#tN#=+BT{4Tkq zaX^M*zfH$Sqf;^YX%GG<>GuIV2{(814~68CGAFu{BvmXnMqy*J0tlP$=>XL4QuLJm zjgg`}lY(qdGJymUb|TaWioP=V6)0#Eaw*< z)|7>WF~>kq!^W6m7;w^r18VA|ijioB+Lt_Hs4(EPa>XSu{}N?iw9=K9K3Mms3(V7X z;=KP3k#a~T-$^?5_+LRGY5*WQJb zuk+LekXF5I?_cW0{r-yD-x=C(Ucrlh~83WO8<8R~9VSB+mS)aoE+!dNe5#L9G4(k?ox!s$%DWuKLfCJ$P zN1>{{tD(W9pE6t%p=AI>Jcss_^lk7^JXP$UejbU-U=q6I{$FDM@)ouP@yM~`EjG=9 ztHLY4&FeV?XLD^x(Qtvjg=o{GxI!INnFHQokTOcP674h9wJzI?iEt z2;G8Fr*2RCbH@&tscEqhY~X&BtuA(ykg31Enzl#c(!9JvDe13@7U4pXSI3LrR548}ULqD9Mk20r5{?0H)Msj7O{Mcce+8iz*y-NSv^m~4{*AWqi41yrm%H$M zd)gJcZ+ux`)L@F9YTxW?y;s`e+vV6c?H|;B*gyP^ai6Bc50xw~?;f6C?qMUYmqizL zT&-tZ$MSc~gPK|IM_bF6=0|ZW_Y+l5hiB9NX+Z=aSF;*%9H0-MBvjwURdbZ)u+#o~ zQ0~+8V8f>)UykcwzNX_}F9W?br>KL$0tw>V^^-9|c0m_)%W}_CboQneuD}ml)uBHxhugtu5uHuTJ z0%;3Cc6-$k?m`0DGNop!l%r{V%9cA-l#AG>+Ghr4$8~({dTXLObI!KkwI#dPOW)^a+6#P4b z^At|aYBz>(A@o1yHK@;=(aUcwrfU*yRf{!1S1Z|^iI;Pa_{g9mx_#NzTPC$s`k#01 z|DJ!G6@~e?Otw_u#F$V2bdfm7`W_=GaTZylhCc1%1K{@=WvSh$vc(l9uh<#7?-|XE zj16pW>AblGgyufMr5LF2avZ8-d6f@}9@NyeY1!9Yc@%eP#O8C~DZXTeJ%rq_p}~PM zWeIZ-c|+ss%PrmzMw?MFs9*h+O?A@ZO;EN+-H9;6Kz;2>^qVjf;q|?5*HTNC%f`;M zbnVlsk1lpdj8fZM$2U2bN2_-f^!m0b?$2|J`JrkhcBOxtuzx!I)e4{v6hoKeeYi_Pn$xB#6!jG>e z(Zs5lpK;NDp`=r+`Gur7h7TcBGrBU}ci{LvsRKIU0{N{PWJgnSQ8q(MJKOrT(W1pV z!i3^_#hm@xy(eg^66*yVO zWdGc}vr}le2q4_x$v!2vJzx}NkI((Qy~#%N`1e@sS-RZCk?8yI@SK9~C-rwC)jSAwD!uJe7$HCeyJjat4rR6dgU_b?;3T{}~b_^01Jo4=AfpL!+xECu}4 zk+Xj&jQGv_I@+@5{kUtq|0NKB0@;wPu|&`<-^n#q$8;UqddypAA&An{7GE#mqx@yS z@L{sO%_5mh-cIktB74rK+bZP2&}JKbPfYQh?)l|*W97m-n!W*;rSCOd6DsLw_`S{C zduf-$kIOa~P@U<;+tFNH(Qd!{E+)S1HLJ#+u%oD>->Rk3nbXzt6$3n|cf!(N{F5Z0 zV7{WUqsiU4wT~VCH8l5<=G=4QDXkA#*x!17+LP@)JiH|PC2v!!+qCs zx5v+dR=!pRO3wQO$@l*n?W2H8(9G>SP8U4;Z(DvYSjV3XJ*v8F#$OjOZ}uJy^7|s<_8N5lZqls)-p$m% z8(2CArN1+3r>Rn(dp4~#57zCjtyk~#hh(Em?MzK545@)4W?!C#L1(ZEwY6}SKvctPzWS4^74 z>V_Zn)&8SqSpP+@I-F`P#f{p#6I1b|LY4yLM<(@dz03 z=3V5d-r<$Q!#AeNY9HY9(wWYg6n=4330c|cjkrwmy>0X!l|z_pSm%3gllH!9R@gPy zyv$07`L+kmyjBH#rs*7>(OES5Mhv&2 zwaD?#*2HO!+wNB)Tn(;SuU_J@ckbjq=49&&Plc0(A(-&1;$bI`tE`HZta?E4yH4Q| zU(}Yd>|-Xs9%V97oY;N29I3v1fxXva}f9q#9ZVnc%{|)Y-*?4%_xc(1PMg#nF)5hF-6+~XlCes)9`0v0kuyPoxxAx(OF zW29?K(7ManrmgL-^_tB%4zJA7SO@FXv9Sp;mBj!aQAJk;rV&RyWQC9i%L_ggz-57~ z2^NPXLQn=fH=i)S1Tkh^aaLx_3e<_g+qU!b2lai8O3KOWO2^=lGUit>LV}&MK_0p` zH345sFnprVy6lkZ&7jX+Khl8SMGdni%BII*k3LOhnYY-yPTYys+H>+hbq!K&dSC?;rAwcJALpR(mFvf;GO`{73`Bd zsxy&NLXn%`PcQuY4(6|hYUsIftY>~%?7z&VKo;^^KfzG}! z>j%g41k$kyL?Yk!DSLOMmyHcp6~dgg893xi~+5t&I@*m0S&Z%k8te>tk{8 zH&#JXOhZ&tNkOAH6pSkTV9uQu9FYmqX^t#mYmAezV9sG@F0MB|y8zffI7c;(z z*o$c+Ob7THxCjo|+~h#$l}9H~a@3lB(27SElpD)FhG%4c{0IJTV>5)9fBth@h8GyP zgONvG?(A;NmlO@5FPOY80{2*+I5NV7@G@3bl?YhCe^&4J&#Tv7w7jpAJT?)}vs zegdO!O=8As(CwlyK;Y+>@X00MJ>J33Q?g{xmoos*w z<<8;qOp;q&SyhcQr@Fl|J#b8d^<}Q<#2ysY6P(x#iP}K@mFDW7O9eZ&CRRhdxyz07 zDsZv=;(m(g#L5}2hqKw82 zqyT}yb??LO<_pGEF8rIMkLrVDXcXBf@gv9++-?FurBFIT2|O(SguN60FZh&H5iIkVWC+@5 z@inLo+-?H^P>UjVNGQOJ7Qax?fBj{DL)i~q;t0wzs;jR2$VHXucp-t3ZGA@B4|rw} zL5{0_QTlehi!D7WEXlhD>SFu~Bn0F7Lt^buj^n`|)(b((Q1#jLt7>Xu9ArbA zaIzO^xnf-Tdu#y0!ua_1{QEz&*3U?AShMv!VL}k6C}8gFB(ie)K8kdpUdp*8xya@?W zd4VtVOvr`;VI6^9w7COj=XTJCKGBq({ij@j`lnhP?7-$U4C1@3H0Z+R0qP?etbFg& z@{m;U(@RI6QRGjrWT0Kts39s@!3oLOH`?<@oM6|-PXsY2|9@fZMGO3-&xVMfZ}-Yy zAMT$I40T`a3ZFOP!@}B=NQe!vJ@w7OzChk9y~OYolHG-QA9DL5FRA<3YVQ}@Yb^{1 zkW<*(KuIZTAjGhRTCUwjdVc5Z{4T`Z<^Ppzb60!vk$VF5^WuZx%U>5FsOysDstJrP!ZrQS3jzHZ8z z5X3xoZyL(E6)%!u-cN)#vhanvDsxJlokpjW!aL5jz2sF0Y!&{y0W$tC}(M-)BDy;p*NasqsJPOjVe(3-7XeRyk5X zOi<&KV-c=0a2zg-a@njax^9=DQta1Cqx3FZ1g{dLx~a;~va#_-bj$yZD8nL&n#fRx zx?{#n6>o#Phdt?qCJy8m3am-}P0q*;r@Coh4E5n?;Aa=V^zEGRYA^Q30-(^$wd7Fa z5Zmq)TyPI%BpZ}NVrF60kti2EDukyiET9FKCdRpv6Ee|W{7Id+$6dK>;i?!#e;!H} zaSGc>0?mp;)e*)i_Ug31ub<}eML&)N`8RQjIPInA z_Z4Ej1iKKzr+*zMW@%v00%4L2w|~oiNO8g^Q3#EU<#2WvsDGh^bRG%idGDw9-G4%! z?Q~9Q2Db4A8iw^&8M+4bC@aQxL3*je<~Xzpl_?n{p@~>fgI(e5-6461}e26*dcIgdQiKn zO4;?U>+nbkJ{M2lS`MbbE5S?6 zo_T6*l6%AEHIZgR0J&Iqz4Q1NPjz|?IzBSGmA$Py(w{L}gYOCuop%W2lgNs=c)1T4 z1=t+2a%hX4tpP2ZnN zbk00~>xg6}GvW6(36lN~z`EUt}R>#lu*Z+b*30X)TZN}DXTbWz6JDST@4@43>; zGMA%@D`c{Wfs}4@iug7EzOy`HEl*%?Vqfi&cgBeuK9qgJWS9=D1y1}W6)Xs%eI(zPXdcYie0JTLr+Y&k=Q%RG+i{Sm>r zhZtRqI^jN0y5@dfg>*IPa5zU_r|J0sYT-5ojuUkjxDQKsn7>5jdU+$s$!Sm;JFfL@ zhs&S)RgOatTH=#Y>R^IdXqlqo@pSAWrauxR7Cn=E=D7XNuaX$*YWGCcP9LStvoz8q z1f7dm04m~FIdSY(!;KY?d6t}kY!f>nqLWcX@QEx)gC*-ah#}5Jn|vFN2t zBcK=n%3gZ-`6=p`zVtEh@5Coe$e#}H9|9=ee>c+l+CzSG0lR50C)~GL|6?2TcoX~) z)3AkZ%c?DifHV3nDW^eX*=ydK#PdsI{FhF!H*EvP#0G_QR1S$>PBcCvnk=ogTL0&C zT0fNmTd`M{Tx3P%B-??vf!M;W08<7(9&^YRK3G5@^BIY&cvZWUy5ihceX6OnxjK6i+4bh#`ct8b z=sl_!itK1Q$vVbn(Rak9d0<78Cmz>jyz&cq+MTVkNL;O6B_wqMbL*BJT! zlfMEeRL#wst;5OdNTk8nhLi8KGfpGe^nLXnL$X)NiZVrkWSWM z4kZdNml>6ub4lkD;pP=z$81#N1~X) zadSP_+SapxO_9;W(LCFN@Du%UnBSJwgd;pvA3ORu!0Wop-JiP&RU=u_vi&>QtcG`qVUV7B{@-uM{V9%{m&J?1 zJMWDxL7hEEJNJD!?XJ9_>J)44YX>D^y0n<84o_0@pts6L_`IK|rE75}fsCb_9_kQ7K%02Akcj5MVmIdG1# zqt`NOXU_j^2{S1y_x@ILN_ z&*fb?l6pWWv79cn;jDKGTOK_nPf!})uOg_%9AYnh3bIZySK50k8@;m;K0>_+DFzmL zc=JlHbR{-1oC%#z>u6R?8hsAU*~;gLT$geg-N>?;nL>B&)I zL>MV@3o7M07g%|!28I>;M<$ff)07RrkKli&pF`|M6UT1Z>fWt(5>Zm$Nzs0aXVv_E zE9w+M#7@v#z@*MOdT**n2EybXDG2-6teu^l*}wcK3Y09Xj7U^KgvfVI?d6jDsjU=2O{fPyI(T=v-b z8t$VJO8Gf_?HfRJ|y*|*FN=p#{wn21*wDLvAV z$G4i~K!}il*jjtKOTpEpZ>jL+9E)tpFRcC}^ePAtLf;VE&1^N>DR(>Whxw{v2zcu| zv@GtJf!DG|rN`FPlO>wdj!cjjE zi|-Yw1bHqB(WfMJ<^}Ce<>8QGgJfMVm5nsr*vDZdP3$9~6}M8vg>!Z(^d7973M~AR z?bf6SowT6vYW?A9T`n*AjMf?cPK`5Hf3))?Kqk1c79n3VJ}>LZJXWuHEV1&IkhOiW z_MnJGeT&w`*ni0nooYo{ zz+U(&raQ1%@rb0X1{@sx4r?k)m~V|5~%n-%A!d+0kGv3t_9Ql2gz=H=j`!m19lyd4+`!& zCxvFWsq4?8%zbTuaC=RnmBdmN=sY`(AQ2JVkou2Za#uKPO|kV)?^`tBK16zZY=3R} zUd-O)dZ!h0{>PfT_usF>bZ2;sBet&q`5{AaI=XA?|BSj?=D4e+rbXR^4;Ek1!dnxU zD)9Tvt8`ahk`3iG9~VESBi`B|W%&E&>!7r1i5`svu30fTj%_?vW%-h}9a}P)6gDZ! zn}`ytrX3-!Hi!6RqW_R)<5yV;wI)_8exp!ro-&wYCo8;z#@?tj^)9qmT;mK&#@ntO3aT-=;6D1U{bg1*CbW2(3)|!LBYCfMhy2)%*<oGvrOXNLa)LGhT^iWR=7s8uUN5&q;8Rqul`JaKr6Vt`YuaVJZ;X&a|8S+R9YW4i zI$bV8`abB>U?T+9D|9}Jt!L(?cx@*348|jmVR7z^QDaR--8{)zMXPKig76 z$Q{)0xhfm%_w#G)E5)-!>my-nyedtrDY}+rSj$HDj7SnlCt;f3jQ)3t$)eZaX>Pkn zl0uM&{{46@VXY>Vk64y*$_(D8Qp7en>RK1$gPUE=eLC~8e53VNM1%d6S&0aIch`nQ z9c!;l;gyUJS%bzgk9SmASk`|^6;vkPy^Pc;uy+!f#>bki1mQDo0c+D{+Ei?Ki)(05 zI_no^F?azit+DCovI{PnVEvTj>P15~Rlz>D6>BN)d!p013U*&Lw@4OM=!N0XL(q-! z_oY}DOr^x!V)nV|b%n~J_s43;vNCOkQ5@^0lr#^bZmIQ496RUG$6T&TZxF6CGU9Vt zQkT#mQn^8)-*;_(HP=lQI7#r6cP3Dwt!$2$o+}3)zUx$QC7+d^*Z6b0$J=4bd$GXg zlVmb9-tq+j{NgusqE1Aspsw+t09{gn5i%>@Kfzqc${IP5M3cs{s5x05@^_Og30yx~ zg1|Z@ss~N1q3pNJ%rh`-ho5J7X6`+ya-@Ss^RL`W8JosJW1vU%PaNN?~i`wB{00Dbe09_x{Z5kb9@hRK5pwrpX!5E9DhZE!J&<~Fwr*huu%za zx5f@+L=Sq2I7v#v=qsiIFJ&uFeAhxUW9<+~Y+xz>4Ji+a@{FmxVIFC8*!w8)nv`#c zQjdtR*M+TpEdC}zgl>Ic9nibuAL$0?vdjg(L24L1QU7&KJRj*CCF!|T-+{ONAzJb{ zzf_h9i;lrGBVFGu-7In-2<?8lq>_aX6n)L~*%eDsMm27U;Rvy6Sw-aWu(VsRSj`us}B@=@j({j*!kTWk;F#*X=h!i217GwiyRdD;KXdSW;JJ(Jf+?$eZg1-&tnK4X@ov0- z>|Jd(V+L+67H$#3<-v!-9RArgIe+}gqF5#A|H71jiBRScT5#i*9UqgBjZfYNyeTqf zW^kuP`c-0Y7p8F7*ouSlsWPMVC{E_W1uxBa=p(he#BR{xa(z0bzIv8Wn4IYwtS>@T z+AF;j#B00Ipd-GoFXT>JXPiY(wJK_X<<5W`>fK>3l-m4^up0KYj7JE-CGxm9UH#Fa z3Z`!HBq5b7DYp>KF>7J_jO#BC^c>9MIq-Uip@1Uo@Oe@2o$m2ae(aeIw zP$pJHVigw}675A|YS0-USMDmTw#ddap|ha_K?DQE9yE&Xno-J>B;0q6QSS`y59qAe z^m5+DLwAN-*I=9fpu8?#vZd8mRnC6s8WhUW+HFdar56 zX0xqc`~4raujk+5|&6`lPrF%Y@_A7<|9ur4J)4leLZ}eu&%1V1gn2us10XQ`pzsnU&@j#tH z@15Lkg?emufh(gh`XK5Mv73{y1OvyXHQM}8K8FSye-bPmcY)GN9J|It9#KpEDHUkx zcQzx+@1?WbfbUUiA@vyVRiz_yAc!n%#I!4zpfI>M&lioU54gwZVEjJ8X^eb5zdl+TlY;%?itv}xX8yxP zy|i!Mox_x(`sxLwsPxlFVijus~*e$)Hu7gAEWJQKbyYYjEf*=_TdZHKx?DXCcC}Wk7^X2;>GO=DIDR0<^4$JWZmA@FdF1u+$3idh}%}2 zuf9jnvlNxDxA-yj8-x4rxnW6r&A zBMvGP%1@2gY;S{}gGoPc74VCIU6h=_nA37#uO?GJMU5O&lDsW%|?gdebRW>aH)9}9h2QP4;i7tU`&_L z_L5Moo4vC99vc+&2WA|;%cA~=BKmARMzQIQpEs;q;S-hnhRRN;@lg%`D0LaQc2{_!9(7_Yi9ObsNWanW3U+YuxP&382WP{`uhH@kmT&VBR*M z04CSA)GN?+nC)Xb-dt;0U40T3R>l1)cgq)Sn~-J!%Zpel_$5KG+#QhxoVDB}e`esY z*&Ox5$>V(IWjJ9NQX<8t zvb!lEj-Cyx3Aw7I)ydu-|Cx3Ik6znD-7;Gp=gGR&DilRv2gTdmvxkeyUkO?`H=QxA zpd7)~O3oEsRPlezn41UHRu!+<0MQXpl1MLH?podNuZxD@?sGgo`(lF&PY@x-#vMf<=gLTAhxn5 zO;5oZQOEL{*FGH-zttPef**b(U-((FcftRGpX(B}kh30SXk=gM*-zU+0$f@WQ`^p~ za_WscnOE)&OchG3+!CvVrP~b8QeVk7RsS5A6_eDV7I+0!2EI58I|+CZf#4dMi@PV9 z1KV%YTICivtfQY)e2%?fIc;L(idYl~^LjS^tBga8=O*s@=(+VZj!_gCgQ<*UNmCb+ z0H&g^#@CG-oq891ed}L~04W=*WJAcPHO^;aNcvcm`Bq3o?e7qDg<0GkUMouWGeC@OR%%VW%G#^Qt^Nv5VWTF}k;H!*Zhjy1wN#p?#$8Odit^bo?iZ>=WaM5M_j>E7DV1#i*23M z_}JauBPm;IhSHi;0Hg~+jChYEw40r}D(wf4cS*9k8N_&7nV5~RC2x7Ifha8Admg!( ziu{ywec#g%N4b+5G52uCAS4VL@2>#bhRVC+$TgD`RwA>omS$RvOs7jx3RSkmY4vhQ zm*g(8AoicU>1BSXjMcko0|o+w`I5(Os8|=T%FV=v(Y?g8fFEglNxK$tkTc5Ay}fR& zk00ISMfPZ@)5Alj)Ma}BHKp(?Q>GGry&9v&V;MO#EiWjEtU67gnnk~ul`ksxGCN2a zDP03cF?4{dD-3r5ebBYuvQqwo36nRgy zb(0Cb(Bz*DfN)!E4o^0G7FXHN3r_?TW18UxR&kArD2AI@whavfeRI98ZYqblg-!oV z$wvx(WDO2tTr)^@N$jS9wN9JyQPQYjJ)yjSMy3izA`gZ-9o|&m^NZ)x!a|Gis+J?3!#ln z{$wi2E6>YoZmY^t0+#vUE(|BAo{%f?(pocuGN_*nua@zz(<@DZ#nVNt+GI02?&`4n zyw@Q>I1e-P&~lpjvw@i4VX79U6k05S1+ioI0Verx)Pbf99|4h~B*ljM_{FIf9r}(< z8}bc+*{0KN8u1VmCu^A=E+>|r5^N~&d@NJ*Qf$z`4&qd}R;N`9mfNUcz$HxQ4_VR` zTk5#B8)nK&tukiVA#t{rWbRRj&PoFv*4)XbSl#`Nm~qd@5ZLK%aG3#?T2%k`aV#NN5_)ZgJ=U?4Q8jgD>V@Id@MuQQYaFY4$-HMHo^h~Af@cug zp<+k08HFuFJwBW7SMT1(L1v{cG86wPgq6tRg~Rt8-@Y{b_zB*%ge zrq?>5_0PR#DH1k7=XDr6y(_WKAIuaUVrt>eR1*q+YEDnGMe?1x*P5<;TuK$NSIH=z zJ(&WlioZ(mko~Ba-Zrh-A{Epp{P^ZM`}_Obuh{RMF5C(fPakx}f#X z$z$=;%!zA;^c~~m2XsQax6-oP=YAdP7@2i?-ZhwXM)tK_ILR=3WPS`oYHpVNBZ+UJJpYYDH@vHn zGemB%CUeV!<$P^%-8siSvd4qT15J2<+ULaU%K*#z^mb4*PC`6V@czFKf{9lPirox0 zp_h2YveY`gQ4R`23s73697jp9C4P9`KLK((bZ;Vb%uXZ7b!jU!+_ z9Xg#4Re&%lfb|+**9!{p&NUCv`+g5PS>#S}`Ob`M2<9TWA7?r6Z!-;Hh113}r~N8K zyya;No$RmGKbELTubW$GhnNN99nEjuAVZ5mHZG|kq+=zilFlx6`RHs-sS%g_v?f-k zc2FOC0*Aa~dH1enGb~si+rFt!(3LQnce1P9kIyG(D zo5QwwcuC%sTpH7?`A)id>ho^qW_=yo`SZoj`cQ0$b)weY$LfFyuhW z?=twh=L;EhgS$*=tRYqpHOi9V+6R?&+{puT&`U{0!68E7{|uuT(GWIik@EGpIcvkx z`td2?+)dVgF?J6eesg9}9ZKWH9gy1*1;LJ2yR&{Pn)@y|2-izBb67|-2&Dn&)4|=k z;!UZr=66i#yI>{uf@w(|65BfO8!mkp3Q7*g^51LzYuzHfB){65X*Br>qO%D~Rulk&eKv9H>y{ny1~IYfYC+ zGA9Hqh({^)GOablNGc*GI`&T01am~R)D2q!7h!(&HQMO2Rqfv+3jSWp|Cbd?UFhlw z!aBml)w#fDsVa1x0M^PhQ9G5}W&cZl+dGgf183fptc?+yb- z>xfiB_j17XF@Uo|5_wr&&Pa^CGzvzw!$J#2s{zG>xm~bv#Bkf2`gZoy$7M0C3?dQw zJjrdNj7k4@YeXeO1Uq64pIy7%#Zvl9oH;l16^bcxlD!w3(s-=5= z@K=DGWZ>mZRoKyTvi*$~!KRdx=+w0_4FQ(*`_%%S-#?1`<-jB_3*`P>vtEOsYOCQ6 zn|7xdYy&^7(!Y{m*Q?|~*8yS&NN>ZYRO3qQ@E+)B?sJ_x!3&(Spxl~UC_$_9gXN|y zl#XHLs)4bv@FjMXv)iFk7d?qv)nC~m!9u{w9aRNXfAAemZQH_{c6hnfi^6vvGEoR7C zF(h@vu&OIj6ubK0+x8Fk0td4KwgmnxHi3G6_;)HYczrp2R4>7#KCq%qReTv%u5|+4 zS>_kUxRz0G#Vv!2owhjoH`S=W=|M{x{MIb-{n+|NYnuT73>#iztNb8%BOP6cMxxYY zlxt9IBl%n%?YKYQQJ29l=MU0)n$(rBUsqYtO0dz01A zY^Z}?XD)m8TdQ@Gr`R5?7P2L(%BR3*voqJ)Wfv-xop*uf*&ycX4KL=)iAvc zBN6UrvPFw#+14vI)2l`gQADX$?c-!@vEX(q5`1H8iaRE8>I1GrP0_8;B4A#CloXGk20KL=fjwxFDcf{f;@^iS9fy@+VcX#1^ zD@ME4$5!M~f}*HluWS^V*#i46HMbhSliNykL>HxV6%;%1I}y>{#(b084DST7BdH?A ztx73Ck66dN>g z=_gNJ#bLy@KjA@Y9mmoOZEK14*jmp0oy(mwE_-Q=WTIJooJ!Z09FX$pO^3K5r|5TU z=`6U8b=kM)OkmP;qvadMI8H^2yqYTKSQF_Q(bAS(lyQmL_!D5$Rf4wJ(IXnJoZRfTc_~X=`)2*5F zkT1nry}X$x$o>wlO?%Ow?xy+CH=3`6q9oxw>b->1n0J z8AE=e;_21N!!OcZismarf30IRi%)QeXJ2{i)wy!9)diz7;_>PX5=77s+F!mY;v)zh zlOah4Wq51XzmgRUsWun-E+q!kSYs^4rLLA#a*FkGU>DIxlrs&#{5Dretc%|(hpx!1 z8o2zEnOhFo%{HeFAPJs_v);$;hXmv0X89KZz1zT*b z*@+7u+1s4utlsd|bG)Er4xJ5I;R-&I;_yIk`A@Rf15%o?NqML9dZHGMuv-3tlT2sBS( z0jtwIX8=O&dK4he$3?-RV@Jhilr}LBZM7ka&f^-EMqzT z8M-9~e`~m5U>b;Q^AlNoD0=b2loE^Xr#5q?jb8|vGoM~je|{@e_KLq(=4i{K5^Kt* zJ3Sa}{c+!D*OCo#<#~S6aAv~s_f@N@FR2*8;-^IxqpP5E@Nac)*zazW`>Jz(!FR^{ zC7KfOsqE+6O~lpm$URo^TcQq}0M<6++t?_x6*mgz=ubvr5&*is9?i4Hs0qFIT9 zpJUC=d81vj1Vs!ZANCa4U6)@w>hnj!uRVU@f{l6?!8t+*)2Qi@=(YLC>t5jFxv0f3 zW_J^ioyeeX1hnNo63bBHPgqx_X(Y+@lLQlPY+dvxfBUnjq_CP41FroC*L^RuN@(_0 z@h{#~2+m_{vX%rsR-&%(EKvwruyUaIM>@WVS=z~Tv3Br0+M0~T+bnmPAI&oO{?*iEt}&EmjFFYL3_r7mOV9>uDklsxF1?Q^-fK)6tcviWBz=>=nnY zRg;QIJIFuv!;8fl<#}TC)P63!NW~5|l9hU?WO?BSX{HaT!#ZElh05ei@WMQY!gMKl z1`r#!kU-o+0!oSxtDa~9hKt0JF+*=~%)tCWe;}U{M$`y%+=U*At!7n!xxDT-6Hl_+ zv3C){^eM!p63eTO4plIRp$JnGX7=8aaxlWGFD+U-&?(zd%TjS>`l-P@Ctad9$ ze|WX38@v8!lXdlBw7EWE$`%9SN22_Szga0BQ4fRQ zER)UQVc#QmZ9G_D?o)t`Vhm6M#5PJ4e=RCoZd{uLKMi%*GwT3h-WfYc4grLAZ|^%L z5AiWC4pZc{shf1lem%B#=onloT%mDej;>j&B=cP^hrCn7`%K#x;Ut^ zjv;Zc<4(s{c>hq3pcX<&8E-Hhs`x|}rRYFYp6F9dF`m5noQCm|;GsJhC3?!we;3Fs zS^+hwmjAJx11*rcCBum%bJ60wmg7P&X(vAt*JJo+>`N9(wsBv4I7btfSK9rr1!UCX zne%E#x0pf>8D^g)Rc7Z+AxgM(AmtGmQSBA~$eX;``%9&k(U<%$*6TVae)kML_-&cPoQ$r`vB z&ss}CgV&nz2-@L;p*WLZ{*~L*QhS1}c&-)E`0GKwc&}-wrB{w}I~%A){I9mfW2e35 zaY^-O(dh})pkNix+fEr9&6Lz__?bN{r76D>q-MYHrC>)|QIub;8#MaOe`xD9Y$e3Q z=+icE0_Tgc<`c;4TAEHWL8SYu6LpKW)Oq8JL_k=!5o=h{k#cJD*dN`h z{bso=Oh2y`_|6HWH_PPr&uZ(ueXZ~`s9c;85V=jaTvf5z8GAqM zoAIJ;WQ9lq-uajw8^cAndHl=)NWZCKfkFA)j$0Nd11wo`1dS0jf9R3WXzge2TO-XH zxR>KRvS#%aPwvDj7PU$bX)(4RZ|#$)&CGX1t^=Sv)Z!yMiX9|A<2MS!f05PHjx@Ui zEPF}*Y{iswQpWjirh3Ad%)=7g^FFvTsnbRshZ?O*Thn9Vln7sTP4zSzZ17wWZ=Gkn zKukVTZA^{!JTs0Ie|6jBuENJ}7@FzD8^=+Vq!y`tQXR}(?ypn(-rb2awLXNqMrLJV zRN*=MnHE!5!uQHy)}dNQ^Wzip&Ca3YOOenTdJN0jH)NHbsCru&1@*bPFA1W1h>Nsw z;Ag54sFY72g{S;CA{Tf?FVccwC-)VHwD%sg(wSeGXPS`~e_Y<}Nvg(zYVz5JQTKo> z&Cb+7CNy3Ss@oR~3jFE2<`wOniUw`Ns_wYvizP-~w5qA+2}tY@yLX4?{&d$+^Rsizud#d#I&wcG7VsR56V!11>TZ=ZAT_Zn3yEZf z-PuTIAs)j|e^KvO)S4}xyon1E8YE46%TBcONx!SS=hL@6ons?CM|qK=4F3M5E>!2& z!ETexz@|f6#E(ujK5a~6$Xg?V=)sg3l(e!&?Q{%8?=FOc`UlEh}+YbaBwE1=OD$RCpLfhmTl}i@@vGI^5ST_3DjvL zWOS52`J~LDvweu>B&!TEcC#Df=xwN8N*jZE8)rbCNbSnTPMHIt z;9+u%WyDcGvyhf$;xU?=LzYLL*B5fOU5lNIx;V6b&ukRkh}=9gtK6>GGn72~T?4c2 zf7e`qgjoz@rIh;iTFVDH1RZqb?`f)&x$eS1R^!AqOn#}Ms-jmfZBFV&@X}+QnG4Ay z5grFb;EjdL&m^I}h!rSrpN0Z$Z<^u<@noVI+oqYjfGMe732g?MDL$VYqf&#+*#|ej zXEt7jw%U~5Y9IDtd|x`&HcSuHt$wtCf2Qq1LYDSFn9E2MidFbV8>%`}xNJVQHPu0Q z&u!WXJ*>>(_|r7+SXfptJ;DG)SN4W92)ttXDS>_37!kH(_|5Un4zY=k!d5y|+bwhe zqr@4k5Ub18{kqYYGt}_}OiN@O2mFMxspB$6FTxm1K8aI|Hz#qU9lP1u6ELNkk|Z`J7s5SbBZeQ}y!O>-sBabzM3kv{ z;1{T(!RZKK(?b*EbRWrs`zlwm#a@zWo7g^g{~&ut;Wb`1QaH|(Fv#44aN3Y6xN+(U z!x1=kRqPiogb+f;>GQN6hcU4%f1)d~$NCsjN2wi!xbaA<3=k9ArEU<`>a;(tuqJh7w2Hb2xagr$qCuafPLC0IdZv zK-Tl#%2C3}oU(Mias8NI(;44+=@fz+#inv#vqOH!$HLwzXe@uAEYM2He`*{jKhEUX zv#&x!Zq_Ve=s#!ra!U0a(@icfjJEU=r8@hYU34af~WH+SD6sEXTd7AHfx7_mT9 zIlPHa`GiBNg`cC0+GDo*6W^)x4vnH>S9Iki$sm9K7sW9cadr7rTc$Ha`Bo`&Pu4Ki z<-0Wh2{RdIdBpCDVxhIQf6aNa;9TgBE`ipMSqwvn97Ig)8{cTzXuABqy_$dgUcm8o z;|AQ(E8&A_eH(Pf>H^@P&Q*HSJfJ`ex21qtnIB|JxJW2=>!)7=%7;fF>?AOT;8+I8 zGWjkFNvl5C>@N&RJgmTI1yFx^<44C^)9%(!9(EpVo^W+- zTgkO~5I38bi4+4u_~;|JFQva143x{4tw|uvUD1?w72AyK@OBf;=-3Z3Bj+MFT#L1t zKbYkj(DGBjpQrXNe-+{F3_YW|$gt9bbw?sS;CF3d=vsJu3hJoDa1N^(IK=3){lshL zjw84##EUF6aqTA&-pKdO9yw-Km4^PiEQ)N!hCj(M+PvddQ|qI~iMrZbbAq5*A{JvR z0bfj}ev6wkm-l<$(O8G^Lk%`BE=^e7S6%qUKLoi~*cZele{=?+C|Twjbn(uM7}G?SgzfUsfgk4L z`~>zM%P*fxdcQN3Im+eg=(@lR7#W+NXTL?^0#C_bsE3tFIO7p{>U(xDUDkg++?Y7L zhVggyKiY8gfA%r&`e13F6w;l~V4TKe_^DSPl;gERmt4oTL!M8r>fHic8+b}4uHny; z^tRY8lqdoxBtSEVv2h)@V3|ns><^R=Gvc@0Ja)pvuwi~ zxj5ol3B-N!BeMndjARMFv!^JTQ+dr0;;nCGgNN&;f2XN>>YOas05N1owRWj!yBscK z(-wX~T(F$t(N|coJ&r+&)_K~SnCJSS?9y!DdJ+(|$R*Toguioo-e_+4sW~T`xM4Nya%wN zmI!;Xf656e>sU0CgDbDp*P0Mid9(ZDW?d7xG=u@HnWZGFxF3Qr(314x6w&CnMHi}d zWQ2`pOL&JT5|NI(xuCP{!%JX2Ow-=okx@0pWnJDowvEw$;gk&JY*+rAz8|Ci)sNHr zLf3U2u?CYRLv2KySbR7k&5$Ey@$8%PFYS|ff6cc)uM_CZ+{llec+cW5iq013f`d$$ zS~+KSwVmOKyFANi<>OS%3%pQ_W-wKIjGNZvuVpc`>I@mPZW58um<6@um zAC=+Uxn?n{j%;0jv=}t`;^0&$YVsd*Oa)Qn?03IyhQ~zxz*|%6OWO@R-{GD`vbNS1}cE2UI`BZ z!&$4Dz8q0bD(9T*5er*;2i9<6apt{gt`V1$A9+o;elYC-dSmQ$@xqUiiN2^~e}%NM z$>U+r`1~||<9O4B(C{{}9U*OfM@A3+*>K$QeJV!JXWjvn$josa?wB^=%hFfbt8n)@ zpFfoUG*{M!mMVNIbhcs|D@DZX`sERx;cMHyQilX0QX$7&US@an_3~NoN$JqG+YQ7PTic+_deHTM@cAaX7|UbmfAN?FVCpzv zv$yZJt-jz4Y}LnvqdcCa+?@N`e}?erTF?ZV_`DnL%Q!X!^CxUnc8* zq964PKj;jfFHb5bB;NI~0aPmlK?PXa0Bt3MNfCFNhkmcG{Uys^Mrqt@csvXjGTdc! zlp=8RC-Af9dS}q#+x?AAe;a;>&9it1K4&x2G==JNH(O~JK^H{55{l+Vg5bM5Zwwv$ z_wA+52n|moOZi+HSnnI-3ryp~{+&<4=-W)7-zj31P-@3uVuuOns-q%W_pL2c0 z8;gYTH1;DAYedGqf0*=?)0v7Y!BDs7vwfjErm*-e&-lHU^oPnyS&I$rsgZU?e=ka56r}+_V0Q6oGfC06 zZ@%sUJ)@qVX8;=|=Wp1l>ThundI2`GSxv!~552dlsRtuboByo@8J<|)pyf}7mv%}_ zb@d@A)xyNWG|thMz^^bF2Xf)hi(fX2ob#$J{Uw}FL%KdxrKD7KOU)PG-MCjc`crk= z3k|rKI(~RUf2vH=E%FX7^poJuFW^L0c5JCm)vAt^DKv25*U6T8zPV}E6n7LxtZaQ* zCimsQ&@?%EDiEN3BmaqJ2_4n!Uq(m7(=D{y!jPOfTx z?^v{|LUweIhCW!ppOhxmY^cBV4kZrnuTXmc7H@60e+{v?YdD$dyw`r1`S!?-kY$w%tF)(7R`nnz2IG!AbH(dc*b-JwWN zM=Qmxuc5BlAb&spKK5ls-DwJsc$A;$BXPVVe_B=L`32}rA1M+*1yl4%ZMZ$qvZ3?#c?H1acE~*$DkcASO?n1EE}#<$ev; zRtuKwn%&-Krb&vq`^LWbQw@h|-w$HMA?>{RNn;(zzI|X_bP8?)KqgV->S;4F61~!L zf6tCJIaAPni<&`Y@xy_1bvVDU6*3B+Ry9`7BM%8@x&7T-i4)tZTo@B~tj(y_WJ zS(GNf43X9FY#fXyeyR0D#E6k^$Ns%qco3#@m;nFax=HxxcA6;(_`06KU3B&rap?2q zov|kz6NaVUrXWJ8rZky#8}wKle;%dsx!G44rZWts7KjoIJ3&5HJ|#JfJNS7e+|RVt#MihUr@$Ps`e7C!McGyCPzi<;0{BiJAw(= z>;_%;*?#oKoErK;)k6!lHlv5}lAB{zM&Gd;{2}vU(MEz+r8d@?m7r5bfABpiYBN4f z4SC?}O3k(Ld8*h|O!h)61#ld+4QEL}n9yM^`0D?ulqT zGgf;~^ooxBuP>}bvVnuvb%&S>gxDC~HyL%&)6lmB{rvrfi*Zh6VWnG!LbQ!wXC zzwob`U1YXIkepXLyCnz+6N@0sUt|eWRp@WjnlXNt%Zg^~?_A;ze?hu4g5P}0tCYmt zpuG#J3iEG9GO=(lOP49jZyNrs)Yl^(D6_5Ql$_L;nmjQTrSPjWwdeX+zv{1Tl<-8=YZ2Dg_xFtazp@jO-B*V9>9X$uG7i3qV#bnRZ)x=!d!?spN>7z zn%Sbg+X3$?QOu{Ie*#E-4zTw%O7Q*L1bl+}6!Olj;yp?KK((#(Z)kb|vhXkBrLLT; z2Id5d1Xp;rvhp}BdzSg|+f=A=+!S5oM;0Vn#4l2HM1OwnC&5J_16q_!srsqt#bi3N zrY=LeQl3X|S@-CQK@Z^)(_qeqhHVSam2DKc$x1Hr#~y{bfA%X}FMQHiiQ|8^*x&%X zoMKWW7;liO5){)JV@z~;(k%b}AI(@w?8KY$cgEyYHYuS3lHo6Pf8-z0S`;LNug)#@ zr_KCvpl>$c@tLZd|A9O?(Gi|&$mR+`quBcj^`csej-~YSJpBXl`KMc!9hxFj5~`Z4 z4Ds`spo@DPe?n)(gQ$soCbEx#`MnodQm=Tmt{IO?j8N5!mEa?1nAhb+A8bElA0Opo zJ%NK1q9s0M%;47puqNN3hK~}V7JOPed~!DmC0hj;0TrqbqSP)5AU}=APHCLb)T=eq zm#7?*`lz-ElUVXiO)YH(rq+)Bn1o z6RaD?l2DKieNPF9@Q5WZ`kphbRm4c%~PzSafJmgdp8L8?$%B@zg z1Lzqp)?IJWy`@H9-{Se?;Ma7alg6r`o7XYWVnpY+Z>PQTqEY z_m?Q5IY4Ph1kXv3f?%wh64;dOYf`H}toDy#aB}xh0Fr`%*P(0*K(r+Vf_erDs(>%c z&)y{9Eb}!)k+M^aFC7DXc3V3C$M%P7LC|>pJ7_exdPjtZr>*oUA)Mj}8PeX4f@GsL ze+Vxq(D=E+l9V!L9U(>F^U%0yHr5LH^kjOh%TClt-CueIKEuY8=!D#Vi`xRCayYu* zkh87qSc2~v7@>dkk|;nR`}=X23CLs+|we-yX2 z1OfqB-&$6JlBDTs)mKj6lUz&eA>(?UgFZTA@1wZau8c$m=MukFw0lmiNvf}*R~ur< zh)i?aHic+Jf;x1gNQ=h$QKnh$>HyJzN^31XMa-_&*W5Q9C8mKv*1NjYU#y^TtX!u~ zcS%3I8Bq`&R&j~LuT9&xp>N<(C`Fg z&f)sysSOaql<{}z^$ix_fW;gMga~`^Gmcczm{cFm%fi{W+z{VqoaWN%Gcq{sFGhNd zG0YEAxnRj0FdIHJs?%Ol^*G07RY{?R#zeSi0DSV7*OfUcJP7xA^D(L>e`qtIZwtOG zbU^hY4`1D~c@i4FF{=M{T^h$Pwtlrq_b5%yg2QhO~D)Gc{R7CH?^aNEf_ z^;iJs*4{|Nqtb&lR3`RAeK7E~b5T08P9Zr2# zrg(S}&nl3xRBuDgw_JZ@#1ch&_7WlasZLS(=q8GP8yVE%c^k*Hf5fiMaJ*fy1HTRq z%Ys}=B%QIwla3wTcqRTEiF6THS-LWQN{12LB4w?eCXxdQ2syq^#Mw6GvsRZxLKosj zt_AxLf2jzAYYmM{52ClYVR7S~OSZzRWt#ls{FmYE@A4!N2L z)q&-vFee@b2;WA(mWK%!PRcBLJ%1LS3D?pIUlVi&qjN*q}wMP`s?hQuQx!k`0l!7Fgtq>)FKK2oJK7PP7)h`_X?Q z;8?7LIH+qrhOWEtUr=_;_xEkQ4_C$o($k##^Ao}P*0ZW|$Au}wH?TF+XN7LmA>@d> zjHC+uKoence?N&=<5S7-nfgN-d|)XjpF^nWP@NAqoMvlh`F3b*wgVY1k-gR0oM_9q zbOrX^Ek8MX5d(-`I(8Sr9_YXh+gv&=?cwv=My;0O|g{Yn) zQ&?k@q*t!XHtC_%3JV`9yp63bB&c0t;*og+oF0|}e>*T4C8U?C<;QTYd*L5C2Af2U zJ-ut89f(zDU}++d144Y}LkU5w->on5==ve&$15@WFa)@zT_XQjeEJ924-L_L1O-LU zIbl+G`3(0#X^jCu3M-FyMlA{-Y#+|c(FMqz{1tDwdI~EK{^aLw&n>uG{MD>jX#Jdl zdGfpXe-2*|Z>1MLe-YF=C-)dsz3lvSYYB5(JcMCyVYlAr=Bn zV^QKgx!}XIiS(5km9}dD)q_?WxM&Uve^!JZb6?ZU1#d!nP23oUY0ITMCBo*B@%PZM z2T;aUAwYWk5D3VuKCMZNV-)AT$!3fXVP-P^vv|+MZg?;DYZJ}ZG(DNYuYu0RhLtF9 zV-;^yr47N3(o!%=0DSy*&6?7n0Us3b#ijmisl52Uz=Oh{pqtL#=L@k_#KLkHe}Rx| z^A5UUf9#4Mbk}*vBJnCNIoT@-@&_ZXsc1*HQR&&t459u{bvMzEx)uYmR^@%#Xa!DI z9u~Th6>mH&c*Y_ksmOik0TatY6VAjz*k7Kv4{izmTphBzmwRx z*Um8k2`d>hME)FL({bnv7-%}yQO9tG6{<`MdJ=qbr7MN}P!>_WAag{K3V9Hdzi~*@ zS&16TKKa`;b&ULQPw}3nS!lRBWR4T!;on$W!bj?&4^9uFo*M$2my0BDN>*+=Y z6gHcuFcDqjo500`{s?qJ;YRwJ;(X+xtK#X3uuLK%h$4DrUYqY@$c3nt$R1e_qR{6hDwznYnaLTX%st+S{S3zV=I&KgD%X$b*MFeUTOt4 zwhq4Sbp16LyJyjFjf5g&a6ghhkZ{Fz4a9|iolC5))B@t!Rfu17f3UR;-cNfEK2Dgl z{s@>~ULcx@?)en5G9L8}q;t27YkZIyl${n!_`nVNlB&NOI6^0<1^%HwsAM;E?)w6J zcuq$)gLdKbELuZv416aZp$9+RyDT1OKW1!R9Nt7P=_ z!=BXmak^ojIsO&oe>2eE%E+PlY0YVl(1n*S_L-Ug< z>iOq6W7^@&Rm;WVlG?fx9MF8>DM7c@Ss}=&i>i^Y;FMx41p~22fxFWKU}{R%aS6&f zX4KwUU*x>qRm3iu5y_jwmXcixy-30Zjh!9YvH3iA=)*p`e~jnt^KKIwcp{P1;ju(I_N6^rQ-p?sjlG7eu+2Y_#^j=@Fw4BgdL#V>ocU9{I-X; zCO&^yu1Sc+?AUGAIJ|JF5Y2VQfp|4fpsYDYdLn7TMGwc2`DP@Fi?QlHto zX>S!e7jhq_eFD!iKvKAk!~a~Pz3jC%irrQ$ral$W*%sU|IQKVTP@8|K@9w+)&ORHm zF$2kLpR@Qu$Ft$gxTRS7*@J{;Glt2V*>i`C*;dx)f1^`qR@GqmSNSxMP=9*(mKU-B z%$P((dZ_8M`KrkTNAqxXm|FHve+O!~>s<><#)U%nhMg}8J8X8-E5X0DsS)lOt#wV$ z4Da~>+YH5e-#C{*9?L&p&+oO-WCJ0%FG*M?spCY@q0K16a0_+ydCu+^Yp>m+UzVpV5cmLJfN;K)Wfx zoKRwIb9o7kqu>qVPT!T5ehqPorAUw5EuQzZe=|E=7f@7?aG)wSa;On%TSeIVD_@!M zB}of2Y^m1fLhOuPa`HifDz~PICu+1L0Sd2cjOlc3pCF^#IXJpI{r$a}0&VSg2Jwd?n9(-mH1f1ik1W`9_bicZpEEH>xyDxIL32M20&==3?GyD)y;T ze-!-pY1euwpX5M4uC}p;Y>LLK%U1J%>UaH-?wZ{&y$L%PFGLOg>kZ0h!J1ySGdX8PoY6E=gY4II|awd|n!6Lkk>k@Vj)B`i!rmmnxe?jl3 z4^Urg@{_M_lmV-_3*0oqfRh4xf~PaSZ>(J$GzU(PGw+>b005;IH!GET8OEgnA#!yz zpdQxOhHFJe8|%xu-u?8;4~jPwUJYOu)X1j(vUuGdbZq=}7B@_ud+9sdKPFO%Gnqr} zQaQe@i)R=}ln9Id3>B1RMnMumf6|erLe1FPKm2Hg2MI^`HRT@Z`5JwW6!GPW7KNc_ zXyRfG*>564USrpmsj#$(D9LnU4HsLCx1;l#&#lqVjFXbGIm&rB2C$PGaJO+;$)Y#u zwYmuz$*`ATR8baJyiaR;{y)he`d=*p&0b4EFn33v2RDatKax{$MdCR@e~6Dd4lwhz z(@S0I!g@6|#npzc@m0yBOio~B^7BPi%HUqN8Xi`zAUcrDUP@aotY4~ z7eszs`jr~{atd~#WMhgw-t7ntzR~*n1{5rB7>Fkhbsc&l#cZ0vSW z`w*%4_7hJY`R%2x6!!ryVQ2*B8sr~eCf@I1QNBAhHJCc#xXJmKed8%SYG)59+ER)CVF!GXQ4 z@6)wMwp*wp{Mt#l+&Nzm(S__Kkw9j}dJ{4#`GgA2fGtlCT(Us`yod{<1Z4RJ179z_ zP?Gu-@8e^}e`+oLkHHtpEVKT<-=E`Z!pCHI*fF3yNnNpOBAF!?&->5`K6xBbYRg&Z z9sl09@6|AnuxNF$XJa=Tbe`mve$Ri?BVZG_cM0=^n|_^Br*~q_q7^HwBr$=9fdxmJ zCID9;UM%Go58~Dpyz}1*p}kd~-6~LT84(rLO&wElrd2~;AVV86oCsR6U0veKGtZ+UCw}6lE+12t zEv?a(&#d+tf*6P{Z5Hlb)`gG^3Fwo~;EC$qM-&>QMT7qLPFn9l5e-ety{4Zp5|EMV z^qoS=e^YH8+=o2re&{lJ&Lis#giC91rZr=^T4|8*8&~clVqM4N+aoo`C)fL=wW=>A zkjmEETQ?gSl>Q#&c}ZDKzmXgk)1r6Kcuo9gaJHQbts1gh($RShM^s!oN%`B?URJgM zoMmJ}K*9407Gz%Wjk@r5u)N1!zDoicc{De0f9IU^8+IcB+4fuD&s7s1-A)&l)wX{q zM(x#wRtO{_a&t67CZ&<0F3Z?u^siNoY5nC{>6gRS;n4C9txHT(&_bUt1!`@x4 ze~A6GLa>x2H$m@T)|t%6uE!#w1s%6e#3H3U69}L$+*_v+iowAREUa_Py;X$$qHIrI za?!j{E__L8wwWLn>U}#{7@GV^yyPN_ih^e}VtgYSwWXg!U8_)V=C|H{@Gz)ef;ckr zSP=}SF*&D@fZ4Ilmm;6-OWe6}%8AW>f3x1uItrHAuA^E;>ov#pWM_0i7PIzv2^`%JZ&LvVZ{!WWXOAg zRifw>co$A!NZs?9z_W+n`qyF+*%X+!7~LGOQh1;qAFg1J_Ucya_8aj6v4@6Q?D;|flrE3BoK2F}2*teYqqt#R9lWEnCbXnV!hmC`> z;2>dE6#@e5Hi+4uWUui~xF&FJOU@sb7 zkEZ)2r^sg)xGgeG#Tw@bCq*@{e|Z0R4PeOeb*&V3Aue0{ZxKk9JMq&@B%0_N6X|8C zr+;{m@Lz{cke&%~aSde_4TF^HQJt zK5Ys5A^43GP^;G>@^`n!PXly1ODDpeX`$3UAeH_14|8T5M*mW&#(QB~?iI)zrm6|o z4<#;eW1Y^5s{X2R+BfK*{%WToX=`5bhNVIhav4j64}tc2%veIGfYc!+k3N+SY%=Ln zL_@ES2&OJ^{D3q`?}aV_f9#(NYzT`wP$v@*2787M+B{e_ZH6e21Ww%B9N8VUR$7ejGYZS0H-68^k*>tR#yh04p#=xVq9W zKZ5uwza>~=03muae*~1nK*N6{z`5ZhtpQ3N)Vh8}WqPH*zF5y?)4Mao9x>=+3={_j z9*5FKv0YYwMHzeCy&zRPHGfTXb9JJzaBm5Ic%O^Cr$Q7eJS$*YmK|vZ2xV_d>RjKl z1UpeGQ0bBykiUN>$Imc{TvKs*B(m)bdxMzJF}6Cr5`tUtf6-P_U6Y~du3;&RA)LOp zfU^<2@mnW#tgxOtGD2SBmc=b(B)OaB0)v^!h!8U87AZm&Dh!o5m-{)w3R4Pj)dOOk zZRHU>>Jnf5FWfmTVNlr3#V_yzA1QJiln%)|SsZA$;4|l*?Ly)#YH}M#3kJJ)xv89Q znj@FklN++2e;KLl6Cdr z23SWB{ZTofY2iVCR@EkAjBnM6FT6^AzC6n6O8qRnG@zvoJW+?j^)-*L{kL+j?p=Bq z4~)W-4#!CbA`ad2S-YFLH?aEcMw8CS?UO7YMk-Dxe`z)?$tFvBrD2kZb-FMSn=Dk{ z@|!zagGf+~iFdA+Zw+B)GL)%(~^=T9ZbbT=ZF%%yC{$PE`*5qDN6x z5+@UEtl2UtBPXN!qf;JcmT{?d(U)`C@aSo#H`NCrDi9r`Nx2WRZ&JmEGqsk-!nHMI ziPR_Gf7M8C%OcINH2IG$Zy0aP7xIeFm1}&2ZUP5(n2SWXsAiZ^qN`ru4IBal#C=M2 z1R`j{2FY|``u1bU6hS*N_6>M~Sc!fsR?J<4IJ6Sji1*!bQVLqpvIu&XDq-?Aga|xa zZn(tA!Mj*@ePncMd7`n)iFSQR4Q);+%06vIe_Z{kCOS=3juw9-bV9m{6_JSSUjMfm zWfS})dXru8oZMM<`y&EI;huI&AwxamM?%9N&S&3(=g9aI8`E6XxeczcGP!uLpVYK~ zTI~-mlakoADF3_D;)icXaZ+_hDDbmY)b#9#*~HMu>2zNH3LWTYo@}(f#F;)RoW&-1 ze+C52WW&==t?<10I->p2jW{pV&TJvntMUre-R1(AnFxq8j?-l2d@$)BbV4Fva8M9! zvKL@)MY5za7`vU+N!yl;w_Jf%bU(xO>MFGBvTI@iT$qb*(*H&l)Us1`5lirUxl~Ji zKAvwzQOiklFywX&|24Mz=x9#a?v22tf5Iq};>?@T-vY<=snLD z9Mf;bD7Yy2z$ae`#LR+A1xeei$BQIG_OIj5J1_I04-Z)!; zKQK4X;h!gHbQ~IMjL%)->t((Xv&WH|R}?HW3ds?%J=@!U)mPtG)o#3jIZLB& z?Bk$Sv-jk609PUE6lqVQy6#CCf8=1;Uy&xK3i5*z7-cE?pz~h(g8f*LLoW?S>+|u} zUU%LGT9vaY_&dA`^ZvNGltEh8mWLD+q%2u#Uh^U7HL*jYQHr1?kI)A@8rcQkdSq#p z8?b>l?vm5{qP=y71Wn!SAY|qoeOU@-@ybB5f3#};`Kzlo zKeuV2J5Q2Zn#J=8#a;HNJ1b*oJ8g(OtS*d!@tWp2 z`xJuX>U?LX3#nlaPBqza0uJ7uE{>?Niuq68$#D*n`^j?-oQDp6>o5^H8-|Dywgh*h zl*#}Yvv>PEI=&UkYu?*#j-(p&Je-5;#nT~o+0u{o&k2`UJRbyZtC7k5pQw%Hrhvsm(Q z(_4C3^v0$r;uK}5{<3kEHEUnUyW}Mz3-iDd#}kHCksm)~>j?CAxKXl>7ypyf$V^J#)Y1Pkpg$gd%aCni z!K~}ZEHN0R!7&fxLdImWEBFQ6Q-7_&oLZ9}v!fH^6i*|p2U4C1s7|xbVJuNOW)-x1 zUG<}vfB1j12yK(`iHdHV7yKy#!{;ifn|j;t53p!@E``1ghmX}q`IF-PW9YjFFQ%g% z0p%>6V?^$|C?OBSFiHyZPb#vK6iGUcS7|*sLOW3ssIN7;+f``l=CL6XwcobTK7WHO zin7*FM+^MnW*y=(z6TI2(@tuTD=TUNcpe4YO>mL?w4{LX03Gq|haUz|!aV4b+c+ zmCU96`?7;-FR4{4$1SWcn`vE|qV@bYBCP%?v{nZ?29nlYTYs8T9wO{QFTJjq!kF0a zhe)*LVoUJa?*>hlyme=u^1-Xjp%L|l&k>W>h|H6@a-8SuON?j_Ml zwsLd3&F?H8a8e(j%H$}@{@!`BX;m^11|3o-%W8&^{}HJIcVb0y|En5J(G-r1#bAM3 zIvU1Vx8H&^rvQCV($=_2I6ZM7`}9i%1x#C`w9;KO7DOhVI}9IjWkY< z)bMP{MLhu**_>K_p+bVy@ttsGDvAHmH=wh-oRBpshAhO4-abSf8};mgjU3)uj%@gl z?j7cnQQJkdwYF&aH5-eeYUlUBgS$BQoD~0z6}CY1qd0^yEV0#^A|5SO--O+6{L9n% zbSAFPb8ADCdP3Bl-y^CKqK>1CEtp+y$a*Svy}gM@$b0>F_pDQ9qR@yDm$twc)GzB9}8Madr;=VruJ4KNQwU6aJXnbr1RdkDmhCj*!o`!1(_7BrXy;C)HC zzQ?MSPa+U(fA+FdGK(54!by=kMoP2!J$g~yzqx2NCW3`0V^}GJ z&u?CPE@lA_WzEcZa(l*}aVHv@LIcdR^dEnZjodJx_xGco9s`c3`i2NFXC@PnDEPr*Bw^qUIRSo(HXs- z>qry|m3gCS_V^RqO=!7fQIiQ{uUt#fMnF2h1glQjp$Yp2;5@E6E?1wYKedlCY{`7M zTWjIGxVD!vJxrQHi5`z5P4LRsOtugE)XUXIXEjR&)Qx<_mrxObM+q#U8#dLV%rpIpi89&`0K;mZw>z)$^IBcL-TAG( zfFCOR1dYg6{4pd1j)XjcT+T7>LJ7lzpj6wG-3fIekZN|;yk^`PA9K=X|l znOP?)*Mg$J2fro|{mvx4K9VBwG0O8;$W8@1;a_k_HAJEPwFKHykB&2~t zMVv_4Ldvh$kdK7%Qq9^+u(*LyF!-9Cmjv1{*VI8U(y$mwk~BInSx73VJg}h8m4Vwp z3RKfzjC?>~p7_UV63nU~5wLKzI3OR+xZ{IAGl3m?POObl4_fU_0A_tQ>cvBfI3V{M zeDphl8#Rd9PMD4C-QHa@>#*bs5qK#G)_G1XBC8UiD2M` z)D&F~gn(e(iMo8&=ZwJX%cQl4|G6V3veaj~13i~+R20P1-sc@@CZs~_%lr?&Uhi&j z6zSysb4_o!J>J6U_2+(CkO^HO$h{uAIQN(a^v4XryWP5o6{C71I8dQ4<~s6VvZV~T z>x0$910LWGuzernoc`t@lq2Bx5}`)p`eO};KmumDbHh|p)rBr{U)G$?-utN&kMf_D za^F(0^yu;Ko+=Pv-ZsLh!nFnc&y^!h9-#g^=bhb;J+R{R50gjHUwhG;@>DjfPQK#U zQQ_e^U}mrq{gmk-rI`^+;FMJUR}dZO|-d$K^HGso#c zh5&vtI5K0JI>q@>p~v`d=5oh|2JbNLIGOT4(n_^G?7Y)rfg~tbGA;ZBYrLMWDwhWs zQU;^yZsUjhx017@HU^<1*|^C+nT0|0sQs|k**r7d_X^;vd|wh%Y| z*1mYo#`5(SlgaeSq=BWuEyKVBGDRBbcL^mPW>k3p{rcA|~B+j_B=44WO`>Mo@m#^Ywu-*vKPu4;g7~|Hr;^eJLK;qDz>T#=9IIMLsxPZR;!8~fb_xv% z?*r_ZQf_tEBywv$PZjq+G}CPpaR%Ph+=PvV=D#hmmxq7j^GAN1g4uGm zi#!zXK4?36IqJ!XgEUTAYMXoZ z*Zaw5#7LmW>wSk%wQ<6&zfbnXs(p_L>ig5V$d~9K@BENJ(Gp1*!r7AmRuk~;IdGeG z2wM--AZcxCwKXdJzB0xoX(hyrLfW-r)ix^BA{05?at%##niK!M!R)FV(XRPu=Yr$& zZ#QD%-70f9<|BEZXZt&@R^hu+W)x0Z)1J%`8bTauh#2m+hM3`fed*4EbyZ$vaDo)px;X2$)mE(+|w9`&>tfh%C-8|yY zXuHx7_LXYD+Bk&h^v}wmm${nrPL-e~;F5cMo`p3BcwURKw83+S^a8ycVh(lS?Tf~U@8z?)Gws&4fuR(M7^sdPfCFZ`x( zv~RM4=G;#M@m~K2p{?KcEl(8!FN7tE{$8xS1m=&$Z%M@DOWLm>h~AxQt$MPfE~M8v z&Z@oxgi!i&FZTLzV$y7YY@CYIvrm2qL`^=v(EAnXim|TE+hgGvoWj=x4<{wBHhUb` z?`I>=kChZE$H$L0VO#E++IV`gOqu^~k{TRb3Ql%Vd^HL^B`BMXAu?Z2;0a$ z8hY}pqq`CKNG3yUdK*d&x2lqoM6%8ihy*X7~#M3TI=u1WE`{Ki|)093g$3Q+fLMvSuW<=P{1T1*rWsDUn?~ zcwco$F|4KcEH)_c>siVN)W6{5mU5=0pC9sMKma`K0DQOS^D571$Y4y(yx)k6eAov?Ex zqul+)f5EN8e&vPA3;|la>$?v{k>#jUeg|fh=VaB*LIU6`2PXh##u4<=);Kt!i5k5L z)pV*;DJj&N9i3vL+Nzv1AsPK6dcS(*Og_hcG4&wCP*#&>)oUY272k$2kcV5=jdO4Mjk;XEk zlkBumCxjMEGMg6y%@O7V)KcDD077qQ{rE`H{a%|fX+u0F-=W)^HWxBxN~HLk55~96 z_XEPpz7&3Mph}bry|X+a%&<{wO{nE`cl>eyPi67wO@Wb8%}~>Ni4gI17ROqY5-xzG z^IFAMNaPB65qF-F>DGhe+r$X1odMCf)8m6N#6~=c7gH&1NJntv^w;=ip$9ek#fPgm z`JOwgK3WkS&7>4Fxsc3n87ycZ&^`8}*y;A8OQ=v^de?rG$Me;=z&mOs8!auC2kR`x zXz~c0T(@xF5qy7pqUR}SJ*@JjsP3pvR1oWC7U@6(%yl^0`v5KVc-;_}v+Xl>(S$%C z>QI*9k%igwGv#%Az7pBQ4>+?ab!hcR8l?x$sD-z$ihLQP2rrl4fH(@8q^cDY$!L1C8hXiyav%1-$E8tc!fmhLpy%~#6$Z8I zVEdx`;r0&g0TpY9%?nOGFA2<-IT;2*c9~6V%I3K+2$QecWEKS;Q7cdz%E=#9myNVgyP42HDg;m) zxQMkIjdw}$2g{j%{@H>(SizSD!>=UZ&bLIBs{;BL&brrGa!7vK!Mco?y5Pf9cI~5~ z_}>quC|JUZLRXBv=-&O9fjYlij2l|gmu76pZvA4W35>it_ZaNp#pU|LraS<@eM+CR zVw?e0YIihsBacrW^YVu>o`Uavwn_M-T8{3GgXZF$fhoVXd6okbkPJx%OWy?9;lUNl zp8QNv4T`{S-#_N7~%pr1D!ce&8%Nhx-7A8!pF-ZpNvla9$HMM>$J;gjsVJ6D~v*nsVY@nqnI-9 zHQM;gl1cZwhgM@xOis9{=38r4ikV5KuD_;fNC$wWy@H=kf_ax9^S+d?6NOzLW{LE4 z^Y0qVtP~)+x03CC?0iQxChc#Ez_Fg#O$vJlP37%NtYS$BcRof2Yx+^t2%(a_fX!It z6Z_;@blL?pEX9^uuH~}^aM0jAEmmMVQuHmoP*Hbrm7JD>X%WJ~ih5|$R< zRg~ksZY(>X1gBoQOp5uWs^m58G*OPMJ{8eaLl<;V|MpA z&jO!%i@}dssBlq22Oot&Bgq9RE_PkVHFoPYfl7zZ4UcF!i2HF{8oy1CPs!JbYYKHA zD>{!X9Nz(gX`PGZrFq?n&_4Z|vt*d@*+)WJ(_xLIE?AR`?q5m)X|+TJrA#s76rLNl z^oU5Ah0JQPPMHWB&iiXOOUq;|kyv@Su{@X+G`f=AF>2N|b7f0h;_=?v+a#93<1t48 zII0nYKeC8TPCtB(VcMt3B%`0?6K`o559dc)LJ_2bTm)(9$mU0em+1H8(gJJ_5fYq{ zs0i2ytS3-^)0Ik3fqq-y%5bm&#)!q>(bk=t3es7Ag8n*$CE8y!#-(asFzEgI9m7%6 zk9p*&pkOiVB0+xtWB;Ir(%ihzCX_6xvzy0@65bV6irMpEg1XGEnlKzTu16QcfLf#= zT?exa5*+Z>>p$hKF5f2|?y!o`3hIz!C`7-qeBxRyJ$i0vFXF#-8daU%VH?+@Ddgsu ziqxKO_z?KHxHhi7=aLvPJ+#48HeNpTYkbeBjZ_2&7o`JNygb&#M+D%{2DUODVQN5Qsere5XXt*Lr#U*`)zun&*}Mbqc3lB9XlU` zEj~&adrHht`G2H2n@Yfl{E-%!qz{iLwZk#u^6hsar^17}clP^sn&Ob<{*6ocns67Z zeNtgMce(&ym#$_0N|N5^5A3&;AuY)m=eRD!*esv^t7FMGvYpi&mVvSDGB32Fa@hp> z4ym9^24qAyQ?~#tz+-H3%8mo|pJ!AJ8QHnhO9g^5hu;-Fyn=ccrs+f_Hc2AGP9CFv z`|qlBJG_PM141YErJ7#UXxAx^YLVUQkt3?&p(!SujdBc(0Io~hJ4=3-;i26rw>AkG zDUXW<>a(!}NtK=NN%9~wr$Am=qy=$WNKpZYO!Y4k*PVLyA&xX?04e=|PGocyt(rZq zoUB_{tbnJ#aO3gpcXW!jugjQ&XL5ah{GHv?S)Z3qDHVdmh~;ragLlH1V)%1f?MBpc za(F{Ia6&@HYSv7DxoNEYbfaJo4J^Ci$X9BJ{Mwyync+07XDRrbUV5iquaYyF7LxM` zS&c{#j49hr^P-k!{MV*<-2M{~oVMe-VQC-ia!Dr0Ia5yoL}h+A!mYxLNYu%EvjiM(xoTIW|d|(oaEo;l6BKVz~ z)~lPng*b3Dze#L1U`Z1%RT8(p$K~_LIuWcLMyx~(j_y3__kVXji&z>06~68*Yg}!7 zx1GcDXI4LD=sI+?^5o?6%>2=>PYIVIJDUfcSV?g{pvv{U+8=x={CF@!1NqoO?AjGk ziDrd3Fp4?-_-{;oJ1Lsx$&xZvDSkP1_TheU5nJnGk|B-hyC7-H0Tyhk9z#%p2_o@# zUARS8O{eYhCaZz>*)a;4=C-@lr^S3J#hvRKBARgDUZUBvb?tLh?~}6U^ZQgBn3vxg z#;N*jKs?{Qekl|1hYxE(27=Wa@HMNqeE(pbm?5SmPBFByG1WC`NA=zFnEhTW&XY8Z z=p6W#PB3<%>yB9D5+Gaq>e5}n8YsRfnC5McVd;^nkdsPucExvSZgCGAur1P0z@v=p zV_#T?hF-(N!WC*NVs=nsPhudp?YryAJbk(~jSKRhj~}a9=y%umgv|LdYf5ZUki9A~ zPk3=$liLU20k%UM9-)mQWmoa`=#d5yCoM3vB~yu!wO4bhC6ga&QLMNP4m+kBj{5bi z#?0kVQYTQZV3>~TVorW#G4sw@sx`}B;SHf@t<=js*gv8FI&xMqxU7UXThWR{!X`4v zXtfbD7E~yk?(#hffaKMoa47^Pfe=NPxNOokS{hbd1QWC^7W=dG2niVa?v@sRmMT2d z2b{$h`Kcb7ZJ)cx68&))rp{8z9hxO*`CM3a#$PGNJ(w$7Oc*yUWI!uxuV61zv!(o9 zxYWR1d?XpcI@w#vDP!vHp|ngfc5AE^xb3qj$y5iA&Bt{x0qNttd`wX zihZk#Ok2~gqHCI<&hVLcz-m!xhy6F+yg}*%>`c}dIAH{&6vw|>TUo3RU)G2v*~Es* zt8>F~2Q=&?_aQW)rwc<7MFvFoPH|TOEUmjzjMCK#3UG3%WBd;c*)}~irn$~z)WWBm zB*eCQ%S%zdV?kpsj5JG9ABRe41XQWCAD($DB<#793m;u1!1oM76@T+sa>aSuI^jm4 z3LN9=J5ow_a?a3k)>CrkRGnD;JfN$PTc!guYz$Zy-O zzZVn?WKU!5PGR~MBgPP&#w$u4YX*6rmBLMb(Th0qU$Mv|Y%%)rgT1jWYp;UG`m9^p zpo{WUNP$#&$8DwZ)%8J?Fj@Aqi^uhLd$}^`*gzg7o+|6SQJPFgOF;G6F3hjb!ep** z%O?Ae+$JRzhWA$T&H5%bc@RG)2kNX~ochDJf5hmIP$~SL7LhyJy2nEdFEUq()jdfE z&i$=g?p&!R$fvrl^YT}3qPGW_3iHRxo6D^m$jM`y@6F@EwARGl{%rhrfJ{2B>ePx< zu2g|kS={QcDQ`#Jaj!fwCBz;}sy_D%Go7w#XyDmu$BV=Bb}_fqz^De8s!U2LZDYYw z@L&!M-Pb~m<6?DFFcI>3yS_j7K(A{-wp0R! zNehpdr}*OU;)_s*mJ# zYAB^yw9N>4wEH}~jxOzW9+hyn`rKyzsbjYe&ldSj=ZJ+6p|eY-J0jvAT#Txv(K^hyXQ1I%S6FSOPQO>iN$?(Mw`#wDU`bNdDLU* zUxfm(<#>0*J4xPmXRaf>+cd6Pue2?h>}hB9Ajg z%Gjna1@xB`UDH!RjbhZtqyblvCJlFN6>l70v?BCcqMlS1XL3*3`pOr+`Lv_<>W|@h zu`5<~MGzphBu-j5Xl0H%=ioKU zc$fDL191e(^nXacTtJHCl1R8v23{Zs8wUrF5y(ah1k%z2SQWtL;wCN@6m;TzY(Nk% zkcaL6g(Pc7!9{a%0{@p*tnTSxLBXnI`c2K{JAhS@f}IV(Drw{7>_WlD`9Jkm5F7V@ z)mz(BzJr%|Q2jghw9dD@`V{}ATfp`B(;OUaTFU+7Ix!(%R=0`fbsJN0J9>G{KQ2-` z?$^WU^6v!ENBW4X)E)!jF~mM5uw%k{UnC#r5t=&2gs9m701QcJ=2fLV3f^;}wJEF=v25_N(PpwjwWv9g*i zbHlxrR`iGGrU?=BIvc-a^E=WhB};aLeY;=D=gCsLG7Y+>u!9`*MWtE0Q3KsMh!Ce% zS+(yX@a8I1&I)mMN#+rrRD83}nS{zhgcN+d159jAdcA6Psi}vR(x>EqlgFO!gsqH! z{N1vNwc;VE4OcN}p+A%5=E19#j>Xn_ot03$l>c<4r1WF|Fi`=O+>3%0 z1@2Ise2`Mat2b_Oj(`)qs0a<_6gK3%jEf5p?8BUtJIqwRTc-{gX!#5Z{+zmbKY?LL zEpz^BP)m=7>I<*VdM3q3LtoQDz)1g>wTnpAxYYw)*qF<|E`uJfwz889HeoJXg$>Li zk1tyzK^K0khl&n-a_?JPG0NP;iTJAtCsa8bM{e3X9EG^#D?$yU0k!+C2{J@`=HIQx zMp&`c%PV~-RI!z{A0z#OyL*~^<7FFD^I=D2+855WobfZ8fScSTH5%o^TD{j-Hr3s$py9{ zJuO(msRwA^h)9EWmK*M-3GHsZL);c1?PBLH-B!vre*aKlvi7WQrKcFw#NzJn#`hzJmVC~dSz;_*>NB^+pC{!z z$cJMypQ>cisS&O4fc!^mBQ*Jk7InARpUWHG;)FOD?6XEXe9D51xoq${vPQZYb>GJ{ zQbmxSvptdi32HaLEV%PG4tNSQo(X^-AFfa4dqWn202iaBlUESo1G4+&Si<3{*axyx ztQaO`%^0RT3J)SGLaM9Y8PkdiB7wqHDT48fBIQc9JIesGdY6DNlq6TAgd0t^F%Gl# z$KB;{6$(UDg=7Pto3{Y`_m#F(YJX$lsJzAW4okb#I?0n7_}*IiFi1=Jrunu*4d9NY zzIbW2of6jNnkzse_{P5Rr5Co4T1Gx`l3pTpD7JL1FWMLP%|v*81Nzox5y|J4vj?Xz zHzangEdhNcOAgokda76Vr^Tm=!*AgvZ_XNV59MMUp`!dx?fEql*QNrk+jp7YK(E^E z8hppev8weIDt^U7eX1B*Gzx63PGKmSqzN1A55bq@(x&*#djD4<1|>iJfcp&LVlx1+ zs@Zs1P=L7Jv#1t@9*BaS0`&e-6%2Nv0CDoZ=Ur6*tBk!R_&wx5v+#e8#3}RyfTG-A z*+D!K;vAxET;gI}p!ej<2IAmhmjtp&h;r}>QT+cy(BFR~Z((ocVokvT0#f{!#fN&j z)mcFWXW-&yY40a7vSTa-c++=C4jx&i?Gh6|qR}H=Whw=fua&A|UyJwH?8l`H9-5U{=Xdo;R&g7;Ta{9la&;k8`Q5*{H9!2ZG z@6{+o#{BiQ9w_QKqtmC$(p?=jR1i-3U!3^+$qlNU%mPy!ye9~EWehEK?#ITN8`r6K zgBk!KTu1_s@?of=wc5;XyE|)r581xIArGoSWbB+_Bl+Vx%yp;eJYv{79cnjLpLl-b z>^cug(5DFuIFgEJ4pdqbc*QQdj8JD_LCV9PpVd0kk1ig8uq)t)c%X#$8szX}+?`=? zvI86`$`XD#58Ml}k_pF0gQ1!ym>?c{-;E1AyEwE8%R$UU>|kOI%f|=HC}(bO>H3S9g^QCtbq^PU z2GG%U*%-#~U#abVfyrXlSj7uyqC&FAwOk*Lv?*V(*f;w@NdkiaGY(><&G>rtIh_Lu zqeN`pkt5*7Ms|60`ESkT6ET9VJ#PN=z2PC@B$r`k+OUExu}x_{L9~aK-L~@d1O@w0Lx!d3~nA;@ode zTPRDh4r`^BoF<1Z!wLm3a8htEx_%VUq(19!DbEa=H|!b%bW1z1;Gfm4&vz%$fZ3nX zm;E~j9UY&z?mm}6iWeniPyrT3y~@z>d+G$l{wZ+0CA&3y4Ruyk2FhDpg4)`b*SD}A zee0b*<7D5z&XL$On)JJFlMXNh-6oo-)NkW2p6pAaTFvUM_F{8S7|l75b?rlvAd9F% z8PFTvgPJ!Jp&KLBB`mGFRFQO(0Q6~{BS^+rOv;%8@`K8E{%y4tyCpX_2Z1AlukM!J zAHT+zt`Z^RzADx?f0I;r&fOZ5*{gzXkmCJLSmaWd7)B>uF)|AkWpv0BH;?vIUq)!U zYpv4c6PqtQIkuoQ-4EtzF?(#K*X56WV9jK&z2?{$@=Jr&ty#9?vQV}g2fW9wkXU)D zt5-JS#?}KN_!NEFvzkv=EfMXLEXB=SDV-BZ^h@oJC$9P@B#vmfN=;pGz86i9Td2p_ zblLuS;WuyCr9JI`HV>ZheQ`9MDGKWCl6blIj;ngFzQ}jA)_6J(a=sa8cE)nd?%#b; z-;eh`1~K?kcT9()^R6mS0;s0+7m*fWEPDy{2&&|E-uBIQzou5`SnfS;mLTIdmu4-v zOpGKOD>Bfog* zQom_$da3;=#r*Uc%QU|OCZ8;Vbkj_f!EhScp(~K(rJ7wlkq0X73A+{r;> zIuBy9m2o(ofI#@Y8NdxS1p=Ho+LZ-w%{Z_D})a;e0(JOur@wI z4pivS3}rz5{?T2!riQg2-VAF~TTK8{y@OkB%cY~(5fVvH8Q_ff8{VpkAikV+my7u2 z+_Ckb8zNP}`lM}bo0-w26s1P+1FncimFpPwDSjbF47svHUbkn%o@?=lhu1;`o!nZG?S){*y=xeGlWLDIPutzWKhxT`<1CS6tFw z6;axPhq?or_rxVXmem<>f)K83NJ-HnpywY@_C{dDd4L3*B{cXdv({)#aeJQ(8rGmf z>lHM<+||C9dQ#+3X%4*-C|fxkq`JC}XwN*8AV1WaAa63&cd_sXZPoL6hENJoWdT4L z>6PyJRTc|z`dYmWI++~COk`K27B@yM0;*dG)M-q#61Dz&RCF{&>&ti;G}KMjGDg#t zuvp(A6)@ig#YTa)Y^#pbp}#Zv13AS=8>O5x=eDv@(tN8vF*h}s(u%35XoMH413l}~ zX(x(p79D%rDtOg|{@a;iG6>Eh%>+!qIgM?WbG;z{zyDZoKYw;|MKHhN42W>)ClTV@7MZ^=rp z{jlxe5ni48JmsxUmi*Ucxm2WsL`&k#ZuE0xVgA~o3V&H7x&tqFbfrvy)#L9W3I*B? zQ@BlYYhg1D6kDeEC2*u#M8RsP_OriEzTw6EO5I4*OCtI%4Gzq2sUKAC zKm8Z_)gWpV$S^3QD#Zzq$Yj35v+Y0I(N3M&WY9~xP7Y6OCtz$V{xDAARW53WB89*V z0)6S#Z`m|UwZA}3y%H(bGiD+ae5U51H(Kygf1L~>slmcD7T>5D2t$uH(D!YLk1{1G zN~aD$H4f-6&Nl!;C$rmMz;J2yuPOJd0kCyK$W8R2m}nrA%Lv^aM%6qiK(U1S5B%W; z>_B7B744tTRU$Mf^77HBJ{Y9uW|7#$WJaCn7d#DB64**IwK0p|hSS|0d_DlB2e$aT zSlKSZdik$zp7)~_HXWlx6WFfY_WL5btfTxdmUgap-X2;!*}|PM>;#LwC5h`308_73 z4@=-NO2jf?f?5u-EDAIQMIrrjYF?nD0u+I?c^oORR5~0iW6FsMsFynB67#p-~)3_&dy>80tK4tq3QJNfm+lo~4@s z{y77caE`R}D#7cr>NCduU#_T=fYh;RoclI6Iwf!XEhTH!xP%-i!I3fxvA2H_8;@^S zff_7bL*b;Q53(0M$srAL0B)@xYafphx_T8UIG*Toyo)*rTI=obRu&3}`TI{5s|9cm z)2J6lO)3NEGI%iMK`Po1HsV;px8DUI;o-)|sv_gy>>D)fL|r)rScNw)z})A#J)?^R zSj6rlpIQRPzXSiY$JZ-mjJfF2a4PvXaSN)TaBh%g-osc|zqdG{Gp0CjjCq^J3Q5!1 zJ?YjtUCO9_lNgR}p^q|TVFB`Ui8WO+gccAhP=EGlKLPueB_;w;qXc)7Gd5E$L^aIq)niEZzJ*5O z4GHJx-WjY$o+l(w*W*ufJ;aZM@ApC4s(-c zY-u-q<7DQ}1Nr^uDX7LLn#bC6jS45{lP9cHVC-h|d;8|H6g%e=e!wTQ;*xHtz$&_) zyrPpU?nTKHS9Fuk1OJvn28+}!P89f_VE(q=y&u}D0zmEeGZT4;+{uso7GW^AT zBL%5e%(L5x=)q5g^51^q?p0EadgPdfJ7e)!k^hpS#Lfg*F=I$bq-@Jjr?5b7gFT&) zXL1RAoj~739>()MhULgT2a&Sj$bwHMy>{sFRA`ML#VLyc_eha-A+Al-6(xI1wR!H; z*%KrP+Um&MkQtd-d|wTd_y20%jLhkYaX0f7tSZ+Fqcj4>d z8rrwtsD;b><;Tare+sr2O}~~;9`r@@n@*N0`o7iMtj4Eam;5Ac>Yy|>?%TE1h+aAA zCu&tBsWgD8rrjyc2`aUsBU*pex%W9*J=16e9ee-xpZs1nWX%2>2l!EE!|eb^}=V&mHd`*Mc$~t0@(R(Z4F)~ZCV@8 z5G#wRVQM9On&o*`9r89sCHMrP@}OF&QYUm`%mMl1^R1kTBb2DAF$}`vU3Ui_3m_<^ z42tN>uU&2c?M0vN`Ww%g4mPc-%9@VN6?SE%Wk`0K2$DgYEo?_V$bGH~hO1!k0TiEt z4W~T?Q``Kc|2!2tkdmN3n@ov zwf=g2VSkg3#>6c)HBqG01q=rV3T$msj0mLCtRI#)x*bY8EsY{Xexu^Fe9Sado~^nv z%3>r~$pN#$Kf1{(Dnmz+d}n^CbAI(bb603l2Kc%d7-?flymeG8D>iWFaRy@0X4q_# z2g`xcJ+it!F$|BtRr$L)VUSaVWdt)ZJBs3hYV^K%GlNA%7{djWp3*#v%xY^ovqlt_ z!JNiyW$b!F^I5qoI-n|Ctj%+nimzC$9u)RyhEA43Gah>xxmWr79kFY`luku6JV zRBcjd4KgfwgueXNJyi|lUT;%JQYBbmXB>&y{K7l^Nmz;BqN0L)?Wo_+R!PN zWr%M0DktZGgdxB1mx|FoH$BNNYER+@ODFv7sQk*DveG+?OT2XJVK7{s9I5#bFc!-y zID5qL>FnZ-rczevwpu=E16~0z3v6m~u3w&N&9Q}vR0+Z$N{?l}|2A7H2)wF%oVS3Q z^R^kHg~7Q5qsJCcz4v>;S!i*hBAaVZOe?%U?p#k=Sx`vmY`=^>kNEuz&Cf2Khx?0* zv<(n{O*|Rbm^fusp(aJKO$70GiPyc-7mB;{Pef}K$bcyfnbn`>I6@ITups_%KWAAD z1x}}SgLaEm@8+p8dSU4c30DN1ia~(NyG>1g#_^4W`I+N@zebp2bT4QwQ=r)qau-G> zlwLt7eXRe+v?+||$j@KVDNW**X5@V;qS{OSyG_7G*82WEYTXTbrR`}B4qW}F7%6!( zb@dCNiEKU)3Johqht4w0H3;NW`2(K2Bw-HuM^m(De)lpEm+I$PIbxPKnUoTM)7tLa z_T^9~V^AlwrzeA#zv!HSWk>i)kX(Pd*?*vucnGYL2>O`g@Va{m{X zkcbw&>aklj`ubgr^oJjwT78#!*nJ%aS&<%NiYL)f!92WfjtQ^$$LYgUK9$=qTphtlvt4X^S`{am* z2lf_w6@shP>J2@K+~{pdrCC0Y3oR;CQ<^mJ-p6LkTu7I7N@S=bx}+fQA^fQ=B03^z zt7FzbWsul`^XCaD$oLv!P?wAb3uvY(N|6OA9YU{QE*Wyl5)g*tc6m%KRf_`*jHNHI zC2Tc40|EWN*;UiCs?q@>At|HCy?&G}2rOC(B|E}yvs5Oq5rs=1iaYkSrbBp*XemC9 zK|`XmBIPkx`;HEyx^iQ#M4P|_@$1%m9L-+e`1SO|s+3u_A6IF~ln^%tBqYdAoxlEe z!o@-Qu_4#eNwHv-UVAKwvfEl~x=wA#F_&Y&q#X>oGE4Kf4NC!*B6yhZ&lqbc(~Ba` zP*gj{$k%8y6+5x~>qj&rWV*}~$6=-?tz6OI?=;`K^xyB$!UtBzWejjZS7g_tHuA3n zcJIYiv*`%S8hFlltauu4r$u?NM_>l>VY;+L4K+OxyBOF!?u#54<-f4%~p>Qe#F4@23V+yo~W+oq}q7)2+z-5qe`Qie%kca=B{(AvyDDTlt-jS)Ai}f0yZ^_Z1H7^A}>Ba@r!ZVM4nhM~_ znb45PvQ@DkN(adY`wr1|3s86BZ?@)MTSfi( zDRo_y_q{F_dNHV>H8K2@8?-8t$IJ|rgPa`iW&ok|RO$9YH^kkslc1P!B8#$Z6NlEO zDaBxN8qjzj>J4Yo2%Ui?A@s-e_LXXA>z}+Cl83z zJFq+2IXjnPGVR%VKw^pH*AkLcuX{?Vd6?v4pt}%W?MGOwhoqK4cvMqt-1IvuHCM-b zUK~%oqc?OHt|`8NVU8`6+CMhnjt|Ly;6~_!))^X)b3ICrj&vFcK_@p~bOH)izY-^}D-1c?oKkq^Pigo%HrsA5g@# z>lnW(FLvoTmy;_H2+H(cM~m?Bb{I~54}0r}i>ZCt=zUJ;m+Fzy3i@NuFP;C{cA_F9l7L2qerdi=+Gyp!Pk4l7uBy%rBti%D=`?fz!Rthu-<{1=^1Tcl+ zyZCJFi5p7&OQ`plep`oA9*j_ji=NSc5>23K_>f!IuoYyWoITqUGfG+ynq?I;WH&)Y z(jld)p*eGnQ)$n0NW&(aK?GN&AEX-F=l)8$jz|APwfqZcL^!Q5Z~fle+f=Y+>wCuO zdZ7SYXB-1lyLqupHCvpwK-~}8}i!_CF8iI>n?I+`dnX)#WO64G$Qd?!(hn%XsBJp%!)~#fOd!h2aGA=C7Wl+Ox_{ppCj=H;bt_{22Er?46gDR@_p4};e zOZu>wZyE0cWJPv?jpt1kX?iVuxsz<2O~4c&i!KR-&P`&wz$;MqTM|%gEJuMQ7097pA^9VE!^As zb!OywKkVCQRYDNgymL=e=4MNu@g@JdbJ{9bKNUM$_d*oIMDyFzKG>>arY65|uC)!I zfC=={GD?Ax(pj%G5{z%fuCnKhA(#t)_1uKu#Z=u6r? z3Q4Sa&lzrl7Uy2@DVX`w_?PqT>>`Zv5dQfy_iQIimIE$%1se;6=L@HW8n$Virc21L z*2+nZmjW--06(Q9q=OO-i(9ez4>KwfL+At=U|m z7r{Eau7|!Ekma0=W?N2NZQY^8@p4$;rV+zJ+2)F`aIc{pAcL|G;In-++OVRVh)8{X zH!YOh-%OudR+lB`+_UA)*UNQ?FD$Qa`1;2bfr8jG(~8JGe!h|le**Sz;M@`reVkKt zL8qw^O8}#Hu6qiatdH?er`s*bp!cGRf1LW6?i7edoz|VUq@_6%*A_0|2&j)~gXJrt zHAIiR^J^A>h8Auy%nKV=(0faY;`2r%q+<%f2VXcHuFvr$Q(dBpMbVYMecK6Zn#eFD zX&rep=Wk~IRtx1MDIfpU6M+bn6RRjT9g0~%3@dkvDjoqjyuLWmiB5>d5dAvPO)8#g9>nsZ#Ya6)>fY$>OS z1piz!V#Y;rV_t)Yw{?QsspOs+pdgTc@(&j+4E*~iGs6@$(U-h`32h1x5A?M08?!4R zo;k#EvhimpYc2C?Ic)e1GvABk=KjM3r16lujeSWL(P|gt;fh3_l=@>|1OIOQ*@r6CjPA59>Q7Ab|K$4MbaIKtPX^U|9B@fRQz&gG9D_9uExAiW*%&%}{r8g~Yx zdl~@>pZ7ECD3_$AF)VqyX3cMFjLJmi&t9qhWaG4ffPW~UY=m>;r;KL8rDu!fFf!hR zx+i--MM`jK5en)hMF-r&!U#0YKn=Zr^&yjm6t28zf?S2R0|B^}Bz#cHhel1NzfnP^ z+y#XccwFsaF03PWvL$=<{7CSZE#m~dVt8;EhD0Ec>Q*#uC3Wwo6`{)Jjc)g>rBnW- zBf;4yDf(Q_Ho*@RQ3w`9B_^lmY3sQtDf86wgz&|v;0a~K1S?vpP}8LV*` zk*^7^n-N6JQ7$$*ar(4vQzwVKel^MEEuGrGqC04Z+KN%-oabrL*`vU=-ykDBgzXBv zc}n`hGj`KYM57k|CQcuKHit-?2!ktHJ0T#qL1Pqa z2(O%Y)MGG?4np9mf(Kd+oo;`{8%+G}O`k)ZD&wquun7AfD@e{iFT6aRl zLVkGrjJc-Rz(cue^QM?>O~%{bXHiLYLN#Hh3G%htM^3K3VvipkO&1>VpX!^?6xa?! z5Fg-s103J?I<8lFuaO^v*Cl=jM3^N~7a;lWD;i*SuPWQ()2!QU%->5yATrkE-Dyd6 z=>@VGi!R|r8Q8KGf+mM%^G{42HT}s(;pN+ z_86x*4*bzF1j#y%noLO5l_1d9xNF0$c)EMK>>?Ic|Iven;nAovaU%rX=0}sWZjk&7 zukETg7v|!LRfVj8YNce;y+(t0Yhao|>5z0dY`;tTOu*f}F*S6nQu&dTcRx;2WFj`J z2gKyW^uQ12hCvl!X_Z0HHzuSaq-0}ZTM3pH{zDv5k^nvaN|Cju&ydEAUX(51uGq@Xp<6iNC#X?m z^312}LrVb!Rn1b3&ajnxo%JcGM%ScpB`{D#ou`IzG9jfws_ny$BIOD6IwqT3?h8SZ zHBxeS{UUREEb!C$XNswTbN073+ zjc5uPIXZo(KPJbfL1B#b8PA~6KU%#Dif(uLW;b+2$nL=(GxIB}kmk*CgBrV$0m7cV z=Gs4dV7*z%Re{L4pl0`(AU!BTJ^fG$w#4Xt*R*;0y{GB0xuK`*AgK?Xn&L!d2_^UZ zop1GdEFfpYKQoiOSu_;KnuaT%LA0pgFg8Ok76L({tX?#u0-V zDtJ-xHp6@|->B5iI+jMG(>UQ*faakVL&|$lvpf~m;;SLAsSR;Ze{_R4BvGg{dm{fo zX+B2#6xP!U*Tb@eMpkyiw?h(gm0gm)QafSqOLJ1=i{1eS5SvaRs(OBB$jhU^IUsK0tG48n&El>yvA3pb5Tg>&__x zKVV;@siqLHe=Z&vVg9a3<~FfS$(edx_{;>r*{IZ(|2Mp{|6fT6W^T455&>$USW7qQ zq8Y(ou&3W4#WK!~Jh7dh!>&0=f#-~TBi+^ctvBUYCVzV@L&t3oqfkJ7l{$l+p>5(m zB!qx32sQyj_~}h5(%kWPV(9Z{J;i;Y3H# zBF{q5btGvt2*`BC72MZC-Hc(2-!-;(Z=G8V_ErQ|lfzZvzxTgq zYotWd|GIxKvd3B}(|X*hL7wE>l(FASt;~PRc%F7GI8%ae9ZZ$vcsj3BPV*m?Zpfm|qti#|~-4@w;B1^3uX81Y%uBPWg}EV>^l zkVF=naQ0VhIXuu}$E%R%CQt04`(5DhCL7I#4temN$-2$f?vkp)yb05E6D1lZ@#UXc zG z6yji>f4aS{Y3bC2_$@QLW|g+{F9gP+@H=pbeVrp$^|z zU}?)IAtG#q`~1w@0eCL>79C0jwduB^)iR|@9!i0)XbSCwNQ$FSf1$8a0Q6h9Ce%Z= z=9IkR4>tf8SGMCHhxhq~eZ>{r_3S~SI3CJmIR6zEZ?<(I6k(PeuRFLF8wvm2qONGA z2U(d+5>q6(EWFZU)z-GRORF1Ie!qz_On5()B=o?#*4@GWK@-DNTp%ol#oTpW{GAKF z|BeGWM1WK^MW%IA zRi>m!1CBLGJ6aVmdhP#`z~@a!!-7h1*x?G&*G|YwiQrfAfgDV$eA>@TH$V6{34j{4ZGb1$&p7PUY<(*#z;4h_HRy_6 zjfaN*2mTo=!P$f(d0u^hG&PcTQKFeLq#UzuPw<0%6AR-Y2se(jxa|jF!$?}dI+HBd z&<*z;+0RI(X%7GP;+k9qn22Mw!8&haDo4O~M0D4QnOtw4%mR;t0v&!73a|Ij>ZaPQ z&+IF`9g&0ROani{2%ToGxMwzO663@Auf-iabTETvAmG?&B~;^+?sp7Z*z~zirjk?d zB648BCKNu;@vC!fe6fYXhOU`25Vt^T^{eatvnJODi;u+WZDc}DdsglfRvao_ix|Mw zJ9227iOCxIfVDNR5~{vE{?O;qi$!jB@4P2L{);Gzm_EK3&_>&InG`9OE4lyG;m>$R@x^t-ib-W3fco9Jw)=KjK`& z&M_imeNcNyL=pzZNxMsf^+dhzVSzH`b-^2qQ7;%mJ#kmIv%W%*T^ca_qudcYYcdZN zJa_a}XeHa%iWCx8uoaP4qp6pFh_;*w;>ZGP_JwEc8c4D@7Lk1OGZWw{wUPH_iSwyma?-omQXd3?vg&L`w6$IfeM5`L{-~vwP#fk$%S;H!1Q~N^2RI$}Dxm0<_A&$RL6tKcMd0x!^)GyRv7{bDw0uBb~xMvWB(nV-zH{Q;20)8&As#?k#5 zkE#+q$Cik*mGy%|NDQog5rO$A?0Ubl$E$mu|7?xu7pvbI+2BgIpb`r_8LH`ZoxUZU z&%ALBQcA9jm5toFP}vx%$6lq2)yg(ZLag2LZL4Qiqh%U&e=e}NvVOtHmMu;$5cViv zHXe0a-k0DKfgzCdi3e!$i}&$4O&hyqBRW@Ka{pRj(FYkXI@5XvJR2H5se-!`5|9bS zE8SZ|NmdYwMOZ-+7o|c^rrK7YLCW0{6a`(nG97onGk~b!mO$Eg*wcLnReqvjg#_g{ zW*j(QePF_3`9H1y1Se>`=1$s_wg*Ti5!^H2!(G3P8slQ%D%rlTbQyZWWjE{XR7y zIhXizqe3U)OUiSh?$3(Y*qLoO^iG)u75RKYT zPLO@NFjVG*6$kvi5s=mh6!P>rxNlMm2F?4hAASP%c5z#0H)riL?JJ;sbmJvfWU)TY zK{!{hEH8@?dsP+9fpiO3zB*#EF(qjb?PQ@M3A=lXV=yeua0kih^PPrKNP+aGG%U3!DQ zr<^^Y*QKa||NCXRxKroO!O+lHSee-V|IjWAF$)I=2XoSO90mjz6Ek~KpaT`q*zV$b zsQV;0n`I&Ptkr`fLXp!1A(C*8+#`Fh7=NyhKaR=_9MZ@PSZ zTvNo00vA*i&yP$Q&qfmWhmN;GKx0fnY)TG0IDc$jY%xhd!k?TRoVN>25+5>tNme`? zV}4081(3`_8lmal+l4v8UMWRj2J{ny*uu=t?7N%|;!T)9cL5)`qu9hr@o&sVLm z-^#@Wfd{c9^MPs*wE7OmJELOl-B}dSkG-<1`jP=5=5%vyJSr-5adOIMcXDwF##Y3e(Xzp7Ml3b%;B3Ve6mOV>0A2V;XH^VH^oZV+Y>lz`?!ue)8^%F{VwGE z)^84sZ3<2gE*$6~#RZL-qL2Oh>+#ZHVX+L1nL(IQh>0gBTNMdH&16UnA2;wWH^$Y( z0ovb@RK)aCFh-@8kW7wD;HQG&YJ=-aqr>CpNloAnxlb^eeotd_!`rd{fRgq8_2HrQ z1E6@=VmWLW0NU+O&16eW>?}^q$Vonc=3LU#9&<{GI1ulE1cKhtrQYO!iWNPSNAYQU z@h=UK287KV%^;@yvQT7tciISnYibK7I169>6b-x9O%wjiRc;3G36-<#C4 zfOzU(j%HBD5802g!<~w6UH`it4w|78ME1tIW>;`*02fDeVQiht9})cZThQkcaE|2B z))_z7#!2}05dB_}nHis)zv{XA8WEd1MN+@}4sS>gE=#XW$nQ)q3_R;;e`9P5DcnAp zh11H^!u6{eH6%?Dd>_4YF%m=~Xb`l-3i3!Fw*r2(fzK zxTqim)lIPnrEtB=V{>puwx&p*mL%HRAg*A5*tf_f2+!U(F^4xu_UX>)g37tWAZ%XJ z7hWCcso9qVJ_t|SH}TU9^&LPa0g}DH6LAJKH20ve1}MBbJm82Q2u2*R25;}2CY65u z*FC>07;&U(X=M7k_6W$PrGHCRRee2K=6#c!zaWi*_6_^s1)Z=okW}?41W?}}oc?FVe|MZ_AFht? za9_`a3EwW7&A0F8 zJ7@N{%+2F9>od`IP!LBAA=~6-6$q{bA|?p<#YvDKN5t4gk1xWPTi~bLFaLl4fCIr6 zsNT`hrBM)XufE{`x>>$r?$$}&BBKiY4?3tTZ3>>+b~F4{=QlMd#1co~A7TQEVZLFd z!w;+c*ha3>IFH0!x4O3#A-0Ls*ScUea^p5glEP`MF9;*Qdcj-aA8!|iTSpKold~DoQ?Ker3>@H( ziw1aJYUewy4Dm6OA{dTYbRXCtO*ER+j$lb2%xG8t@Mr8EzvsHn)T?5LqgTXrooO2z z2Adj{9se9u5N<;O=;@$C9~;8DlP3#I9qRkk-sFD;koF+;MhV0p>Xs> zJ;jZTiRlWa zpp;0%KVXa>SpBo#l4f2IqWy&5_kqvdHQ$E%%?GN4@TWXfy~5f}{wPw($a!NWd8>sM zACj2qis2no=X;-ku06M?!UykeaFd@vR9uCdQbG7fQ8SF_zdm(FxprTK;%U+50j7cs z8BWf7|51mHGeKCA24mCUMhq$EvdEXr8OQFqfw#XU;g zl|}(cXy{crvs~Vr*(kPjf#;@V#(1^KsT&Lz?qjG6_?b0A+Gu4A+!V|$-pGVx2Fo^i z1&7u%03{n0Gvj6FLAC1-OktUF)*#pPmZkRQNoID)wCV8*(`i#aIPwcdn+oF@PLrV_ z3(o)^v`wM@-`m2eXt|)dMO*RDbI8f|WCg@vorCH-Mc3Qiuub?}-H=y~4qYfDi$g5I zhFN+9K!?+wJVTJ9;xVm;w!_hW1$2sam=OgQa8WP_J+ks@3<2LoGr6+XV(T~?8Kb}$ zTvki{UTVm|xqs9BD^uXuHq%Uk#z@j93inT+h|9)dlRz?|F{$4J0=m$v1 z1tQbp%3>uQrn@{?WI=*CavGHL<~Ys~@Nh#W>cq!=@+5{YH@wyI54HBK4WykO-znfL zGHVtQwUf&u^m$Klu)EjB`-Hv}lKyu*^D)Lrtk+Vf=n1@UmK*=Q^MU+v6|0k4?pBKwE6o zM|#5a&S8;{eX@C{epq0d5+unAx}DT{P)D{&j%=nrC-WqQ<3ic#Bj#=SL~C78HBZu$ zV_$nh<%2Vete55Z>pj+y7_!zpYVbxtOB*_wc_B&#@_8)MBEJ{JvZ2HcL8ig(kYle@?iOlJ~ ziO9TTCWoNSum>tq2xWSpmMvU3mgJW6*6!ja!N}>1(BQqgx<_6KIJOQ8K%p#jjc-fJ z+LH7U$tv{8Jc$g}XgG2G_()yA2!w+YoOX8}Ohkyhr$F7`Z-R?HWkhGghf~hIPR*H7 zZ$?=iLR>S|;4L}%B@eI_ViH86PcS#8fliqHa!ywm1f0uZ=MhF3&={}MMW1XHDbt-+QvTOKEA^<`dqnzE zQ{(;Ux-uiY4i+w>Q$Z71F6C5iA3ZEmc61p_rf8ix?*^`==95n!2p=N-3rbOCqRqLC zGBElg<-Vx>c(J=GjJ!O*2Z}AcKbu8qBewh~2tT%Ycy6&VQWxyzr=F7TnOkvkXHx-rxuq7E_x;;Pd4V5gVyyNIFObg7kC+ zC;#m{RW)HcJQccV)$!46isjL)I#0e(^G@}T54M)Za8PAnsa52RD!4tYfHSA4Q-)5b zw56rPchMD8#4&PvvJrb(EhQ|gqrk)(1M{YlGOUM~&;Xx}f_m{MY|-BW=31ZO|IC_C zt$reY9NY?GV6Z>RW9d}V9Gl;mnl<&jk{4eo2*+QMs8XO@yXZ~rNv7xM5!`VcwVV~^Yqn5>5 z%p_<;^o1!jIk)2SB6UPlpPyj-1YY1nRJOS~-;9U`utW`scg+G~M%^2YFJ)Gs%t|%~ zMqJ{)?d3ukh2lK_r7ZC5NXk7$Mtv1^-7@52z)Nal2KIMF>}E59H+FuP{rHc8-4eAg zU1kZfpp)8zh7S&Mnq3j!G$Pt0X*Q2WJ+2@wl^sUMg#zMQuao)%dugstZen$;j0AaM zIttn=kfK4Wc0tT;yoM7=j8WQ`lMph~Pa|xnKNSCRjCmFp=(jFm2mF@-Dn7AM9YMMV z-LQuAo0CUM%pjrCpl7N@m6^Nr&j3m@?6c5E6F)JJ4#8;7rfz(GR|26txLD7Fn5Tgq zWe5eUKb373H|^t@D??Yp!Dz|N)@bKpEGH6x`3YvZ${icFRE`t|A8+Wg-xdiuSDyQ* z6)Rb|`Ki1iP6o*{l0%cEa=c+VuguhfSBEWc_sfi$;C;Vbe^Cs`g5gbLe`(&$OA>#= zOib2S%hWQ59QChV8uw~6@NkUL$msFTMAW5R@qB!B|7Z2!P?slbpR5#E<-xj^F{iHr z77>o(e^~bZ;^9O34{xLvNGfkprSwsi6TzJI}@c2)+^R4z=Yvkr~M3sBik4m6Y1{he@J<86KF^r*I$r0 zyR;%IE8f!A?)BKn8jt{lol+Kwu#1QDN=}pX!LTpH^)Zeq*@fQwIRuNYSQj?H>k-Vu zl3aXHhbLQlkY|@Ll6bu(p_qGN`BIc%+~pdwb6bg{0C#b`rMxW8LENMeJL{%E(h7om zBmocH*$Mb~bYVH8yHL1^bpP?cA0!VDuKByQD~>h<#xHm0M=@s(x2BKYoJgqfJqi&I z=oltmhxMB5TAjVUwGBZ>qpe=fmPe+Fz7K1msk-0*|NZ>vZ9}f zW$(dGhW&%agcx*z&zkI=9z`YfL-Bi%4@AA6!8wYw3ECeY88-eG4NEF5@Z;{-Wbc7e zh!CtEuZ|{8Va1zIYF8rESx~%ou0vI*Bdfl4;{3ob3yl-sm;LW0!^uTp?LUYjR@3m$ z@;TPUU&izQ3d#pG8`e4VAEC^#-xPXebvMc!y^d(S{mkKNR{tzoPss;fR;6??XAzf> zXBrAB#cfe0;^n?k-b$dg>sm|H%$LR8V@~>dBowbD{$?KIXwhX(inVUSHl&!{Q~&92 z{+tWdn_t|jsUbZi(5DZ$JJS#51;sbCWuV=j@_-9nc0wA(5UgU)X*elV6FF^Xz3MLz zzs@rn9Qsqwnv&8H^cYT7`fewl&WzuuANj8ZiytY`&r8Z)4moW|6*BXJ&+wVg46q%J zV3sUq+3gep6_;!ah2QT_a_G8l7GPomk?kfV1>-sW%JPX)ma05LSnp(GvM7$;9Y=o+WDtO`6mp26kA@qZ1 z>i3JmSv~JnwRTfTvy`5}JWqeEjc^Z7f{`jc=wyf zO?%BWT-;y$B(vOvPkl>Owx0rmT{?5>@0%Nfl5h>_H30jHIx1iJ2V3)Wc#z^M2-|H5I)tTIHV`xVk8*)xFH)4>cu)lym`9`RAWqAC zF~+vr_*z65=(mXbVB&w4WIa!)2S&$BQx+&XJSG7_ZF$Bv`3}43B}DSS6+;DI*_LsF z#lCa*Q;at(dKl~r2|vQAC$hJP7on?dg{8SQID z(n4miE6$)1)bopjk1jfWn4Zlus8VgGVvbb7Fu5!D-z4ZZ?0SFKekqftR$u>qmydV7 zSX&mFWzZ!q+M=dHY;dvS;+NS+>sM_?t+_S8)8JdtsvFW-(!|_D9QmNdGn=ZPx*?Cg zVcf7f&y~2+X^g`_6GliLma8;Knb)Aig`W;ywwi%lw5SoAO4v?NZV159iH&Cr-1UY0 zvh0L5W_gYLvowE;M%d3f))8%~xQe`?aZBy|%)miuXwKt~pljGy{6$0cQtf-r+=-## z8?Og0E6baAo~}Z4-*f);Z~D;)#Z8|i*zHb1F9>En3rj-lx+iBWlJ-dSvsYtvjn@2ZiRKC^$=!$43-SR2}860rE((jfsO zw5N}kiktJD-%Cj=cT{tKQ_mr8C1r6}ZQ>3{i?q>Q0L{j!m4}M!7Jk3G2@X(j@|s)q z{mA3eusXj-Z`?_7fjaNxX{lDQR5=v9Ppw}y81!$mRsWz;us+Cppj-@HEVA<77PI(n z-L(ABE8>5Tqg;*SMP2Hb#AiVm^lK&Q){WvqrIxYifLDW_wnwuBD{lE4j=Ty%x>2n_NzLd?v*pwDFIMfso)>Tetom;wE~ zq~q&hODJKJsI_7{u2=xVgjS0$gi8X|5MbZy{4wb&@o{Q9b zrO}<<54mgwG>aU^3!H{`(+?toUjlcXL`>PCqr(995=PSCIDSiv2Ex^NX2=2l}F9@89p!`DA38j8hXRB0!{m3p* z&kj9U3_PVEEL2L(Zuv!Umc?*jQ40(8L$Q>ix7LZC8WfJ={o&30@~6SivTq`jbK;_% ziY?KE@dkIW_KT^)Uv;h44;UA#u(cUa8#aFo%%f%N;N_uFC3WelU4NJ^6bqj3P?2$Y z08N>~98jQJF~xwqjZiQlJWe_K8Nl};$J$pHxrC$Wpi8O|7-M^(b9n)I2=!8kiQQJs zf$okxEQI=74DB#=t8Em$xx=67I$pOh$r4AU%IXgxAxFB&xpWe7UkmrVb)z|V;F5n{ zFDnp?GC0^nKv&kOE46r*aV_Qf+YLX$9j#~{P*IZg10Vh9%9Mj%+^Z-aYh`0-!J5|8 zdL)15%HJ(W0ueJ`t>(!}X%y<;QkY5}=RaoXs&y>SW^8|EMN1g+H)~6W@T%x(QOwNw zJ>c5(qj0e7n3osV=0@kX?VTcsO*_ch+t40%`AhA_J3@bW4^_+aOc}?I8K;!R*49k}eqU9k9Mv$r}r>=A60%{=%NPxSLXbHf^pj zJ8V|&T!iBV!HGHgMqZ9FdyCqMuWn+Y9T{k4Z8sf~Vm&Ky#GYVrT9Zo(5j77{LX!%b zQQ=-eIH9hZ^I?q&P0crP$BBO((vh&c=79xRUMVkhh~ruA=mpA-fr=Bh#qJPm_zgD= z12LUAk!(-_JSc%7Nk2O%n!_&M`0u|O^MHJ9d_{#|zJ6os^VGwB?bc{^UqXnHVY9{& zo`3}LJPA>KE~%8fVa2bLDr)y-TR2wzJuIT9J6V4%l&|ejVxioo$v^&^(NIB8m=Zc#%Rgq`93kN zI1*;W17_Xr92>kha%_KC$@Z;Tu;(LupdHpF@ot3C7L@buec6BU^)r!~F%%^B-a*Di zy++SN5@&BGT(&?0=K%7M^r z)9?tb%47rJVDDP`oEUMnlo3JfX=*t4rXFxKV!koZG~^O{g^GVOV@`U+2$h&A-c-vZ zUfQP7pB0PNUwH+n&qYByN0>Gp*5dF|EG$5xUPm9mTX@sXc}HVXCoVs&r>sE5YQvnt zcfHiKxG_uPohB1CW$Y(Lac&DZW{ANk=2=|u@GVyK=Koj`cZ}`!uoh{2G-;zCJ4$e9 z<+cjJtGt6$R5gDB_S@kaM!xcpN$*f1NK1=V0&e9XeVXE!K^nU0H%E{Lx=L`}cS{s| zK6>2&-|?{;&_)mgKgGxU%E3V$$S6g|86q;RBgp~@7ad`;<5M(jy@3XhrgY~4R}fc2 zRk!da)<$FzPw-aydJ;tuRO69@dP41~0A=jgVn2gI)}nv3u?o}f#RuvfQ4<{Jz;zdF zYz<0ePjfyV2)AChW9I{>iS z?Fe$NF(QAS2NcVt!`qh*diSJju+5l5Njt)X84%RWVw}fulG|D+MPYe(={KYDwB(Ig za>7#tf;|9ZWz5cs+vLjTZ|u^ch_Wod1lPLckajIf10 z?h#P5Q;?j@%c9DnrLhjLl#gue99~ubP#*qznCpK)cD70zY;d`J7))5P{(zc2*7waG z3N?d{q2O*6@$paCd{?MQWdH+|i_MN0a` zsm1S-BC5@@&MAuMBHY=x7OxT!j+wQ^O~wFg5wJUyy^5?KjsBow)HCpB6<;e ziIacl@p}Kll?j7AilKgGA-CD+IP2)#9Em~Gjda!;>h*!q37Go#GS*>-afF~xg=$fY z(%KsFj)l|rd&nZ2%hX?Lmg5v9x+;Ut(#BThur%SLzT}n$S*ulKeh8bhLhyHbR10(u4c+ z6LnZ$y-XkGGa2m-*Y?lS7(H)eE*Yw3b8;`LGD=Hha&>jt?lz^Pjnwb4`aSmL(I19g zJ!F#W@o0kh%LO$|amO(&&ZmDT7v`&(r10(3R6Z4~G1mn&a!{WW?DK6MTHBE0S#RTo z2CVpyi}2DE7Rvqdj*+U`H0sUaclsPtSc9TcMt>4cpGSwe{fc_Z6b zgCzxx6(g#TP0gCPd$@E{%%A>RLy@}Jm^Ht3zh@$R@4ljkMeqx`7oUIMStC^Mz)Wo~ zb{;27gWSz9tuD64b+g{O-fB^q$7*;&byI+bD#P&N5?WA|f~Diq(9VenXMm{mT@CtW z%=%sIcl{TIG`DkNG92?8@<94D?FY3{FY+(IO3A9Z?ZJs3V^0JJ5K4`g?x`LodSpA} zKZ!{l<7JJh$jY1NJ)wVYEc;DRxKhl>Qh2yp-;#Ylm^&DL?H}QOC{JzJ=_lf#` zhkMLpMcni1PwnGl+xi0cL)W%Fzb()qi}6BGer<)0MTyItgLi++{ujnBYd2mnHJ4<3 zgWQY0!=;=b`D-1e9CZ|m(@a?SdErZSNGOB051u^Q*SuTlN9RR!#(13_dfFJ$w&%w+dCuqdm0D7CN{N(^skCC*(KPNeuw@{ z9CgmnjbfE?MngK51O>oEKX!a>7YC~i`or*eIHP~9TjHX$Fr)QAjpRhwRNjcN6K#vS z{%*e+?1CgnauM327$6bOMrAZ&yDHy+ra`6Da++G z!wn?l<&yhmg2*}bp^)}I@RXEaWy<7%l5>B1@`CR1t1r5Gj}0A#akMdVksUx-8Th2D z%Ou1jrRc3?)4@gT228og($q1MNGJm_VI5%n_X(2ibJfh1L5@Pl3VA{TLC-`CEe*OJJxDaN zk6cy{BAE%_GwGuAj?&b0Qe6$w!z}AS&c;?yvYT&M_@*>E$1->Tr^oj%d41`6h0Ztk!a1xXQAJp>0fVn&^CJY%93 zooeMGlhKa3NiU@zX?IuT2lL7n8;I{Y6tP2pyUsVJ&NP&-%uUU>K6Uz@n3CV@c!X*s@Wm34P`YoUR3% zR#)6R_jbFtBZKIqu&_UGK}5$gRy-!jD^J+K%mpif)X{R*T9ph&P~oK;qO37cP@X91 zt+2i3U-L6}h*2U^5Bk@V!ki9jXHKi_{hwx21Z%Og8W z;JBgjMg8WRk~_eKF_?2*U7mgdJ2lg&n=ME&R#x2u=JHCF;>0{~GWsrEJ|IVsz_VkD z<49NlH%(&}@SK%Y?7h?5THR73;Ib-EB$HOI3y3XwdZ5F>1C!s0dk>NBcTZb|N|cF_<{J*Wh;?Yn^0q=Gm;M z*cBWc|F@8oi&Kg~3#(R{%c-H84~TCia%spGN(+>^DyGPYEy;fcN_>gTO`R}$V?8(E zGoJH9j13q5+LpK?nP_l-wF`0EjB#nMNoCA=o(yely6qw{W{vt+tSIL6GFeOQly)MT$g5MUiUJy_BSR0&K8_!TQiutCN9J z;HDH;hS!3rP+JlH5mzyP;z9RyGdaB48CfQ2}LkCNAX0=QQlhEg65Bym|8Kc ztm9kx2~XfDk}z!G2yLZH$y^8J?9i!dhm85m`yfJgGW-yPh7RPnv)ORE%n`pD#SX`G z!HhxjZd`x3re~K;z7d~ZFuStQmV<8$6uVHNKFjMCnPSTPrk;>n$k;hxpZ+llW<;u1 zjVpbD{8eV*%yi>`(o>#={pr-&?p|2b&2t7)={h-&63Uf8s>f9P_wx`Gv?jLw3DOA} zwRS|nM-2M8tL{#v5mP8nJd14%M`*oq5dRFQ$g_XitkhFd_Oxf3m+_PY9u380$=z_M z+0Hyq>zZF&vu2Y3n9oLHKno{VWumJp=ezVmuAZDNPRj}KQA&(!#HiUEQS1Zt6L?&R zB>HzMYZrl8--G~}EI$HHpwKo^w3%a+KG(9^f;!4|c*_(KFRizHb5TNbI2Y3&VaCH8 z7y*CNZZEYcVg@X;893yn)>J$2Cts<+LrEY&sB+ilJVb6Tbj5qos1?3N$J6*$)@SG- z)zJDQz!Q53&YoF{bXgHJ+*`&3mgI4d7xoPo>r4w?%Zw<|^t?DHpi^`ZT6PMSW%quE z=UNQ+l1U6>dJH1bpaTgoUJ?MAV6~mnuGD{Tccgww%5<9u>zr@`L?KAPBi#2zZ(Yi2 zhLMw-B_Bb>D<*MIf}_XR>?AngABt#?%T85XS~@hZOlPz{roG?hpA?o7tH_E`@EzyN z9}?%gp&hM#aaNWJwK@pGjt$&v{hjSlq5K2rj5QEf+GUK*37j&SI)LhF_J^7RSfYOd z2ad#Gf3W-O&}8JuWIr-C*3}2h!%nB!K)Y{XM$qd(z`4bc&`rJi})PY>K`=~okj!l0#34Ry`V9NEP9~C9{r?i#It0vuCjCW z9^=ynpf1GD{&&+>#{Qx%MVRM50?@DHMl;A-q49PgOPP$d~d2A|0V9{c= z^dUvx&<@(2)`-TBW6L8*g;7ZI$-BdP^-oPttm;%|io&uA2cG)KVyp0sdE$A+H5yO5 zb{`|ZkfkpJBGw)?M&&raz?Y?#HY^B2Z|;e$Up7NgD$k(YC?qNOCYXO+J!zY^$_7k@ zE8*Ut`hq+aZ({j`jD)rFB(7xSRmt!leZ}#QSS|kISr(eXP#(3(7KV`!j=8ak9RGk3 zPa7%|LP6IYi#s9=F&3?h!>siHW2nFGhGMMBRA9<}9?`=R?Om%yNg3jqmfxKz>9h*h z_V^`&wloV?EW*qGrw)HpLX>o_I}xI~@?x`Wqho5|ld1AgmqAvEvOulw>0t}{u@C#9 zQ_a(&p@QYkwdsn*+iK|)2ctutcwG;Jy#I_27ypmgq9k$QQfDb zh0rXKseh657dp0K-PTMNC@e5tJ+()4K)JJNZ9lmUm4Ouh2+urbg{qV4Mm*3re8ab{ z#?S~Ehui0vs0e?S7rT9rg>p^s(N6hFdsZ~cCS`zA+*5bm5kIpqWrxCes*bxoxOKS< zs417o*XhMj$uBr*tJ<}IKl}pH&!-*@@)j+*zj&TqRr&>)!$l{ocRIkv>ca{=37xDM z7#aztA+}rzc{~1R%?}FR7p_RZLCi)U-Dk-zdB&ECZ4`e?$%}Uzfe;IWjzKk|(WJ~ z5w%jzYJPtuC%L}zd`TFV^jD@p9^N6HS^VE=DY}gz97Wu1KO!ea*4}j*9C;jW(_Mmc z>u*s`BnLxu4&7<8LNVTEtFdGXen4GY85IeWwBke@6v(3|1J_7TAj5m2AJiqW(N)V< zHl%Y`2(!`w`vA-9nE+~cHbQyMc%OIWX7RetoQQvAB|FLIK!0oZ?ic&H#RP(WN$=>l zq&Ah%H4E))xkh#FbggGOC{mNHOpp+%IX={5{l{sK9Lw&Q3=uHo=ChWI)AN(?OYzAVz)+W_6r7)p02Spi2nCKTH!5uD^vwA zL@<92QfYfkPrM-J*haL7pAZp4$0S)=@6LiyRmL6UbSl1bsvpSj_bgv@d)HQx2r?$~_m4$g`Z!bgB0dx~|Iu2^ZSD`z5ge?ZM-fv#U-P)Sr z9EJHTG2t!)4x|hJq&&V|a?XEUu5PkgTD*Tiq+nr^YL~LkOU!D!025nfw;D5$$NYX%3wQs{doJoC22PE=Rw|h^-t~9C&6yVXYVf?D;g+lXbJ+A&YaKW4A$xZZIX>`1CCoc-1)ZmA6Uy=1gJtX;H5j`QDv^(yX zE3=7KIy;1}V!`WHB>CmRDEs2Xd zQ(XcZjw_waL>~Ev0X)=crh~rNe(M&S>4@IC8rFBDOaC64qpdd4+tEj5&AIH6@2K)S zxt1sJQ61`CMDit>z%;_wI^qin;lc&^w0yuG{+iN-4~KF5yUMR8d_y>K+3$a9JuoP& zr4M*VaTz(9+92*&NqX+FFy#Xq?F@sijai|r-#ol@L$mk#kS@~%@yS9Pa6GA1F$9s}eDrj)e4va`_^gGy8zE2FC@L z+gjj<1JhMHxw*JIc+`h zP?d8j7$*_`>twNz6go$VLF2}S_Y3+2yGQOwVnX<2(>uAeu13S8h#-Fo?-y|^`?qnD z3m@Jmo+g)>ov%$_VWI|Y%Z#C=t7k`5yc?>Vx&*_&`1*ZVI~MQn4ig=^$k4L3teIrT z-3squ;wCd(9le?Pk+!CyK?wR>ntBfN_U4-rtVbZASph>Rb1IFaGfORDW67N^2BRd{ z{tz{1YWAWyn<^D>A~1iuM~_~cz1{TCf(-*=Z%2eDW~?QZ*7Ncp8G4>NZIzXG1ICsf#wP)1TI%Q|Jrgt-3QHWCbtx9vkmF75+ zo(VoKvGx`9Tu#zwG!;0ojMd!blrDFBoW!V19CVNqQWN*LeC2C=#JJxgK98VO8q)om5@Te94)D?c!wl$V}wp`p~E zo+R$TVjr9cYLCfq%a;!tgcX0sCfQBMX+f|CDMqpj)(%u(o@~G(!=6iAsq~dUvoX+R zjLXTqIi$2L|B`?D0vtAGKO6$XF8)&6<3nfslyi)7SV3=gj(8d=i2SRj!>t)9xIBP5 z-!wOQD12@gJXtfBD%^y2iX~+<;F~#-o6sK35ZO){a4;%YD+#bv!{i=kAKO!1rCw~i z8hY!3cH_5T8#~2F0TPRmrqK+0M{%^iJkqql4zsI_p-F%JI5^i^+-#5;wc+fOR&kWe zHoof~S0T=D{}E)gX|B~BLzay}62mn+F?@$ur{Hc*#V}d@p=C=jk9jFYwp~7<^1ZzZ z{2*q)c+&$Z^U%H9T~0!Y&+?c`Cs!fl7*sKror`0oIw4>N)Q)k?0l6Y;s5Q+XaYXGd z#KgchA-8`3rSsZ-W3Xw)U5B%BO*2LZZJH@AVTCo_Nuw+1+XmTSWd6ed)lM~U}K z%0g^OF$Qp}9S=!t^=)=r=yY z)b>FH-EYL2;{!Dg2m7i}>z3{;I@hLkbk4=oLk*w{w-4@|!yeGDUeW4pEJ@KM+0m0) z++`Zz3!7gzgltc(M>2C0C?o5z&lAAKAjyAIU}zmbNNKT3863KqbmL#xWmEj<=a$Tk z(xMaImCMS!r2x}uk0715;SoLrYgH~9M++_6DqK3zn-FUMMi+UVgF#*$8JA>sIP?Si zHxwZpUI_E(hi>~dr|dKi8U(5jFJ81gb2lGPVDs35rbQ%B&-DARo-WAoxbDR>3K@SJ zuU0dU^U~`_!-lj@J<1JFrfD7jeYGYfY4%8o0CPhf#U9+Fp$|~CNO6rOEl{JnzFC15 zEuw1|>da)uB8-q_HKo_aUd8|&>|X!)0~g=EK4cT#%^p~iQA$3jG?1?rnsGIb5WSF# zosV)EfJi~x=_A}_Fi9RU4e-OC96o=|NeF~fGY1m{(-)i8LdSeQ$(avv$d)<_hSjed2buRduZQmJMM?nAu-u&B6Q;p1lo)>2yPF3ieHp@M8wuXRyh=H7fyz^IM%gIZh4AsfYtV)2 z-IMytgz2;?uq4K0C{%n;xgNi@`4;g++FB)!fJ^e^NgOyKOC6eB2 z>T0<4!~^pU)O?mV7c-v>f@puGQRF7X9B(I7mih8vqR z+A?yfH4fvnoWV@YkbHGwLH&Z_?8h7!*W;Q3ltpl>dF@Y&?;6@w2iNB{^*6PRGgXh2 zmyAmTU_?yJt<1hl9rhZGrL!_pDu7xuM`0&jBT&Ky^P%OFsWreFuL4{zFcNQ9*LC!K z?KcZ9uA7_1M$^aCAXtBGkEDk0;LVy%`o_f6Y@MYt!z#}z{wntTMBoCUMlXaOijd|} zO_&zcJ$?ld`Ryjo$Sk*AN5mLqt3Us97@Oln^)Sb~Xi?d(6ajttC27p0l(*7KOMYy+ zg8%P76^8GvJTxuQFv~xM9%mz>)4Q1+&i&-U#CpVh78T4B>C=DjD`^)k<&nWW`a%H} zW3&kDNvqVn{d37eDA3Q6AAA>YU25xjjmP4)75MC~a@x2A=ErqNTo3{k_-ke)nplyj zOl&v;XTcUT#%~XdJTe5dM;d}7fu5Dc-{iAqa}j^aFv@WA2&}(!(wt=Kx9qems?%ohiVaxd?$N< z|NRhDEFF^6Ss$1z4u!PU4=(j=uM*`NKE|sb`D?B7Z$f z;?)ky8aOQDbdEQCKFPb9z$aiQ^G+LSQpZy6*k9Nf4WoZ(QE@t2I^J}MhHvZ3CLnvs6So#~CIZJzAA*}(o(ymnRg zG6sL#r3wK)u~>5*3eA{`gd4_YZMVF7M5Vv>0e@stNRq1X+a`+(;o+s7R{3?;47WRDXMgNBY4C$G6FPuUnx~*d;lTO*Ld~Ni|1H;x619 zC~qDl0FB+M8FJRPhY5zGS0EZI!Q>4m1$Bx4pqZw{D538*1BI?>>5!x5vS%Ti)fs>I z!n$Zi>J+R&LDnvqmBb91Kq_D?)^)Br1fC;-ha0iQUN!y9kF`A%5$UYPr8480Dmo4Y z??f}qQtu?d7zMkyI;pd+?x4Er)AeJs^|M#FBZq5e2u_D=3Q) za#u`*?h zC*KaAGXAl{NXER_gq^{58d$qP;Zp?hHj|u~6Lb92%C~uMWkaqzYN+qP}nvzxr^endxA z)e5|0QpkhS$tPDl@QX!{BDp01cKc2;+PV-LVnt&^aNSO21f$(jbDBKm@O)KNn8x!Z zc$3G|xr5hTkApZBWF>!=vu~XT2YY(^L#hAe$2^|w|#aV`dk?+p`4GeG zETkoD8b>R$1v7tc>OO=CG4ZmGHbjrJUx$sq~|kum^MmOW?urZBpWRB zdNkEw=*5x#xxkZWvgRa-Qp+n@g**c!GGsS)m*PWi*HoIvt$8XXIrsNnB2Im0?|Q^3 zK{HuQg~XnYV>MYZNS`;cJ$F%w3GZa#CgZ8gIl)9R>{!8gIpTzL=g)Mvp$X0SSmX?* zNR(T-bSZyUXJ%a?cXq5;DM+Y=dG)#{SDr!4p2(0jtfRM0PV;0I0sHjH@EZ|#8`vjR z2!+v$c#o(vL6;9X{`|!)W^2`z*ezWFGhcR$iOiSNw4TV6M5UKG2cqW5PQOTj9%2cCla&;mB&NcWp$ zJ1&0^66H?~mkqnn^m>j$!Ux;21$4la&=X54qiV0%VS6y014hPp*XjZ5VHSNWlg6mL%&srgBHF?UR(0)Gpv8y$Z)MfeMc!vCK_diPGAjbfTdi$DTi@D zmRR&$A`=w75ha3z2?QuqHk-$UjfuOuL6+%-0xPiNJ`*D=99Milg=?}gy0M=J8 z^d$Gu;j3`S9jzr+djPSUlLbDbMh1T&f~Qn-!N#8joQ2ft8!qu)a$mqNnN3%`dJ6AF zVDQs)FI9HZnQ-rbzv6nng^7(2N2`JeTH_IQ%fM~_FR*LK`V?V295L}o{tjfjd$n7T z*xeAo1cZJT;3}>u0c&lo;eh5>;>8KWz zi_p}xf%0g{W?HDNg{KyYdf{jmSVL8E$J{k)G3kNrU<>Nu!tadcB=~GVTXDq4IQL#@ zFO+LxXnKpl`#5Zfvmx;WuQGqt-xB4O9#U$CG-voVP2KharNXf=w4FGjYz(qq5rkFn zlUhcRuk&!#Cy((=VHGmp%Y>n-$bf?!H40JyTf7GHSaKQ(dQM6-{zNk(gwT`R@8=1) zC^_;A=%sGQYC>{m#kW=x+p}x@3G8X8S|a^>h1BeH&E=69g#Vb&dgXszBSpk!imbVm zOrPFQroN~sQhc$(uZmhtI1H)Gwtf-tCaS*dmY_#(ics#@?NY2y_u1rN=HQ*sv8Hs5 zxRN(abfB(e+|sS|bvSB<(?W@}ks2Bz-B$?URRqL-OU|zqEZ(1GvGv+ygPOCG{BF!0 z5Bw!ZxnTUBQP5B5kKuomxiSUhi@bZ#e8fAG>Wk)=qYMM)|FAzH)uNESkmxzm9F3oGO#p0s?3jXyqZQoJqYAhCQ2Ga$#m{ptePAehj4?pIw>1T z?I_~zx@4^y7~XN3<&urrTF|f8RV@(PidtJwp*WbxM6&c(rs02TDAJ_qO#Jz$)T%)P z7V0?^?dQXp70{`x?RP}=eL?Z16FLDVCgY^<_r%XJCFJps zQo`TVQxCc^d2|*S6X~@-2m*WZQT5n76@s1*5e`%=Y6*D?A#JaTsTtS9O8vm_*89k9 zh0OBT2kX-6V5KOT@4;GaBxvHoT(s6+exo&w@1O^0G4OvP5aJY73H5HD|IlD4VF#6V zY83eMQZlm5DQ)WRA`rbHTVENozKLJkooKw(G(!D_t0fG(C|<`jgJ<8gpLz`XReZ49 zX(4PaUQ!Tqs=zWootI~}OMR?EYmdh$N-~30Dm2-{EUiBqEcjwaKh1Y}d?ly<90(6f z2JL%QMt^^vWimY7iKy*?NM|1blQ$=Dc3wwX#kgJ5oHO`WgW_aN=d!7{m`4f2KF+UG=rG?a3;`byirzzzypY?AIgIr(}Yje}NjXGUmzv86hYo+STLVjC*)8FH$zj1;h9 z$z*>?yYSZC0a_Nfw>X5C@XRi=F^DgNpHM2}w;ck5WqZvlzSR%*c$!_8rr+&e1jk&P z#8j4@(*b918w_r}(E~%S{s(fz`m`;se|G#HuOv^i8KqRIqm766<#qpX_x$i9L(qQo zNORcFDZ5pE__VKZ_Tu2}utsk7g3*B1Zc~5$fo*4JO<-uBkI*ZgJE`qT*?DfAu4|JU z=d(04u|7tpXhY{;RVQy#a{U7KxkHF+8t2PstUaIwtJZ0Wrcr$n({m1?y(wA>4}R($ zoyL8-CPgw@hcs%L=lKiSI0sKcJQy#_$axP_y-H$V3LbhARlFK#vF&#@;ples=H!32 zjIXXG-#8H>cZj>+9CF4^w$qCkn2H;1n{wQnHS)Swn%^$rK!FD2dJ%*8dkk#(O-TZ} zvEp~vZ_eUP%4J5TS#H^t;>C?fq^vzkLYz~aLwrr$a_frd_O!?WI+aQg7|X>ibnz{s z=^}uF+ea9ZGRIg1y*f-OX--@}&#r$vScKJv^?12(^208$qQP(c4JWJG1x%YakIR%( zj1CNJ@SDNh2uu!=g82o8n(%M%XjLf8I9w?Vyq!4zQwxI$L9NJKq1$|EuIs3{vma65 zXdhnGop%t#e|)ve)z$tdPRFlXrQ1a}XM<^Vy7jlT6Vbu9wg7(!9sMmeutI;zHB)J` zTNRVWA##Xz**T9PmDU}srVg9rH=l@Tx&AgiOQJ)>r7{$`in>d8{GhvmlWW_t$g2Mj z(;~7K*eVJY&OL7@r;Y2j01fqQ_l>M_mT^B%T2_Z}e6XgM8z`Dyki_@-Ya#iohvX>- z+DD8`?zX-Po?rL2bo9B>de?vLneWiXh=k50szHT=Xw~2lImUuaqm$5|4+^P4!HddK znLKm{D+GiYM6wwRNfvjKL4RQth%DQAya9YUEB$1D%pv7PMeoT!C8l1o?`faZ2Pkp8 z04g=iieqcx0DFo~nYej^KE6!qR`x?#$gP+ zJwM-T4K4d+T&1>>e>_hfm|WyZ~Ur|D`63GTPFdXko>WbpBTby3iv!iPk1t zpR(2`f`5Z>iFb<8uLn{lnpRN9R>WZ^0+1|$p#I+FhDBG+0JvTj3|K)1Bn2t{nY&nZ z_xXn*txM`vUX~#&=^KBW)7S&`)B*gGX94}k=NF$R< zSt#eF!o+!3Df_Wp=Gk$yA}Y;zyQ8MA%SJFrT-Nqz-zD&RW7DEH*tEjA%pQtw9z9h! z+!WQN1dO_2rlnf{cIC_RuyT5QsttsM8bkQt!QRGv9y^VbKBa#NsD18@`5=)*NIi>J zKH3PhJz;qC57X(Lo6>9vs;Mau$T=jg8=7&u9v78$CvY50e5S--8fl+kVt3AQY)Tu4 zQum^NS1mcQ%^=d?3U}|KC3Y%_^J*WhnjXiZ0#&ez#rm7k>GV?>!Ie&D-AlWu&sulm z#@tH#dZ)`eZY6(K8fag>eEuhmL^0-C*0{hFf)K;!e^Ba%gKv}`CaXLd*@Xo5=Tg|r&mUM=o6CJ_! zLL46W-wx_2A{Peklp=`wKZB<<#M&9-_;(;j_SNr#_lLWCVlo%=ja*!;%Q-jHynaSp zC9`ElmEGT@J9-+jbPNzUuEYdbqZe1ddmM`Dt$MYB_jcPY1P|;zL6Yc^?-n$3E|e*j zAovB}2ES*}E_4!v>k>0j=WX?ejKSB7Kx~KC@E!&(% zD?oQMQ%33ls zgWtsgrCZ5dxj4vF8GA_3S?{(5g#( z4a|~MEa93QJ_I@sIaQq72H)VC_uvw!X)6usiqNiNBLnqe&YrjrcwQ*)#B9Yj!Qx8|R1AH0%C6^8Icd2-K~YA$MRbEoT5} zGAk?Rdw7RHBGB8~Bu zsL{^~{jG886l-jqV|UmAv+ZNsc4OPN*`%>;`yZ=8W7|n%+qP{xX=9!~XWg^zS?k_+ zGv8ol_MZKFhxzUU-pUgP46y<bdjN+ioU=1 zO%zxwXdFopzrT`xO`cELJ&8fne1)T6DvHR-)vmjo+PwzaSJZ7+*xpC=TxXil-IKRe zO%_*AxoWGRr6QCl_6HH)@O;1e0T(NXA<@ZMK2L6&M$`P~t)Y_)V6TqZi`i2Qal)sb z7cEMC)Dgrz)LyBihRRwb=|u7`BJ7Hp3g_dNlT&#qs3o;h=vLbZe~Es!eL#JhjFIyd z6C7hmmw0PIorw5ogp?x&;SXB40|VRs5+Gz^!` zbrWy)QavE;U#tayh1IK}Z&O*Eeu)xhQdvw9e+ZHoCYoN_^04iwRAl^3|Kh(=Bgr@B zpWBDqk&okjZYH#r26%Zf(Jb-k3w@}~SG z4lwCnI4;sz4p$ZEdhMdbe5>EWFT@d})LMcXtU}lPIA+vQc|E8s(=}5A>%q5Z9TGBo zm%gL5$WWdJZheh}@*j}~ip-ivsexp~z~P2ps=pZ!MERKhNs0N43gB<=2eNn<3o~S6oKo zz&QVS&*KYijyk)q5e;LTCdIOv0MQ=Eu%xch9FR2w;9lhPZzcwc1VV>G>OlwlbQ@z< z!lAr?X=+BUveNug+sJR~gyO2K;^h>{A=jsvXoD@qaM*W>vI9yCYR0n6H2UK@KyZw! zsZ$II?8AYyiO%ad0wV3d$DHpsZ%`+tB#gcp6U6CX?LOAxa*w-8_LBe7!o&74f1byF zJZt=IEl;tyXnpxnqU{xpf+}6$qCNrvPj8EHcTI-t#Je>Rwb+^5``>7<&tN0N-MJey5koLUY=1gmuV1`0Cf$Y7-anWi z*mDsYEb3@0%r-@dy2Xx(hV4<@_c=cQL6=5&z~;`;XKZt<9u9?w}yZ89a+2 z2mXuJ)FX|$@qO4!@IfFIy7oJVGMlBZ5pc#(uIw{99Yw?Ab%zgsI#hw0FE^utNwpsD zYM*_*mFA4-TjMQ+EA87P0yG_@UF2GBMbMN|47tQ?k&B_qE<|pZy6&Ly$&Wr(_iML(Qdlk!5nj$-za zboZFV#w&Tj z1<=x?xj-e-5b6lXa$vUt1Y}Pdn9pmS{`eI%U$aD_N=l&I@ep||fvJtoa9Q{)R5_NN zw~DNTBG`ICuT(6YLF83I5@B^7MxK1UjsG3p(RthMR0Z2`)~Ge<5fgcTkw4jy>r#r0 zM7=8)^DM(e%i;5lBYsttBdX&fS?Qg6A2HCT8|NkwT%w-xIyFlC=WZ$-Fb|&c_ke@1 zd#3+nvpu^dI@^v(6}?S!&B?v@R(W^%65r|$e~KZhO$cX_?e%Uwi{z>>i)$fc9BrS4 zc0h^wtC2Gf(xEI!rBsY0&D7^vYnP0nf2rStk}JQ;`HG;{q94{NoKk%uO`*h7(ub~B zfhxhf60fng%4o7T`Z3g1w&RMId+TYExs{8b z<9j-by2H1$bL+>jbgsH(r5&yTzkY?otWf2%9()e<#oL``$KPv6>eM#(YQBy=ZKLj% z$}AOKaxr=2%wTaAEyecbEgZy2m9Zx#qokaLM7kMFcoPpfie()R6gB;_xYi|?Ln+^f zgx6IOIjyno#g0e$!|l%njVJ)-nCm^VP){91gCKP~NJ*}$_ipx~^xlRP$DQ&KZU4`C@1M;TcQz0KHL;EuVI0od3}=~$)bXZO zsc3J?WGap<8d^Co8?dHmpz*huzf$uGjhiX9-tGIpTw1DXR?=TXs$kvtWg4-2z?KxI zz5vA~xyr(PKt{X0hRyQYpSsCXm>&*Wm@0D`p`CUXD=EIvq_dRQnGKmC9x<^8|2kyM7{Jx=yY~>m#-ANI)rzs6YEGv4ieFZ0Zw!B6E^jAgVr{6jTSyu2+6AhdRGYP+I@*#3^mBPPq!?G2OX z`2O)1uG}yj<&3}oC!08E%=)SqWl{EqgoOV=WR3;ly{x)nzhx34PEG+!q-S2VowO}J z4I?g91zFG%wJw_6;O*Cid(v~x$E+XyMN`Lu>i&&7iua{_&R3cry|5cODoDD$7)3EY zdEEpVp#8~mehtRYcWl99lXgF{azha+x7+nLO9kT1=aY-%Ve2kIo@+wMi)+@cyA!7eR}?ae}(z0lOw>;(#p6CVGmF zfQO(EmVxK1U|FUEZV;V`uD@sKbaG}<^^zL^ga#ymvJahAUqv~gvN?s|hZbo*Mo|^7 z3HrFp_JSq)+gPL41O$jJ$lelMgmoHZxK8YYStPBEE4Yl zyXoUY`G!a-26ZClmw72&bdFG3L4m5R;90#GRJ2D<|H1hEt~!gR+;^szDYlOc^ zNPH2jG1r?Zp{Jv{kpzLqzDs1Pyg_ro>}}j^nw$e1vtqOlRM;70E3&)C6b#JNlPSJ2 z2im)2unb1rws`H3h2Is}kAy2D<=-wC?~N$xW@5O536~B*pxdYKl10OqTlmhic%ImX zf2z=&X+GOKJ(n8PQeh0D$8L*ui#Ec%T~weJ?&_%>;euNXtC2s3*L%ca*jb|i`6JW= z53ro%*iP9&F_}%pSOe_jfDIV)MZPMY+c16_H=U18D>*Ndy;#QixM<_m1sqa-S7ne# zuFGb)eE#pEC=cIxh|U_-beR^NBjt3!-(s2%#Ij=&v)7><)MZ{Fq<=GybHT`TF;!IU zl=L2ex_#?UWE_&D|4`5YMBA9KYF(=D-2cw;KMcUxB?17;J6&||7z z3cJb;f4r>a{~*WHi`f%eLVjQ~bo&x^GN>QsI&oo1@=0RYC8tKL4fNLnR)`Knu|3wV z;wCt%Be@D~(t#Mmo-tX_lF>5(n?43|Q08c19-$sc(z;d@9>%I(iytQQ^<5_c${jyR zBiOGa;K=d>TyZVAuL}aV5n&bkw{z^v8_Py|1WQY`<8jEU=(%KTf+ZSuNU>BwLDws; zFc8!_Vv{}ZH7jzkR7W}iE@7ng{j=VD}vJQkngy?`#*iPN361=J<#t~6IQ2rp12S=M(cVU-G6QEDya*Q zAA0Cf%*^=d+Sw1vy}&$Q1<>st-?`Tg^22agsK*%H_~E}fH?KtjdAuz3Ih#6p9kf5# zZ2Zb~R}{Lvf;p>U&k-wre2?K63QHyZ8>RlFH)mAn7%`^yu#hBqR20tKWa#aHtuN$O z>0Ef$n$Yzqe@Tl)(;(PKoCS{N^BEt-ffg!;X-CP2iB>G%2uJ(oPHy9xXr>``p^MDq zF*d%2J>?NU7B0IFAf^92Y+^W~0!uxEfJoA^tfK735$*6d{49J$f7{1jzg%V+iC8D6 z4#ql2WPsOslG>K^p+YUT9#bith5$w_k^|25=^?LGs0f$0@sQ{x z6y^Jp*8`o8l3$VEh69H-Z`cv_1C-2j)TIytMM&>+!3wejAPH90Mj^zM;sv9vZ0+w| zO)L+#B~O{t^$@5nB%+6OzHRz$`7(zQ7=G!0u-IR163XvbUBFD#>pR5g2c@Y-iQ`PD40TcB443f>P1OQvRwe|O z9ewo{CgS(%?ER^fcz-CSywdf!8vQtBoJoY&Vr&%F)0E_T_L+9U0Q3{L3DIeTY4BZ* zW32=*pl3qdNo|w{XPe6v{itw0Z*;A_>Vro^)dA!$UR8{Uc^oHq5nhGBO5r zbtu*z#Z-g!NxDu7@^_K!0Ov*2kxkYFyD{ucJ&s;+4BYHW_fW{u684p8OK0|n+;35~ zzxLbJf5P&E!xRHy^NGhs`?4b|o7cd{x1}=jfop&GRLh=IT$5W8z6Pf_-HwR0b{Sa) zJvS*6?(;(5p*Q;>H)+3y`^2iQ(fmk>jpV7_kkzv@`PM&X6IM7pfx|VGX%Qi_k+P1KC4r;!$ng z0P>%ypaS6@q@;lZ)l`4^3WWPToRc7e+4n#Flf7=IB23KrKXFD(oJcw|*O%1^-HC=J zG?u}f9gh)vk^+-)6>RaN)&&6GC-`oxrF@e$;xQGE0R)F0(J55TE950f4^#A`XW5L- z2bq+6P@Z%RE*|?|KA`MtLWNM_xb#e^fCgg5qQKpB);<<>#HL%&=r*6mYxn#+!M=Av z$m9qtXn04Rv9C$V>kRl-K)N}I%7iE$ezopOw0W5yWMHB_HV1 z3rV0WDscB>v961MrmitrRr)-#Et!#KLcJQroJ+oKt<7HsnY~YzdB~ z;=QW2g5lj({00VDHmq*xXlIMhtN*k?T$)6Ieey1|B1C=77CJ`_2oumzt8+UjiDe~) zbfqaA#Ea?^nC(hGMYt))Bq8cTpskvZU*3MC5!3w{-EZPy?CgzWTbM*H2evITtN$93 ziWSMgW;cgt(yPyRSg&{4 z_gv(wD65O86UN_$rBt}e-vXWz`4`Gk?C$0ts-#syjWoi;f)eJ$Jx7ZhvAnW>1 zk0Y;@3YCA;dU@1PU5=OH0BStW6eE@pFJPXOF>+~Y2tpGf!v{Ly5ao9we80aSF#aLL z>zacrB8fFHR@6;s)=y}lC(Rh&l9wBPa@-xJROns0|0$l>FPfAJ%7k!SwR}fi#e7-R zU9_(W+k!THy$gEZ21~}!nq-`7A)TDtK9k!1ntZYtR<4-5!uw9M0>G-f7#1|E<;u7( zZBuUD&^C2IgY2$}34asxp4JG=k3=;UTOu)C3g422cfU<~sCY5nV6?|JSqu(>g6qj$ zxFF`%ttvWK|H&b7XEdu9W(Zv@>RfW{6{hQF}Vjcqr zR%kt@6nw=ojo$8o6j0ZbApCj5VCog1_GfFvlTzNOY$CvLFXq6v8Z}5i3O3RstLx#S z{!>JwQ}%nuFngEbIX7swN_gP{K0mW>`$CwN!E&FAQT&I7eRlGwKquoHdIbEAVZ*>ZX15!AZ?u-B?UV z;`ywTNM?~yDq0a6-(~X(v;c-2!nvxHVXeeDeOO<;O-^Ck%(WcW?&%pxgI}j~zSLX#dq_?q#S!bf zl-*imuD{s<6QZj0sxIRR1d+-Gjr!U7ducQDRkj}K{IRy^=E-iAn^5l$RcTXam9Zm~ z1Vo#wxHtxZl?9EXV~m}0+p9}kqaX+HQ6`@D{T54%7=Q%!Bic@AC>{*s^U$)QRgh4( z`}pec5XS%otDBYSBacyV;$12aQ*MVPYpdt-fenuKeDPLI5@Vbj#PIPgBYuLg$WD`` zlNN$|1Im|t;?kS0r&aYSBRjH!pf@&gPuwO&WQuKgd|zhiCIlBmO<|AJ8Cm&p(vG|5 zOzF`^3g{#`69TufXC`%D=o6|I1A*zcsb=y241MCJ*??As5LZ_Xy5XdyAK@_piIaQf zBm{z!@HvkV%2`MmgM9ZO>8)EkD?_&Fh=fc+8U34AVCGrcSY^%#L7ziXzD4$WaIl82 zk62Ni(Y4}Y7?y?nDbDZ>my?KfA5kdqxgRlEELnQIq_&Xm z>o^eHs&!wA^QW85^%L%+)s4)`2xTU-4dgsYpq9jWcyk$vc5bKe5+|fO!=^rWhszU6 z+J&3l+*38H`@I$g$xjoW1D@)tF;D81XwJJPxd`+O<30w_gM`#0Y5CQgx-R%Kw2%$r zff>dky_iZeHVF-liko##$pZE`S@?n)e6_-!1gS2XRjvDZ``_Uv*PpQdmVJM&o^hj= zvT#KZQgYovgqZ#?B74Q|i7GCMjt( zy7SRq!t)6jFiS`7vw>)2k=3K#y3-7y1Hv<`L`kCU{)HL&e-IkO@`Ii-fTnIyfu+{N6&7F5^)3*M#C#I}hUo z23mL-jdCF1N~>{m{#|q)^Ts4kvt&ONvX=aspl`2@Kkg{WOeS5r6u_%Wl*~LB0m!9E zQAs^FUA&8_N_vFK)Pgvl@xio)kh8pWqbotHFe26x6+&(Y&7Tb5j{szPd?= z5UaT?oswNaweva(@69>A!5eyJYo-toi)mfOr(e(}I-QaKFN2PU<-Zwp zEi9m*4Q60GZ2##nP`TLt7m$vHor~u`JUTEAwnP#^8lXwtOIJ-3%if7523*1h6!LI9 z_E!i5Ob}c>gefc;ED0uk+#!@`!c)Hw6FpgDnW2g>4yy8AX+dn1wuky=g|UPq?Q*h2 znN~?uR4hC>Vc<4)BQ0C@*Kz93gwIpf-|V+7mu?rkQmKfwZdNi>C^YV=V<+8C;WX)x zxv_o(JYYX5sMm|}QaY_j!-!(n>6wv{UPlK&GiG;&G-SUA;|I+~7*rM$b0ebwg}XCd z3nGaSLwhkJVL^`|iIHLD_ytYCyhRq2XX#ERNy;^th{5eDjsl1#%FrexSW$-4WlotI z&-xRf1j!_e^A@XvAfyJO#72PkN4lD-gFu5p1Ch+QYGa_J&}gkF;*p{8#wZv(LbRfn zqau+*+A(1yJC1kQas@$IA^{Gq;xLAdY%o!1a%lkUAnF%|1q!2xzd13+Xs?85WDNzU z=;#5f1qlByD47!0uf8cH7Vw)g(y}ay#dgF1F;)ee&eqNQdsoGTlmZ@z^uf6@*LR9B z01mDQy$CIj3syr}6NiCO?5HSlPa3R5ghZZHLN5@3`WKE(yyB8H zcOJ>RVdlS^nb80lS$_bY+HTnj4x>aMyQB@xue^qQ=XoHP8Gjx>HSqd3WN_R2QimUY(oIe_Qzq116T_C zO)aco5PzA_!kN<@qI7Bfz(|1tRj@X4Uw(^4)}+sY{zX&7o*;-voWkhC%t#e*5`oL& zb>U482Q3J#ko<4q#|^Ax4MZ6KvFR8jiRSeDCBI$P1=d8X!CexD1ZZ!}fyh@Wn|*qW zmd)af)_TBDNpqCo9jPe?Mj=rD1e9mz593wiR)eh&rox$Wih{}%c-1i2oN0^fT!m=T z@R4f0?1NMUDRj!w!Z9E>B@Iz9%`sdS5yQB4p~57iu%3B7+Ok~lM0I6HF+9$E&KO_RvYS0!_v4Syfagb3`ULp`^toI$Vue>}-gun|6?X%|}FU=7n3F zWVSh)zSHfx?+);Gn!fpX=luH3Pvh`wL2Xa91S+xV`LiuvYV1_jYm#$U4%SLKJc2N5 z>gXKMk`sCu3~j67R&}RDyIZQI%CUtE`NEZ*JRjz*v#B>abm5dFiBm zOV(=|5m8!a2@2oI2JeBks6w}s%c$qn8k^)#e>UVQhMDzWAF^?9X#71^;)qx~uIKB} z&d~{}{6B1PYq_jc9(t=sMvTyPcOnQ3jXarG@|b}he7JsldjFAXnG z5|XDj3o`2HTDno+0e?dlystbMXYl4du3J8TJH9yN&!?G|ep{RAVO7Mve`)4bLgBbK z970ugE|5vchbbf zN>f@-WXh>{!&m=WKfw5?FhFI+^HkU9`SH8Ny~8@{Q^Ws*poe>D{?$@d&G%PK{E5py zEihF(i$T1&DXi`&@9+rDFW$sM^j=?#Y9g$mc};2Lvh?R`drQ4{r?(vxe&?&j=mj5D z>j*-pC0>XII8ZIZ_K2+&(-gtwd6l{ArzzNKVI`sye;@B9=h4z~D|)bKX*Gjb;>kvi(@a5P<~<(=2RI_>O3_S;N_j&gbj^Qq%bGx%8TuJA!I@DiOm^be&YE)A0pL|T~+vZx?JL>velU;*8 z?4zWy3J^{iTGbS7+ugi5J%EnX*!HIqEPP#N^qrMxW|!hYggwisF7T1dU%1t71 zY*_c>)polSKAYZE&<&qVkMR91X+9EAg7i0)0b)#E7TtfsT&UTY?HMgojssOmGd;%W zJSBI&O3}Ut+3Am+KK484`OjE;F^o?#=v++9L>{%u1)B9<$#ScpZwkmOS=pJ-##@h6 z0sO6u9nKT>il@!P%Aj*8>=t-DI(H3rfpS@zo(*K?!jS~_$u6_ z)N|X<;ArBZa*x6HY3(~8+)TV(&AWu|SWG4)KzXd{O}FF*1OpZ~p{KFtCwM8TeK?gh zOp%ddO^)#u@@ z`+-jN=jeNgR0IZGzE;;PJWbZke?R@H9HhSLGEER%CMGw&{H?@v+;-E^$lVijyRzR$N;%!KkjCW-SE>wZs}7DnFaGEbC2ek> zJW*X;GaNL{H0;bNeYqGw-xw_dA@>%M3s~yfil?+TubqO;MdRU2HhdOVdEs9^pidQZ zDqLK0Hz@gqE6Iyf_H^`A^!4qB*7A>6TP!V*N$Y7tzw5DA{qODJh$ z{xdIPQn7IUUw$zM8!OxYbZjKd|5K81a`4Wo#tK95^ukhbpk0IvlZ8q%T61#|^RJJkd*X-@K=4Mpo>sv@x&D(sxS4|B@d8Xx z0~l995OjyV;)U5sA_l;aq%F9iAa|7mXy(xXX0|zIPSD2af1if(A-zStltlLS-0whZ zS$bNARV3IsZK?tXNKqSgo|(C^_p@EpV8SzBBv`6~%R3HEQp8&*_;9r*xjE$V0>OE5rzcYu$N&x`xfUw zG$n{WcPG5C_dz_)p^6cIEsQEpU!$EiHR!en3Z!?=pvf0npd=b?4?Ea_1rLrn-}!o<1ffQfml!( zV4^5Z1_Jr(8f1QB4%a#D)zTTsXq8l+HnJxde;QG^j|HMg2rrbPtLy{DQHer$(1+yX z<5T@ztsqPW9Hx;xp8dXPC|@wDI#^;4WX*s%a?GIOD>^t2C#_LQw5V8Ow-$#OBv4#M zjPW3%XbzlJ^y+_6T*wu4fgJT{aA+C7J<6H5x7y*%Yb91w-tQf`m!-a@#Ph-si{dF0tgH7bx_Nw;ld`_AS{3k4M^iNHsT8z%j%B{3S@DZm-)dqYNr684Q91h6(wZv}a^nNDwz z-cJey6BHsmv*72!Vn{v|K8!@q;fSvMFlE;fabT(ZK3~n=;vjr`R$h@EG&HhWh^2KA zKq6&Ckt@l;rR79FzV^`3RhNU`Wx0QHQUWstjJ(#|@IlUdO8vNd93Su?CEBU4VlCkD8R8mG?I*L^OX=H-ljt z)oz6aW7Bq|+xu+dyB3U`!+|qAE@<;V;TYcn(G796()ck? zx19Uj4nNJFKC3%)@d#xT+?i>c|8vsD(6|U>I6v5}J%Il!3>ro|lLM|evn0?=>O6%z ztbg|Y7dZXR^plFF>52E@cR2fCf0(W|1YQzxGS~ZVa&p&a6-Tkb-z%&e+#DUZ72e;KGi|C0(f}?`g@*-~BpKd2-LvwWRPLPjXl(2< zTZ2ChF142xu^7=PP+C4qCqq|%1Vf-z>5O0VBu16I&g!}0G6Qy*`7Uhc*NNWT$#{>u zSIbbE>Hg_8D=YmrNX-Rf6UsJ$jl^%SAk9|v#X7h5ToN?l<0c-0=>ls&%J1T>&TmT; zAAoj~>Wy0YOo-H-S?Ai@%FdY{dfY=%3(|_{_tFBBQQW}`EX89<-Jchi@vuXA`V0*d z13j4+9!PVpHaZ0nOBHv8o+pfS7MHcjz1QDMacV*%TtL#1Q=Nr2Br<+COo*+3AJnTA zbc6FTZ^3De3qFRCDlO3Y1yAj#95FdeL<2Wx3WU)OSw6ZSpUpWM$xF+6I6S3;t{-tJ zmVcA1GEag@j5_ilN^bxDe8k2yNAofkq;3?H3_XlAP%r-mAdp1GUMY6GW9;^bmyc1` z>OjENyyqQFHTr)l&hGQtIlz|AnpR`II_dO_i(5f-1-J`uSNZdOokx@tXM>6-1_Ogs zk5C%?Elv`qAB{{4YTHFhB4>|3uLMt(C49G6H&4vmnqA^_qa;;V8Oj79pCq>a=<4$6PRtfQo(+U zVS}PH9k&Y`icBX6gjb5T;pyhcFixs*2pHDcx2{lS%NXsSu71#JwSXzP)%4|Ka4zJY zn!>IK2obDYp7+I}&qCMo`>cLj47OXTcaGILQLVW#Vmi5dfcN$1pLMkR3VgDCwe86$ zIy*zC>FEwtDTom11_8hV_LR!K#g^tB|NrnhiU6|H#?w{ITNls~|?=2C(T^`nv|<1H4V* z5Wq0G0}HYhv1}i{-YL45M1# zF#+A`j4QgCV3?LRfacUP{#=KR^WwzpWIO+;r=EAqw@NAI!c0I;NW@iN!fMEHsq-aYVHS+VZL;UVpR5m#FLxBUR1Yg=-bv}QM<4cBR|ePub84x zX~fC3)bee)7Oga?<)w)aFs2Apkg4WZ@_Zk8hu-F>Ox-sIuCXUL1`M=*rbtcl{pN6AQv zv*7k%5TPa!;9BzE;dwj!<%L|ThJ-d^cOIG^?CPc}D=)RTo($e8L;qkJ`XF>tGbhy{ zIQ07_H=1BY>r}(~kJWFc4QWt1W#7%%pOcD?cB2+r%Ne`UsvSCGXY>XoSlr9VHt}CF z9Jl(yspzj2iK ztd57`gleOB4qnoN4uPY@bMwKOmIXg}+|2@YLb3OjsF0%X+xZ;d4Qw4z$mn+x*1(7ev{crkSXTKu4D5pYc#N4RCnM!8ah~-cmZ#&zHF1> z?|YHV2S^l-jWSJbxO$LoSa?xo9&n_-X_ZWw_j60W?vAxv@=Q=;CRb{|`yS(YJpJ;y zMvT1riw1mrdebr7f%%tk3QK#VB(QCf9*cI03-DUbXHRxt8Tv(aTNBTG; zn`1!Toz-@@s(!aU@`)NA;E`92tEQiCSf75Dw|~h2yAg2My6I?S)gyU?K&`IFA2W?H z2fUHgn3H;jr3Z_4N4XL(C-dYqw<5`1esOr%5Y5ngZ{9I537kjGa$6qDiJ;yf1`VOv z{TBQko|-m0qhjdTyiRTPt@FKUb>-tZ-280di35zlY9R#Pvq%v)m%4oGD3^_%b(MNP z+iBj|UHW_r*`deD@yrwIM^ zE^Q?$=9<`NL(AHYje(qOXX+K74S=^X%Q7Wyzw5<5SJrRZ^p5kJiTISg2?x zceeVWU^^e6F#am@EkkwUw08xzJNKhp^g3w)0hSRs_@FUbExKO^-VYR?0fGf`7a31X z=;pZ`Ik!|}%9q`}3PAcu-ScPjb+Ejo1R?F8khJPD<$6%7vUlMetwPC?@9MfLF^2v8 z1In|fvLV{ro>fCj^xs+Flo^eVe?&h{T7;D)Dr0tapKYuNJ6YLy`(?$)d+@VXc~-ip zf_qe#FPcO1Gzye^L946M0^3PCsPVCZsmJvC$rTpr*LACBFy;UDBDF%>ac0J?E5vo< z3~WOB8Tns2oS1QM)L172edcUux~n2KW5i9J9r7HF*p?6U%u%XFJ8caenJv~s;kv%N zUGH&pFZ2=Ic-d>&-*xp%vHK>(?&=ltK0T$y$+Io~;ae`9Z7)0N03^n{X~qYO%B!fO zRBfOFowK^dfvoG~FosIM;9Rjq^NrQl@ki_^40>R|HF|}gUGNRNf${Yc5-|GB+{1lN zU8V4mqhhYwytoCa0l3l-EQx0RYkY7&A)d+-;WC&iTi-C$;>)wOOyLa616P_#pI#a;@A6 zEcdev5s1_|9#UND%@MD^U7uuDy@dw-QO7%b+BwLt(5W$U3U)Q4#&@*!z~iGPyI{J} z(8t)T?K?q#+pSyUAATV)7Lxv_+5E6^_=QU%UbH;wRqqHNC|+X}6PxMAvkn{*F19+b z2>g?|lw+|c+aMP2RyW6C(CT)1_TYq-{}M-o#peshhL?HoR>D7xyNRM#nyjxr?Pq35 zK3pDJs3r+{+%t!j-r#|Fd~bE7t8eFyH01v;_=YL{H=w5$*9taq$&%A`rgIOz@5++t z6s*E9kTziiNVp`fkQ_#`4~RfI=1YFq_dT{@d842CCUa*_O1U!RmBS~zwi)nvpg$}y z_OQ%vV?~z|p2eT&(Ria>p{pO173mmP!H6D~<-1~TJ z)Wh*DK3wc0jJ(glGM8|&Zee#dUI;|twApN|4Wd#4!h~w7y^aisf&ys=q@u(Hwqxoo zut3Sf^ zeJgX)Jf!+DKrQ?jb36{FBFz0?R{C>c^54c7?hL?R0+{VO)Oz(jR}Wga@ku>&aCdC2B0Y zYX}@2UQKUQPfmyQ(P2w1Waf0`@V(tt`kZERJuN5L!6^6`s}EXKPu;_E-D5pfpwc^Z zLNMlZ&-Q?Ig;&}TzFV%7cKUycv66qRKhr$O$Y}NJIO}l6qbI`61(RtYk3;On2Yg`AHdNUH>cF$)z12IHbf|;rlA|<~mmB)Q!xW9Wru9N=QwtiwJ z(W>;gStiBr^0og^~Nkv|yhe<;c2Ur#&{S?j3byL|asbH7N|rnkN`50pL{ukGV6a zP*mKZ>oO$Y)3Yrf(^&?)G%`%0y}0xd6~eUZbFw`RegAg#rRDk71Ur|Jxo_42r;70R zRv_)cB5K@snF3dS@iDdXVZ$1XWd}Yf6M7Aq$B$JaCsN0}4yP5nk@jP?3MO#Z)kW^x z2}M-cF|9mi3cP;dW17QqX|L{Jo!0nKs_RZe_T);d>mPdoS8-{0r?-A~hLw-9g`x);BZq5&_T`XHzk9KLl=!|gZB0v_p9H?=A*oA-2{jB5w5i=gItOLJ z&Z2#%xoY~mJq+P0VCH4AoBwV7yJyD=Rw%~>vgbF#NsWwFYxa{!_iwW{Y?PQUX)^ z8SkM(m%eT4=imcS2GZM9{Ng^Xo_(fUiF-7XFel($nrjoG&L?3wVr z)@1bb=|Rb%!8=Ue9vEBR(LGJ?*;#acw1Sl@A>9#%Q%DZ_Sozh_G5ii0U()e+z|F~0gtpqNz414Y2eSlko#~dF<$7rA{+hVK*H_&)v|0W&OpCGp z1UC$^b-@ZqsR>7l7FDA8OPG`~#h&^bh9QcksV4&5*;pzyBNbtRk`%JRl-8*Etdz_t zrXYSJ_3m7t@rmXXOnqw@YnFpy)JBE0-^n2!bpO+R>-oqAFUEIU?{C$}`;-)&U7MnJ z?97hY&z*;hYZE30@a%X7iR3X$p0Q}%=S5An-ZnLWiK7dJy;kq?vIA7a7cuubjEwO_ zA;rKvh1GxTMfQ2ZpJ}*k^<^p%zxV{#51G2%9U^K%;{3Vto4m7N^c6d4Le*1==2_^! zM5{fxsrkWj`>4tS8(u3cuW2FuT(c7MJSFT6{Ey~}Rmr<=9;!o;YQsCSeo~pn)l7eJ zv438RK`F^!O-rsvP9wT!uWyY@smN~?6To7@_9K*W!85=t&!go0C0^0hFZ&|Cul!T{ z|M3iQ{kKafRf-V|k${zjjr)Hzp8qZPu(9y4C6WqK|Hm%GuWm!!lRTJrh~+|)b17#Y z%`m~>fs>SWIU&c?khN!;#g@&3BVHu#R+F?Zi#CR)Cx;(eDNzi`(3~K;rs@znyDuFPktYwvUb+zH2dD)$HWpDmsKuSpG@h6T zHFwqw&<_%0Y-=h$KVLsUf`wEF6C5h`J-|FR90XZ9K+MP%23$Pin+!a+C`<^dKck@( zC^n3Rmn19+-mKXaqpk|6{ir!CELRA`08Eio(Q1AWH3AY+-w=m90^(5e;94`r?%;k% zL43b5PAv+fV?nDj2zm@fH1n(kYHygRmM@Vo;MI%%2U4Ht@tUZ2&Mz^wGMp%s`Vy59 zC2y5j>yn?pi$D_`D*Ma|ndD}vcWz=p?fo$X1q`^g?!BjY-xn0mt7Iuoi!3%^jt{bhLV&HMQXU^4pS0^pswh%t7!@G&bA}B9 zzzUMafQKB!4t}2f$9I59%|k~HJcf%vhUOk1fI$`Ar+{{y#+6i-p+I$i7wUx}b97Sp z)a6DIoz=7x)#_i`j33dWy?961L+WC2Cqz=_T4 z5**wWUYgIAFEBU@`E6B%x)mlj25Y5|EvqV^Jd`IdJq^50@d~w?5D!Z-4=Z8tp2aYT zieRXq45+zLhKLb2{tQoqCfCh*MrhpwtH1_xKn&+({*)$_FA}orLqUoLX~Yx;$P{5T zHa)*{8M7(aQo{Uu56A=SHMt8_rk@OsK&Fu#jS2vX4Hc_n0o;7M$mW(o7$^H+$Iwm0 zGOD^k_wsw4r{zgr_Fu&i+J`ZWGwvhej|yOf;2cSbBFDv@MDg0cawFeLQpLD)XG}x? z3yeT>zd^cx%j>tntT31#_21#&g!w>X)PK566bobVzwyCB2UrAgU16LPGDq>8eXbH6 z3Fbq@P#eazu zAPC1}0T0DU;xnchnE@&+w#_YRMu3XUF29E4DxTI^`5FC*@sDe4cI|;Ntt5!#^%J^Eq@v3l8WQ(^IJ+5YFScVmMX6EbxM=y%xbx$LT2Rl zszWv>5-!9a(LRAXueaJ9cPIfl>8rJKIsfyM>h!YaF|ONBeXKZ_IF-fr^jpWgDPB8{ zxOBvq)T!$YIUURMD>S`#q$aIK6?okmwzIrcKlQWm-I=9t532{1)I2`EFn_Y(0qy)U zjISW-kXNo%>1e5)htEtcOWnu1Oz+gcAC#A*c*{vr&`|&Vi=3Llb-ifZUDsFf!%tO% zB5-K%&YlzB)5(`)sW%4Yl5~$r9=_a8b~-?9Pi;sT$qFy^eROH6G^6q^>&ieOiR&`C zgA=kwKgnp({uD$>C8D=y)qjiTFbDhC=F<5J-l+~(C$Uw+ee*OzD&9#b;*vlC&Ska! zT2hp_C_QuM0#VTFHtQ~D@}rD3`!eCLg#oC~ltMc(_P13)ed3RHF!dl}s8nj;7=IqYdZypi^Gs%kl$z>q zfhvnT>_1J}6;oujGkss&Tv=#(4SmYFcdx-ITKiKvdOez7=YQ82wW9rl>F3T51KB>; zqQlBX${nqh=AY@<@JNh?ZHmMX);9I&Rkp7|X>|CKJ2FLHi=u2+^mfim>wml6D^al= zTpZe3plDKiXCj0B%!iy-T-Gb2IK|Ywnp8&JEs^%3&_C;t_V(uKr%jUfPEUT6@qz|S zs%*-b%r3{ygMZgyv*%6irFRdjZ|U%D7i!mpIq$pfq}ZMQd@y~v+|qx!)AeT(B_gg# z@0@ZpIkfz{X3iNNRWs$`b2#JKjW!N5HKtt~;Ed?qrYLY#)q{*rgb>`2NS4 zT~K2|h<{GalYQ{$c6Frw!;(hnK3;{v9%Bt19j%nciIr)E*@mnIdkgcsCBmoU=aJa%g+Tkk=K4 z(t($q^ScU;N~tFnFTaoWyuMO;Z(asDG-5>ABA@M4Hgj27809=3ixgahGIMKJ@DG-m z)dDF?Nhfvn=P#`#cU18VEQ*VpK08kKEj2GnX{nQr=uVKyH{h!l+V638iY6~l9$;l} z9)IK2oVwU!`BHz;FB1xRVba6Zh3*oe{zom`w(0wyG&{_emHDw_e}1cz^ohLMU)_6@ zbw0d%6G;8;nBYKU@`mbUOgbw?PBLYOmMH4#mIo_t4HzaCOixU1Uc@$z``&|_DQs$* z_}9J_ipK{NS6In=+{`tO*jC89oxHbd?SD^4B)i!GR+pIbPY(CF1IN=X&&Fd$rO1WL za!N9HIcn|Jbw2IzsVAWA=kdG}8LO+*fvrmdjqKMkK+JB<&;`^#TE~^HDM!B(bMKQZ`cn=3-HT{p=O5T5n zmi=yzN}cTXx?FE#gw8>fIxW0?pJo5tyN5ogX)ay7{ACq&XV3hd3JyWH2O+Hh=iQlp z{Z8|*bha59r0z8<+Oo4B&sN!Vga4ssW@*k;*R}^P>Y$eS1}IJ6q0iH}Y=1cwr*PJW zuerV;<=D_qdH#CU^kQxAWunjHDK`F8ll~~TO#h7+`co0P)OLAP6!b_}@KcRRb>zp9hkf4l0@ zCff^CpM=D6-oumrr$3PWGtif@{ca?)TTxJO=cR3FviX+-xjz_@1`|S*E|OH1xMXum z-PUrSmYthgp$0k!dyhC2S`5snRowjNk8gE{m@?&o)p;{#nt!UPH-C_NGpO!!4Uc>@ zTDK$f)(MUKMawH1ycf#SU&CZlnVtUV+B@3Ahd#9bzUEh1wS>5lhHI}PpIpCLU!E%H zbWz(_(qMzU>m>QLmFd_kzUjB!U41sovCi_7K-IaT(%S6iQMc&cp!kee^V_PjqO^SB z8!9?F1rJMip$mHR10;rvcEADPfqp~UzX6jTQ|bz3Ze(+Ga%Ev{3T19&Z(?c+IXRcn z>H-riGB_|Y3NK7$ZfA68G9WWEGB7m?FHB`_XLM*YATSCqOl59obZ8(mG&nFZlYwt1 zf3&(~T$EeeK8zqOol*`+cXxMprvnVlP(!yMB_Q2hk^)LdcZYO$cM8({$GxBDcJKRn zzrH_yFdSzd>saTy*7aei$W=9%#LOK`LDCLj2ooDKD?dO{N!`I72xentQU_VO+5w#b z?98mJoG4UO63!qX#M%KY350<70Xz^Ze}IY^1eyztU}fb)p#sQ&z#wO+(;Q&x2~Yw- zfSR6;AT|Ik@Gqe1-~wSX1-d}pAh4x17(@q6k#KPIbhfs%g8Z(*!Nl~t((i0>W`I1< z%+|r(#nu`C1e*ionU$CU$`0;Oqcwom0Sqt&Spn@V01g%aO^_}?OG8Rs10bWWf1;(T zLB|X&tl{eD=-~W6TqHC!wPY9pl48o5QUH)PBS1z=L-Y4vO%NE$-;xoatO@o1?gI_{ zovtLMDW<8XD#ga~dkp|KfE&o!#rk*K|KdgsWd`^|4Vr4<>|p;_0|2cR1meig!s71k z&TQ%G0%3M=wq$m+`-`8Zm9-1Nf8D{^76AQp2HAoB62=v54wVyP1^TU&3o@tqn;-}v;p*)CyNA;Mx}5*h=6|V+J3v=vXy@$ zW`=k`{)+xxPfSvgAHd7X4PfKr1h7JfR0?b^;b3nMW$l9UTRur^s7??EXHS;@JJ_~h z2Y0ad|A)iE8fDc1i%UaIRQW(W>ze}8~!yf zzs+pF%}^nHy&WAK0Tw_z7m%;D1qk|q;_U)-0|6k;t{`9Ue>(n+P}q0?=GJBq=%_=F z3(8;B<-isW0KUJ?P$vKD`kx`7{p+aGLC>kV1K7?JU=FfCVNrH~e?Uiq_Wz%g_FuiE zUG40Yf%YKU|D)-D2LkP_?L7Y-`d=YBpxm7O~%^zY#ZpMf?xq0kBB?LA(GK$v=n> zz#{b@#KQ_;k^Y0&04y?p5IcZH_7CC!u*m&EoB$U2KM2Z2f8h^;a#8$)pj?#xASf5* zKM2Z2~%|8g*UF#2m_S5-;p#60JAZS0m{~$hSB=8S{ zMw zZhzXaaX?8}{3*%xJKe$6`5y(LDVG0$&~;e-Srt@zD^Eu&5cnSvP@DBXAao%%|A0`@ zZT|tGLfQQTLh1fvF>FwBe=2i9Q^C+P_zyo+5{Exzf1t?@|8heYUQ_?t zP)@f0vHp8Ip$DJE5#(&`@MnWKp+Y#?K`+2R^`RE0Kk#>sldA&+^zTw^Y*5MmAt)PE zpFc&oej||EKLq50hPzmM{OJo_wu>Fm#p)j=pq>6S;DRmzV&x3_$M8Ux3UPP%M*_5l z>pvh=e|5KiK&Wu;|CkwQw#Pppw7lm(AXHSZKjfg5yg<%>xBB;UQ1$n_z+aaf>z@bX z|GXsqg*70~4z?g2Yjfxe;y*%^fY77mVZaK#q1d2y=+FQDXY{WIRDUkle`Je`J9v0A zaYDzMiJcGnJmrKg9Xbd+zW>TK`}=+6uiFv&e+2(u{QG4A00Mb{%uwcM9LxlQZIbIk zO8lhq$4cR;_?VB%@r8BeV_(jvjWrV!O6F`(fJ6!czXzmK7dR-&@*DXj27-%psem$XDt`PlR}#I8#r+fs>=c`)pL~}W zf9G5OF)|-31cqr2sMMxrg#!@055)(iyK@Z`K~a?&;g>4WT@3Al=l?ze9>h zAOoi#wlTvF<%c|;u*joG@h71L47?Ekrm{x-i^USt7!FH`kkp1R22P**y!=#pe=oS0 zkQE>vt{{$(IUQz@TqQH9(&j9+@(ZbU8)o-SdC`>~Z^ytI_ltAPh6Zp089IsXbV3!q z`!N%tSTa2a>!pu~oGI;WeGs?SW4l9Pm5O_ReBSM@F z0r`}eIrT;QJ|j+C+n7 zG37??bgQ4Me+&;qeW&aAdO(GtT&uWR{ZV^9;$brG=Yrf*cE&>jjt|$}2N&^}=pRZj zuR#drD%4od%9d4elmt%HTWfl=oh4#9#B;7s6|^CuvZO28MNao!YDAvff2SgN!qg^n zqB05=-&qIsk);fCD_g56pE*Dk?-du$nkeZ>3(47cK9X zqrg>+oyM|#1xv8Azfqaae^9H%(?C5S`Udg5B+ddSY|EgaUcQ8TtR-!Y^o189Hu)7@ zJow^r6igPaBVxSQ`JSCvu3jipIHS7@#^_KnKkxlVrjH}#azDS^IlX{428^WC0Hl;q z7=0A@IGO{?G0sRx)h0}5zU$96IJ&+Xo4HU$Uo4~QlD@ThN1Kajf6r7TT!`2?{>4m` zU5>%=ZGzJH?c=MBUq3Ai$Yu*L4nmryQOymC{e;p}@{wUVT%KL!2qerUaXODPkz@<* zIGA*qK0aTLjSH`B#ljwK%uwbOp8SG=*HbjcKvcRihSMtL=xx84zT)~4Z^itRY9ep_rj@P+-%nKnQ52cqfCHPjg(IHv$VhKaxSDB1Tu z&3O1|^WDQ_b&d-Ddk13b52x?f;y&`4wsQr3@i)8&)2@&A+hQ8~=<5|yaOIkeThRuu={`B*e;XLlY^>lfTu}~&n(T`u z^P7gRqA=&vB?U+t=v3wusSV=gk#s7yVsL%*zaI{`j70HCZ=-4GZ2Qdp;tF4Tak}wc z1L9NkBL_>e_3S23%m_W}aBa07?MZ)t$$e-d0jTHF~%3nWP2guGtb@I=_wQ2VYXf@X}e7uM zK-UL+MfLIXhD>|CWw)E#;Gl53qzL+f;beWH-s0xLSugY({w&GgU&?iiV!{KVFQH1YA&^ z;9fp{av!TeYy3evKpfLSWDmmb^d?(*tPmEqX;ln19LlfQN2;~m*rf1q=9=e{|0iKn~F)W-HM7f%G{z2K9z zp--B7RP{20rpeES_$cOm*z_3?^-vxv+*@knYLWh=5*NXi?9jaXK1$O!9T_5~V&Z|# zwSomUfxv0*&aoFnj0+00vqWn6>!=1lTp77D)&#ymfL;@@FlJG|HubVit7vV4ofI+9pWokD2WY=YYi@gBO|;gemBp*)a_k=+M;7B9itEn}tgNVOPm~PaVNE@S6URoi zbMn7Hf|m`T(7wmk!41c7G02e)*Ho|EofS&f_Y_bUbB~CX9kh|{OTJW$8=BgKWAp7~ znH-pV^X74QnE=Jk8pSmibf5Vue{RJTvfIE(%&%Dt)WWmJds8Yiqd(0B>o)SzW0=6} zNoU-EgwoHyS778hRNmD|Ws>r7&O%Ii`fQo;S=zodHYgJ=dUmMQI=%^_HN>MR&3Z4! zGi~CA6!toRzWr!LI_5)jS5bme+K%mVFUKiL8;E#PAKArra4?5v?ToHxf0l>&LhcUM zvO^Rni#@-eh3Gx8ZmWjn2M86HR%vgBipc``_(r3Mps$>>;5XH5x|lSWbPK8xjjV)m z1Ds~aNGtfkBCh%fmpR04*W^u0!Wa<~1(}ffnCvL0Hfr08Zs0~i6TeTI0%f~gb~O+O zAV(y-G6CmwXA4^h6Z=%Df1y}NyFC~E_`xDvMEfg=3Bo1%#@UA|+b8}tsvJ!gG=D4N zvpYV73oKmkTj*c{2ZyE%WkR2g&+R8z0VQX>}amAY_;n5G3OLjoxB9EPTW2g z*0s!xtD)c9o>IOZAbxutlVDUn7>E)RR+ob;z&pBz9_4bKHARhlg%-!hcMOYuPn)k?i+P17p z9i%rpi?_4NKCA@hgl0*C`DI2pL+~(|wpr8TU{tBcAxqc(5RKBn)o{|EF%1=UUsRo# zkVH8_(ownQ-^ww=-(?FJghPawB9*U}?ZjRD-iaf%pN&@~mpTo{1jJ7r%$UON&WLyT ze$SHgIfFXZ`+WTFI_~yIL1f_@f|?_4SXbiW?IFZX$j3s{+OXFko zul1m)>(GJEuJZ?i&X)4pulXKX#?2ml*^%vR{FISMfy-VZ^E@JH{t62Z(*`ZAM{l(d zOe&xD>^^>Gp4uO^kit{$_=d_BZt3nYQHUHgv}S`szL?6?5=ewB<=u|vLv6Kg!GTx9 zI^K`Q#CH=Ne>$ZlnwUowG0g9Zp73M3bE0g9Yr+4Cpv74|X!M0(7IFsv^t+~k&-AL_ zvbh~48Y2yof?wp11SZ>)i799CWwsB z9HG)XBGaK-+{e?Jir0oz$o+VY@STj+Cg<0utbri;f2fRf9{Y5S^yB-jw$w`>dCsCt zZ5oWG5e`ILr*fQ(m{I>IME*#bDUTKHi8j4%XOTvhj@-%; z_G(#uyio23V}5YKvAhzG0h9RRcs-hzFVJeF%k`a z!`_Wr?Qh(&+Wcrh?6(7hTnsR_{%>;3JuJa#7BNa1fC zR}lFLI<4hk$DeDu7~;R#cd0!0L@e9ibHZPmeoQ3tq(}05 zB7Ua&Rv&0)G^6_SWg~9a{^WGLTZ)drU9Up>tM)6U8(2l!Ya;s7?#C_{dETuQYl1G< zf9ji}`^q(;+!*YnC?v{+p?-@kOwdXjjM@pK!r|LvoN>czea%tsZU%~Sx1(JvuyWL4 z+P$$u=TWKk!Piq8_jB8(6JKIhD;h533<8xLVNu0b>Y(fPuDc+Wx9n+2(Y$7hYrNC= zcRv`M;3G$p-TL=rc(;XYn@b{-xipHgfBKh^VA5&v+ic#Z^M^>3g6!M`j$vx~?&@gH@IXB*YqbX7B)*(utyCU_F9DLFU z-|hp4zj9BL*24rIU~{t5i!HFb*eZrkXi}I|6X?LmaqwtFd?$^Jg~IN7t4l06f59lk zmc%fuLpx&-Vwy%cz+EPKv8rq{Sz7Sgjk0#fX|~Dgf(*+H?h_h^sI;M6OBu&TGw(@g z=xN{GO~E+YO{7b7%bA#VG}^c_M0>V}=mb=lfxQrxSLa+c$qe*j+N$fMmNuY`S+{5!%%9 zgQQHJr9%oiUX*qijrC@ww;jf(4>r}tJQPmSV{(SI*Q|`**Wt}+IE{cZm3d@|+Gw}j zqO>5RM#eaN`o(qF;d;1U2^FPTI_t>6Xne(6qV}ZIL*^<@n6DV2H*R{)e`h7sUbI^Z zO*ElSjGH6Yy<;m#bp@n5mEsqG@BS3A{1P$+>TmU4OEGBG8gPb8Ipxj`aKOh-&t7f% zgh-DCxk@zmOk{_B*;nh7VxlNb@@4P3^hy{aV-o)rTdfpyzM80GVXM^o0x{B4^zD>U zjcg2XH$a!byY@lNhvkvXf0|^G`#M0`W8vW8;+I`r5^M6Zh3H_>rPGxxWWnesEz$X_ zDlOdanwe5rjVGPj=V%tq9*erzu_xSpqA9^=>f?*z%XZom$;RmCmnM0}>5o=sn)Ye(u>A_JfX|^6aE^c=y>6XDdsl7NM0md^ux(>Xh_r_7Kc3vr#DhMe5*O(FEmnP@&x?30x$n zX7v!UpXa7HANWe*f1k*iSJ)6jSTys;Wn03;bz~0b6t1}wpfOQDN#wH zVx(AZ-W!)Kal)c(u|gBU_etZ-6>|XRH*(Xu3A`_rO^R1VEc06&z$}|%g4isf96Fs2 z1T=+I=Z@l8e_gDqRz@Ph$Z0!T(}=X&{%C+-w+;{zo5lZ zN@}HDza51)KEIykHS<3K1<23;^q(Hf-c~yoPc-;w`1;-UJ=Ws{f%2O;>(z+h+}&@e zU~@#&X-IJ7hvxdrS(UZMvV0V_{Rx2wYnt(Xax#8af0$jOv;Jf=Yf|h0V29(kxkVy8 za3-ZG0K0@B6s5*n&(*M3yfSQg(z+QWH#bI=w2~l*;HAF4As0=fs^{#+^O-NZe2qR+ z1S=~eOXK7esggXLdrGop_#2ZR1Iz(FB_m^R+mJ?qJlmdS3i#Up8TMI^kX$|?%(vqf z4n66`e@yOdsl#Ck#Bu1v7Jum1UUgHgGcbh1_G-1Y?Zu-9I&u&uN9jw^eeW)@G)m(tg5bDDHfLVYgz~(`mE)4wTi`fdon*IpI@P=x^#`6jev7S zH}0cevFidMB21^q1Ha;kEe*F+JSSEAwZd!He@tg$Z+H{Qwy0wh;~Pv7I+`-1?AgAi zeoMn`cP1aFcO`%p{G-ykg^i+Mq=8!)%sj+x;kY%Xl()WS0fULb2Q`EKv4cnIR5#q$L(<02n!X->3#@%`$7#Bn3}ixd`bGA&)z8;CM~snEYR{&KQ_Kk$K4%%SFI z=i$K?AFCC`PkF=guS|p9538vuuybBd1Xq-8Co@mn0zJF#vv8B?TXP(_TixZ2f9~nu&b22&ENbxO5J{51#1a z60=*Lm)$m5d+?W*M`aTJRsZsrIdP|XHPsXSv+cGY63v$5Y_6u?uzzVs%dd)JN3QL< zi{aHnQC65)5||7wA8L~F%8%A@{oBu1o_l(rE73rh8vF*pm$h65q`IjYf5|qu-YI)6 zjocQZM@k4M(@Axi<7#%r(@$eSG6DI*vMe)*JD#6xr2TVi;Wzl|=DcezMG{L~FL0{W z-c?Z9j~6%Imo0+`2Py-r7YpBj)E;e=c~ThQ)Rk}te_@#sxF(JD;==n0JjJvnjNCx_ zoke+5Tnj=Hv_-nq3-EC!e|wh;P=whdQu`3Cm%~mdGw6sC0cB&>E^(vtNo+8}k|&;D zP0@@kF7cEi)7XXT7STm+0HmH}qq@m5)KSG;WUF5;Z^iM>VvBkG$#5LUozUn4Zm{MJ zx}EI0qYB#_H7U{=#PWS4k@o6J!q^vQlqqx=Ja3As3iH!ZH~2Psf7}CZ12v65sGIDY zPOJ~X=i5$8Tyu}H-ZP*-&KEkv6w^Tt&L-{P9Gb2Nu=`?toc5#AJjDvB8?k!MxgD_4<_E0C{PW%Ua_ zqx+UUj<}>NP1ZIWu)M1ug7|POBq_w&M5eS2gxP$xfr+_U+Ar&qb__fy%Q_s%;6pjs zSn)sUl(ZRzkT4KG2`+a|Cnzut=w#QqKjp0@0k1AYQUGK+lBG(bVjourV)y|s(MW}lwwP>=|AHy2J2TT z_~Rv^Phm^{DYkUoTfQ8#o++dr;FM*CTv_|9>}u!5n6b(r)29!+jYLHfPhtI)5UWGl zN8?v5w;MulE&+$h@;m zUe;-gpD>MYXfn61=0&M;>ig_*Pf;{S*!YIB!?bG z#Jj>KZc!b|R=Um(%XocYG--sbD`AP1+l#cp9$JXXKyfxYfpX7Rfztd?7@7Hm-yG$!Te^hI< z7DVC_dG;N%f1Skk6G-pnpj=27cZ%w=o^Lr}}d2tg6&2v!` zv?r^B%&reBK}PLOEfsBqrQIYUsE$DbaYN3uWsIM!#som2T=H8A9*&a|f2)`bTY}T@ zkpg4Xf>st)xZec%g8gX+IS_ogF#V{y@ZHzKZM0ubdvt8ceGn=o3=>; z-0udCCa)p{VRWaoRJl|z79Md|iM1t-BC>6~H1K$jO@pcvQlX^@E_{%e>Q-iubIr6qgMkg22i&$WfyBU5X*VX@7()6W%pho7S^a29`Z&L+DfA`C9JM)->2iKwN z!37&zUzSXzl*(5IBmuwV9!+`j*d%2MfMdh*)DrYbekxNW%kO5kaNyH)@3g>|oXdm8 z@|To5{e;)pH#Hzt-OBjRFGd;C&CMh75TP9bub{+hsz&a49F_aX<71P$X#4+zg7<=eCL+1V7*{24=WIh z5v>Y0<;ait`Xb-S0A^gyAa$t3rZHCL=#*|IeG;{#PpWJ?f95UYO#iz7gR{bm7;!~! zzU7ThHu@hck>%4uNil%x1{m5dmr2QJ#DH6pg3};oU;E4bHG$!S3E0v`Ct2aDR%M#n zI28@Y{SJ{^SK3yDTQqBFnMj?mScGtdupxtP?1l#^6fCsucrXpR023c4mk>hDX^vgP zp?AlxpDw}Jf6Vs9s^<@SYomg8;usps#05%kGvs%PW26UX$4a_K zKA%t52_t93HL57gqbc`ulL}oK82oG{0FAsJ{DxMbE<0`xI)ezlV+3PMMEhl2iyEJ9 zEK2i(HdGGWhbB@fHe!muPt&&c>oQXBO6%K?gvb+>e;Arh?-D4UeKUO$6IU3YsLAE_ z(nm;En=+|!c@(@zO*H+`*KSWf^4eR`+chC-&Gj33J%1u`a8eJ>mtmQvJ(?umoVTOW zCXePBf*-2SErn;%1wO7Fo$&QYX&1~IIjBkXEc`&bN|9BwI_>I7fdrv0F$W zMAsU|e+N}bMK5vKRnc87;eU40Vmhmfbf>Dhrn4kTN+Le^Bq-TqgWRWbl=;V*{VK zQSyU}N6xdk@jZr2ntG|B$4<(Sw#U?sl zY@gXXE+UlWu<%z7SMZN9Y8Yg}an#^+aRKeyQh@DN<9baaDE{824 zS`vPTj+m<;1he`Ft*(+j7n18s6kOBx$8i+*=UD=4lQ7hA z-sZ-ITr~%O#v#Yg+9ubH2ay`(B^@kz`!C~Y84767(2O#G*l>cU*&!m;+b$<;TVs~ZssGGfMbk#w#b&0uS{+(dYFje_-Du=TFqE7tR}2`u zW9u#pKt7~S_^bR0-9Dd`V}eO)f8##FdskxVzGQ}l&34JPrm^QARcngl*3m$Hh}jl($<_Qh+! zRoJ7gPz?0dKGfE=~P0`SG`G_sLf5?p6W=IgtdN@np zeRz0{o)%WeTmDWtP_+l=AUEbT-t$q|i^?eVY};5pB?kFxHJzu;YTv%@7N;naH`fDu zhw@L=$7LdU3*6X(s&7fzFC0xVuP)2@PUgK7Wr(d{sD0q}rxL!TAf33zMcRM;swy%2 zq|#(~BLXTqw-AgGf8L#1bI}ulgbwkct^*NmcJTB9HuyiOBlHvCsvs{3PH`i1NDmb8f9}Gjuf6IJx7EBCY4@UYr=_OT+ z3NAj1H|v%Ihk?ipvi;oMzB}q!sqCVlSmVgG3u$WALA(z8ud$hnYYo3jumEf znUSfMJKHbL7R<&*Z$HQ)3KpR>;+e?96+ZP8uPf^lJimLdwjB^%b86Al{WkpCH}te) zpUa&wMgaaDs&27JbJX`4&GuS*HANLqQu(Fr^zI+&f5RD9?CeqsxE+SZtgE`%ZZOeV zn1p84qhQ~F7rc+p{ssvozKTTl1?AIrWuNq(FkE!JgN%0-)~__!Y&>nbZ!l?Fmru=K zvpiYny`F(vKj#r`agHhkn_-y{DJUM3bSu72So&>So7}$7kBovafCtCcnK7lB_ZSQ9u%dtwt__5a)CxM1 zsk1c>N#l@{Nf@CU!LPYRWdmlgRbpljo5*iif6mq`-G^rb{G0TXF}Am4>Td9yD(l~T zDn)a;!6y!ELXlrq5tmw;YZV3hiBG2$UW#es6SqloD`iAS_`RghcUl8>S#9cUdqsMD zp+6wUIy2+$N+|NHaWpbcEvS4Opv_JFyu{4vkQg5ye3t5aPaE5-MiuQ@wk9~KH6M6O zf9iglyo&O@KF{F_T}kLH71JM2Sma-;V4;fm!mB@98~S-~JL{I&u4AG(&=|9G=tlh1 z1lL|?jMmq5JYOb$-DQmZ*P9>SD_{4}bZe=1WXe3bdsF>zga)#CoRB7Afd$5MeLnAI zA8{Nk#r&7qxJPky-A~I~#+Cb2D&N+7e<+yuPO zwO9do6TLT|m?I$HK%OR$Im%wIe>?J@?{VrlnUxXZEqkzBxD{+CO@z_RmNy|tAq2z( zk#CiIknb}^UN`Bj5iQE8((nRdric~X_SjzjY+4+E%^f&X9N-jPFRm)@SgNS^2y%JH zk&QQ!ZNCykv0_`!&(C-p%O8!zqK@@@o92e_T@>!lXsR zPzT|r)=1BunfWu$H-(Tha|$Y};L;gaqWm7mCv+89zBPmE{m2aM%?wtr6wO%$-lf2P z(}?pA(!0{fv_b8gftcZympe!kl%-XqgPX`}m0k1wWM#KNFrcoQLCuFuyE;OxlWr0j zb4`&PNW}Hb{HFFzTi;ioe~`k$2n=adS^ANz;CVUiTv6HgJ9)`$&lS7Xp)cl$z03Gq zR1@=w+XP9`V2RV77ukoZsYwvUI@NeY@`!BNa@pGJKi7V+l(L*gI#7Yjko%U7>cx8@ z&-R0%HA3EfH6Y*GDM$b3CEd5S*Zw4H5lSIk%^!;ox;B47l%h^M1z#@EG7-F#8oe`i#LFV*25wNN=Bx4mfA4|Lj~E_bm~P zE_aR-Z!RFW-sNQ{2{-rY@P)iN)l^?epkmh(T;IG)G~9gcN*o1eSJ_9V;f!?w9okZz z+Zd#Eork4N&tdy_VfgVK`Jv%f>BmVnOKDvQW5i&}#jii^e^1};!HXq+AVTpkBW|EI zr5k3oZnX+eFKa3keCs~zx$p*U=K(nu1?Ma8yII4XOiQj3y(v(=7;+<_1d<_5r*)rN z8U2&QhCvIu>n~Icgex(h!XaVr301Z_v-1kVL=oasT>eu{*Qdg_dBjv0=sv`=;SA2m zp~2^CxRxt=e*~fYl3DUA%mIzb+RGd-es&+4cu9|+YO7?*BYNxDgp+mbe_p#Bb{P!i zAzEb?1L%_xBj@?aRLuGg@hZO7NbjnuqI;Tng~%5kQM6?Gg(*zeeqe!Rz54lmAIGMO zUnc@<5k$k84vsS^D;`i8?ZTRu@sx{njL(?m4WJ`ff1Siu`b^V-pqwQ6a|9;~e>1#}-=f7}X1so6)wDZLzII5xO}rfCaucl*^A?QLy=-*l)_nowZ%#N+YdP%2Z0tGwF4uI6Vo zux$;G_9&W8MH&9koisvA(rm$pN-SIgVPO6{fB5y}2`O^cE&59$`rFXjQ~%nzKK%s| zB4f@lU;9V$gIT(f`fnbi%be5XH1 z3W=ihR+4XW$imSIVS+t5P*A=+hI4iKTZuNpp@5G(lW??UMPDfVQqelvl7&e-&mqzzYytr;C zK}d|}yVLwt+6@Og*7jSQ89Dl&V$+m=EIRk|diU@5UB6A45Bt>ZpPeIUr{aT1cuf66 ze#pY`GC15{SWSDN6Y=Mm;8f75mn?G)e-aTXvVXluB$0u{5niU*aH4hp2v(PSXTlQW zg5%f_U63l+5cJRj)Kwlf!DXVw2y-#-));Jq;Gge*|WQ zo+BP;q!LCvl}pO#NGj2^eRF1T%P|OBCYQYwy1oM9qaYtV+D$~x!ehelV$xh_<0Kz4 z!gTg;jjY`rrYhD>!_H9UI~Cr*EhS29bHJFE>@V11#!QAQDI4@t!pMEKa20s1NY}u| zJM;+Z)MukrcSkGplH~u4BZ($C%!YK~lg>J5z?myz5KKmf=pz#%FGz&Jh)PL9Jq1P|?ND+A*y#~kdf7+bZ6_Hk*i3CS%~P_E(zkCyOrx5b4iYS+-PH_bdS`eoh;m`8FpUv{AKf#$tC zHtcEnBrm~i4^pjGoh zy@l>0=??Wcx?T+hIR9>~e_BrDLg_m77qfpH2~jQiEH5t5Qn^T(VX>%Qe30LQ2(spa=D zxA>hEjhFM;q>~(}#Dr_d3j|a_+AB`*_YuKp;Ub=wZ(mA`T^ijUPl(qH+SkA3_aH{IRPK``o{#mM`+Mrc2RCH&e6R>irNtz2_J8@ z_6Cu!Y^yD`E{vnTVj(0SQ#t61FZNSBO1s~cX6oh_m^ugf_>`^7J)9GS#C{iwGqC`J zpXlvz@9@ZxK#bM1beAT1AAd-!3mGpj3+>hIU*FcNm`z<3KNs5Sv*bAsCwreKyVTjl z)vMiz`^tBX>cy|SIfKr_uFlaSS3$vxR>y{ebzu-x*A50PAu;PxzAG z#5H`0+mppGh@h|j?niLu(LAqfdJ(4boa;lKl>ND!w&Zko4FGJ(N1dDjC5ZR4Vxfg-YG zqrHb&@k1>6J3HsDhSiHCKD3{-{8-vKS62$;%Z|xQE%h?1?6HAEU~hs@<(is|BvvODfAl{iE^My5e4Baa>pp zBeHOxVzUd`bNRy;wH{|->LEH`sLXD1F(7@cPk6%vLr(RF;a-q=#;@lC2+k zXnq@cgn#K3CZ-@YM?H)jDoViA3tuXwB4KvkBIDG1Za`f2W7xSq@fWw=lLyZZRtb4} zGm9lhnPiktesDBWRP1tkH5S0TD19J9nUg#>)8J7ht)WQN3F_?o#hjxROKL@=pOss{ z?YvVs7->gT8Dp3!vhxT(+T3HEA?~A44ZcIFg@1*d^&+QZK^t~^wk46{B&y}6lZx+_ z%k|F)9@o<3M!E)N6VkdSQ;Pog)89Q*5DRkk9D&@)p|8 zZRkZkhI6=PSn^_eKN9VbYaqI;yr7aza%R!u z)!8YXOI9JK^yG}_=bKz5%rdx2UgQts@?RqMV?JPSBN_`SA@5R$R#408a+ZFs5haS%^*v^_8mK z>k8q(pyM^TW$r|jPeRNRurUS5GT-IV%!k57mMQnM#{4I=UTu^BwGWN=Z%axN)qf;v z!+v^`=hhL_e8Ic8YG-aTgoJYif$qZwbA-v9+b4ZKF9k8VKHkj{rU6 zrZ3?NyApw}2P}Jel1lRNHF7jg`hVgZOl^qY*{Fgj$OpS@J~R<1&wm;#U5jlxMI*1; zJ8t1`(OZQ0TGg=RtDJgw>cnPa<>l>ub0fNlm(&+XKDXw2_qxi?l6J|dAd@aNQ^Kt_ zmgg*nvi+lS(J?To&vq!aWrK(eiz$DQoD&nQnQ1S zm(}dl4DP6-80?9qF16DL-+!S`9qNo|lyHy#1IbFimE@9ahrPtL`-*^kHZ&WK@ymp} z;BEQcNs%u{TNDRA)90OOa*H1C zb4AUEM4w#Ia7Vo;eszjf?v=q5Lcm^d@RDf-&kqY!K5FZ^Y)Nm0q@RLRWfI{3G|asT z^Z4#C{QlUhC{?y#){bq97VC?HB&s|$70UdEzZAWKGucNE=JBf(g2x|~K6QtVx%*;d zX{BH5Yx~*XUW5}@AAe$_t!`UH_-+Ye4rZh5tiBQd8c?^D^@>`DV3_l#K?nnh$zT-U zPAsPBiYRvDDaVp~ypAt2STkAm>jRZIrz0OtQt~33g^x9-?lhz)!8b+oy5i~mhY`G^ zsh$#kGWOkUXRc^h%oo|dHaZezs61NX=Fh&@?^{-5^UX3K7=Op{mVR+#m-EFBMmGgj zud6Ro#lY8-Nh^gBt|jFvI7bmk(tNSbH?*&mxjrY=IGlqy3-7DT)8y%fRPuEe_T!iaYeOabyB2|CxvxlsP}eSTvtw?Ikg zC-sbozOoGtpHbBP*Se(ZOnJBv&6U^B*|=0%l2n)!Gk@h;r5}jq(Xe!wsNZSdp2e3Q zM%H`|kojWrMtsHpJ@&JecBXd3Y>)WdQZh}U^SOo2ox6N}y6ky4O=2>? zb~jGXg?}~(6gZT5CuGt%*Xy-)YJfeMcKWdl4B?2F^EKy13*s)jztEg#X4z^}T*-eq zbiO~N4bR@J#n@v`68yRK^vNb0)lZaFdd>Nzw`QSSaAX#6E$aAA$g#zgB%ad!G-oE! zG~1@J-yf4hyP)<{u;}5zF_V=#&n{KzF9a?c*?-`pI|z|R7_J34$dfy5WN=IQE?jqhs3gZ%vNaB(K1719nPQq(%;?wd$qMkriqy zZ!RinUCfOUN#mRGPplIR5Fpq7*eeH~_@Ak7DJxfTLv_U>jtFODiWV}PuX10hB387r zZ-0nR2=$tEWV*k`qTET~DiVdXuKSP5`aV&h@1tSa)Rw*K2=yX$K3Z<-nb-WtdwJIn;PfgT02YmuGh2&5I4I?tkQZ03gUBw^DK`*zl$Zi?$@)bZB+(4WOwpj0wnUJhl&y^+>Na^d2Ff2MkF^Ioe|?n=3O2#zAi|hF>w6 zU8J^*E&I@BW?1La{yw;+iMo&YE^Dx$lLBcFY2G6EjruGLh#PA$Dw95Fw}m5b^?y=h z238>C1nt_%*R1OCu)daZ@%9?F@_4`vpkLit=R6D%j*;jIJ(zx$2xVI>D%I5YDW*hj z&u(1%8Mp*I52S(kZ|q%-&w~S&%@&+z-kPH}`$U44hj&X=b4F8)K>lBCHk`G{<56Gr zy`HE)JB812)VR1J0z!dQAgQH86@Ti(k5Z}-_Fwy4CxPN~%H3$AagS&HjR}eVGkrtT z_=&qxDWN~wHk@^n7mvK^&K=(^IRD*;Jb{!{0_QVB*NGe%&}u982v5~)Y!Xq9fI;c~ z=s?8$pt3brn^0P!x2qsjR_pg~``P^(l%cn3k7_aPR>H+4w^Qh39!;dBb$_n6(kX^& zLN1`hqL<`&E08zgtYyXfyJ@@Xnf zo{6#s7!>$9f~C4)xMRPbcp7ii*W_A$h}s^c({KT<-M=}E;$x0`P@_sqH@1gB0~X;(t+5pIFmGSV1kPGAZo(wu|zU#_m{F0Z-x6%Api65PsGi z_Q%rtudtz6ZOc|4!AgX$dwXC!|4&Y$q%&G>ikum~3z_ih%B3zqhvzz2y5!0FNi!2b zL!aWB>Ss|nc_fpLx;3eV*l(?R2pZhc(T$T|(^%Y1UY+zaSTvn#&VO{!OMSQj(4P!1 zb?MU|ln32POP;K?A5Px`0lf@@Cq`w%kD9vqbL-LuBeCG6Jr?nKH(-2%{l8n}?Sb;S zr=x;zABA*~Lh^}fL-;v($}Ju=6yh8pxT;p3XuEq{n#Jo?m|W5-7|QeR~70K#O{-C23a!=vJ`1l#z-UmfF=w>mmS zpHuHy>``-eIG&QVt(FWvt;=MclyTAK6mDSyfLqZTr! zf)MB@!Be!sb1w|q#B;|fY|n~Z9}|jp3>7*{`9f?Dl5+|)ic0+#q7-E@m zf1ITkygfJ)K!4sJYZl!aUjHaQNU2H(6sRw!Mxs2wirmuBpyGca7SxeK?V-0alJZay zeepiBXA6X|SDgM>nr7+2(i6@Y`%=Ao&}%$KNTkG9_MK@;#qpW#0g{o9_D;i9sHp_e zLj5~Y@6XAM&e}wi+0TA4dFcf&OLCzCpa-81L!vL7RDTw)?7evaNk!UqTRKLdK6Fr{ zl{=b60X%W^7b(~NRAunGqP`a1E%0r4xW@TcA+K;{)ISr*aA6JI7T8Tp21FNbKYU}5 z;10?9%`00Fqwx2dW{7?K2%*pNZ8~8;r)@7vYj3=?@ zzSD)e4S&rHYR;eFIw*JzH742zHz~l`h=!2Y(#2)ymxQuk79>IAVMwQqY?pxR`8m^*xA=_gBOobt8AwJts z0)J$vO52X}pHC2LPsv?xNF{$d1dzwPu3mo{8l|hz6JB^FMAJzILF@HQ>E@^r25y{u~(QBY!K$n5J^&qwC8y$QiB35}1SOgzO+;-?;~8 z5#*Ac#HsbMgWzo~=FvQ%@ z6nFsG>JY390~7j@*tMT69%yV+vJvGfV6z(iE*4dPO*z1(S1DRAltYs$A}dl(JwA-w38cZkHbRoIrTL5<2f?C%e5qsvm;&K_sa#hlt z&3#NJG_&yTTr+P!`)x|?GG?bZ+<$8l2smt#Ow(Urap8hGJ_J;7^zYM*1+5d>DnjGy za|&Z@@i_7C-sWI~lmY8Irbh?Fy7i0CucaIRMYK-w2cb0OO)AcpOoEF(H7#YFm@q%y zsfOI*KSo;os*bFwF5XZH<(@Pb{?Sw0$|#M;XH$Iqby9yzX5`&FHNTmOH-Cu+JNK|1 zUl?mGSQ4>oOEXtm4CbspJV>q|!KR^qm4h-@3_G?)Q)BMdFtfLT7lZ5dSUJao>#@Oo zn|8e3uDOG2GZ&Ef`t&qGKSMJHkxasFF?x_;)mh4bzCFi03&XqAZ9SGTj}HWpbeFH$ zn1fl`OaoC8*krGuxnRScn|~KKvI}fJyDp7}mO$k)sE$PqRl1UepEnB*n8(u1-#5e$ zzAgPlxcAfHnonJDH!;C}SzQikf9!0UCA+x%U6ziEjDuz0=ZR*4!)j2?qTjAPa&UiMy&Iv;S7P<~kqFOX?E80Yy-VFWk_sgaPVRn1AK{Zlx9%ZAJHn zkVM}swDK&jdu#}~Ofv>R3lsNQJR(nkcsiDKzr}X6-jP;sZK`v9tK}eHwO~+wtW!s) z(RBUUH!!d)5x$z5Kfd$)U$DT@*iB+~#|FU636sSwAcnFJsnXC7-SybY)&YvoG|!u* z*Qj{`k!w#+Mkb>MM}MT6tHhb9eE*R1t^8#@^Az#2N@X47-TPXPWPINAPRd#EEAQRt zxkAtwr!fC5N6zSRB^&@j8TF$|en_LFqbsI>oqWZp;aJ5sql;SJsuCGat~vxqk?g`Di2IgJeoXyuN$gbH?T% z^4u>6N%8e{>Do@Qp{@o;w&0^i5~ejP4?0^%mr3J4%ooaY@U=eP3}>0cA$1A$|;Imw3| zP;~u{WPgB$WifAYF*8u-&L72UFXw$D|MT#07){Cs8qPow1*-n{aW0}N@@X+V`8{I3 zpFa>GBE>7ev8ox1I}c{o`{@TFM3!i1M^c|?-lqH|rcibfj`UKxbjxTt`ycw{l9`iR zZgiY-KS=WZ04o&>6&s!70JB_&d((?|#_{MyD1Ry$tb_X_eBzZp4XzN>FQ;@7K?sKX z*xTGUnq8*Fj3LL*8ou}jwn_;$%0b62nH|czW4!wbc;O)%W+Wj8@2&{f}^+W==7FByOK|Mx} z{C^8v;bdoiv6h~I{6LCW6vQ^YbYLuA&2rPmH8*dF@`5p4L^%wla`dS^DtBJ`g5pHC!)=J-GV^ z{_g04*K>$lq#CfHRL&VC^fJ2u6{NEc0bR>iVMMBYCPlk{&#WIi6Mj`Tt|u(3#D5zz zv8#499-w&Cp#_Vxi*@{*=`WpA7w1Mv7?ZoFl2?&i$7&EA8*zS`)%Y(3^eq}GAbc(# zD3t|&8tnDu(s`Z0qi_IqSd52HRrhEi{K-JYRkA4UHFM7MCTxK$^4$Py1$h-=0NEgx zt?4L@x)g?R`&ye+880a{;eak%vww6?KkH^=d@$C0pf%)aC1*x+g-!WwRhczYG9{^5 zCai-6hS483(wJ)`57T#p`X;K=BX}NZ z(<$_l|J3pzH!Bc-SAq&5zXF*Plth*Oh2u@azPf>yNKHPFu8DItcj)KJF$A)g^(41rE4wI@?Bb=Vge+fq+_?d zEJq8tO3V^MAPChm^!1ZEB7X*cC{j^+fnEk83cVHj(JhL_5hz?%7GP8p6Xi@qSD<~n`_Q<{=)Ytj?A+rj zBa^*9ztgX0Em7Zgz*~aFg$c|qVor09qQDV)_LJr4+C`9^R^b=&1pTM4&+eyL+<^9y zr|IdD1dyLjAz3L4`hP?eSCz;Aep|#`wzRQJc;_}K8o#@vz)>xsWfl8bn|ye+i=b-f zs#@}Mu;|mpfK6t>8NE(*wMP{sf5E0OS!u*X>g~2v2)V_ugDB0Hd2um`_Dpw2vl6=X z8Vxun^kpZQaLR|Zz!F2(a?DIV*y_LX)5~$RgpJ@E*l4@Ap?^LC=^gvR)a^+Y9`bEs zk69n_@P>$cDWjqY&;Pk8l4DV?yG`2rS*4Ut;N-?CE-le{l%$HGCv^Sx{lFEyb>1nl z?d;-f4+3F;o-Ke;#y*br*C3CWrAk03H9H(u9O%UH$(0M|@8Ae99bgDQx9Gj6S`jTB zC+Q#*dDktxE`LjMqS%$CCx%fKgOkKzmk&I#YB4dJQF~EmmsJq%AmoQtZ(XmmaI@yJ zJ003|s2RC>KO^n?g2;&h-G~EhXEiu=UlUw2JBQOb=*57)CyVn_8bogW&VO!& zcJIe6L4d06h?}?g;rjbfM4lAYR#Xj9+nOagz}Zj9EW)hAvoK;c$EubfXM|UJHvA8; z93P034L~=z7Lfy|iOb>*>>Z_G{NjhWZaF-HNnqFo8=jYLB#7(SFwC%{P{x(xtHB1E znws+)ntvn6b1}(Ro1dhmrpTNRd8(!wI$QCqWn`l_6d>xJtJ0xF@()<+O=9FvB3P#x zM7`SK`(U4vDo_>H0|U3UI?KSoACV$#C3yc9AV@M9I#5&^$_MSnZ*;~yanAi>ubuLj zv^@Qf3+g|%Lsb4!NV_?7s%+XHU>2+-L2iGxDJGl2@~h^^Ej0cjWBt z)DM9pBxWah9_~bJh2ar?F=7@U3!0|7EoTC*VhZz-e769Id9KE8F3qxU#VDihg`kX} zlhgENryb)0;RZT?Go9L0M?zkxE}E*2+kbiVyCkwPNy%S1?O(kVj`v!Cq%NHYtncof z5i9IRKL4*=O3rRz!Oza_ul^Fmk^D)^S2@$)$Yhm;Kz=rk34iCxFSm1NCo;~Gt2>Jv>F5b!A7_DsgcsPaA|%s@(%Ip&p*MHPl5y9{xygHiugQOfmT-4&-r{lvkA-Di+JXuAv zEU+qyuX@|GoGu_-K+?EQqU3NcG&k^F+eq#d>5ghW_s;YyO9sqHvMF0aN%1<{fjJEF z83q!Cb0e`cFg}(i!FaOlFp%SJ-%9XelKcFF^fM}5xBrE#;PPJ2Fr&!>#D6y~A6Drh z=W-#@p@j1Q&tCMzG0mGEQE@s`0U0UVwg~Glo_+V)s4;zIjo2`3fZAC{1Wb2~WY#ZK z#JdjNwdVVQM^WF*U}uh8QqwOZB5z*lfZ#ba1@S5t?gxc`Q1U1MScHFNax z_c;Zs5L93^WEv8wJEfx{sR93M(j;)RIGwE2(b?4{>6wyD$3xw>SE(`rL*|27obU{S z#0%_R*9G$*W=PwAe;yXFZeJM+B~;IR>fqj@tsW z&7w=?xlc_@537024L*O3K!4}5*Axh}@|x`DKkD>#d>%2~OqS46y=YOS1fUaD;raGRyC+N*Vo*ZO@a!e$bjk)ox5NsRW~Tzb!thJRwT|NA5I&mpTkwyAK8 zn&@ZZ7SO-n*zftoAEJQGZ({c=tj?u^&x>G|6cZlmnoCrQGm*t3&^>k^{FRe}LZ9g^4-AAH7T%t0PWNvuqhw z2l^6j0~a;b<$qp-q#m5}TwM^eSZhS?^$k7nc=JlX3zi~4w6-V zfP*X+4j)DaR1NBFhn+W4<&MIekF=q-aS@&}du>2Qr7iD#i@oUAqNF>r$q?toJAFLq z_YwCUW6$NrxtId6*$c$p2b)g=GehkJ?9KQ^h_@&-6QmQV|K{EiUwEZ$aBCSkYx}0W zs`eLxQ-5~JavH0eB}f;0F_yZbSMA*eS~vVXT5m7PYViouQt_z?s@Y2UT8(1*yCfa- z4xQQbB~T(iHVVG`0DVSs0D;7q0f9_orP)?Vi|DcQH4Wpa=83`E=}Fa!`RR%afd`bW zN-e6&87>kcEo;e{VJ2N<1FwiYt^{e8NkWr*@8` zPRF`4Mlg5}P44}+?z!*Ot9(HNUO1N$fKBO`%h-*@*r?+mNX8@#rHraCv>6lWJ2i~& z-)I=k{O5;BLvjP~LqFL}8dbkQ(?E)~KNGH!JnV^(Z7{Csd!yvVXf#5SQ_Besd8N!D zB7c>XZkS|xZ&?GTy61(CxL|BF3$q@{X5Zd zg9to5MZ%^CRAgfv%_W^PN@T_vWX|*B!rgEcw8Xx_OXLG7lw-p!QrYgu*{8=5P#PvO z>D|}u>cwnPfpsA)bm8uw1sQzw)()n-SEjB$00> z78^152O$-t3vP(}LEU|^hN<9S`0%H@$NCKQll5>3o-4hIV9N0vl3F!> zDvCL@E)z10Fc=^y0dPtO+^Ul5W5T5S-CWs6XH^R?O{!q65u{0G3zCOG=30Dm;8W7S zTJUuf^p_4{he@ojMhDyknLD!2+kffgYro!S8JI1rWS%J0kK+skOYN-ytt!m>3ov>P zZQBC{x9OIwhYiM#bXz4+XCoV*L`^~i6HTsk8tDpGMgGg0%UPPF=EcU6qc;je)n1F3 zFL!Z8=US}eKyy(dg)Sz$F%i1p%`!Y@8nBxsC_Ys2(l-W&?C+gTQ2-wH;C~F9x)p~c ztV2@kx-~RoOShJSf#M-EsYgL=q9cGf%oK8bgwj+NTHH*S4>Xx4l1n7P5g?ZVAv_zp zd!^*A6w=}KsmPevS>zfdlRwARh&0ggX}qQcKG4H;8REquPKEr!xC>eA)>&6wj8rEnpg}U zHzw40Hgd`24do4l$O$t9r)QvlV0b{rI?G?8PC?51KJ+2kD2)fpCt^Pd%1kcPBc7qV zwTMWEP~u*(+tb=&AQ!0OCeODpiB_KqTQu&6Mxr39j_l}?oyRV zjd4jH9ut9__MljZ5?6^D2>Q}UbIdGt+B9?8vV$Ws{nk*7Mz6mLrhi`4WQ7ELS-7V3 zTQtfsMo`+4ZzRvbtZ{NtO!4&0lrKw|3ZOQ!f-O?nq^oFTBF4xfz3zIjgCtiruvMiUA2p$^)e%JIvjKJVI-9Y99#Xx z$EOCIi>sTI2~k(pTGHJy(`k9dnagbe8%Pmlvn43MG6~uZ_Y?0&QTx71nQyS0ie3RvI%sW6b>%&cx*a9S+b`Usy(1mLG6M^Z3hnKMa zGX)Q`7ZL(=-*QgZu)xSkY5~mu0epU~YpOE8$YVx^yW!ARYZrQHNIM~P27-@!Hp2&c zB!4Krv-;Ftu!iJT{%xP59=f>o*7|dp0ONJdcW}-nr0Vvp&We0UL?UsKmN7MaYgp8Up!59s1DMp+2y>AR!%Dp2^uL%THI zgfBk5<5y&hw0oaP>HS6vm3>PYQW=YXZxacz+7EDXB(SrG%^k#jETh-u069TLSz?N- zj@#n1u6Sb&NH!50nP+V0x^{`HqJLTxjm&t&JL&)b_M7nM!wad05T6s%Ux()D5kQ@- z(ada8clm`wq~%tx{kU*TyR2w*-(W~x`$@#5HHE(y&6RWP^mt6A6dN7Y<}u4oeXbO0 zy#fy8@{Z(^S_7AH(~}d|=u$u_RV^hOm$8sp9tX0SwzdqFrQ5r0?JIKZ?V z7K3^2#tNdstrnm2LT1>fERn)N2>cH@S)}Y1$CtAk00!A)?uWMsLA$U49f%5tqKi`- z9+-dn$eWXf?P)@$h>IIJ^mUDT?+yj8&RLj8xs$<;LD0?bKr{)ci@uu>Vv>F~qU5Fk zej{N}i4w5l9*qyeX|m+Nlz&|JW?3%bEqlVvEB97z8J_~YC~Z1Dt|={JcCL@zT}A;8 zFYi{L2XemDnP;nEnNJW8nvF$7pVgB5tnnZ5sl_+s6cjg|1?fVk-$TFu)~TjWEpCqh)!~`4-|V zdWdWIP>g(m!RGIzxqqRaT-bImK7GIt!NCL+sR}58=(P< zurEFW>aVc974c{LE=elA`FrSije;+&?SD%i%g$E1)Tb1S_r#0X z$@(M-f@-VVV!$++^Fh!Vf|~w@H%Gz!$Fqy<=(`THUT14^np{u~cCVs#JF`s2F=rWm zZgCKJ&jZECJK+<5wkarGHl>>)5HtJ9qYq1Tq>ME6?scwSk(4=`frUPX4~C|FA#MXFk3uF=p{(HazO zVL)K+eCcHQN30mY=uO9?9d1$t^JtNfDgKh35gC3jLiIL2ZSpIko`!!jT1*H|nF<2? zjg2$<(C_J*!gj$rhVMP=2c&w)<+SidT?lBCn#X+0M1PGxST+sWaqSP&4ibyqwKRkJ!lsuJXGw3+JNrU)%0~%tV=EW z0x$g9q|+uJ6)w6+o=FvknKM*uh<k%E2_?LL6f}vnvbGp!B;@XSq1t6IUk9@zD!PYYsi4`bm zu76Mz$glFffe-5O(;bv>tmcc?WTMI%_fq4hw%zAVOS6D*7W~F;f6y|9r+o0Oc6b~F zC3v*P-@o*NHC~i`7`A4+fg8YSHo1AD!MId0dt~U?K1H zLs0?l=xlPW82we4#HtTH2$ZZ#bU5LcuYX)Tk;KEUg?&NnlX>BM=4UvG=u8@3XPwm3 zLIp`l#NUl?5O|R}xOer6QzQgX_|Qj*HN|(T%t2d8<4r?Z%}1aBV2^o`6uwH>~C@6EqpTFY9;M?8r?;s3)wNO<->vKI)6mb zAeEwsu|h1i-vAp$SDw7Rz+~Pkb5W3#zr7HxV3#^*1^NdX9Ejv&fZ0u)jTe7W3L^>* zQnk(6C9;kZ;J-pK!@F(1I$dUd3h{tu@bMRpXV(v>FrV1 z_$Ka9O1%&fYp<6cCvfi82iSfxL8}`IDV7L}vqxS-=pv5qxGZ;O&x;D5%d#t0YI zf#L-?(q>3j)-EVHZiKB^!I1V3xi-{V&FHrR@IPGKJ+@Xh^wTk;(4e^Uh;TT;IX2(1 z1vm#{Q&JQYUj?#ZCR7NYwSz1%;L?=95N!Xx+0yQpd$SA9N%6kpv%n<1a3}K%T zE^H3u_zwlat_A<>2AdBRUVm2GJ-VDjt5hHgXb3O&&8)LHPG~}NezjwoIxxCHUK169 zH&s1alW^{{hgm4YB@E}PN~EH|P8$9C8<^0w5>d?;muz{9SkTT2uEi?ZI^Q&$D!I+4new?oP7hA-sW}x{q!(ovj_tf~!xCeSiyX#%T_eTIhyhsLii9Jl*of zni=f?Z?KvL&l!#QEq_lcK)nBIpcou~2}CvxH*Jg|Qr{Caqn?Onhse<3%-rY)+13P9 z!*;+Y6cZG*kC7DKLs^5=74Ggg4W#%v`6Sg1yfve5or=xfVu*L_UaxsH!=OqS-&7Fp z?C43JeUj6iQ(>})OBsa+a>g#?Qo;b$OWJ(QTQ4y!o0FzEEPwh2Y=7b#H2@eTWg>|+ zIe>^?xNWmZQ>17?_?T<}Xf@RqW4sZY&U8S!IL zf3|KjFf~nNBb)YHgccXAmf6?%p4Lfq+-b!yl9tL(tEdzGsWtkBz>?zMn>F-lq0sYZ zNc>o2b2t{^P>o!TV6%D@jOE_$_2@}huY z&rrH|f4*1%1ajBeh0+)Zi{>yQeqWc!RSSwW8Pp?h#BdM?bbevwQcEzcL%$gM`Pv?Q_ zO<_poj(-gi53VbQzM|X&Fsxmpita`hI<+}YLdL9QG<>#MW&`42T~?Vj#-JXwr7jhm zu?o2MM=4Ed8Htt0UcKVr|EQ7o#OsIL%Cvr7#Y)d23FS#3CLaHF^hwiF9{;LgPZvsx z2hbnw96?8J*P173Oo*h~425;_J}q#~Q|BXl7=QJ~(@CtJT=J+CjoqA5XEwQz7!P9M z4-rq~-u34}3yEv91GPiEiisd^X9Lb0DKJ=m{$PO*;LPUZW!X@P$om!VBFIi3*7I-C zuIIgnzcdtVCqn1nW!<|JZ7|;X6=L1vcR)BLN>E5Z#27NNES2w28W%f0vg5Vy{-a925W|{N{oLpT#kL zMHlHxojzR0+xjpmT8C<1Kjxkv=8v#%y;#3iGjiM03(InRI~;?f7X#We47+0A=|LNl z;_f3qaG63i8>!R$7_(Dw(VZi|Vb-sDeSf$R-kiHoqFCwg#Oc~XZ=QdRC=qgbWyetw ziIZR125A3=slGS$Q1FLE5M&nz2{LZKzIw%=lmk_2>p=fD4rqQ(H2^#}c1#!i>6AEFlHbk0h~(ghd8lq-e&2i)|Kt{XAav z*d5<|sD)}_kZZRhE#xm{^pqy}(tq1nRPq=5TMtr7w0%&sYG;uPV@@c3$S~*g&%fV!3H|mL1cBz9~X7418?R zo_OvFJRJ8VJBA;uX>$%WrO_O=spM)XWseUq8Nr^Hf$q}-_;?*<=;w2r@AQGI14&EwUU1zg z(2*lR8Peh;i1aCf6d)yAWU`2ycn!o|c-<31SAkhWKw%@Dj(}3k6}3B%eiwi%j~f*= zkiG6pz4LIM!{BYGd&TNDLw{+fY6K-L!uzz|aj=f`xp?PjfCBvi*?aL=rhA4>w#*sW zXY98syhppOZ{W;W-%!AL^no$bf0x!_k$9iw-QTdi|@DkR*NwZ|YEnoCJ>t+bd@ zd36;9walz>6YSpgm?V<_^D+*-#>A^8`y_Zk@MR#v5@QT4oigL{!GBDj-&1P6|D-9n zAgC(tnse9O_kGH48YEA1xl8a!Jr*F*0TFKQpSgbwpUc&Uv@Bj}G1{+LBOAe2Y^piB zgufAVc36SfxQ_xl5hq-^+cw0I*cUgKUS)%|34E7N=h{$zd4?t@BDIp z2dZgeSK`%V)-ge`?SG)=|Iyei71-kET26>LWYU=U1~e0~u#MIsiJW>KN@ z+SK88wGFw0LCDlX^BjDq45UF6_(Fe2s|9RQ2;? z_r7kDnkrm6jhe4$Asx~R^V3Q+nDQF{nVQT;ZL~NzxK~(pnQr6}<+RjVUC4*+ZU4QTHOGk*;Y6CjDtflr=Tb66~ zP=l!w55iz-kR{rutIn$G%hJ{902O(2fGM!&_BF=DoW@sH=BZLENFkVBFFWNHAucnt z(=^}N)g@Mg%`~R2hz;Z>ttRX8D@)r7Z*rI?Q9-*lmKK5RaOm*Uze*@OS=}SL1>hEa zBn2wk!G9I<4rx%w3Y<`oMv`G*TI^}MyYnDkkU@OGOYSm5gYOO_MP;(N`II=K?}?D5 z^3@`q7IgNT|Ay?<8+ZTg!kWXe3UrzjHvYOzUjjUQ;8q1CsM<`->N5G2+cFajGnu?l zuNi*7Z$(Z@=@Ja^rL^0qyPR>+G9DlGL$nCZUy#(B0{G*gUj_0W z5`R2Tew;!q|B0!X1r6&4g`Z_sBy>y1wZl{#yiR4-1rR82Ku)e-P6otke6Zq*`~yQY zoW94LRz39kX=QX6Rg)4KFt$k1X==O|$PwX>{zzc+G$y*gi;Mo5lyP-qkUty>=W~&T zI(B$vA~3XZkj1>ipvxmifK+$-zN_{3VSfR0gPCa_6Qh@iO96N82~R%3j2E<=zUolQ zEwE>}f0;9u7fV9T3k)Z=C8tzi0q--Pm~^abGvTFy?68P_lQ@)xtU`yVj{LGYxL4Uw zqZdpleOBixP=9{FrlIYWyu+ML8~m#o-UfPge!`ng0DC}$zkiyk^{rgti?e1&09WQ% zZwP<*o6LNd;!-3ddPUzEPexk_fO*dSw~$zeC0^$Igs~q>qIXt9U%oOpR&gW9FORJN z_fyukuV$>+b4xJ)69x3m zl>Wo!d0CQh*3f^Z=v&&{?4Q_4w2I&jP*#6sSD~S!XHf^Fx@@LU7l3QMYDXH^Zzaa7 zJ|)7w(C3*>KPr6`1Mk}}8sJWpakwCU_aVE?Cd;&XmsJVo7}LCt<2|NP-k-pZuDW^F zQw`kS1&MSNJrW+$dwMml-9m9!1RBd z*}Wj8@m(2I35oT4ap%en?sAbjho>>R71y-m`nB~=bDikI0P%TxI~XD4o~DgoXUaiA zDCK96ubOaDvkeFt+oltQ1-`Fb;Xsu@99KNzz&3yHiLXiSl&RwsNDe4PJFIecZs6su z`mu9Y)KFaSCN`AwGq;v0&RRqvY?FVTKa&<)h+31HnlQWtSQ)=t%a&2SqL6#P$f;qv zMDnnu{MvB)l_1W~ye)NZz&YC9l)l$H6pl%yegqI-;N+_#v~s$&Bj@qVtcxyaN;H4&3D~$d zzyd+YhqS|(dRHt)L||xxJ1%rW+j~ngY!A&6n)O#z9yGtvMS1sHcZHnYuR+4$M{y}x zEHa6c|1Ov_b90e2ST+=5GAd0~;vPAyEE@TN)Oe>T^VdLTTQZAdhKqdf$61S`(=#N= z+0;Q_?`uJi>RXi-Ao5>5V%~plhVJid;d?}%jlj|)I^n-$xi%CLoyA$k=QbroeU3@K z|HMR}gDCCfkDBIRm2qS2P2jz1z|b;Yl}%jCgkYxp`<1n6t3+|MB87P#xKm(WjGTDk zNXxY&v2p-mSle;eM_(o1;6IWzaF02NvSuO~OuUGsaXL`P_RDC#@V9^7)A8E8pb@&R zl@>{~c_Cj5EPU~V%9vzQaqM$|In*>ZS18Xz3{jTxL?a6p)1BW;H!bLZg4OiG)Lo>Z zjai~-c)G}*)NijK>DMerS=8GV-BQv1+LH#a)TV8yKO#+s?11resZLd_Y-YL-FTG5X z(sn6f@K_2JI1h#}m~DT<4r*4YIgHy`4G+`8(ynBL4V*$u{lF?lks=ESHVWWuPsq4w z0*CLWa-FEM7YAGX>+?JsC{QRIqi94L4qKD@gOkLc)0pNZzIqX5WGiz%uo6oDw%l1! zBA5QeZXB@xeNB}q;Zk1(BS?pr-6|Y^MBfnV+&$*6NyfUq<_v$+7!9cHn3rDa*qY85 zqMaAA3Ife<9t34!K~svQ-QbN7+LrfUpkp?ceHX=84RCk^Oz5Z!vF^=j`osbSL1lsD zz7@Jq1t8gd-Pj6Fby<_OoY00YvEq{tC7sJl{!f;B^>3|)rit+9dKVtsKWIs@=T%Ul`v>U6fa^~8@qGw6vjX4XWEL}U( zAmK~8Q{;SOEzJuMFb;sAp_|(sj_m=ZNf!-J!P@RxQH?KHR6GNLdwSpDWvT!SE!ERD zcP&|I!1Or)Xq@@OeVwdmvasqK%O7?+6eH?Gh1g~7`w4$(bnfN-h~MG120NSrmrYg` ze*B0d@U4gI8axrq8NDOiIX)J;+pRe37(6VDN{?)%f{@i$ucjaB;L)%J>mD9%?DVGt zBrBR~jdt^Dd(aWQ!l3t2F!OzjRmQSTLC|NjyY0(Bi3NsLA+Dv;VQ%3!9I&499+@Kk6GN{ri zX9EF7k zpE`js=B!0}WMs*a;uE$`BSla90VZ`EsG&;sY^Q&Nd_lNih|!)X<1sRYeckj*{-Lax~+a%p_x&G-nm z^gxN?zktso<{1RZDo<^F6FC0ZAoJMxz_fW7=Ju4_?o-%?9?y>wgzs*b2yht;ekcQR z;rU}oPFbqtTLG#4ba5O5aeI}cBc=pY@y35=rMM8bWl=JoK3vD`fWw$Co!s|ULOai-;zxm8iFZ5RDT0RLhu z{ZQ{T?)cXbW#B9 z-QeekC&M5~KR#);XoJq6Ou68ahQH#R_(X{M5T<^?I4Bcd9WgYuZg%`3eyjwYUD0m@ zbYtVj8~2UJ;UbK^OLVthWOsjh3QU7u(7revV2z6L#AI2~LK|MER`{5%Q-xoqO?*C))1f#a01lT_Pbx;0ElK_VVH1F zM)=T|)jF{2(fPPfBxQzlMFTz1(8`?dXm6A&$wrdJ?l|Ly8uX9VgN4Jj-!5PThI$uPL(hf)B^Sm~!z@mUdOwl=S_+6-0r zUIf3P8n`Y`Pn}-eR|rpl_FyfBJm5*Z!5Wd9&{TgOeiKiL>u`Q#2EoxkGKOT7GKW@V<5JO3BbJvg!>sx*{Oms$ z6LziH%zTksUg;Dk-enAche*(2X@EMtDc+8jt<4vSm4lnx>FUG&l{QbSeP+$Y%uS-^ z3i{(~8BiQwQVR^wc>}td0iIz#ohINEY=_a2)zpD~&KJ!(e+}Qj zkrl8|=%qz}R&YBfA9l#bkTwO7+TZ&w-0h{qh;+HzkQjdw!qyB#!0hjQ7Yev)wW!!+ z_KVm$v->YM5t6FYEL8D>l~dBe!xafz2g>^1T3;b|HM3M=qd&5~*@VD$i79AjKiG})5|2?gL{ zQEw*+Caj)8{CFiF)X{kG>TRb9l(QkeyvKi-gMA3vCWPI-v|1I@xc5sPG09@I zHO$!Mr3QieK9_b5E=GFZb$L==lG`W*odv#8dfN@cmwh;H!v759%7&)Yf_hvPMtvo*S=d6u+*tbobk$=TVrNRCFTxtxC5QA2 z{go)tE#-zF!h-$~l+3Cx)eNNhTF|$0GO&NeSl{OLG#CR8mK7x|E)M2_|8v#)hP=k8 zNmQP&=cX2rOr~R?3u4aq>*n#o`hriR*t7!22R9)#xOLwV6N)Vc#gAhMZg2CJMJ-G* zwb_W;b*HN*TXcLMnH36CEzknnOd;zZEZQwm3l^zjjhB`m0Gb5U}@$GYj@Eu)$AVQGNzST zDzrKqJ*Dq;pFf2z^%e-$X`|Vs!d!p3|N6c5A>n6gjLE7?a;y+9#ieEvFI`9jl2elF z`vS$dFj2fl2XCQUld!iBsw7x1nW5h3q8eXAC|*OW2s}y0fAl4pT#4toyNic9z&RKS zwpk-_&brgF@Oo@Y7Io~)+1ay_FL@8ehhJSF?|_k~daS3}J@L7X za+4D0ZC}xq5~uPnJ1!gc0bq@XZ5+XSYs;>aGcnO5in*;|K4M6QWwvD;BTBx;>ulq+ z#JC^-B~LR(5`iKDjO{(HfI2lv>8fFnoLgslyioDMTsjowH%!dXGt$#*fRYo3dYH& zpz+K_+??8RA+<4FQweB-Y?XHJod$6Up=HGfS>I3%)EWUJdn#c`AclXxbiqk^-(s#- z)^iEGyHgJMuq%=YdD-ZBBYkg~ zq^$bp_iB)+c1Bk?6sZk}=d>_iC1Th$c z`7?e;pmfAHV?KcWBt?JfK+c+X!aG1};^RfK7X$Q(yr>6H!YtVXh)9XE>F+%vZ3Aki zI0j$DXz!=tc^a53YU=fM9FIA_0s}Fmnohsk7p5ctOG+!ReVdbB^%Ks--zm!Kh5y&U zA_b?xfh?(ovsVPfyijiOes6O9O0ywt_N*{AE;h6js4_`uJ2ii6ebiN|$R={t`0Np< zIm-zm^T2bK7}KYuI*1S%REKNNUk>#n7Z7@-1%zwzT?PpWw2=PM`;stxkd@!`!n-xS zrkmDDKd6jHG=<#wm)NC67ZJSi112JkALrGX)0~=`OiZ};bwC3aIy}avb~Bc?H;+_S zc9x)6iPCHBFSUO>&H=S*dk>&Z-fE^UD+4hWY`(Vd!Qqy)Nx(;z>6_tvto$1JpQ-1O z4&bipFkxV+6>Y6Hge$FKahi63XPaGFm|6Ig!@YQ+6(o{V$ci^S3}h66=Wc#AO{t`iM%wfCl6>_^e=1=^$NK?{m(fWB69OH-tDL3aXOl59obZ9alF)%bV zHwrIIWo~D5Xfq%%3NK7$ZfA68ATcpDH93=kZzq4Xc4b%;+S)cDAc%D5(A^>3-I4+l z0}Ra!Fhh5DH_{CvAT6EJ9a7REAV`TcAG*(Z&)NHZ|9%%23{T(dUiY)Ep`+5!Vw1Fh zn1SRVU>F-0JEsspMO72x00eV!vMIuV_BQ4KZgx&iUNky7X=e}+W&;7s0AU~@z$=(F zK;3^F_EhQ&;O68MM56=9gTNr?r=SJE%mbhbf&sNX96?+FM&KVq0|JGynE|0sVG!8L z1`J|)Dv^dbdN|uyS;Kz!;9+C?-RXC=6gxl(Xl@5_gWA~ufM5%N61yrpKn>#dNhLqWfba|*9+*uP^28399p(=Ell{A&q>PFXK!B4Uz$M5F;CvFP zEZ9OC;^6Rv8jALtJ{g-Qo?sAX503w(YdbK+4ea&5{gyUh3(MckTevuK=zxE1oLoSP zGXKhca-sdlX9a=*H~}Ch0Lb0kn&bDlKWh2y=KAe^qQS?@5#k821lmJEJ~o!1rw=qQ zD9{xIfH}K>e7ycU@OKN1>lMJl#vJw}^rvM(`_o+!YzYAf{^fo`^6${UB*6G*QJJ2$ z)B*yw_W)RcEYUdBAh0JvF#do4*|UGll5?@QR|7hL82?G>Kl6YNHufHW&-_P<9_Tk% zMm31D1JM2-F&n6yjXTIf!vJDwL7@O%&Oag06CM8m{&WYwVFNhilr&UcYp{R(FYWwElLebY zENsA50B$~h0MOYP=z+%hBnWOkK7be3leR5D?tc^m;9v(sU{56gM;Dk6z!Kt&_WM=^ zUjaCPzg>SUE>1202k5^{0RV^n|Cmpw;BW*v+dwS-lfm`mgZ(l8j$Y&U7XJ|_=YNj# zujlQLtp#(2*n#wHES`U!_Ww#z1;U(d+zmOO)W!AWfBO0Ne@1^BK=+@;_^)ayDTuol z8!w*#fQ?)5i3T2lr)A~h=JWYmt@&Rs%^zhy@&0f7_nHGhAa{^C+TuLKTsYV^tueIR zSGI7n0*OwL{d*;W*c+vUXN#GWZKOmpd7IQA@uGlc|9A975EXv~AtT?E0C340x?p_! zht*HXA0{p=UQ28NeN}x)F=Qo2a&_5t0^g}F_*ZmLGwmzo7U-AqPQPnOXrTb;j2uV{ zwsl^|aF0J?pQTd2t!P=vM{+BkqBo~=yObbE@ zMwE~pyE}2W;iG?x#qXjRx8HGogJZ^fQOmiOj7ZR17Sr-@rg#HvFjUsiKr)vA;=3G6@KiSnGXPR;0iET(Bn}c+FRMi@A(6LUey0H4#Tr{oc8YN8&(t&3Re> zj1)^~rQa)z-LuOhRrRQAvIUu45Ov_oK`=`HBH;Bws%sTyKm=G+B4k2d(zrW7>wUc4 zW1qv(9oY)|SmC6*Q`%*HQFD?}l@jfQe2z&{(bOP%C$O@*GVNkSPJ`5iQ$~tHG(4CR zC@KZyfChiS%VlAGnR`_;JCm4N{$3oHt-P>azvfC~Gl0Z4DA{W+7#$hUxb~Jq&p!v} zMY^!06i@ng8gJ^z%!ks3DpbYjFvQfG+iQ~b56w14a6FbjHFkbJg7zk{vPOrShXPqx z<$43jkPm;}BX*PS4fL#*%y8i%Po1xEbt;!n$;y93kG%5N3?+hqj+XTfL`<`J?xin>clSIN@FV*VZ(fL z_Qp^96$hnD_cBAN`*_0==52$=@s(*<9`8i4hdeAYp|+cTi{+Zk4Iz{vun%O9d;zy@ z`iv344d;6Ry{XxfmInNk^vmRL?=IAHOi2n-qkQ z*_7okZ)D$x*JX&je?#KS3-3O!r*4n(AsvL9JUSpXsj!uBSUYz+yvgS5X1@5tnmhY# zRnDEu3VykwS{U%z-9B#VyzCL2MyJkhWu75|HUaxln&gzIGs5XYy})YAOwWI;mSioX zmhQv-K$)@h=bfVKTzH;Yyf}sTXU_z$Gr$WiF3jFUf(m0_`#ygbLOdz8gpg3jm|8UzAS>qM-(H}!{2usN< z4_2?7<{RD3qyKD)nm04pb5(x?8ST4GPr7eyp?J_u7bOW2I}HFMd1Waa<&Kl8m}wd% zz{KPDl0KjQ8=T3o+xI#`4sAg*hK)(#^gf!PPOio{TXWQ*Hh5}|EiI(S0UYeZn!UJ} z=@{Yu?Wjk>j zxdwvs`R*iJU zSCpz8pA>QnS%_O-Hs^E!p)9o5T{~Ou7Gg&{*$z0t7(|QA3FIO;Wk=(z>*>z1420!L)F4 zmMy`24_M#L*gFVz)kOs6U@e(6UXy50u{s+1Fh$aw-*J?8P{C!j0` z-bU-CyxZ0NtTs`L&+%e!WhJFInUm1&rwi|Xa@pz{vPPY_?`(gs9Pd!H$c2xkgVVuQ z5BzLYa;yXKq@QD@?F7>YMcS9?@}`O+4qtpkv{}e8_P*MQ_@UYwR5t+QJ_b-q4hmC= zwYFi{&GOxT^_lpAa?N8|?MHuZJP~71Dop#Wbw{CWh|NK>wLL%&?rSFu4_#bz(kqjM zyj^lRq7Q&+ZBl;(k7vDBAH{JT1|CSEGNU1CwK4tmCe}Rhj)FPTIkbJ2q~EM+$*{Y= zG|hl^6R5=ge~3Zz4eQ0#!3k8+n{H1-V&l3P$-yl=W+Y`O6R1pNbB40paub@>%;NA> zbz;Y3#5fm!x$EbQ8^vy8;kTW~uIz{*+=A@gre>vIhW>v8)`kS<=R*2DWsB^D7pjbm zgofuqACS*zTeE@%nu09RR5@eE$2ZXyt&$k!=Ly)>ZXTUn&sNq8{C}JZK8GmR}R66ne#Ue)IQj?&?R7Q6O+*K7uQ zKQ6}5<*I*xh?NR$fJ2r40iNqQ<+l`*^u|N=pbz>LkK?28b#|H=lkH)b%MBBPLjkxV z*3K&RS0%hL zq8%b&xX1}&Acdum%zL)4;}7P_$4)NYOr}I4_B>Ui?` z0n^&O)M_kW=eYh@%EQ_xtj1S()MJy*=5TN49J71ugGevijfzh3)dF1m-nhrwGm1bQ zc;~)?5#95DO%-V0ES}QU>c7*kFkuu4WR`D0&UInx`$aG1d+bO?xdUX& zLuh}Gy>9MiKCS@&GmW0DrYMhn2u;Okc%ZiDXW}M&kxHVW+7wuY`VfL=V_>z%w}XL* z(U*5P95n-P!r{q-Wl+{7F|vkt&S&d>l5vn%37CyT`ua03`bi~xWaOd@a|bFRO=J>R z$76;3bno&e@ySQT*{Yfpk#zfWPZyCL1X_Or;vL=Sx`jg=McL`bC=6@HEJI|ZoDNt{ z@WaN#<(f3Bu?sv}kgupTjV3SLg0NkKhsKbI1(qkwW!TjSs0Qi_5B5A$+hW=IN~drt z#0A@v&&bD+9>bxWQ>{}1v4iggto8|qqIWrig!oU08aZ=seRtkvwHL0eVZ}T3$i07) zUXxpHG1c3@8Fl57Y$YtWn;67_;jziGQoW?s`x%dKcp?;hvLfZJ*F^Yi`r<*_5mS%I zccSa)XLlK&J1^R1CDK@Vh}eovoC>7a(rahhQONOc>vH@X$B;hZybg z{gK}0$X}RNcI@w|U5QP|B0pMmoOya^q9r!X;>VEbm^fTo?9^&j+*eS-;U&F+Xad;U$>dt@uJ* z1~{Wh@7ax(t_Z(TRI^PQ%s{z@wZJvpAkB@Fxc6ik?-qZ06E03{IlUsG0IZ84(^2iy3=U($LMTg3ye`uJhyM z3hu4`xEMcwVIw+hKZt+CNKhD6^rG4+L$Iepqr&|Q(|ODZCsuUywh^@mMdl@^PXy7n z<=YI*?Eckbre`Uy&odvyZ>G%ngBgvMLP*W&?*iJ3F?(^$c%Mm!BHC#0cLWNm?$f)o z>aQ`!2neAvV)C0SU#~4IIwJWS^ppviSxDIN7lC~yPX?P0yoi6U2QLKIJGa(s>e?Tc zlnPEY5HlQ7ZFfzG1yif~P+3W-F|`#Vuvy!MdnJJOc!2!Nis;sNM!oDyoN;(*&kkji zg-<-vgDy?!fhF3YB)c;vwRsf~_#jfUN#2iz7-CrRhG`KiN6G1M`fZ+$JTw5Bnaxy%fhp4_jzG$2H}+ zFS4{@Z88FP(2!yHW~kFt45E!Y>SqTxWh;Un_W*krpM>b*w??zY%*ZbZ>3YC660a!g zuk}xtW;a|LUVaLa9GsOpC-W{vFOnn|?fbvJVA%`?cMpGNy>R>mQvGyv#i_~I57ily6A`Bd>(SwG_P>eM&|WGS*)9&)0Y3j zQb}}Q+P*0$MSn5cSrAI7euO{+RWtCj{$z_Cj7pBf+)5#kO8t`NM&ote7wPIBi)fjd z-&giCL|lJKj{uFIu;^f$a^xIUpeAlIxTJzY#T4whu*C_E`V#sBF>NctDlkntt^l_$ zX&#Desgm0ix;^<_!m3$!71D&M4F?CIjr!_r-BE}7e(&0iv20h27A&FS08Bje@p_&? zqNIDfGN1FSYl#P7xq%9@drEZ2n{oQQg(&$?VriX2I zc(I^m7H7Jp{o2PZLOFVQt{j2E;$zZNO0#qolMp_FZprLxrs}a=%x^|XmafmB=pltq!T#bKl zVxQV?)uMIVFZMUtpmN1T1C34c*17?qhCh)+Zs|m5KN}j9P*ciA;*;^d$d9%?Z+HP? zUJbNZ)4TUTAeMK1|&cRAmA`7w*qQN2P?$S2=>&TJAKs2jyj|@xhYN2)HsQa({GQ_$g*JY%)F-&Y_Ft*>V+jO_ghJ^ zz3$1?H}k+}N_ZHz>7J^|pEsK-OF8bDdo$}dImv?+0#vWD8IJKsO2GdmncV+6&{oT@ zRy7Rf~8 zNau-Ov#A?w)tYr6vri#-`@}QTY{U#na`csIJ}VYAC%NFLvP8vqqOfOxtBd<`u`VNXgs+f1M)VPDFD=WIjC&YWjSSsR74aVGoByj5)*x|GKbE1D2<*^ z^`*Pm3+BRG_dTRLAFH6YhgZnh6L|<*D`kZv@gQaA`%Yf$SF&@SydSCE4zl$Oaz-O~ zmh&7k{NHVr+)aIG*o%{y$HS{a0$cFl;Y%2k%8y*!Dur*2CtF)DCDnF9BIQKM@#X4M zh&v^2B9**?0944t7dL+@&2X>YD0oNDhJ@k~MKP;W^8v#KzuOI9L$_*Tj}jbnEgzy@ zd?NI zE(W@vQL{R&m2U>}Wn-&g;jfPESM;9u$kCkyX4v$Kc0Rh!;4_qxaSjg(1*XYS z(!q{8*;$6n-wJ;Sd`Wh>2xk-{obkAh*vnxC#_~GVIk!dJ(>Yw3&+|{~K2#xCx86n& zR*#p}9a)el9J!MCW-4e+v^h(MGkr`yfZp@kz#jDZ3`R2Ss=X&-X zuw?ylEUL8~N%H5e@5J?cOd*WD88LpkMkYFf2Mob(ZRCG&nu#TbUD?+Yp8W)L0M=D4 ziFf0}`$!U)Rp+Y{bnk~g`19Pw)`JY>G(1D-=yEICm^`CZB0_FWP`H8|I(}$vEv<7F z?9kNNGB;e1R+C#f>Dj6Bdltvk+C%l47dkuyLT%%FbGa2#>G6Ql&^q2{Z@J*ry?5%8 zclxZ8MUsCCs6T+N5NV`1B6Ww}xY4NR&bOx3y?=|zuspkDj^smf8>wiTJ$fZm>5Iq^ zr<>=^OIJ{rox6vYr3&Zjq{CBtt?=O*BZzpPvt5nhvWoaP#>Kh9wp}7>vFjU1D1|;UxXXKr9^5htkV=P!)z}hOS@6Wn^DMsYO zqUkklA=F4{_Bs)v_wtHnEW+k8Ic=iuH+UYMN^{;%&MBQmsM&Zq`{He%8JK@6wqfJ3 z&w+m%J(OGHZ_kxGsu`JW;JhyVKBP9g(zX=I23_>Nsdy`0GAW}~ua7obp?*+uCatGl zbC*AjU|!?DM>GSuNC~fbc4Uq4FkRetkeXhn7sVz}9_8 z=5af~M^TeH)3O5_@Eo*phZUkRI=?1cJ{y0)+JwkG{bRLFvLc1uKg)aL2y>KY@5J=9 zV1ps9(-Q%$V+$%IJU*+5(qigCp?Jg?W4*Adi2b%r{8d-aI1UL`)`;U{=O(uHp}HqM zLvm7K*AV16X#DI5T4=8A*R* z)?`X1(tTXV2tFfj7e9XAp2(aU?M0+NqT-;96{IYOWaaZ2A^dh* zn3YP%2B3`e;pJprPBhLT2a0o>3kq&%>8a>TaSo{ENOz1F$xtUb^Y_sRJ97M{u)$*s z&a!dsORU#qS&mW5Kb?O3c_z2h%F{Y-T^2B%9^k4$cjeyOy+ z*W<`QWB;tFp9wQ!z^BS-Xz(b%d!6!##2Q?^HG*@N^q7W!U9r3bFnf(y`Tc)7gy55b zxTM7xo1nL-vha`}S?}?!n4Y&ngLdS3Vn`*sIFnXx)71tj^>G%Tl!w(RijZFvs!tD4 z3|K*vt*h*gvj(*uvuZ3$u#mXeFPpu7sit>F8lZ$2A|rN5vp0E}r)-E4)8XozZ6lp( zEhp9nZEjf^sOM`!50*@w~6UCzJMwD_VdRBg~a!*m9v(_)x!%{_)d!`7d zI2L#%cprNX2G2)~q`|(zEh&>rmJWR51$LxK6+|3@me%Wx1uX{oAp(reARSvxw;`J} zqYpdLB%z{OjXsa7910+MG;YaX8+b+f@$rA-QwOR?J%p*} zahYsfG2p1tD-y`BNbp*o{J^{$3g8^04U)~?eipd6dk`K|h=aP9Nrqgy^j=n3+8=BE z=a#01^AZ)!R65_yep`>IL3C*>W1p)6s)uuc{1ad{K75 zx!u;^2mLztRZZ;pafN?#Z%!Nou@Nk`n`z=1;F7*fKWHu#`*@hLfjH$g`c5A6SAVtwvDEL0GZE~eqYm8V3oH_T3Z_&tvaYHs7 z42GXS?&_C%2=1^9=gf6TOM1M^Q(V({LpWhFa_BP`MzKUj0t*Z!YO8Ki2xgY`@u8ce zeb2ql@YuwgYr22eqkF=V%EUP{*;~=J*BOlFiD<&w?>9jKbLsOCk0D=qXq(MkvEef6 z5Y4KMrlj+=iDTXT+6RJ@ z!kLmoOushaWBEQFaB#i8@7icKwepLik9?zHsCAOB4!3{hOX5g!V)^o_Fm{mHp|6tz z&)iCVeLA!W9-`fKpUIcfR%cmO1&)L&eUjgLL-U*~_k_@peQbcs$2La!7vm`hX2_0? zT8_>UamKZ}i3Hh3?5jOCCro4a8A~#XMSd$OiIf>AU3|ly)hLl#ntoMBp?K%9#0Ql& z=h#}*TZ4ZW=YzVs^Rh!6_q})+ImDMa=3H~yyMc*Pr|Sm!g)LTbQhZvG!M;f}tcY?J zn|-1e865&xy^+e*F9X}_c1Ol~AI+DXS8$@Xq=bz+1Yf~aF0Act=dC?lQ#DXC?a$xx z^IvDUw6O?76_eC#wqu(Rs24uXF$LT_b3^?;ke+{mAa88HKfqm4l(m5}fLl1aOOwWZ z$!c53AB8icf3yND8x?PBu~KhJMV0Ix?4Rh^D}UJJb=t>vrz z@V@^TG94w9WfLNWhJ$%-?20yHetGiFa^<*;59bcaVH5nT0d3Vs;)3bg;pMpGarXh! zfy{sT4eOXVR0V?CX4>e7V?90Sc4TnV-5Zf4^-{vr^`6`Z9#W@yx4w=1j&fLCz`u4V zy*gysxNXTqg;Rtm=nZ}Tx&*Q;uKUGouSRNGoj+jflY!hIdC zAd_8wFYLBK}bEJ$%}g9O$&b^ z%a#CeBeGgZVSppqdHj3EW{=NKc8lEZn4E-qxAX`Hu}U;fR1{86Z6wkQjdr=wps!!J z2M;V;>E_Yy4*ra3JyrXC__R9lo5zTu5^_(i1}Py()+@viTx%}Fc~t=*oje~$}5 zN~jrP0JZ@Zcdw2(<3&0b@!szYzXyLaj~|`-u=#D%Fq(BckRM4JLu&#W#Zi9|`~G-^ z0VfL&ZPEr|gyc^lyvO~rp?E_G-VH@Qsnf#Iutzv84Yb@?(CHd4jrVVb+Zc6(+R4PS zq?rahi|IRL3OB%>f-7fqMsxJad$y=8Hl|HmE-tUV8K*Y9Jmgg`ZtV*|{Gxwm6R$Ty z(6Hu4uK6*t9RT8LtWS-UGc-F;Nref$1uWSHxT8Isq242;8aA_FpP-nksN-*e%D*L7 z9T)P%b(FeM;me&!tCNAI-EYU>OH@b=zv`unzn;;}ghR{0OS$04YVfcwA#Rfr zhbe#+6?fkD6tsqY+h3Mh_8@;JldIlr`>GMljF30%?aXKLVQ0a|& zGVOV_MafC|xM$z3dzK5=jpjPR#+5|G?s~DO?HpbGtz5SHTG+Qh6AaW(aiV@*vx&BZ zeat{`Jt_Oe58m-B@(f1Y6pXWTQ;kZAsqV%`n0cKY8OPXXd@7&pf&70-aO)5rua+HL z6Vrk6o~yK30idEJmi2fOaUh;HV)ml1yk#ZZhVoan60N|2#R94%c9OiJ?cy}m3W+lL zud0o~xopS)x-R2^PF-9&^~beAXC&->7j;oF>xM5N+K8LY<*z&MvpHGwoE%TOn6sRu zzfezfg}Ry1AF$fou_%Ax*40N)CT|Dk2&-k>Ps3;5y%z9$w&*BT)=r=wHs!@BpGm8O zlb@{APt4!%TDDfv@w=(}PQHJ+{O6yud7`NgO=Q-6 zq3BKfDKp#@H)nAx;r*h_u%`LGq*hI(@eoOrpE_sO9txtCfmFTIq$tdJ&96k#zIJ|* zF}VqY@|d%oSm%#*^dQdFt(m5K_2gWhuL>mvC?-}q{DmhKQ(5fof@o(Z z(cdXMrMU1&9JMfX^K)M%MGZdCxI7{_pM$?4!HBV*3n71N@^qo2Wc&S0j6N++?APTC z3N}XAUfYq=oy)kerWT99&}N9`AJdTFbQIk|aS6#MCB*tX5y}{LQ}O9+hvAiIwSp-6 z_odj=yucyRFSi@Na$4wGhx7YRv&4)Jg931MM$!vNYKzOi#8hHM=RYRH6|S<5F*{?a z-0V;yJBWYM-!#A7kokfqMd=Vgt+N=z%4WO>tn6pkxKPs`!lmC1KoyCPw`#3{={WR{ zdr;$4)As}ve^+7w_UE#e&&z#{8YX;eCn2g}g)^TP&2Z*V+1%7V;hjL9T^hesC+2Bp zY7ElIjGgzu_z=PLDTWUUnI3J$;IC@55MdMoHhzDzP*GjNcl_jku5W|f@sg$#H?;)~ zlS@YT;FydmHD5^;VqsT(=uM0oox`lL$gY!Cur<}2su~-1D4+5?W02j4-k!g?kw?N& zr_9tb-8cw`_Xu^JxlHf#qd`zhTkq?@K)Z~UcLex5 z{hfav8HqEoowT)hh%UPG`@P(dki^rnO)(tamk!B|O^|)}8WB@vjpA!Ed0vO@z`Ank zQsr?I^ga&w5AxDzj6ObS?;3!&osw$$&f?`r-(nF%#Y=pI7uLlkqh-oc`l(4sL}agC z2RFsi6TK*0u936XfZCk(B&m8z0ocYf>nwk=;FBy(XGY9sZ%w0L=c?q+Ea!<`ZfBaa z{8}~cGqlLRlpl9f7!Idil*5vLGaWH75xE2xvibgY*GH_~nhJ30fc|zWXr4Y?)Cg_b z^il;OAfU-$F1{{3(~lQ(E=$;DR4L?J7ZQm`>A9qZ!$gZi<5v?@d1A} z!jAjVMDQgIpBc65rd>C-eb>ZjT@YYC5S9EE$Cqhiq!9&r*b;Iv(&;@(o@XDAi^I9U zdjIU+On7D`9PcfjLSkOsq*YSbw|3p4Rr~o|PGc{6YmKH;owlhu_oL^A5YuyQ|Nv{ zO_C^#ym~1a-kHiMyLQ(7dEzcYb7)t}NWH|9==ug1$0!QXdrJQsg>uCV^l&wpxdz5Q zi-HO2XxHfgBfW`#r3!f63}^OkJ=l%td-1B$=v7>2tsYbW`+*W}o|;4)*=>Ih-vF`L zSfAQIsz^b_DWUBpH|{0+iZ*ybm6C=WKD+o8%Yu&k#=Lm!1h3gh1z+#wk{m8SBy6e( zT7)LH7DenmeQuK^xND!6s26rYk0*moK~_iL$W{SEgd3&TE*-I~i{JOvY^LPY1Ef;z z6FZE8aD!InY4d2BvzE)wSjB|r{e8cS_l+Pk@E+I7?eA45P1+i9Axp< z)K_&^MYZGJFOyFxnlG`jsW(lJs69ur{N&Sk;Tp~BmHgd!RHp6pX+Pt(^}{>lug4eR|oLi;{e~d@25tJNz(1?1WGOKwrq0%pF(nZD|eYSssyVcH23>plhqJ^MS z$$u1eRDrWvjc*W5FkcPzx=h1!|FFRLJm)0zWyN>-C^N-;x`rH1g{qhY@jJ3zM;*@V zQHocVcVL(7%`JkaGyU0_`Kgl{t5-AU)}80vr8*)`ugGR@Q045;zI;sirp%WAbCh^U zha$ZGaAAX@l#71=tF~?3>Uz@Qqr2UJqgdq1C(0@@<6V`Qpp~^2hi zbDaQ*&}_ZuNzx2+oiB{sa>bi1#7`Qm<>HSVNXU4>tc@P199FbF7^^fNSZf&Lg9hN7 z`g0REgCv5>tB$UcjF)Cjdb+QewR?{P^-5`iQ`n8ftxtazA)%5@uc^w=tgBw5Ji|WI zFO6`A1UG3t-xp8*rJm`hwh>*aiGayFy{)UN6I3zdXz%iMX)97QU47Kv>4mjoE00$a!{#4kCMZE|m0d5IyM7Ky9aut#J zTL(H-ugH#jy5FHB`_ zXLM*XATl#IISMaKWo~D5Xfq%%3NK7$ZfA68ATu;LIg=qiD1Wt8c|26>|G$Jvs}_mU zAwtY%&6ZuVXU39!#+(_4nRBL@GiGp!5@kswi5n#mb-NK#*-DhJHY6!zEp3vkvb229 zaQn8re)rGc0D(Y$ziVD+&OGnW_I^Ik`}2&dk}DZ!K}TqyEdrxB5}s%TI665|(O_~o zn})D>BqGiYWb#>5Eoj1_NY}gMw@t$OSMLLuplD z8wi73%uWYr;eZo}QYqmakOZhxXBVyr55>`_Jj@KjOb7-wun;SR6V8R0!Kf&Q4h|>E zB#O4g1NPLQP(;8Bg#ao{2kh}qc)%GEU?2pjBQQV%gQ+YAfG~dm3g`v6lWp9{z&1A* zcUQ6o9!pH-b2te1A1+p8iu*P#z}mu@VgrC4TEI4UGDY-F0bz_kQwwmWV0KX*%uy8X zWJ9r_>~ysu5kz|cNI)3KgouvsSu2UFcl8M98oID=K+DU81{g4wK;+y zV8!QhMKzqhnYjNe^NqSCg6+(g6&Xbp{CZ+kn9qy&p*Md&Z#xKqc@Pif&1D1u2E+nI z?0KRygWy@r$-;TNtqqxibHua<JB##;f0w|XcMn(Q;_<1Ew zG63jM5Q@nj8y)G{?Au`m0vOK07?W?Ne*~efjmIWR0~=d90<*#aI>?YFI3p+~5B2|_ zsr#jtEuY15rm{ixf9dS6?o>9!3jeNOy(Mpy0VS z&*9rqDmE7uFp~uWIFc@&sH3kvXK@!z91D{+c0EC&3r=L$|HX!>HYgMZc|1UuIBNp2 z-uyxzI}j0hfZ$Eu>0x1^`EPof^|pb75IO`i0c|~ffXd}k!=;IsNVN6zfJhRiemW?e zRS|zcz{3cNg#a8r8U-*AuC(Z+4YmLTXAv~JBIz0e1RBnkx{c)PG>NY4 z`_&3^)+Yv(L9>F`s+gQj1&E`akze$YSh&zjHEuQQOYh~3KkrS@cbE@Sqn)A^mfC+< zwB&i<-S^};J&Gx*Rn~Z6pO?S0NVhHLO4=1gz`fl{ilL!YO% zeUQ7Jq&HA}_OE-_7A`isaLCQ=hWvl|_83a5KrCJLeTeI#;lTa5$5x2-x#R@;E>RB4 z?WPQ;4Z;S)pP$dKv8=CGv2n`(VEA!!wuh$gdhMo(-Swd|QHSDX$?|){yZbpCcFWoA zq~h}8rj`!MzYWh?QJl8z%pGFK~Lp&y2}&8>FqfV}54GRMF>nLRW=_18Zs4uEdvG zQoOvbwT5kKDnRrq2X@5Zyp=M$A}&aGn4087_$@{HJJ(n$ZR^>EqalAZm!#7dx7qrT zwIkA1KGovDJh_C8Cv#Wq-A>ML3&5jRBUju3TXDTbu@67 z;+VK&NSXf^#r>Zq6Hk9|k0kRy$ad`-8j;D;nW!y(wC-jZg8L}fURgA+MmXNWkqVT` z?LC_Gu}7%bWVR4rZi@SKFE0F{N>qfzn}jn*+*Gm*Qy?XqD5DLCW3-qpdQ zF4C*?d+c5W>82tct_&pfE4O{$=^3W=o|PB0k11^DG=``9zAeV}cGT*Oj;Q&M?%i`( zqhHavbfBLBm92j>)qnS?nCzx=;c6Cvf9`M6!pZXyz1u1GOZ#Jh1s8JtWK)>j7(CEx4nKWE(Y_Y8Dq15RH?!H&O5w)vF@0c>~@VPAQCQ$=0Mp$dL- zrr9;X#v`Z|SoPAt;XW|r0Z#0sBX z+Mlf>*bslO1|!REY7|%5Ogmk^^Pk(TF%B8l*W-o=yfEka@Mx@hz*Unw@lP66*W z=`sI|xu^VWtwi%?mpj3ejazbVmiLqe>WrBP66Ir;+=)NVSkkZsy!8CK7tqpo&a}qG zJMzh6tBZ+S9C39!HJ3_zu8&R6Pk2AyK3NPO(qVtHuShQzj`b9@Chw3RPBUvyR+GGx z+%?}OB4C04$7NNI+n$@PJ|H~X;3a8e7I)kK^)Y$h?qr?EJx})>&V){wY|frOVtsq@ z!K76_cW}1q%X*$(8;un|xKe!grYm(ugNb8b#MJUgY23jW-E}25vm7R@&-tI7uF9*6 zBi?_YD(HkoX^e&RX-O6TZt7RZ9E$6%_DPXbC;(qgvP`2^CP{i*CL6Teo;ujyDL1wB zaEnRCWa3dnnVnZ2?8`m;#Y^74`&j4o&pr~BHcA1do+g{G179lqJKyY9KsSE1dR5?A zr&sjl>t;??k+0v5b(cqx_E?iFnTr)~fIoky)0e~!%WM_cdsfvAm^N%t%=}$JPR4Kp zQvx>_mtUtBz&&s*-YTyRY+l@aX*_j;(s*9X{KMkz@%_Y#1lqC3hF!P!q`Hyh4b1Pm zOS~nv#)}o;brQwX?!McpHF-ix=IhG4R$nU5MwjJJy*B1hE_$}}L&*NYDOqv{UwD5` z@w4|?nzue3w#|cXcDj z-*lhwDSG$Yus=k(>hm(3@y@cuw)ZIg)6I$O%4xG+n){9MwytX%;8$?Y6MBl`A{W`P zm&Xcc9wrRDMS~xWY^hr0J!FyoXtIAKpMJDn@(Q~VHO*|UyE#<)-g1-Cj8#O>qIVxr z@%INzn!GEPMkHB0FiF%5%D5L}YR~(qRASIRp%vY$*j3LPYN`ye>P~yqb#*E{4GmISNP-4bQ5;gWwVl3su{ znYDLC_=15Z=UsnD6Sm1*QkI=|p$yd`$4^iiGnJ~RcU^1o&$Y|bWvCl}&Jn96EZ$!) z;cO>N+B-w!VX_z26pk)cSBbx`dEjLEgZL(6BelM&qb0;dwSaa5!GRI`{gP5OQE11( z*7QUtd|_p?MzNMkiicZ_*Gqqs99p6I+25(}mEVoM|)WqVaa>Owg^fY738_Iu|$g#p;r$&I885 zkbBob>0DCXOF3sXhco?$bBjB>G@4RWLu%Ky5*w>~rJu14I{@BHSG|94m(rHNs@{&b z%`Q28%MDD4$_op!IkFn|bYazI{EWEQy|?9K~{XS+{Y@vqZeMOrWtn*(M&GtxLQ8DX3tzZ%q&kBOW6$7)(37_ zu4$D}pqw#o{Nib9i^n?4@uta;s|9yIDB@K{7I-_I=RqsdlXZ=a5KT+v|4e(=G~6;{ zn~$B0-8lGmA~j>X&xrkh0b$|njhE3$0}}!lOaARf3;L;SQFP8E?gE33TgpGL=M!jnm||uTWKIbK@vk2mJ3vdWCCN7 znUG8fOTh(2MX-RVbpscKf+*EmiwG`&wnD2ETo4fgh;q>`*SerBa%X~8gt z-}=t`z2BkQarrc+7)ydfFchaT=~Q#h*6_rf=)aI zo-9C42Sgwu7*)Y!QV2HbloM1ENrWB$3m8EJPS%u7h65E0ztbiKQt5IdxZDUJhY%Ep zQ3w?gfjES#RUlDkBfhZMaS|X5g49YS*@OMsrTnYSYv_R(@n-R|tZYa#bz%^zR%O1$ z&AYEHf5K1|qQX^^6=5JjWH526PxTRs z6-iN8r2?K_Iu}eZGX*^{4iYZ8qWq2e@sas$IS5c1a5MKSS`{{c^3$m+*6(G+}|L3 zb%E*5d|Zi1;b=rmT;Fen5NMT1dYn6<83th|KCk~JywiaCM(%HA2L@v4Su}<>p!s<- z0K>!E1NbiS$bKhNGYU(19W{nje?R)e zTFYfI;l&2Gc6T&d&tvT$w1)#K*4D4t<4}P`eBz&wvwbaE8ADxfA$!?(y7cJP$KuG3 zhoBsGjV-MyyftiAJp!pjfFR(W;qX((=32!!pUL4J+ro)>ytnV9`( zhkblaL+=4Y&Eac|Z_SmmIqBWAf95w?cXu@D;S{km9KwpIyC>+j4$R?7l(fNqxcO+_W!H@{`%e~5-8W|?hM_x^n2dnFc2ioOWzTE6!9(msEG;l%_*?G^Lq@oBNr zQk#3@8GXGK0Z9c(Chdhc&-L$Y_e64cK`X4ct5S;Y&5`zYUK7*{e;qDt*pf$U?68jP zGM7QtUe#9p7ej8iX6AJ7W7p5pT6jC#MDO0#lJ#DtYt+c^e$d3dIiu_PPY)^Z5%H=0 zYcFXwuA5Qa+n?F>mBG24X7AtTeIM%bn3FR)lk?bMPg7NiV`==?LB8e+KC^k6;iBsk zW`d2~3(K?>Ar_m9fAbtN@BS;rn%;G+<^4D_ocrwbLUU@u-S35z?wS0`*uJn9%JJ}Y zc?0e2ug5F5ZTj%zKf1Mg-dC-+HO_E}J7Z=!;PveCy)d@T;U4ZcbzLuE#A2?=`Svpj zbw`}^KaJyU_YRvqk!UnCMlqcFFz@S%kNoQ`HU%N$F_ncLf3e+K=MxtYAK;2@4-ca= zHd0!5+kPosMhB;%4~hzVy=YOV1rxV@?r*Ru3qEh_=5JX0W8dC25i>-0o;E}2i@lou zi^Qzmvn=WAZk6Q@cTJ1oFS#$S;Fj!VThk0LExr8M$E2%}F{jG#>u z8ZVfBWPXG7cMIxQNje>lSwYx%!tIm#=aM=fHnQ%&k(Kg z@e$LLh7FF-R(C~*RtXRLWH;Ve$r{X)ce#!KyY~#Me|5uxTaFixq%N*o?LJ*UzTe7p zZ|D-_)1L#iE{S)Zwk0`j<)oYCnSY1xEj99p-*Tj8bJPOgl2Gx`e$B&})ZckO{5rc} zVU|^Qfa-I$d;G{s+;ZpMPVsW;gZUe|{W%#>t$w6g9IE96e*=w1^!#}}uIcQ<4}?Z5 z>t2q?f3{T7uW2{j-sxgh+zao^bqHAcD8%Ag=H{GHqrR1l%k_77iYiCy?T}Gv^5PE- z&a9gT?pUFmLDAez-<&9E?=)=6&v}qrHc;55S5sNU8kYayY`$(Z+{J-qko7}+duvro z$I<9Q6NAV{X_?Zo1zYQ@6}3C4JBE9l?G_Ghe>rnB-Z*u`^}@z7yT(QR79$c9=ToM6 zJ~JE*jAxFHY2t?t8n!(8g8F6q?0L48EKF;+sX2fexmDYA&$nSaQ`xzjrI`Hnri?v~yf(C_tJWP3OAr#5Z*w~uPs<7VaW zg@b9EZGR#yd25sA`SrHeC0uqMIm+8F zd78Fhn@|0;e$IVsd7f7RE8zA-fhhme9fDI{opR2g(SY!3{KLI7ueNr|PCOqP`ycHN z8v~coNdprCF*BFZ>H-wEx|RcH2?8-Sm(l716cIQ$Gzu?FWo~D5Xfhx%IXF0z?v54& zF)%kUlYwt1f3&$}RGeG3HH^CicPQN5-QC@t!rk2=xLa@t!QCNPaCd@Rkl^n6k<+(t zpFa2f`wa#ZbLo86o@>`AASYH*r584HFab(9*t^m*GcfT0>Zey=v9CgZnnnG z02T%&CN?;7a#3fXv8$DXy_m5pkO#o&Y6(y@b^S>Fe~4gW;)Wv!NCNGF&L2)QfQc7C z9_VVU=H&=v22dIQ1(Y0ITz^8|^z?r!{mB+# z0LU1d+BkT)*jNFK?acr(4Dt*B1qY80qZNS4!5&}&v^2Ig2RN7m)PPz5byaZ{Re+?5 zqPmhQmwo~P2!99X|KTF4s-`YU2M`lhP!k6LHRu46>Z)pgeyRcOKloeF0Tk3e{D1m< z1pY~v7grNj(^e8^X8iLE0A_$Y(AmZ6PuqWRqxfJ3_z$&@RC8wsyT2L$s4QJw9eEfT zJv=-ZEZkgN862D~7#wZ?;-_Y5irS|NYpe4)!iqF0L;Bst5#_TiF8tuy^@$W>)rp+2n;4q$R{v)#&9u zglA7L@9;4ldj?le*T16w)Dsqy`;a0h7l4I@1;F$nQgM4TQ3pG_57sVlf5suTEh_cLmYO-(+j;@afaY+F3J$Ix zf`6d;|7Xws(M!V3)>gsT4oLOSk^VEz*v`t<>%SuZ5upkE!<93d4u7M<{L#$$KM|Y&Mi*OSm%p`V{z!8D8~liH`y2dVN0)o1M`RdHk*) z^8c*z-?BwS96WvK+1Qx@^sFC`!GFoh{ActWe*cwf`md|;uT}g|%)jxUdkFvpdIC-1 zmVY{!@`hTcH;0$`i+`Oiha~4_IH|-G(2_}nSk9d8z{3{H|3v~6EDCB3%%UiAkdxxk z_fHM7FV-Rt#jt(bXiKS@x-nB0+A;Q*_s2sL7aq&gU{DXvl3xle?;@c-lz+)9)GlG0 z&1z3O> zA7k7ryi7A^R2YsqCIjX8qx+K%ZF-@a)=`g7M(bt82;qF>rVbliHY?w^8lha3GrVsm znFOV}(YaqSKwS!>tZZ#Erhkp(mZ}ZG8Ap7|iBwaXC{~o4R0xb7R0)xEL<0;!4x2*+ zVNUg|iS6jhegs+{*|6$O^L-v;N71LMQRz-K3}DL~=~d3_&Iz~n?Wy2k6MZiV!Og1? z#>O9X<(y^K%@>WKC;dFR7+5=;PSvgSGOv&u^3)(H(OO1ijO!bW?|-tJ<7nI*)KCgz z#{o@Ya`YV$brY9O0m(Se_;4{-`~H$)B7qou0j^v?FO{g<`OqHgdTklMPCkH%u@YuO zjm8{r+kH_B^GbL-usw{8kmAbI=5zsW}+gS-yfLKT;ikhOEq%)gps2$Aez28 zuWG4}RM@UZBxehhO|NYK7C7Mj7WVmcL*kWfsA%hU60Lk>UVk26JEly(uKh+c7?DE7 zh?|80hNrw=WJ@GrmuG57Fn>0(+=X0>^KmlsB59$_eTPaBWSbUbeRb3?bB-$yyo_&} zC+?@ZSDg*CS0G$F%sKE?25W-CK%!0o@Zd6sP8N-%PfDnMh*Fd9B$7)o3hV({hr+cowjk>(!yyLVvhx-%rE`=5=U|a<9c)$|@Cc zsn*>|Q)IS`Tt5@LPdU9T(Kv|l!93-c;q(-Qf5P~sW>#C<`2D!%$5DCDUAUM%Zjoo9 z>X!{2%*fb5_SHo)VL%qEKKVnwvK)%S)bM;nTFiY>H4kiVdda_{u5g1K28c8#l@ zwNvqS2Y;?EOignqbB%#uerY&BJ_=lK&+9=dY<7j0EmxtSRT)CuMui651`9>9th`I) z7O>{o%;3X0OeMShp$2=r7UI&1XD%v&Ot@s6M4aF!y(@>F2GR&Y{j)d(#}+-Oy59(Z zn}^Rd!~1>d%Qgys>)|$h7ftyC?rdC9#LTJd0)K|Pz3KuFKNcAFPsrzb$X}u(sz%`& z#Yc&W&uTUeqFhJ02;G6nR0A%4URdRwaLc6uQU=JVKdV2@zwcRxf6IFrfdko3JnIm! z{EW?1q=nlcViOThYNxr%sH4;nu(XdX(g34*qBr}j@T3zbRq?sqJ~xH__7HJ`UE2gB zG=H)5HEMR~#&I{6{Cn*k`aLN{-<{IbJX7qJh~e_FxiN-Y?l1a0<(1Rh&s>;50Tqm0 zj;Wpje1gY<(b*3BAS$Ricq!t`>cq4-@F;eic~Xadmr18$PJfooIEC9(Fqgv!@GdN@ z#n)7j{b)Lm)fMT%q0tB0x7)Mndge7`?Qai@PK_LG z-djDXg;SwydxnJXeZ7toTk;+v{}g0E#0li4r?0=M0DlE7G$z~7uR1{`WoJ&x7k^z= zxgAR$E_hu|FXTO$bgHm0&FzTG+zTy3^>mHIY(w&kTsxD*#ijx1hc&MP4b7HGm)tjt z#TnqsA#ujc*7vC>KbPD{EynPEx#tp4Rk$1B*tB2te}?W`aR9gUA`iW`0ijIyv*D}{ z_BVS+C^Ny>m5z#kq0Nx}QatJp?SJ!aT-+!KWa#V==E^@qX0snQ7xPo;Wn~BAo5se~ z(S!J9KSOS1oPlym`lnN8Uw!`o7WV!~Kjj*%HVq0#Q+A3K3`NGlu9N$|b&Rjp<7+~ZH zDRt^YmVm&VOz|*2vX$L_E`NDzTX+RrUXG_+YjzcP1e}cTYHtMFCr#+7O;*w*7_+f8 z7Y$a={^$ja4fDUv8YrA1wC>=Arbn-ZT6rJ>4yC)v`t)3W8!Q`n`E+0h%rUb~u7=Ni z`$7t_>xk2yDtb|xEq{S8S}6ObW;$Y=hj7>va(e4He0qVci^^}D6o1;a8BlG?paq#L zioYaq6d1O{>d&%qs+ZT810bkB)upOJxG3qf3>V4Eaa=)AFDq=EET$>+%a^Agxjx3` zYS`IvO!vx0GJuT_4Oq{gUy};*hLHjgtovijA$i&=%3|AJyewHLmt0MCv1Y4%990;=Dbtv1`Ml}1CGk@AJ|az4lK=6lb!33H%N zI=Q6uv_c0m3e+79)7(A!R{=%fz3+}t6;Bd>jL&!%KVuplIe)qZQJ1iXOxOK-wzg`; z6Bhw;o-SpQ#sMg2g(qstWwe3+98-hJa$F%|RmMFy0h5{xv}KK12sM*NprO8&oJb?v z(U}Pm%oYO+EEqNR4k#hrgL{<&UHP5m%oZN(n<`@_?mgIajxI!gh z+dv#T5A!px7JqkNFh}|wj-zqQma{^qF1`C(`C7(Nz}yO2i`f*xB!B8d0Pa*T>=9;t z@we$#ZqFVENL19fI0aS&5KJt$qKj**s>3^22*0KZ0+e$ZEq{$nsWIW?1Q|a%zE6!+ zXb+D%ZH*`5j7*9)`?v2*DQ1I&Xs18Ypq9>cCe(lW?SG~Yvw!W(7~sG&Cpi;)tegxN zUPv@j(0%uk44!Px|G7VdiEba`C!FFIRgKsj1-)_qwW+%@P7zefJy&c^EQ*)V#{aWO zKN1M`?wt%(fy_qi2>@x8htAV{#KR&+6MsDKy`$HDcB$A}{e67+cyb_lZ8d!<XXAv`F74?a`O&p1H!`sQww$#FFJ|mCAt7fkC7L*_3BP?I1 zMMM$mEXvojWi%UQccPyncett?8G-!IGyoENErxfV<%V${9-RgMDwAT7`wo?9D0vf` zZ({e6v7UZ++3_-NVN&du)5$D0TB+fR`$T=3Zhu0_1B4wG+tS(QhgLn)ySS&~P?UYy z^q|Cgrz?9XS~b!rRvQKr=v*;QW{1|-zwx#tD$#ZK35fiW7o#%MXFU{d7M_Q}snyN1 zAgp!_)iYjcWjW|`Rxx=&?+~8tAkyP*0>7g}J%U?o2NnoB-dCCiFkw7mVtgBl9^GZ& zw11Yp3=$oa;1zA1)5E=xoI48cb*{nR=>DmFkVil6RLOl4p49Q|EBs_IedvcSPD*IzL0bku7~?aex|4D&Ea_aeP@#oc_k z1rPeP=%^n%2w^HhK9Hz?p0`>lm+(@B8-L*s{ps_@gnY}M@}?u}JD7CTF`M|(RLoJp zCb&k_jRM2&JO~*Qk(uu)JnU0Rh@#y%1fhS>2s{`wD9!q}wu+M5V}?q#Rg3QIc{yn@ z4s{?wF^ZqL0NY;420hQ58OB){w8ms{62cr<*mi|iND7=*jhL8I6uZmOZ&3`tuz$r* zTYZMQN|h9x9gZk$NYc|BkW4ps=GwtMR_A9(N5VS&*}<)MbBAd+6EJzXvO`&n14qAk zWX7;ggXF1CshRiSuD@?ujtjBLOJzSN&K%As;xZIi4I=wH!%C(i)4WZ2{?NI61_*jn z4wq^{*K5DrZ<}G z^gmlNL@PTk*md8rc5E>sH5@lF?^_C}g3iRzS7BVo{oJah)I2;DO|n0pa%qkvy{AZi z1Bcb)iTt$ijvmgQRtT8)K%%o1DSwNHukQK2Qx4oir$+W~lDsGKH7ezSXMa7hj8zMK zNs6hW*t-Cr8Zf4*qt`2n!3h=TRZ^hsu;Lu~O)VXSe_r}pF1tB_6JcjVD?;Q8=~ssg zA-*>6m;>;)rEbm*oP{*cO-h4yfr6SUaf*L>3Re(_zH?t-=iBYzjx8MPizu%e;J36U_l1xNI)J~m%4pTNjw(LvcnhpHif z+lTK>&IXTS3i|v_&r&b4YG#_3UINAxt2c2} zd`FGy+yw-OBt2=+Mt)W_@7SlT31?QCl#o3!QtaO0s8k&zwY3B^Eq?_l+wtUYF+IrK zY(?;iVG7;u!VWHs@>3G084<@D#YJI<72>RW1}CO=*`+3aQj&|Br2=A#|gSyAP+vGQ6U zpAr1xmBhk}y0j>9)_(?j1g$Nq*FM# zoW280?fG_@las`AB2q+Wu#CFcoRRxv+&!w67wI_A;-R5*cCgY);AZII#fXG{dPX~m z9cSnFyl{FP*Uw4vRiiDZDF2@6oM(-sUcBcf8ani;jK#{aseiPT7;9ur5_a`_cwx-9 z?m%I%z@m-s-zw@@8-MAvjDM#!8RTtr(O|<4Sp6j!q>qKu5B=Gh<=%$DN)>MsQ5{SI z^PnrMe>*BWTPoKtWs zGY17>~}sv)>A5KdU!KIv)qYJ*4-H?N-|k_T2Bi z?TNo5VHD7%#(lqo@>NI>RUzdK6iYL=UddmQ?XY&#$@XX>k>OBZ?;Bf@7n#0|!S7ob zl*eak{C@;}Wa0bHZ`<|T_mWrkw?KAp(tTpSYO?PD!uLTMs-w)`l_&4dJS5h;zmzXu zi1}=JD$?lMwynuP&?XwMV{aXI>W-W^Fy3Vu+6@xuvkm5;u!IAIc-D2P5oo`Mk`mfn z^0exYqkb)ItI|%{_FANAv~nR=bx<;g;;_EkLw^GQX=Esq5h>>|5>tm7kuz6k&qsTM zL*OO3&XZ!E^<%GNf4+u+IUb;Ol`_kr8S~y{ShX&$}oHN72)!v7?o1;k@4 z4S)9TBFQRCd6oeU+X>VAPEkt=EU2$;t^9_khp>=`Gg=K#HMjxmR=7@%+=+oMbTcp^ zt~lsxCxpvqZxfxockqJHUqIX!|AkV;Tc(m{gsZT=GZPCTgR7K5`+c~uFjdTYB z;u06^`0F0vl&+_CO>}baifbuNpJ8eU4W{wruVU!gG+!Z{JvHOBDnZH-CNS!EQl-eb zcXJc-cu~a6Rjko?BS7|+U1Z6&unKq7AanqzQPabcVhE2a{Jd9!HtocTUXN29;D7G+ z%Uj_SmR3fphfqfA>~3(((GZjJ+%Z@`Aej;dC`NJPQPN+w_IZCf;Si72LP7djmovNz zI|$)$U}h=1>zt*5Qonkn3iaEpSXaVYrhLBLItIh9Dm8kgXQMWglV8eR2X~i=u#oH| z*hJ8n?MP%Kf&j=zDxt4i*uY^OjenmMYTO<0&%TfuR9*>97+^z{<`|Q-T=B`-;7RsM z(i$ZX(_R%aV{VMq5}I9W&#Difz0f=yL`5p67IIGe)TBJm`e>fs9KR;8Lo7qOc92DMC!>#%w~9T9c~s1npU24L>e~BYc~z3r;y9#?j~pdMEs* zIJ8Z!bR7M76!mg*7#-|{kW4{cRfqHp(s8k8R#<3gk2FknxPA*Sh1tJI(V{c<2b&Dc zBJ3nyne%O{EZ=cH1Dqh;@Dt|JU+#rg-66IRx*zW9u#9~mdHnpfgQZPEPX!7Y=^;2seY{4ET%CwHm%SRZZ)EwJzVdE9!I!U@ZSAD=G+e}CX|#9$O7aPVMB4b^p` zACZ+9?T&D22`2<^CL#Su`p<@T<1y#gXOf%IUD5J(ZyLyN!G*VfzX1L zzT=u)dW1}{lz;lH)6?4u=v6{m6c_YnNF%iI{L~D7U6Hm2%RE&RUjH~C3^^B9PfKH- zAijlZOKQi@p5sUWZhu(}rpUn11~myU(8^Z3CSAbTs6>YpmgR0(Cx^kJiiv}d+sZJa zXI;FQF533zw0k%;JCKz2H+KyJzwewqlhYmZH`0l7R)6Xh0y4@QlkM6-zF4?jGnvy; zd%^Brw^vb`kIyhO2a18qTA_++N=Ad`f%w=ok2x|?{72jIXm0kXQ*8d?%bMBR>@=vz z7mT-Z_>D-M(wo;yeTm;*H%YPY79bCvREY4=O|lit3BQ6u*Qe-b92~ZyYpMfWn&P?S z!mp9D8Gl>*+?$+#zwPR4)>&bcqND{gySCW`^Kqv=17dh`v>%4~=xQRd*K{5V-bo;e z?hi07PdyC#g3%5XP^>@?ZLEhxh~6o`LJtaoyCz~8==Jh2Jjdzep;~WI+?ySCW&O{4va9|JBO6l+2dl1S9P&W2X3r>hS!8q;#=_PDckJb z)PKy3A=K$yDBYu@Nk6Y$vRm$ER9TYnicQn42f%|9(GPpy~SbtSE zU@wDgk10M(gC}EMY&B-Yoc2hhH3r40-%AHZp=GkA5%`)MSYZEs2vh!3vADuT6nS&K z$c|n4H5`%u4il78888=c3XL>l-nh-)dIL%tE4%!3eGf(n)Sv z!q@B7idP9Wq1Jy``yai9&x*Ft3OFLCZ;Rv07w4x~LjKIXE~?P;XnG&9G=DcE0I972 z3mTeG?AWCb^oM=rZe+u;xE1F-85_jLT=4zcFqF9+uO>uKVBc_GZV8Kwse3(?Gb?75a&GR#f=lZukEx^}Wp_#-yk*6`$Xp~4vz3a{eLyz29G$u*p5p{P62T0h<(P^{jR}U*Fh<-?nl6E&$G8V zXsv(2XF*wi?M2?G>lzyGjKROkHbl&?f@JYxwxcuode<>D-;(c{`m9asxNI-TaJ%fD zZ<(80FsLfUUClDQDZ;&((b~F~P_dbP zrQ`t{*sMV>J~W3bC4cAFkl{EqB3&YQ#@UP>b0r#2*v5GDg0wAf?1oUi<${a7^P|$C*`b?<|0)ug#j(sx?ZfK^Bz+`d!7D7Up2 ztJ+&!@g&R)ZhyCHGWnZ#dpbnlLoS({c5fsquuALblpv&zY`0})qrC`<13sM=?NvV> zhSShCi%I5z%N)FKg0qIMg0H0&X6VVC6CN~pnc1yB0EV7vY}_u-ZRupn2exqDJkM_s zprE(czs{#NQ5G1Y*lMWgH1th7m0!yJqQ_r6k_tkl>wnbUL{B@^Aoe&MERt#ejzelBV3s1kCMw_CMY_JC06H0$M-5@^fqN-I#pwCH5gFA3Qj5; zRMqkPB<6PEZ*dsOzjr;rm=`HRXi_g~$7S%z+?pS?acM!7a;jv1-tK-Hl*^F2ij@|6 z6#Ukm4S#0P`88p?rOo`S4lSQMLw{*iTn-jz7FCEIJtyH)o*kt-1nZTO5i683mNuEE zk4i6Oexc1+3~bb>Z5(dO-KuucDVz=+z6p<=ImVUZDRq=3teaV>kU$;h^8S;5f#uEm z0IbUnb(Kt#M%z3ZPFvWtfxft`1P8|Yw;QcFd4K$XIj}h*Y?EO<`{CNow0%C7>!Fg3Sayd+PDx#2IIuJD+X4>D-nrRR9n;ZWa{(Ol*driY%#k9`^h6{l6ZK; z83|~#XmY$eMf<>}R)sGZv@b!vq=RI=m@jm*T2Q93Vl3of3!V=cEI#tdtQ5<`QA>-x zVt?j)!ickxo1T5_vt0>I13`<`Rt&54Tqzw+IhMV+=H$C!*t0u=VG;?|Guf{xspd=n`(HZ{YlbUJ6Q08`MwqNVHNyvJ_7> z5AoT|RuJ07>FI4rpJVQnOT1#VrdYharGFa&YlSxpT3jG{@i{oo$FF3}$mfTuW3fdd zi`_PNa&9HQc3+dpCAjbw_=~wzYem+mUn|T##oW5tEA8cqyg#|BBEsNr`ibFrZ!dPy zu!UH!gZXZ%nD3$?TLO}O74Aza+&5nne4}HOPOpR4PLrB>A7-{yhLvJjr4SshLun8w zTyW#AktvWsy^vE|NbqP441xtGJ|A~8u{0jG&W6wbjgTVCOFS52dCn@QE`P~c<)@uO zYLR}!6b~L?<|-mIfSX>y^O=MXa9t3TEss7w=azWo7_2vV=3nC;1BEUsP96*jmmhW{|ct!j5E__qc6E zLI@HYf7warb*bqE3ahQN@gt9y#!@F(M*Bz&Ej-B4PC&J(3++4$e18S3!~P;RV)@ch zhS)zmZ$$b^(2YSl*=Y(?UC?Ya*oveYi@r%jNszkfpJ0I}?|^TrYGd;gT)K55h14cN zwidPpF{u3Y)kHSk-o+?!PSC(k9ELLfV2s^H*UhH5aZmpY_clVM33)C;>{CfgfaEmP zZ)2?7@{BM^^3POq)qfJNn|eQEZwt#|C2_^vO}jawx#p?pi1DzvznE;*;v1^qmzBtE zY>~d@D_6hmtu@hI0M96g=>u|^=}GJJy>K@1q1$3#Ei&a42zc zJ$?X=$sVPHiN0`Ae`T$e0bXVn;jr-%E57ogw~!oF`ZyYr1z?Z9`3QMjfbhV6&x8-d zHez7J-Q&d*!f)5Rj<>T`H>fgC-f!~5kyAj#3zbpW_#=dzbFdKareo9`mcg8Wk`t2=K&Rho)`=iMNkmq9Ag65L#A~NqUrja^Xt7=?<=pj+4^9%&#Hyp@m%|FQRqz z9DlC_B^-JrBZ=KZ!Qip~sZHf+lhnV*sx?3Fai{g@Dkqi`a6a(bWa%)Sj_^8%xMTb8r>SH#5o1wjf{e9e`khG%QmmhPbSCz*7)Gse%V2S5QE8I#G)Y91MWrl z@9^rEz~nc@7Dh(27%nLDZ`it_G(|K}7k+7Oc-}z9>ptaViB_typ{Bap1os%S6RWi~ zw_Y=&98yfP#_;YK($3$Y3E(IlwRpAAanSz0^^rp@Xku5c&3lsV!-3%#7CssL9om!T zHoST(aGVuVYeL&A=DGI}+j@G9idRNPfL?cJfh0`E& zwP5#1V@qpAkc41^ZUU=js+(zlKPi<9Wl<3%G%8EijEAfve}_d0=A~PAR|YlGvb%2- z__!orJVYxxmv5Sq$78M|c{lYwNmu98Uks15Q?pq|-9%2?ATec9XtIht2f($_VGkQU zAYvg!mv`?pV1_%IS+gLHxINB8n$(Z;#ijp@%@yrAf`#XH7V1y6fo4 z3_R9nYYoFV#VP;zt;+4|+y(m<;ud8?6sisB0o*fXYr7VkR0UShMvC?#q2;F!DjuRIff49ED`Kv1$Egv_H60LhnNS>DhYL zyOdkeO7#~?{W1t}1Or@A5%#J|L`m(dqgyx5+YTH*tfa3`B?@UO=#tn7$##25gtfxR z8t=xVH!XGvQdeiT?3gC^&K(O_YK376BnG?P`|dqffGKVvk7d+?by3j!2gX^qOQtFI zFE@=C8lYyxM$Rz8rAfq1N}F{LXJh=s-kDb?2VYBd^@N)Ojp6b;ai%df3}Zj7hMg#F z)pf}xt^V*}BTw3Lpxo5V=N$knD})KztxpJbkuuUC`&9w?1!UvDV~s(OieZSGsQCTq zerxGLK(abHrwI4z#{6-c2N)?RuWv3p(LRlsL8&9hU`{)_cxN{}EUHML!yX zz3)0CG{iR6Jb=45Ilt7RvBvqDT9Ws{ZARV)U<+DCe(_$_M|u3kNY#GkIP8lnlCuq7jBK;{M`U^n@nvhEY9_N{W$Kc$!eco4>q`Z5>T_1W|G#-{amc#VbrV`Ns zFa)-pWNF7j4P3&F(Fg;Z&s7rPGScr#t53aJweFJ-une=uNiW!*&(u z#wpi?L|u)>5;6j^cL826dqCTX=7Z-9V6LnFqp8h9qWsig3k({va6G2c=p|^Eq5l_m z&@pL?sI=wG9KnXBhNgEcstQje3rvV@ZGZ@rDavxymWggzb`d$!GT$M!t<5WT|H7zk zh9>a(pS*KIIe{8QZX_7NU!WEn-40YCPl#pg+xe^M7lBv4B~YTpl3PDQQM{y0K-<9( zBeTp0r3$@2Dy_Q9IH$k?lv&&$$G0tM#Ljz=RuJC394EBF?FC=?Dx{W@CycDJ-(gpt zy-W%NtdpU!QUU;dDp}$4;wk^5VG*A0vRnw zii&m`wG~P^ZPzjX5||HIoBUo6jv*;7C%i>mt7Mr+Czk274#fzdG!Nk8{@jowd9c(T+pvk=-hvnNgi z&cdga?Z|#^V&?~;!I=Aqga4X-fq##DR^_{P{7>*afUhMG8<7=8z}ssMu-i)B(Hd3} z)dp9?b0j_z-!-(cYkhg5ggPgUXJ)?tiLM*6I|_(topUKS%bo5dV8`55KC$v}!LF^A zF{w!M&u1-66x?%PmMvQ%viZ%$e9=DtKz)U*nMtvr1b$lj=8N%2oZXyXSuq>joJd?9 z@fY*FDtzOEW)^fj?a3Vt&|Q+FVZfwd&Zo@#^e^4`D+0v2_Hk&G!HUc$E+ThM9wu6f zvSsmT{>k|c>HW96PT&DiW{CKF+~)Q9UJNv2PNHlpCJad1|gOiaCp%OjYYDj(4)}srVeZ(3M5^M&~*&Qb}iv?=g$>BPP~)>K??6C zdyxw53G#q#7e`Eh{OgLzXzs4<+d@y(FyQ=;x6W?=9!5hJq2neW+n-SGB0tqGE)@sTTs z;hv}?rjuu|r4Si-d22K;3n>prwE>3WbKVD7p&wz$0h)kx6fF=@x)-u^JQ%lZE!+e= zC2!eDMedFbkTDpXVa8jJkV@xH-`ur8{o!0l^|EgKarKC6V2bFb<-Bl$pH$OmEdjZB5gqABES0N0Y> zar&Ts$T_e%eEBS%0x`W3xdn`1BJc9I{rB0;9iiVTz}v4f95Lvc4)2tYhtJkL(INXp z02*1vzWDSIYhASao`O2`o0v-j&#-E*2$gqAxRVGV>g(C01Z;qh`}AP`n47*JQtltH z=fk`8FD&o*d|YRH7T02g`L<@6DxFjqo5P(nG-ost!qh}CcRMi%1U=}C#$^` zrf;s?l`lNmr7&WEJXVs$j9{obe=u!2{1`TCL1S;SJ(r4JL{(w!O0@H!mh_^UR3zsH z1_+pq1sX3P;+m$p4%8!EYeKk8&L5n-#O_TY+17ak=B#GVJxKkAWQg*8?ySkICzphZ z);1xwrwRu1O;*?^0My^6%3uDJv{$N3zG+h|a97Pvq(f=P)?gK? zB~OBX@1}JVl2sn(CB)sg;i#2HLNCN^voRQxS)xSr&XEfrf0g7-xZObNs@W^*?{oi6 z%;65&_a+u1RjfM3$&(Q+T_kU-C`7iRhhc>wxDg z>JkZd6{iLgqm~dko62&_-WWGziGIaG5UcMi)F~xWv5euZHSa&AR(s{Xm%FtZ4kAgC z29TA`Y!lNWRLR)jLfCVF$@TOC0T=?d)I%1hjadgXPj`2d(O4>^E#Ed$v25M?L?X=$ zpuF1^T+kz?Yas<(%jfT8Bm0j65sgB7M074xA=s`AqsS4JXT2F|h=0+!sZDLDSENsX z0r0!yu2;)Ws8c8!y#qLxpB3Ep*4bo~gCABC&AfhrJj?wJ;$47z3P39n1Mm+z)3X`; z!69Q9%X1uP6TJf@GZh4&uoIK0@%Kx+n5MI@Ac2Q#mkUoB)LW~Pe6&uQkwoh<)Aj`~ z@(n0cFq*#m-eG)soY zL_}P^R`4hTV?eMm8%>VGPW89EfCoZX6(`8zyu(Pi19#%ku!$O%Lv&*-eej}z*XtQN z2DD6-N=4SWXes}rreBKouUTJiM;^n~XOnt-&g8*p6FJ+PV8Dz62aMSf(NeyQo|RRk zw*~ns9>;GHE(9U{^FlPCUL8D}40;r^=J<<@q2EXkYiN&LvttX5Z6%ajl!q0L4!IOn z{7=h-!6A!IE*qbTkV$iB1IH#L@o6@$hX$3{ahupX_;NF)@H)GH_jqX>=gSr!(}HX;XZO1LX;qVshEL3ONEQ zJmV$p+;c?>?TxRVUF-z!r~wFv+w_mqaz7!Eu^Y$zt>&$w@_<%Y1$}M?->HryOL**8 z;;>wu&hFF#@LxT~QrUS|)9$@Z%3O3mzko)B7!QS^& zFU7|fL|C9j+SrH-kuh!H_#A?Z@b0olc!=YEjw>rKx%p5zQCAgk;i!i=&wDJ0@;R8! zF0HB))*y0Ss;@qj_yAOg(va?pZt8MVY*FDPA8!!OJ#XpNd1mMk4l7@syW#exj}4)4 z0XD>uXz*sr2za?|uLe2`vdV@35VJ;mTLrPzrcw0u0Vc?qCoT~o6QLk2zvW}Q};o#7R^riO=^I9a~6QX)>4M;b6 zNdeIuOt=17N)tDo{O!!1-LKZaEI?59!sJnCus+YG*+B~&By4}O;w5Th#N?5_F&g4D zp}#1|nGkK!eJBN7?0eeZevP+;UC?DWKSGVkj3MPDgGDS><=@WsIpU^7I~lu5M3Vj_ z0MgE-#=P|B&P_HbUh|-p*yyb6i{0?I8H@mBh|wEM86qs+4W~}$$Xgu;PjzY=-&0+q z5Iena@evnY?|4=OmVw@Yo7^>Nj?i{@ooUL@f}Xdk9(ox^@ZB$!W3bM9w5P>;4>Q^c zGdI}WAd}xz420yP9+9Bxq$#Ost=~Sg0HEom&ig#8Zy#sj>P{zYUrO1Q8-Ene-{!+0 z+Rv=*BoR0i7iPuZSq>agg4%m?v0F+FF*3+5kFOT3`FX?Iq2Q!{Xr71)$BRGxk$j>k zfdKr+L$`TR_zHQWl28-`v5+rNTtQOY1Hqq8%b+(D&k;^vJ9~0<)lO;iRw#su0C`Pd z<$E(nf4O{r?JpSv@&$U|P*d~H#FJl79QQ)OR8=`>gf#foirF9`O~$e z{yOd(kydvBj=fGyx_iU)Agy@7s@mwVbI@52W?P4s=25@guZSkY`fk+`;jq=%Tcgz} zU9@8cjB4SezP|`u_>HUFTF+HO0KY>cNX%ju-Ne!r@J#9_!rKlJYjDxnXdci+{ABZE zu*xVA*jw4=lTh%0g-6na3t6WkRB+6r+}7yNkWq-*=IXzRB*SFZY!RZ*YV?Q$RO|Zp z*nnRtM`1mP%&N?gLQI*?$+H5nCrJ8r+k`k*tLu%y24`cG5g+*knp5-M0l+* z+^7MK_osgDCpGU89C$@x5-w6zUd(=c*wUV=?E=Ji&49>3)KH$WUDqvKaJNb?DLggY z>O@1$bzk>hk@=*xYJ!T+q*k1@DW2=9EGaVVK4zAefHSkDI{y#ONh|6GhkCODM=sBS z0a>dly1GhocDDhin8C9H09Cfd8mpG_9iNy9LozsXy=Lo$VZ};R!Y@LrS5>KxM{N?n zIf84c091Pn*GtU`)cD^bb&xYtBAYYn-c6sk9+Z)2FdvDZvF;m6v}lTci+lI1$2+ov zMjiG+0h3N&8k|go=P98TMvt#D+rc)do0D;`q|Uc!bL7a^?r*z90F!6Y$#prmi;a=0 zZu%D;=+d8e;8+eSr0t{L3m3WW}R`>28`~g;uG2Wc7(u@zQ zS9=pCtt7K=&6WpW04?a2k~^KJr?32melMaJ_gN}GGj-JWhbCMI2n$jQy%CIWN|*aV zUGmn42SNX+cYO*01?|5tqnusSJ8oHTr`kt)G%cQa&fGXvQV= z5&K^?^;)-jF2eo4LOsioli-o^!oO-}q0H`JWjvG}NR4%w`O&nWpCK@e)@V8k??}^v-?if$L=Ta@X3xM9HII`AB z<$(Zqb?>>4fR)7tJ$cefX{4tWOVEkj7)%*p0OWg=eDLaB;Cw&48|J8=sQc5Oszod6 zKEK;Xmopn^ZX)*IZ>(g{hxOO^RE3=2y>d;PxsTRu{M^Prhe&lpt;AR*rq%kt#^yEi ztmO$jS38Yiba-MV-mqjBsF01a($UP#i2V32B*8OE0Ey%Qcsy4l>bsEBxv3iZXWiMj z9!v$LXyt6=^U3eWC;?L&=}>?yM<}Ix0guXHY*mdDxf-58-*Y8sX>I6i!f(3BK6I7E%5 zEcqe}kaccs#iyOY1-3k^d?3s75oY|@gZ}=>r@e{DX%Bx+1QmdT=sDG3`=&O>y4mQX zD=25&BR29Bbd-@^Y#e=}yL82{WS34S2JNPO$kyn}Ms3#X<`C4BPw3i(eb}9fBO?h` zTqB^klaj-u^F+yyfndjqL$kefbbgr5Sux`c;4aPzdRKrg%O^$08mzyCXC4Omphf|V zjr8UxcmJ6wHx1Y&nozl9hOV-`oHhNjBdU1V(P{BpP}OYSPfP&TB5zaRKVbd!{B>O5 z@?ar7=gYPC4+LT8;l3?%c;ipR5_}8DSq?0V3&8YPvHpE314};PE7iFf;04HTYD9?# ztcM;~#nBCd-w4^Z^VAeCEfj&1fM&bYy{gG#F*XO5bkzTy=@c)8otygu$DD3?24-ha zCWX|<)^9o7LAa0~wu?^_@1o{2o3juYyy#*$UKf}KY}ZqoU)VUZgg&rpA-NSZcn;Sf zB?%w%9x4dp)e-bH+s;6d14cp`at8?p;D)5WH~TzwD1=d!uDh=Nlk^#B^689z&X<)r zQp&g_YB^<#@3d1gOnM%s%7|eQHl`Pf&kzKVqw#&48x1okt&j__81l8}e{SIj1)b{_ zxem)J+FNQ9ZT&9a%fO7%oi$NDIhh&iNQl{Zk?H@J;XgfXZ0?@XR``nf`YlZc2+$fN zZP2PI_1OUeYP-M&(r$H6nx2g1Y8LTg5(>dH1bnZ*bEu=}B#EzZsnq0BxBskY}n< zz*Hl2xDkFC(?UqF=IwJp-9putdm+jr3d0Im9LAqhMOZ?)nO4c$=#<+7sJ*&$v`q%EgI>lce)sX}&Q80%B5;+M?FrO`>ihTaPAvMYvKkom`E9b+5wCr`%J;*I?} zSaW8*326x$7*VWtW~82yE)0qT$G9%U$an;aD_FGVFIq&p3ownq z!d}-XjEcByEKbLW+z8%h|Im9wVb*s`KR2sgd7*J>V=Hg1J`Ja@Z~%6z)abR-0@G;N zfl-GDd??&Eqo4BtZQPv0<-CclBCAsoX4K~T4R|(gE6TfnZ<`+?^ObfX!G9WYz2pvk zDE^AfRQn{39h#Md)9HQ6n8{JOlvn)*s{FwG_#1Ow_<-e}qy}_P(-0`8YB7)D;f?b; zohEUH7O*&tP+xy37LNcuC7x?Jj^Usekn;mjFMSJ#!_oZ>s1K5z_j1=3q5R{h(IJqO zT*GYj7j%(0$IIV~bJ*^2>aB(eWj1_eR9{o;pHKAQ(5ks+u8pjz7zeZfKJ>}60!{;$ zT8O*^w9M$0rGf$s7j7A6V>EUC2{1m@H`hIUU`t(EVB2fJ=TbEVImqEWybr^rGD+L? z2G*llZ_H35V4GL(*#);(V=W=kZa_CayxQ|^1x0Yn`{SdJsmN$caT5p?u^RdUH?>tU;V5Kz?mukufOrlL|YFYhlU$9AYnI>0{^-RN& zM6e7IFB%;(X?-iLTmN^a_gS}oNV%Pd%A8ym^9ij$8CQ|B6ACqtA!X0Y-PW+#O$dJ@ zkJJ*TwbDip2U*LFB5LcqZyGl&b%{-;T<}KM9jc|ZXwN-%p6el6P|?EGx{~Z3 zMtEKUz~%M?5>X!NC@Vu0o8gm8AzHOQ>n$2(i1#BA);f7l(x{KCK}-<5eUp$k!c*+B zZn~YEq&D$gsHUN1>6M-`4R4b^HEGg$XjlY%nA(&fWcSvMQ{6i3jH9yy^YVzTrEwe? zwrb4s@2A=pNLiu^2|GR%ySWaV`!`kl1bmnSNdFQSxiMH`@?OBgg=@GZGsu3~$;lq_ z25RLQpA;<*s0ffjVnRfwE(xdM=SyZg#M(TpHtnD^$E}2|JtA}1)gf4)zWG{5fBj2p zBoD^83-%&Sf$b!yU?BU)g{hX1Nh?O2yqq>7wG$G?^_)mr+|8)?`}89n^-2yffBWM< z!i7=VEh+l%04sT`wu9c42lzgPlhVsdVoR%Gv;f)MrYEwei*zB;qvX_jFx=*J+D}K% zxXfn?BoPJeBpNHWc}px)Q0C{?^-SKTaE5%JAb5?<6fv75W{~zvvvhwi#MtUbU}ya~ zSlQrgM!Izx8&GR4=^bIggR{so)ZslgpylW$l|e@1Bfl$R?XP?av(>=XU9pqngxJ4I z)G6SV3Bqb2t;sJBzI6R3W4}%Uq>SP^*Zu~e8ly8HDcI;I1Y_~wYke@v1|w6x)Gnqt z6J0|}AYwr#if5(-$f@UNl{YgSe^7|Ov_x-p5D^V!-sWcTvV2a^tT{~Z+DeJn06&9} z#Oe|4-tsM2q*`!&>dr?b=KJWlF(is(6;!qpj~hm4#U zZ@|TY?*tBA2pAS~>I@-1xAbR=Vmg+arCA!DEn-%d!W9DSTT8Xg^{ob&TH2HNo#bd|%HX+&=$gs;D%W?gYKw_NM6LpJAry$0 zGn!KnlY#BBkpRXft4jXryI=^NXU74iE@8AIh*4lf4cUlIN<&1DNm4xvkSZi%M*}Gf zN-H5xk%-BiP>dB%XRp$rXyT1);}!&is+Z=q;U^^7w+6#;6XRuk0+?W*fqWcO;N?=^ z)yta?UvwN2=&~31p`5lW#=RwE#$6ewhxW1*z4<8$8R{8CcHRrdv7C)H#5^vMo@G~Q z6x(V7(C-^D{^e7zvy{jKI0u28pvV*LZ{s3hCHio`sir zpYzg#-6*_nh@QDSk@5UjO+7JCEP3&e$2wRX;p35Us=zpSp(*}>3NZCnr#S71D zr$Zt2P{LH$hq-%!VzuJa76h0v`??R9r&5w=Q|i>gRkJV+9C+UZ zeCOl|2zKuOAy+57O=*eYv~y=B`6e(bX-)jn@MAs&VpmrM*3G4h^~5OOzFm0)TRCDy zA4q^3(VxTbP4IdKfLGaDQpA(2O9;kWOoZ^{gfWsL{XcT63_KoB#8xG9Q@8m7#3dBP1$6qX-fS<2 zr958J!z-sj06#Mp1^S=^9P`z_mD6?Y0;N?+?*hYY(`R;;h%nCP&R4vpVg+ZN7jG2m z8FxZx$wk5U5t^4(^*Mk3+S2j|j~+}O3%w(V6{ovLp}3p42m(!%n7m;5r3&1}{rZ~e zR--!<*3tW-z0rb9Jx1uZsf2da(*hlgWR3M zpl(1$7Q_Ws+1X>ATWvST|{{jhpt5B#gJ z&`fB)zd-logWPL^j~3Ah36P;>{GqQH6-x}zZ9InX#^R^DW9o7wxAF4)P#BJ|K@wCl zK<>^`Q=}oH7{~GB*Ds?L5^%)w6Q)2ISoue%(xD2<^vBxHsQN!F?I=ecDh+fiJNF7B zp{iG|b#;p3HG*-n=s3<{*?SDdsqrTF1?Z;mspYg`My`NBMSe_*1efU3S)Mq{$eNM( zdhg20tTY&gcJ#CjB^p965?h+CHRnrkK+>Pvt(btQFCTs0Rwo#pk$SZT_TU7m5JSb; zBDl+O#QRIVq&z(0(PPG?ugu}u{Nq!4OF_9V&|Iq!20Ec%mS3M%E<=afdnt2Su)p$x zpwFes>nFZLk7`Dz-A>oDSa-GSoB0bECHF*H0O20L zNF}XTgWz7Gx*n(GxKu`)tQj0>pfzZ8`!q;)Sl%d%rqb~)*;e+y=O4_fEpC3juiq{P zw{Kq=2mFO)vE@=jKB@L6?5qR6jh>rYtWO?7myJqdF4;D_R8MR)yfv^62DrnpR476N;1E@5v0X)Uogo?!&9imYuDs)}{J5CT zH5o!CzEamLq$~~WiX*mcja_y2Xz*O8m9zJJRK-;IH9*E?V>o5|Lc>P1`Lc;pC7ObB@dH7_oS zZp%PmhYJpwkW#v^Fug5Ot9H#Y^P2xN%Ys9&To}EWvAi~zxePLxsW~hd3V$V7txU1G zRv)9iu2JDT-MAyhPFLOS44)EgM%KjqX8q3u=WDCE8 zq>^Xwt1kQn-hC$DK(%fbXeSN1kUB4CC`dZEe?J9&cN}fqy3xcMN3f(X?jKn3eD*1F z2&4Us)NMvDcX7ftI{bw)GwL8UCM|EV`WTvifEwdX_>mzQC`EkGXDj*R;qQay>bbAZDhJe=&85G)X=9?){u;C>((?Ug=Z${eQg9ph7hD|{T4Zg!JB1IYLLq$kT}`gtCSjrt<&@Z523i+5h|OwQzAEaH zyN@RYn@pJpX4yC<1c6$XA!;Cd%{m2ZpS5HZo8|)V8IRu~2$DcQESj2|st6Z7#`gfz z9uyI9D+O4QR4NOJ?<5ho0#%q-+9V2TeLjc{=A<1|cnobvWQdpnZ+_@TgeZ7T-6#0& zz2dvud&{RD?C7&@|2H)5Z;aIw}yshk}=9gjh{Ee9K zRUdk-@<8&Hc6ny1Y?3qsW`JSvq<*~L;j^#B#|Nk`=8gLx_D8Q7bkY4)#=v^#sP79N zQ52M7>_&za&rw7c9a;9!7jSv|&oYK+=wj}$!t?DQmN&qYJ2Un?oD;RD2OyS1FnxR< z`Hj5){(N(ER7y|Lls3f>E3u@idV-R468LJ$h(WQ!;&gk47;-Xb>8z{AS4LiPwD#fK zi2(S@AZsM_|9HTlQpDo*!qpH)qewltOO;Csq3S{?`s3~(WL?mo`vc-Dk}lnXJ^~8T ziUYFY9I5a!!R8GV%Y~mh6 zeiMZ6d~gh7ADr*Uz`nY}b645GdT?j#!uF%NI4i@%oeFYhPG+Xc;nr@eFltjwkYPhU z2VrfxD+>;p=x zdm>PG%lByPT!r{?mGNB5C}n+arB;+u$J)NZLiVs+H`m#!63iL)ky+J?t1RsvI;X2F z(M++H)EkFEYUre@=!({2z(~xnkP2J!mef^|B~>;#VLqq>PxNA(Nte`Qj;!dhaD zHMiI1C7CN#i4_LH!QT?ycL07Suz#gMzRRxR(GO?UjO(3Zqp}mn8UVM1je8?K`o0{B`geM|H}QQX zmv3|MtWpGbcyA_=;zMRK?2?UrH0AOT4~nDwUu`;FzHKiW+NY@$Pw zj2e1}p1f6IKL*2+*8pkG=NaigNus7e$@wnx3Gj|+np2OG5Rj|Cc(6fbX64pqU9YiU zY_}Hgw?dPCUh`P1y(kg#SdQ;ExS~iY>4zYz7E&X4BmZ4H;%_|>E8-@e2}djKf@fC_ zBa|%cbaPYuyfO)~t^`mAuM~5A`ea$_qP~qrT~QCA=+3|9U;t|TRqzy@68lE7tkYRm z!xQ&dycys^TJGYrc?;~w--5uhGED9_$6!a?sg+oh*8Tn~Y?Fu)<|bvd@%bh9;SwDR zR*h%L@$xnNBcOY==?Mu)JhkFjqxrm5YErb&FnN}+^_PgQ?nrA~y@zj2cG6@**Xc7) zTg{kBkr_G|_kboky#1&3hU}An;>vOgSZT~14D=?X5OFfl>sn+kf2lmn((!cYd1Q~* zfH!eA%kG0HE*|4~wMApjC)_8>)O(V`;y2j|{6Z7BN!IG}rjRy;;-@48qtsDky!*wc z=|pG5CEX3>jE#^t(HZwA~#^YvlI z`{6@S+l*0>3>CQ#UXJ?zCP190l$BEYOMqAZB=}Tl62yquq(!GAW{{s! z1G=b8#2+R{$BRweXmwy|zq5m!IOu>aN$}?C(%~#duXP`@dFl^jn?GHQHZ`a%wEQ($ z)s9zy6s%J;joNq+3Pyp?08{9~!9cj;vUV=I0+l#FI8CbSexTn$8<@oWm18~PUHZzg z5(97tl9QnL&T0Y~&-JP?qiNt1ot{hIw&87E7JeZ^@^T?X*?MyHHRPEa|Hvc&S{5bTgU6)~HG^z?8P z-1#hy7z-LQzF%}B#fC}gmL;Oudl|Wm<44hiSlhN_$>8LYNB!MESMN+QCIw%?bER@CMj9WT;|#I1NMZ*T39Cd3?G6C< zGA?pnPHWp`cFeV1*<7p#Oj>C#B%}-7t2dU31Y6CFYME%tZtTV{Fk_`(&_)*TB&1yH zY!B*;kjWHxr7GoP^SeR{A%LF26%nsw0xZ{}M$Jfyiu76E58@VTZI>CRWiQqmVF}13 z`K^B~icV3*_fwPDosMSujlRpwm;z)4soeGxp;s0Qj4q1rBTKaeQ_d`n#Smm&*i!jJ z$X2SwNG7I=pYW9{2Llr>4sU#ejNlwlw6q?OgE!M*FF>0}RvYw6H- zCLn)ug#kB3jH}~wemY!9L8KSo6oi)p#7V2m%fyJl&c|0y%}!^{3;fo6m;cO1S-5lnnO4 znjbSZM1i8@pghiJ-%&s7TgbutDm+$>0u(yRi9K!pZVzF<%##Ryux7u>lf)n8X3)op zl0Qtrm@sBg5%$7~Psq!kAAmTLk4&*|`T%EO;-qXKKUBtvVzGi@u_PKbsKJDOVoYqU zq(JRNM1N}NFYOW$Y0X_8JG5g=ZEnntKRG?9J2_LVMn*s6;nbCb#EBVjk!E13#WlVK zdwCzruq^=S0af1twY!CAQSq3J4f5YbZCN3EcP+Mq+(NON_b-TTI=lJ#oZ{3DHwqU3^H3X<8@^{zB zGmHeDO^sT~V4t122}m&MxAbbQ4avDH4isC0Sa-vuE9uRer~VF=Uy7Azh`ifvxBF>| zx=(h?&|CieH&hWA2+){nXHoH>TeqZ5ZxESiGg^W688^09Nueom!l=D3)wFm-7uXNFL&IViY; zgA!FQ7EfMA+@_N5}kKZ6gt5>BL~1m1fw1OzP{zue~EA@_hRh@mU75gEt3 z(15M&hhntxxiS|H{~+U~n-Du%?K8 zeOL(1`S$K=@8$U*F9IE#Yfkd7MwvIEb!=c(!6eWac-!}GFCVw2=y`m1nBnjAmA|N@ zc+Ap57-M^OvL?(s{sWEa@B_ii0fpCLn;JO;z;WH3DCM^X z4XCEnX!)^Jvcajj5?4;=pbb`^qAzlE0>Tl2+CpS7lGvAPkmk0BptYT}uYb&nW(j^qc4)~EyC7!>Y1q!?cM=nT zu5mus0HuPj6}u_^x7zkp|7u1*qb%`60|+rq`vdY!Ety|DfXg&x7%tO$qql0OYsWox=2Y~qJ2y5lr8^|Cd!C|q^keAIG0CrQ6wI>ae2gE^Fs1W{A7Iiv zlePw`RU6y8dMw*MleVLu@`Z%Ck-71N6=@UoN^dgW5>_T*XzK!d!&Lln73C&IMF3LQ z5ew^c+*WL(puR(by;&!4#!}*7QY}VbD6xB0T_u*&!j_>}OryEr zY=Ixp@iUaJ=3}{~dkGPO=zd~*Z={z~_ee;<6ZIOC8mV(DCcyG{?naj0DyMU5z+% z6b4E(&kp$aA%`v^2k3u3IJMOk2re~|9TXkF%%KO(pkn21M##j>0nMO6sKZ3aLdf*9 zsO;e2`m@OTqwpz1Gf3H+JN!g!{}YK4>hQ92inFt@v#@Y-iZQbYi?K5aF|x5UiHI;W zv2${XbFlnCTmQee!2di**390*)sm2f@qhM_Y<`3}&UWV;P8M7Hq2) zo^KYWVip1iF~DClkP^0+5Vnsos+V$5l{@{ig(=x1XQ@@1*@!JK9i=W^6|O~FuIvfC zvRJJryV88IO`<}}?b%J;WGjnKW7G`!Xc4#s(F$Hnx{{sKJ BKG^^O diff --git a/doc/Projects/2019/Project1/pdf/Project1.tex b/doc/Projects/2019/Project1/pdf/Project1.tex index bc5aeab20..8f56713af 100644 --- a/doc/Projects/2019/Project1/pdf/Project1.tex +++ b/doc/Projects/2019/Project1/pdf/Project1.tex @@ -20,6 +20,8 @@ final, % draft: marks overfull hboxes, figures with paths \usepackage[pdftex]{graphicx} +\usepackage{fancyvrb} % packages needed for verbatim environments + \usepackage[T1]{fontenc} %\usepackage[latin1]{inputenc} \usepackage{ucs} @@ -123,7 +125,7 @@ Project 1 on Machine Learning, deadline September 30, 2019 % --- begin date --- \begin{center} -Aug 26, 2019 +Aug 29, 2019 \end{center} % --- end date --- @@ -137,42 +139,272 @@ regression methods, including the Ordinary Least Squares (OLS) method, Ridge regression and finally Lasso regression. The methods are in turn combined with resampling techniques. +We will first study how to fit polynomials to a specific +two-dimensional function called \href{{http://www.dtic.mil/dtic/tr/fulltext/u2/a081688.pdf}}{Franke's +function}. This +is a function which has been widely used when testing various +interpolation and fitting algorithms. Furthermore, after having +established the model and the method, we will employ resamling +techniques such as cross-validation in order to perform a +proper assessment of our models. We will also study in detail the +so-called Bias-Variance trade off. + + +The Franke function, which is a weighted sum of four exponentials reads as follows +\begin{align*} +f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)}+\frac{3}{4}\exp{\left(-\frac{(9x+1)^2}{49}- \frac{(9y+1)}{10}\right)} \\ +&+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. +\end{align*} + +The function will be defined for $x,y\in [0,1]$. Our first step will +be to perform an OLS regression analysis of this function, trying out +a polynomial fit with an $x$ and $y$ dependence of the form $[x, y, +x^2, y^2, xy, \dots]$. We will also include cross-validation as +resampling technique. As in homeworks 1 and 2, we can use a uniform +distribution to set up the arrays of values for $x$ and $y$, or as in +the example below just a set of fixed +values for $x$ and $y$ with a given step +size. We will fit a +function (for example a polynomial) of $x$ and $y$. Thereafter we +will repeat much of the same procedure using the Ridge and Lasso +regression methods, introducing thus a dependence on the bias +(penalty) $\lambda$. + +Finally we are going to use (real) digital terrain data and try to +reproduce these data using the same methods. We will also try to go +beyond the second-order polynomials metioned above and explore +which polynomial fits the data best. + + +The Python fucntion for the Franke function is included here (it performs also a three-dimensional plot of it) +\begin{verbatim} +from mpl_toolkits.mplot3d import Axes3D +import matplotlib.pyplot as plt +from matplotlib import cm +from matplotlib.ticker import LinearLocator, FormatStrFormatter +import numpy as np +from random import random, seed + +fig = plt.figure() +ax = fig.gca(projection='3d') + +# Make data. +x = np.arange(0, 1, 0.05) +y = np.arange(0, 1, 0.05) +x, y = np.meshgrid(x,y) + + +def FrankeFunction(x,y): + term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2)) + term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1)) + term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2)) + term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2) + return term1 + term2 + term3 + term4 + + +z = FrankeFunction(x, y) + +# Plot the surface. +surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm, + linewidth=0, antialiased=False) + +# Customize the z axis. +ax.set_zlim(-0.10, 1.40) +ax.zaxis.set_major_locator(LinearLocator(10)) +ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) + +# Add a color bar which maps values to colors. +fig.colorbar(surf, shrink=0.5, aspect=5) + +plt.show() + +\end{verbatim} + \paragraph{Part a): Ordinary Least Square on the Franke function with resampling.} -We will thus again generate our own dataset for a function $\mathrm{FrankeFunction}(x,y)$ where -$x,y \in [0,1]$ could be defined by random numbers computed with the uniform -distribution. The function $f(x,y)$ is the Franke function. You should explore also the addition -an added stochastic noise to this function using the normal distribution $\cal{N}(0,1)$. +We will generate our own dataset for a function +$\mathrm{FrankeFunction}(x,y)$ with $x,y \in [0,1]$. The function +$f(x,y)$ is the Franke function. You should explore also the addition +an added stochastic noise to this function using the normal +distribution $\cal{N}(0,1)$. + +Write your own code (using either a matrix inversion or a singular +value decomposition from e.g., \textbf{numpy} ) or use your code from +homeworks 1 and 2 and perform a standard least square regression +analysis using polynomials in $x$ and $y$ up to fifth order. Find the +confidence intervals of the parameters $\beta$ by computing their +variances, evaluate the Mean Squared error (MSE) -Write your own code (using either a matrix inversion or a singular value decomposition from e.g., \textbf{numpy} ) or use your code from homeworks 1 and 2 -and perform a standard least square regression analysis using polynomials in $x$ and $y$ up to fifth order. Find the confidence intervals of the parameters $\beta$ by computing their variances, evaluate the Mean Squared error (MSE) \[ MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, \] -and the $R^2$ score function. -If $\tilde{\hat{y}}_i$ is the predicted value of the $i-th$ sample and $y_i$ is the corresponding true value, then the score $R^2$ is defined as + +and the $R^2$ score function. If $\tilde{\hat{y}}_i$ is the predicted +value of the $i-th$ sample and $y_i$ is the corresponding true value, +then the score $R^2$ is defined as + \[ R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, \] + where we have defined the mean value of $\hat{y}$ as + \[ \bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. \] -Perform a resampling of the data where you split the data in training data and test data. Implement the $k$-fold cross-validation algorithm and/or the bootstrap algorithm -and evaluate again the MSE and the $R^2$ functions resulting from the test data. Evaluate also the bias and variance of the final models using for example equation (7.9) in the textbook of Hastie \emph{et al.} +\paragraph{Part b) Resampling techniques.} +Perform a resampling of the data where you split the data in training +data and test data. Here you can write your own function or use the +function for splitting training data provided by \textbf{Scikit-Learn}. +This function is called $train\_test\_split$. + +It is normal in essentially all Machine Learning studies to split the +data in a training set and a test set (sometimes also an additional +validation set). There +is no explicit recipe for how much data should be included as training +data and say test data. An accepted rule of thumb is to use +approximately $2/3$ to $4/5$ of the data as training data. + + +Implement the $k$-fold cross-validation algorithm (write your own +code) and and evaluate again the MSE and the $R^2$ functions resulting +from the test data. You can compare your own code with that from +\textbf{Scikit-Learn} if needed. -\paragraph{Part b): Ridge Regression with resampling.} -Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous exercise or howework 2 (see also chapter 3.4 of Hastie \emph{et al.}, equations (3.43) and (3.44)). Perform the same analysis as in the previous exercise (for the same polynomials and include resampling techniques) but now for different values of $\lambda$. Compare and analyze your results with those obtained in part a). Study the dependence on $\lambda$ while also varying eventually the strength of the noise in your expression for $\mathrm{FrankeFunction}(x,y)$. -\paragraph{Part c): Lasso Regression with resampling.} -This part is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code or, in this case, you can also use the functionalities of \textbf{scikit-learn}. Give a critical discussion of the three methods and a judgement of which model fits the data best. +\paragraph{Part c): Bias-variance tradeoff.} +With a code which does OLS and includes resampling techniques, +we will now discuss the bias-variance tradeoff in the context of +continuous predictions such as regression. However, many of the +intuitions and ideas discussed here also carry over to classification +tasks and basically all Machine Learning algorithms. + +Consider a +dataset $\mathcal{L}$ consisting of the data +$\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}$. + +Let us assume that the true data is generated from a noisy model + +\[ +\bm{y}=f(\boldsymbol{x}) + \bm{\epsilon}. +\] + +Here $\epsilon$ is normally distributed with mean zero and standard +deviation $\sigma^2$. + +In our derivation of the ordinary least squares method we defined then +an approximation to the function $f$ in terms of the parameters +$\bm{\beta}$ and the design matrix $\bm{X}$ which embody our model, +that is $\bm{\tilde{y}}=\bm{X}\bm{\beta}$. + +The parameters $\bm{\beta}$ are in turn found by optimizing the means +squared error via the so-called cost function + +\[ +C(\bm{X},\bm{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\bm{\ +y}-\bm{\tilde{y}})^2\right]. +\] + +Show that you can rewrite this as +\[ +\mathbb{E}\left[(\bm{y}-\bm{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\bm\ +{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\bm{\tilde{y}}\right])\ +^2+\sigma^2. +\] + +Explain what the terms mean, which one is the bias and which one is +the variance and discuss their interpretations. -\paragraph{Part e) OLS, Ridge and Lasso regression with resampling.} -At the end, you should pesent a critical evaluation of your results and discuss the applicability of these regression methods to the type of data presented here. +Discuss the bias and variance tradeoff as function +of your model complexity (the degree of the polynomial) and the number +of data points, and possibly also your training and test data. + +Try to make a figure similar to Fig.~2.11 of Hastie, Tibshirani, and +Friedman, see the references below. You will most likely not get an +equally smooth curve! + +\paragraph{Part d): Ridge Regression on the Franke function with resampling.} +Write your own code for the Ridge method, either using matrix +inversion or the singular value decomposition as done in the previous +exercise or howework 2 (see also chapter 3.4 of Hastie \emph{et al.}, +equations (3.43) and (3.44)). Perform the same analysis as in the +previous exercises (for the same polynomials and include resampling +techniques) but now for different values of $\lambda$. Compare and +analyze your results with those obtained in parts a-c). Study the +dependence on $\lambda$. + +Study also the bias-variance tradeoff as function of various values of +the parameter $\lambda$. Comment your results. + +\paragraph{Part e): Lasso Regression on the Franke function with resampling.} +This part is essentially a repeat of the previous two ones, but now +with Lasso regression. Write either your own code or, in this case, +you can also use the functionalities of \textbf{Scikit-Learn} (recommended). +Give a +critical discussion of the three methods and a judgement of which +model fits the data best. + +\paragraph{Part f): Introducing real data.} +With our codes functioning and having been tested properly on a +simpler function we are now ready to look at real data. We will +essentially repeat in part g) what was done in parts a-e). However, we +need first to download the data and prepare properly the inputs to our +codes. We are going to download digital terrain data from the website +\href{{https://earthexplorer.usgs.gov/}}{\nolinkurl{https://earthexplorer.usgs.gov/}}, + +In order to obtain data for a specific region, you need to register as +a user (free) at this website and then decide upon which area you want +to fetch the digital terrain data from. In order to be able to read +the data properly, you need to specify that the format should be \textbf{SRTM +Arc-Second Global} and download the data as a \textbf{GeoTIF} file. The +files are then stored in \emph{tif} format which can be imported into a +Python program using + +\begin{verbatim} +scipy.misc.imread +\end{verbatim} + +Here is a simple part of a Python code which reads and plots the data +from such files + +\begin{verbatim} +import numpy as np +from imageio import imread +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from matplotlib import cm + +# Load the terrain +terrain1 = imread('SRTM_data_Norway_1.tif') +# Show the terrain +plt.figure() +plt.title('Terrain over Norway 1') +plt.imshow(terrain1, cmap='gray') +plt.xlabel('X') +plt.ylabel('Y') +plt.show() +\end{verbatim} + +If you should have problems in downloading the digital terrain data, +we provide two examples under the data folder of project 1. One is +from a region close to Stavanger in Norway and the other Møsvatn +Austfjell, again in Norway. +Feel free to produce your own terrain data. + +\paragraph{Part g) OLS, Ridge and Lasso regression with resampling.} +Our final part deals with the parameterization of your digital terrain +data. We will apply all three methods for linear regression as in +parts a-c), the same type (or higher order) of polynomial +approximation and the same resampling techniques to evaluate which +model fits the data best. + +At the end, you should pesent a critical evaluation of your results +and discuss the applicability of these regression methods to the type +of data presented here. diff --git a/doc/Projects/2019/Project1/pdf/Project1.tex~ b/doc/Projects/2019/Project1/pdf/Project1.tex~ new file mode 100644 index 000000000..926bebcdc --- /dev/null +++ b/doc/Projects/2019/Project1/pdf/Project1.tex~ @@ -0,0 +1,531 @@ +%% +%% Automatically generated file from DocOnce source +%% (https://github.com/hplgit/doconce/) +%% +%% + + +%-------------------- begin preamble ---------------------- + +\documentclass[% +oneside, % oneside: electronic viewing, twoside: printing +final, % draft: marks overfull hboxes, figures with paths +10pt]{article} + +\listfiles % print all files needed to compile this document + +\usepackage{relsize,makeidx,color,setspace,amsmath,amsfonts,amssymb} +\usepackage[table]{xcolor} +\usepackage{bm,ltablex,microtype} + +\usepackage[pdftex]{graphicx} + +\usepackage{fancyvrb} % packages needed for verbatim environments + +\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} +\usepackage{ucs} +\usepackage[utf8x]{inputenc} + +\usepackage{lmodern} % Latin Modern fonts derived from Computer Modern + +% Hyperlinks in PDF: +\definecolor{linkcolor}{rgb}{0,0,0.4} +\usepackage{hyperref} +\hypersetup{ + breaklinks=true, + colorlinks=true, + linkcolor=linkcolor, + urlcolor=linkcolor, + citecolor=black, + filecolor=black, + %filecolor=blue, + pdfmenubar=true, + pdftoolbar=true, + bookmarksdepth=3 % Uncomment (and tweak) for PDF bookmarks with more levels than the TOC + } +%\hyperbaseurl{} % hyperlinks are relative to this root + +\setcounter{tocdepth}{2} % levels in table of contents + +% --- fancyhdr package for fancy headers --- +\usepackage{fancyhdr} +\fancyhf{} % sets both header and footer to nothing +\renewcommand{\headrulewidth}{0pt} +\fancyfoot[LE,RO]{\thepage} +% Ensure copyright on titlepage (article style) and chapter pages (book style) +\fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[C]{{\footnotesize \copyright\ 1999-2019, "Data Analysis and Machine Learning FYS-STK3155/FYS4155":"http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html". Released under CC Attribution-NonCommercial 4.0 license}} +% \renewcommand{\footrulewidth}{0mm} + \renewcommand{\headrulewidth}{0mm} +} +% Ensure copyright on titlepages with \thispagestyle{empty} +\fancypagestyle{empty}{ + \fancyhf{} + \fancyfoot[C]{{\footnotesize \copyright\ 1999-2019, "Data Analysis and Machine Learning FYS-STK3155/FYS4155":"http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html". Released under CC Attribution-NonCommercial 4.0 license}} + \renewcommand{\footrulewidth}{0mm} + \renewcommand{\headrulewidth}{0mm} +} + +\pagestyle{fancy} + + +% prevent orhpans and widows +\clubpenalty = 10000 +\widowpenalty = 10000 + +% --- end of standard preamble for documents --- + + +% insert custom LaTeX commands... + +\raggedbottom +\makeindex +\usepackage[totoc]{idxlayout} % for index in the toc +\usepackage[nottoc]{tocbibind} % for references/bibliography in the toc + +%-------------------- end preamble ---------------------- + +\begin{document} + +% matching end for #ifdef PREAMBLE + +\newcommand{\exercisesection}[1]{\subsection*{#1}} + + +% ------------------- main content ---------------------- + + + +% ----------------- title ------------------------- + +\thispagestyle{empty} + +\begin{center} +{\LARGE\bf +\begin{spacing}{1.25} +Project 1 on Machine Learning, deadline September 30, 2019 +\end{spacing} +} +\end{center} + +% ----------------- author(s) ------------------------- + +\begin{center} +{\bf \href{{http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html}}{Data Analysis and Machine Learning FYS-STK3155/FYS4155}} +\end{center} + + \begin{center} +% List of all institutions: +\centerline{{\small Department of Physics, University of Oslo, Norway}} +\end{center} + +% ----------------- end author(s) ------------------------- + +% --- begin date --- +\begin{center} +Aug 29, 2019 +\end{center} +% --- end date --- + +\vspace{1cm} + + +\subsection*{Regression analysis and resampling methods} + +The main aim of this project is to study in more detail various +regression methods, including the Ordinary Least Squares (OLS) method, +Ridge regression and finally Lasso regression. +The methods are in turn combined with resampling techniques. + +We will first study how to fit polynomials to a specific +two-dimensional function called \href{{http://www.dtic.mil/dtic/tr/fulltext/u2/a081688.pdf}}{Franke's +function}. This +is a function which has been widely used when testing various +interpolation and fitting algorithms. Furthermore, after having +established the model and the method, we will employ resamling +techniques such as cross-validation in order to perform a +proper assessment of our models. We will also study in detail the +so-called Bias-Variance trade off. + + +The Franke function, which is a weighted sum of four exponentials reads as follows +\begin{align*} +f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)}+\frac{3}{4}\exp{\left(-\frac{(9x+1)^2}{49}- \frac{(9y+1)}{10}\right)} \\ +&+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. +\end{align*} + +The function will be defined for $x,y\in [0,1]$. Our first step will +be to perform an OLS regression analysis of this function, trying out +a polynomial fit with an $x$ and $y$ dependence of the form $[x, y, +x^2, y^2, xy, \dots]$. We will also include cross-validation as +resampling technique. As in homeworks 1 and 2, we can use a uniform +distribution to set up the arrays of values for $x$ and $y$, or as in +the example below just a set of fixed +values for $x$ and $y$ with a given step +size. We will fit a +function (for example a polynomial) of $x$ and $y$. Thereafter we +will repeat much of the same procedure using the Ridge and Lasso +regression methods, introducing thus a dependence on the bias +(penalty) $\lambda$. + +Finally we are going to use (real) digital terrain data and try to +reproduce these data using the same methods. We will also try to go +beyond the second-order polynomials metioned above and explore +which polynomial fits the data best. + + +The Python fucntion for the Franke function is included here (it performs also a three-dimensional plot of it) +\begin{print} +from mpl_toolkits.mplot3d import Axes3D +import matplotlib.pyplot as plt +from matplotlib import cm +from matplotlib.ticker import LinearLocator, FormatStrFormatter +import numpy as np +from random import random, seed + +fig = plt.figure() +ax = fig.gca(projection='3d') + +# Make data. +x = np.arange(0, 1, 0.05) +y = np.arange(0, 1, 0.05) +x, y = np.meshgrid(x,y) + + +def FrankeFunction(x,y): + term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2)) + term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1)) + term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2)) + term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2) + return term1 + term2 + term3 + term4 + + +z = FrankeFunction(x, y) + +# Plot the surface. +surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm, + linewidth=0, antialiased=False) + +# Customize the z axis. +ax.set_zlim(-0.10, 1.40) +ax.zaxis.set_major_locator(LinearLocator(10)) +ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) + +# Add a color bar which maps values to colors. +fig.colorbar(surf, shrink=0.5, aspect=5) + +plt.show() + +\end{print} + + +\paragraph{Part a): Ordinary Least Square on the Franke function with resampling.} +We will generate our own dataset for a function +$\mathrm{FrankeFunction}(x,y)$ with $x,y \in [0,1]$. The function +$f(x,y)$ is the Franke function. You should explore also the addition +an added stochastic noise to this function using the normal +distribution $\cal{N}(0,1)$. + +Write your own code (using either a matrix inversion or a singular +value decomposition from e.g., \textbf{numpy} ) or use your code from +homeworks 1 and 2 and perform a standard least square regression +analysis using polynomials in $x$ and $y$ up to fifth order. Find the +confidence intervals of the parameters $\beta$ by computing their +variances, evaluate the Mean Squared error (MSE) + +\[ MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} +\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, +\] + +and the $R^2$ score function. If $\tilde{\hat{y}}_i$ is the predicted +value of the $i-th$ sample and $y_i$ is the corresponding true value, +then the score $R^2$ is defined as + +\[ +R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, +\] + +where we have defined the mean value of $\hat{y}$ as + +\[ +\bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. +\] + +\paragraph{Part b) Resampling techniques.} +Perform a resampling of the data where you split the data in training +data and test data. Here you can write your own function or use the +function for splitting training data provided by \textbf{Scikit-Learn}. +This function is called $train\_test\_split$. + +It is normal in essentially all Machine Learning studies to split the +data in a training set and a test set (sometimes also an additional +validation set). There +is no explicit recipe for how much data should be included as training +data and say test data. An accepted rule of thumb is to use +approximately $2/3$ to $4/5$ of the data as training data. + + +Implement the $k$-fold cross-validation algorithm (write your own +code) and and evaluate again the MSE and the $R^2$ functions resulting +from the test data. You can compare your own code with that from +\textbf{Scikit-Learn} if needed. + + + + +\paragraph{Part c): Bias-variance tradeoff.} +With a code which does OLS and includes resampling techniques, +we will now discuss the bias-variance tradeoff in the context of +continuous predictions such as regression. However, many of the +intuitions and ideas discussed here also carry over to classification +tasks and basically all Machine Learning algorithms. + +Consider a +dataset $\mathcal{L}$ consisting of the data +$\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}$. + +Let us assume that the true data is generated from a noisy model + +\[ +\bm{y}=f(\boldsymbol{x}) + \bm{\epsilon}. +\] + +Here $\epsilon$ is normally distributed with mean zero and standard +deviation $\sigma^2$. + +In our derivation of the ordinary least squares method we defined then +an approximation to the function $f$ in terms of the parameters +$\bm{\beta}$ and the design matrix $\bm{X}$ which embody our model, +that is $\bm{\tilde{y}}=\bm{X}\bm{\beta}$. + +The parameters $\bm{\beta}$ are in turn found by optimizing the means +squared error via the so-called cost function + +\[ +C(\bm{X},\bm{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\bm{\ +y}-\bm{\tilde{y}})^2\right]. +\] + +Show that you can rewrite this as +\[ +\mathbb{E}\left[(\bm{y}-\bm{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\bm\ +{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\bm{\tilde{y}}\right])\ +^2+\sigma^2. +\] + +Explain what the terms mean, which one is the bias and which one is +the variance and discuss their interpretations. + + +Discuss the bias and variance tradeoff as function +of your model complexity (the degree of the polynomial) and the number +of data points, and possibly also your training and test data. + +Try to make a figure similar to Fig.~2.11 of Hastie, Tibshirani, and +Friedman, see the references below. You will most likely not get an +equally smooth curve! + +\paragraph{Part d): Ridge Regression on the Franke function with resampling.} +Write your own code for the Ridge method, either using matrix +inversion or the singular value decomposition as done in the previous +exercise or howework 2 (see also chapter 3.4 of Hastie \emph{et al.}, +equations (3.43) and (3.44)). Perform the same analysis as in the +previous exercises (for the same polynomials and include resampling +techniques) but now for different values of $\lambda$. Compare and +analyze your results with those obtained in parts a-c). Study the +dependence on $\lambda$. + +Study also the bias-variance tradeoff as function of various values of +the parameter $\lambda$. Comment your results. + +\paragraph{Part e): Lasso Regression on the Franke function with resampling.} +This part is essentially a repeat of the previous two ones, but now +with Lasso regression. Write either your own code or, in this case, +you can also use the functionalities of \textbf{Scikit-Learn} (recommended). +Give a +critical discussion of the three methods and a judgement of which +model fits the data best. + +\paragraph{Part f): Introducing real data.} +With our codes functioning and having been tested properly on a +simpler function we are now ready to look at real data. We will +essentially repeat in part g) what was done in parts a-e). However, we +need first to download the data and prepare properly the inputs to our +codes. We are going to download digital terrain data from the website +\href{{https://earthexplorer.usgs.gov/}}{\nolinkurl{https://earthexplorer.usgs.gov/}}, + +In order to obtain data for a specific region, you need to register as +a user (free) at this website and then decide upon which area you want +to fetch the digital terrain data from. In order to be able to read +the data properly, you need to specify that the format should be \textbf{SRTM +Arc-Second Global} and download the data as a \textbf{GeoTIF} file. The +files are then stored in \emph{tif} format which can be imported into a +Python program using + +\begin{print} +scipy.misc.imread +\end{print} + +Here is a simple part of a Python code which reads and plots the data +from such files + +\begin{print} +import numpy as np +from imageio import imread +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from matplotlib import cm + +# Load the terrain +terrain1 = imread('SRTM_data_Norway_1.tif') +# Show the terrain +plt.figure() +plt.title('Terrain over Norway 1') +plt.imshow(terrain1, cmap='gray') +plt.xlabel('X') +plt.ylabel('Y') +plt.show() +\end{print} + +If you should have problems in downloading the digital terrain data, +we provide two examples under the data folder of project 1. One is +from a region close to Stavanger in Norway and the other Møsvatn +Austfjell, again in Norway. +Feel free to produce your own terrain data. + +\paragraph{Part g) OLS, Ridge and Lasso regression with resampling.} +Our final part deals with the parameterization of your digital terrain +data. We will apply all three methods for linear regression as in +parts a-c), the same type (or higher order) of polynomial +approximation and the same resampling techniques to evaluate which +model fits the data best. + +At the end, you should pesent a critical evaluation of your results +and discuss the applicability of these regression methods to the type +of data presented here. + + + + +\subsection*{Background literature} + +\begin{enumerate} +\item For a discussion and derivation of the variances and mean squared errors using linear regression, see the \href{{https://arxiv.org/abs/1509.09169}}{Lecture notes on ridge regression by Wessel N. van Wieringen} + +\item The textbook of \href{{https://www.springer.com/gp/book/9780387848570}}{Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer}, chapters 3 and 7 are the most relevant ones for the analysis here. +\end{enumerate} + +\noindent +\subsection*{Introduction to numerical projects} + +Here follows a brief recipe and recommendation on how to write a report for each +project. + +\begin{itemize} + \item Give a short description of the nature of the problem and the eventual numerical methods you have used. + + \item Describe the algorithm you have used and/or developed. Here you may find it convenient to use pseudocoding. In many cases you can describe the algorithm in the program itself. + + \item Include the source code of your program. Comment your program properly. + + \item If possible, try to find analytic solutions, or known limits in order to test your program when developing the code. + + \item Include your results either in figure form or in a table. Remember to label your results. All tables and figures should have relevant captions and labels on the axes. + + \item Try to evaluate the reliabilty and numerical stability/precision of your results. If possible, include a qualitative and/or quantitative discussion of the numerical stability, eventual loss of precision etc. + + \item Try to give an interpretation of you results in your answers to the problems. + + \item Critique: if possible include your comments and reflections about the exercise, whether you felt you learnt something, ideas for improvements and other thoughts you've made when solving the exercise. We wish to keep this course at the interactive level and your comments can help us improve it. + + \item Try to establish a practice where you log your work at the computerlab. You may find such a logbook very handy at later stages in your work, especially when you don't properly remember what a previous test version of your program did. Here you could also record the time spent on solving the exercise, various algorithms you may have tested or other topics which you feel worthy of mentioning. +\end{itemize} + +\noindent +\subsection*{Format for electronic delivery of report and programs} + +The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report: + +\begin{itemize} + \item Use Devilry to hand in your projects, log in at \href{{http://devilry.ifi.uio.no}}{\nolinkurl{http://devilry.ifi.uio.no}} with your normal UiO username and password and choose either 'fysstk3155' or 'fysstk4155'. There you can load up the files within the deadline. + + \item Upload \textbf{only} the report file! For the source code file(s) you have developed please provide us with your link to your github domain. The report file should include all of your discussions and a list of the codes you have developed. Do not include library files which are available at the course homepage, unless you have made specific changes to them. + + \item In your git repository, please include a folder which contains selected results. These can be in the form of output from your code for a selected set of runs and input parameters. + + \item In this and all later projects, you should include tests (for example unit tests) of your code(s). + + \item Comments from us on your projects, approval or not, corrections to be made etc can be found under your Devilry domain and are only visible to you and the teachers of the course. +\end{itemize} + +\noindent +Finally, +we encourage you to collaborate. Optimal working groups consist of +2-3 students. You can then hand in a common report. + + + +\subsection*{Software and needed installations} + +If you have Python installed (we recommend Python3) and you feel pretty familiar with installing different packages, +we recommend that you install the following Python packages via \textbf{pip} as +\begin{enumerate} +\item pip install numpy scipy matplotlib ipython scikit-learn tensorflow sympy pandas pillow +\end{enumerate} + +\noindent +For Python3, replace \textbf{pip} with \textbf{pip3}. + +See below for a discussion of \textbf{tensorflow} and \textbf{scikit-learn}. + +For OSX users we recommend also, after having installed Xcode, to install \textbf{brew}. Brew allows +for a seamless installation of additional software via for example +\begin{enumerate} +\item brew install python3 +\end{enumerate} + +\noindent +For Linux users, with its variety of distributions like for example the widely popular Ubuntu distribution +you can use \textbf{pip} as well and simply install Python as +\begin{enumerate} +\item sudo apt-get install python3 (or python for python2.7) +\end{enumerate} + +\noindent +etc etc. + +If you don't want to install various Python packages with their dependencies separately, we recommend two widely used distrubutions which set up all relevant dependencies for Python, namely +\begin{enumerate} +\item \href{{https://docs.anaconda.com/}}{Anaconda} Anaconda is an open source distribution of the Python and R programming languages for large-scale data processing, predictive analytics, and scientific computing, that aims to simplify package management and deployment. Package versions are managed by the package management system \textbf{conda} + +\item \href{{https://www.enthought.com/product/canopy/}}{Enthought canopy} is a Python distribution for scientific and analytic computing distribution and analysis environment, available for free and under a commercial license. +\end{enumerate} + +\noindent +Popular software packages written in Python for ML are + +\begin{itemize} +\item \href{{http://scikit-learn.org/stable/}}{Scikit-learn}, + +\item \href{{https://www.tensorflow.org/}}{Tensorflow}, + +\item \href{{http://pytorch.org/}}{PyTorch} and + +\item \href{{https://keras.io/}}{Keras}. +\end{itemize} + +\noindent +These are all freely available at their respective GitHub sites. They +encompass communities of developers in the thousands or more. And the number +of code developers and contributors keeps increasing. + + + + + +% ------------------- end of main content --------------- + +\end{document} + diff --git a/doc/src/Projects/2019/Project1/Project1.do.txt b/doc/src/Projects/2019/Project1/Project1.do.txt index f8592765c..8f0479292 100644 --- a/doc/src/Projects/2019/Project1/Project1.do.txt +++ b/doc/src/Projects/2019/Project1/Project1.do.txt @@ -1,61 +1,304 @@ TITLE: Project 1 on Machine Learning, deadline September 30, 2019 AUTHOR: "Data Analysis and Machine Learning FYS-STK3155/FYS4155":"http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html" {copyright, 1999-present|CC BY-NC} at Department of Physics, University of Oslo, Norway DATE: today - small change + + ===== Regression analysis and resampling methods ===== The main aim of this project is to study in more detail various regression methods, including the Ordinary Least Squares (OLS) method, Ridge regression and finally Lasso regression. -The methods are in turn combined with resampling techniques like cross-validation. +The methods are in turn combined with resampling techniques. + +We will first study how to fit polynomials to a specific +two-dimensional function called "Franke's +function":"http://www.dtic.mil/dtic/tr/fulltext/u2/a081688.pdf". This +is a function which has been widely used when testing various +interpolation and fitting algorithms. Furthermore, after having +established the model and the method, we will employ resamling +techniques such as cross-validation in order to perform a +proper assessment of our models. We will also study in detail the +so-called Bias-Variance trade off. + + +The Franke function, which is a weighted sum of four exponentials reads as follows +!bt +\begin{align*} +f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)}+\frac{3}{4}\exp{\left(-\frac{(9x+1)^2}{49}- \frac{(9y+1)}{10}\right)} \\ +&+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. +\end{align*} +!et + +The function will be defined for $x,y\in [0,1]$. Our first step will +be to perform an OLS regression analysis of this function, trying out +a polynomial fit with an $x$ and $y$ dependence of the form $[x, y, +x^2, y^2, xy, \dots]$. We will also include cross-validation as +resampling technique. As in homeworks 1 and 2, we can use a uniform +distribution to set up the arrays of values for $x$ and $y$, or as in +the example below just a set of fixed +values for $x$ and $y$ with a given step +size. We will fit a +function (for example a polynomial) of $x$ and $y$. Thereafter we +will repeat much of the same procedure using the Ridge and Lasso +regression methods, introducing thus a dependence on the bias +(penalty) $\lambda$. + +Finally we are going to use (real) digital terrain data and try to +reproduce these data using the same methods. We will also try to go +beyond the second-order polynomials metioned above and explore +which polynomial fits the data best. + + +The Python fucntion for the Franke function is included here (it performs also a three-dimensional plot of it) +!bc pycod +from mpl_toolkits.mplot3d import Axes3D +import matplotlib.pyplot as plt +from matplotlib import cm +from matplotlib.ticker import LinearLocator, FormatStrFormatter +import numpy as np +from random import random, seed + +fig = plt.figure() +ax = fig.gca(projection='3d') + +# Make data. +x = np.arange(0, 1, 0.05) +y = np.arange(0, 1, 0.05) +x, y = np.meshgrid(x,y) + + +def FrankeFunction(x,y): + term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2)) + term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1)) + term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2)) + term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2) + return term1 + term2 + term3 + term4 + + +z = FrankeFunction(x, y) + +# Plot the surface. +surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm, + linewidth=0, antialiased=False) + +# Customize the z axis. +ax.set_zlim(-0.10, 1.40) +ax.zaxis.set_major_locator(LinearLocator(10)) +ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) + +# Add a color bar which maps values to colors. +fig.colorbar(surf, shrink=0.5, aspect=5) + +plt.show() + +!ec === Part a): Ordinary Least Square on the Franke function with resampling === -We will thus again generate our own dataset for a function $\mathrm{FrankeFunction}(x,y)$ where -$x,y \in [0,1]$ could be defined by random numbers computed with the uniform -distribution. The function $f(x,y)$ is the Franke function. You should explore also the addition -an added stochastic noise to this function using the normal distribution $\cal{N}(0,1)$. +We will generate our own dataset for a function +$\mathrm{FrankeFunction}(x,y)$ with $x,y \in [0,1]$. The function +$f(x,y)$ is the Franke function. You should explore also the addition +an added stochastic noise to this function using the normal +distribution $\cal{N}(0,1)$. + +Write your own code (using either a matrix inversion or a singular +value decomposition from e.g., _numpy_ ) or use your code from +homeworks 1 and 2 and perform a standard least square regression +analysis using polynomials in $x$ and $y$ up to fifth order. Find the +confidence intervals of the parameters $\beta$ by computing their +variances, evaluate the Mean Squared error (MSE) -Write your own code (using either a matrix inversion or a singular value decomposition from e.g., _numpy_ ) or use your code from homeworks 1 and 2 -and perform a standard least square regression analysis using polynomials in $x$ and $y$ up to fifth order. Find the confidence intervals of the parameters $\beta$ by computing their variances, evaluate the Mean Squared error (MSE) !bt \[ MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, \] !et -and the $R^2$ score function. -If $\tilde{\hat{y}}_i$ is the predicted value of the $i-th$ sample and $y_i$ is the corresponding true value, then the score $R^2$ is defined as + +and the $R^2$ score function. If $\tilde{\hat{y}}_i$ is the predicted +value of the $i-th$ sample and $y_i$ is the corresponding true value, +then the score $R^2$ is defined as + !bt \[ R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, \] !et + where we have defined the mean value of $\hat{y}$ as + !bt \[ \bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. \] !et -Perform a resampling of the data where you split the data in training data and test data. Implement the $k$-fold cross-validation algorithm and/or the bootstrap algorithm -and evaluate again the MSE and the $R^2$ functions resulting from the test data. Evaluate also the bias and variance of the final models using for example equation (7.9) in the textbook of Hastie *et al.* +=== Part b) Resampling techniques === + + +Perform a resampling of the data where you split the data in training +data and test data. Here you can write your own function or use the +function for splitting training data provided by _Scikit-Learn_. +This function is called $train\_test\_split$. + +It is normal in essentially all Machine Learning studies to split the +data in a training set and a test set (sometimes also an additional +validation set). There +is no explicit recipe for how much data should be included as training +data and say test data. An accepted rule of thumb is to use +approximately $2/3$ to $4/5$ of the data as training data. + + +Implement the $k$-fold cross-validation algorithm (write your own +code) and and evaluate again the MSE and the $R^2$ functions resulting +from the test data. You can compare your own code with that from +_Scikit-Learn_ if needed. -=== Part b): Ridge Regression with resampling === -Write your own code for the Ridge method, either using matrix inversion or the singular value decomposition as done in the previous exercise or howework 2 (see also chapter 3.4 of Hastie *et al.*, equations (3.43) and (3.44)). Perform the same analysis as in the previous exercise (for the same polynomials and include resampling techniques) but now for different values of $\lambda$. Compare and analyze your results with those obtained in part a). Study the dependence on $\lambda$ while also varying eventually the strength of the noise in your expression for $\mathrm{FrankeFunction}(x,y)$. +=== Part c): Bias-variance tradeoff === -=== Part c): Lasso Regression with resampling === +With a code which does OLS and includes resampling techniques, +we will now discuss the bias-variance tradeoff in the context of +continuous predictions such as regression. However, many of the +intuitions and ideas discussed here also carry over to classification +tasks and basically all Machine Learning algorithms. -This part is essentially a repeat of the previous two ones, but now with Lasso regression. Write either your own code or, in this case, you can also use the functionalities of _scikit-learn_. Give a critical discussion of the three methods and a judgement of which model fits the data best. +Consider a +dataset $\mathcal{L}$ consisting of the data +$\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}$. + +Let us assume that the true data is generated from a noisy model + +!bt +\[ +\bm{y}=f(\boldsymbol{x}) + \bm{\epsilon}. +\] +!et + +Here $\epsilon$ is normally distributed with mean zero and standard +deviation $\sigma^2$. + +In our derivation of the ordinary least squares method we defined then +an approximation to the function $f$ in terms of the parameters +$\bm{\beta}$ and the design matrix $\bm{X}$ which embody our model, +that is $\bm{\tilde{y}}=\bm{X}\bm{\beta}$. + +The parameters $\bm{\beta}$ are in turn found by optimizing the means +squared error via the so-called cost function + +!bt +\[ +C(\bm{X},\bm{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\bm{\ +y}-\bm{\tilde{y}})^2\right]. +\] +!et + +Show that you can rewrite this as +!bt +\[ +\mathbb{E}\left[(\bm{y}-\bm{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\bm\ +{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\bm{\tilde{y}}\right])\ +^2+\sigma^2. +\] +!et + +Explain what the terms mean, which one is the bias and which one is +the variance and discuss their interpretations. -=== Part e) OLS, Ridge and Lasso regression with resampling === +Discuss the bias and variance tradeoff as function +of your model complexity (the degree of the polynomial) and the number +of data points, and possibly also your training and test data. -At the end, you should pesent a critical evaluation of your results and discuss the applicability of these regression methods to the type of data presented here. +Try to make a figure similar to Fig. 2.11 of Hastie, Tibshirani, and +Friedman, see the references below. You will most likely not get an +equally smooth curve! + +=== Part d): Ridge Regression on the Franke function with resampling === + +Write your own code for the Ridge method, either using matrix +inversion or the singular value decomposition as done in the previous +exercise or howework 2 (see also chapter 3.4 of Hastie *et al.*, +equations (3.43) and (3.44)). Perform the same analysis as in the +previous exercises (for the same polynomials and include resampling +techniques) but now for different values of $\lambda$. Compare and +analyze your results with those obtained in parts a-c). Study the +dependence on $\lambda$. + +Study also the bias-variance tradeoff as function of various values of +the parameter $\lambda$. Comment your results. + +=== Part e): Lasso Regression on the Franke function with resampling === + +This part is essentially a repeat of the previous two ones, but now +with Lasso regression. Write either your own code or, in this case, +you can also use the functionalities of _Scikit-Learn_ (recommended). +Give a +critical discussion of the three methods and a judgement of which +model fits the data best. + +=== Part f): Introducing real data === + +With our codes functioning and having been tested properly on a +simpler function we are now ready to look at real data. We will +essentially repeat in part g) what was done in parts a-e). However, we +need first to download the data and prepare properly the inputs to our +codes. We are going to download digital terrain data from the website +URL:"https://earthexplorer.usgs.gov/", + +In order to obtain data for a specific region, you need to register as +a user (free) at this website and then decide upon which area you want +to fetch the digital terrain data from. In order to be able to read +the data properly, you need to specify that the format should be _SRTM +Arc-Second Global_ and download the data as a _GeoTIF_ file. The +files are then stored in *tif* format which can be imported into a +Python program using + +!bc pycod +scipy.misc.imread +!ec + +Here is a simple part of a Python code which reads and plots the data +from such files + +!bc pycod +import numpy as np +from imageio import imread +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from matplotlib import cm + +# Load the terrain +terrain1 = imread('SRTM_data_Norway_1.tif') +# Show the terrain +plt.figure() +plt.title('Terrain over Norway 1') +plt.imshow(terrain1, cmap='gray') +plt.xlabel('X') +plt.ylabel('Y') +plt.show() +!ec + +If you should have problems in downloading the digital terrain data, +we provide two examples under the data folder of project 1. One is +from a region close to Stavanger in Norway and the other Møsvatn +Austfjell, again in Norway. +Feel free to produce your own terrain data. + +=== Part g) OLS, Ridge and Lasso regression with resampling === + +Our final part deals with the parameterization of your digital terrain +data. We will apply all three methods for linear regression as in +parts a-c), the same type (or higher order) of polynomial +approximation and the same resampling techniques to evaluate which +model fits the data best. + +At the end, you should pesent a critical evaluation of your results +and discuss the applicability of these regression methods to the type +of data presented here.