{ "cells": [ { "cell_type": "markdown", "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": {}, "report_default": { "hidden": false } } } } }, "source": [ "# TP : Maximum entropy principle and Langevin algorithm\n", "Main author: [Valentin De Bortoli](https://vdeborto.github.io/)\n", "\n", "Edits by [Bruno Galerne](https://www.idpoisson.fr/galerne/)\n", " \n", " ## Summary \n", " 1. [Maximum entropy estimation with Stochastic Optimization with Unadjusted Langevin (SOUL)](#SOUL) \n", " 1.1 [The Simplest Neural Network](#simplest_nn) \n", " 1.2 [Stochastic Optimization with Unadjusted Langevin (SOUL)](#inverse) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will need the following packages." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from ipywidgets import *\n", "import matplotlib.pyplot as plt\n", "import torch\n", "from scipy.linalg import sqrtm\n", "from sklearn import datasets\n", "from tqdm import tqdm\n", "from draw_functions import *" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "class Gaussian_2D:\n", "\n", " def __init__(self, mu, cov):\n", " self.mu = mu\n", " self.cov = cov\n", " self.prec = np.linalg.inv(cov)\n", "\n", " def fun(self, x):\n", " mu = self.mu\n", " cov = self.cov\n", " prec = self.prec\n", "\n", " x_shift = x - mu\n", " val = np.linalg.det(2 * np.pi * cov) ** (-1 / 2)\n", " val = val * np.exp(- np.dot(x_shift, np.dot(prec, x_shift)) / 2)\n", " return val\n", "\n", " def grad(self, x):\n", " mu = self.mu\n", " prec = self.prec\n", " x_shift = x - mu\n", " val = - self.fun(x) * np.dot(prec, x_shift)\n", " return val\n", "\n", "\n", "class Mixture_Gaussian_2D:\n", "\n", " def __init__(self, mu_list, cov_list, w_list):\n", " self.mu_list = mu_list\n", " self.cov_list = cov_list\n", " self.w_list = w_list\n", " self.prec_list = [np.linalg.inv(cov) for cov in cov_list]\n", " self.gaussian_list = [Gaussian_2D(*m) for m in zip(mu_list, cov_list)]\n", "\n", " def fun(self, x):\n", " val = 0\n", " for w, gauss in zip(self.w_list, self.gaussian_list):\n", " val += w * gauss.fun(x)\n", " return val\n", "\n", " def log_likelihood_fun(self, x):\n", " return np.log(self.fun(x))\n", "\n", " def log_likelihood_grad(self, x):\n", " val = 0\n", " for w, gauss in zip(self.w_list, self.gaussian_list):\n", " val += w * gauss.grad(x)\n", " val = val / self.fun(x)\n", " return val\n", "\n", " def sample(self, Ndata):\n", " mu = self.mu_list\n", " cov = self.cov_list\n", " w = self.w_list\n", "\n", " x = np.zeros((Ndata, 2))\n", " z = np.random.randn(Ndata, 2)\n", " ncomp = len(w)\n", " idx_arr = np.random.choice(ncomp, Ndata, p=w)\n", " k = 0\n", " for idx in idx_arr:\n", " x[k, :] = mu[idx] + np.dot(sqrtm(cov[idx]), z[k, :])\n", " k += 1\n", " return x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Maximum entropy estimation\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the previous section, we supposed that we knew the density of the model we tried to produce samples from this model. Now, we consider the reverse problem. We assume that we have access to a fix number of samples of the model (this number can be equal to one! See the texture synthesis application) and we try to find a good model which fits the data.\n", "\n", "Therefore, our task can be divided into two parts:\n", "- finding suitable models to describe the data,\n", "- given a model and the data, provide an algorithm to find the \"best\" model according to the data.\n", "\n", "First, we describe a simple (one-layer) neural network which can describes toy datasets. \n", "Then, we turn to the implementation of the Stochastic Optimization with Unadjusted Langevin (SOUL) algorithm." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Simplest Neural Network\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Suppose we are given a dataset $\\mathcal{X} \\in \\mathbb{R}^{N \\times d}$ where $N$ is the number of samples and $d$ their dimension. Let $a \\in \\mathbb{R}^d$ and $b \\in \\mathbb{R}$. We consider the following approximation\n", "\\begin{equation}\n", "\\mathbb{E}[f_{a,b}(X)] \\simeq N^{-1} \\sum_{j=1}^N f_{a,b}(\\mathcal{X}_j) \\; ,\n", "\\end{equation}\n", "where $f_{a,b}: \\ \\mathbb{R}^d \\to [0, +\\infty)$ is given for any $x \\in \\mathbb{R}^d$ by \n", "\\begin{equation}\n", "f_{a,b}(x) = (\\langle a, x \\rangle + b)_+ \\; .\n", "\\end{equation}\n", "We assume that we have access to $p$ functions $(f_{a_i,b_i})_{i \\in \\{1, \\dots, p\\}}$.\n", "Our goal is to find the model (distribution over $\\mathbb{R}^d$, $\\pi$) which has maximum entropy given the following constraints. For any $i \\in \\{1, \\dots, p\\}$, we have\n", "\\begin{equation}\n", "\\int_{\\mathbb{R}^d} f_{a_i, b_i}(x) \\mathrm{d} \\pi(x) = N^{-1} \\sum_{j=1}^N f_{a_i,b_i}(\\mathcal{X}_j) \\; .\n", "\\end{equation}\n", "For simplicity, in this lab-session $(a_i)_{i \\in \\{1, \\dots, p\\}}$ are (fixed) realizations of a $d$-dimensional Gaussian random variable with zero mean and identity covariance. Similarly $(b_i)_{i \\in \\{1, \\dots, p\\}}$ are (fixed) realizations of a univariate Gaussian random variable with zero mean and identity covariance. The two random variables are supposed to be independent. Let us first describe the features we consider." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "class feature():\n", " def __init__(self, N, data, activation='relu'):\n", " d = data.shape[-1]\n", " feature.activation = activation\n", " feature.d = d\n", " feature.N = N\n", " alpha, beta = self.random(N)\n", " feature.alpha = alpha\n", " feature.beta = beta\n", "\n", " target = self.montecarlo(data)\n", " feature.target = target\n", "\n", " def random(self, N):\n", " d = self.d\n", " alpha = np.random.randn(N, 1, d)\n", " beta = np.random.randn(N, 1)\n", " return alpha, beta\n", "\n", " def eval(self, x):\n", " alpha = self.alpha\n", " beta = self.beta\n", "\n", " out = np.sum(alpha * x, -1) + beta\n", " if self.activation == 'relu':\n", " out = out * (out > 0)\n", " elif self.activation == 'abs':\n", " out = np.abs(out)\n", " return out\n", "\n", " def grad(self, x):\n", " alpha = self.alpha\n", " beta = self.beta\n", "\n", " out = np.sum(alpha * x, -1) + beta\n", " if self.activation == 'relu':\n", " out = out > 0\n", " elif self.activation == 'abs':\n", " out = np.sign(out)\n", " out = out.reshape(out.shape + (1,))\n", " out = out * alpha\n", " return out\n", "\n", " def montecarlo(self, data):\n", " out = self.eval(data)\n", " out = np.mean(out, 1)\n", " out = out.reshape(out.shape + (1,))\n", " return out" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Questions:**\n", "1. What is computed in feature.target?\n", "2. What is computed by the feature.grad function?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We recall the maximum entropy problem. Given a reference probability measure $\\mu$ and a function $F: \\ \\mathbb{R}^d \\to \\mathbb{R}^p$ we want to find (if it exists) a probability measure $\\pi$ which solves the following problem\n", "\\begin{equation}\n", "\\min_{\\pi \\in \\mathcal{P}_{\\alpha, F}} \\mathrm{KL}(\\pi | \\mu) \\; ,\n", "\\end{equation}\n", "where $\\mathcal{P}_{\\alpha, F} = \\{ \\pi \\in \\mathcal{P}_{\\alpha}, \\ \\int_{\\mathbb{R}^d} F(x) \\mathrm{d}\\pi(x) = 0 \\}$, $\\mathcal{P}_{\\alpha} = \\{ \\pi \\in \\mathcal{M}(\\mathbb{R}^d), \\ \\int_{\\mathbb{R}^{d}} \\| x \\|^{\\alpha} \\mathrm{d} x < +\\infty \\}$ and $\\mathcal{M}(\\mathbb{R}^d)$ is the set of probability measures over $\\mathbb{R}^d$.\n", "In addition, $\\sup_{x \\in \\mathbb{R}^d} \\left\\lbrace \\| F(x) \\| (1+ \\| x \\|)^{-\\alpha} \\right\\rbrace < +\\infty$. Under suitable conditions on the measure $\\mu$ and the function $F$ we obtain that the solution of this minimization problem exists, is unique and is given for any $x \\in \\mathbb{R}^d$ by \n", "\\begin{equation}\n", "(\\mathrm{d} \\pi_{\\theta^{\\star}} / \\mathrm{d} \\mu)(x) = \\exp[- \\langle \\theta^{\\star}, F(x) \\rangle] \\; ,\n", "\\end{equation}\n", "where $\\theta^{\\star}$ is the solution of the following convex problem.\n", "\\begin{equation}\n", "\\min_{\\theta \\in \\Theta} L(\\theta) \\; .\n", "\\end{equation}\n", "where $\\Theta = \\{ \\theta \\in \\mathbb{R}^p, \\ \\int_{\\mathbb{R}^{d}} \\exp[- \\langle \\theta, F(x) \\rangle ] \\mathrm{d} \\mu(x) < +\\infty$ and $L(\\theta)$ is the log-partition function given for any $\\theta \\in \\Theta$ by \n", "\\begin{equation}\n", "L(\\theta) = \\int_{\\mathbb{R}^d} \\exp[-\\langle \\theta, F(x) \\rangle] \\mathrm{d} \\mu (x) \\; .\n", "\\end{equation}\n", "\n", "In our running example, we will consider $F = (f_{a_i, b_i} - c_i)_{i \\in \\{1, \\dots, p\\}}$ where the $c_i$ are the target statistics\n", "\\begin{equation}\n", "c_i = \\frac{1}{N}\\sum_{j=1}^N f_{a_i,b_i}(\\mathcal{X}_j) \\; .\n", "\\end{equation}\n", "We will take the reference measure to be a Gaussian distribution with zero mean and diagonal covariance with entries given by $\\sigma^2$ with $\\sigma$ large." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Stochastic Optimization with Unadjusted Langevin\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now assume that $\\mu$ admits a Radon-Nikodym derivative with respect to the Lebesgue measure, and denote $r: \\ \\mathbb{R}^d \\to \\mathbb{R}$ such that for any $x \\in \\mathbb{R}^d$, \n", "\\begin{equation}\n", "(\\mathrm{d} \\mu / \\mathrm{d} \\mathrm{Leb})(x) = \\exp[-r(x)] \\; .\n", "\\end{equation}\n", "In our running example, we have $r(x) = \\| x \\|^2/ (2 \\sigma^2)$.\n", "In this case, the Stochastic Optimization with Unadjusted Langevin (SOUL) algorithm aims at finding the optimal parameters $\\theta^{\\star}$ by performing a stochastic gradient on $L$, whose gradient is approximated by a Monte Carlo average." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def soul(params):\n", " d = params['d']\n", " delta = params['delta']\n", " gamma = params['gamma']\n", " m = params['m']\n", " Nit = params['Nit']\n", " stride = params['stride']\n", " target = params['target']\n", " fun = params['fun']\n", " grad = params['grad']\n", " init_theta = params['init_theta']\n", " init_x = params['init_x']\n", " sigma = params['sigma']\n", "\n", " x_list = []\n", " theta_list = []\n", "\n", " x = init_x\n", " theta = np.reshape(init_theta, (init_theta.shape + (1,)))\n", " target = np.reshape(target, (target.shape + (1,)))\n", "\n", " for n in tqdm(range(Nit)):\n", " if n % stride == 0:\n", " x_list.append(x)\n", " theta_list.append(theta)\n", " feat_avg = 0\n", " for k in range(m):\n", " noise = np.random.randn(d)\n", " update = np.sum(np.sum(theta * grad(x), 0), 0)\n", " update = update - sigma ** (-2) * x\n", " x = x - gamma * update + np.sqrt(2 * gamma) * noise\n", " feat_avg = (k * feat_avg + fun(x)) / (k + 1)\n", "\n", " feat_avg = np.reshape(feat_avg, (feat_avg.shape + (1,)))\n", " theta = theta + delta * (feat_avg - target)\n", "\n", " x_arr = np.array(x_list)\n", " theta_arr = np.array(theta_list)\n", " theta_arr = theta_arr.squeeze()\n", " return x_arr, theta_arr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following function generates a dataset from a 2D GMM which will be used to perform the estimation." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 2D GMM densityfor for sampling data\n", "dil = 0.8\n", "sigma_sq = 0.15\n", "mu_list = [np.array([-dil, -dil]), np.array([dil, -dil]),\n", " np.array([-dil, dil]), np.array([dil, dil])]\n", "cov_list = []\n", "cov_list.append(sigma_sq * np.array([[2, 0], [0, 1]]))\n", "cov_list.append(sigma_sq * np.array([[1, 0], [0, 2]]))\n", "cov_list.append(sigma_sq * np.array([[1, 0], [0, 1]]))\n", "cov_list.append(sigma_sq * np.array([[1, 0], [0, 1]]))\n", "w_list = [1 / 4, 1 / 4, 1 / 4, 1 / 4] #[1 / 8, 1 / 2, 1 / 8, 1 / 4]\n", "gmm2d = Mixture_Gaussian_2D(mu_list, cov_list, w_list)\n", "\n", "# View 2D GMM density\n", "fig, ax = plt.subplots(1,1)\n", "draw_density(gmm2d, ax)\n", "\n", "Ns = 2*10 ** 5\n", "p = 10 ** 2\n", "\n", "# \n", "f = feature(p, gmm2d.sample(Ns), activation = 'relu')\n", "\n", "params = {'d': 2,\n", " 'sigma': 10,\n", " 'delta': 10 ** -2,\n", " 'gamma': 10 ** -2,\n", " 'm': 10 ** 2,\n", " 'Nit': 10 ** 4,\n", " 'stride': 10 ** 1,\n", " 'target': f.target,\n", " 'fun': f.eval,\n", " 'grad': f.grad,\n", " 'init_x': np.array([0, 0]),\n", " 'init_theta': f.eval(np.array([0, 0])) * 0}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now apply the SOUL algorithm." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 10000/10000 [00:59<00:00, 168.73it/s]\n" ] } ], "source": [ "x_arr, theta_arr = soul(params)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let us observe the output samples." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "draw_estimated_density(x_arr, gmm2d)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let us take a look at the estimated parameters." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/galerne/anaconda3/lib/python3.7/site-packages/matplotlib/figure.py:98: MatplotlibDeprecationWarning: \n", "Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n", " \"Adding an axes using the same arguments as a previous axes \"\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "draw_theta(theta_arr)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Obvsiouly, we only have an approximation of the mixture of Gaussians.\n", "It is interesting to visualize the density we obtain. Notice that the contours of the density are segments which is coherent with our features which have different behavior depending on the half-space." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD8CAYAAABjAo9vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXd8G/X5x9+nLUuWZXnEI3b2cuwMx1nOIBMKDQkQwh6dlFGglA0/CJsyCxRKG0oplFUIBGhaaEhIQpaz996JMxzvLWt9f3/IMQmxZFuWLcn+vl8vvXTS3X3v0enuc3fP9/k+jyKEQCKRSCQdB1WoDZBIJBJJcJHCLpFIJB0MKewSiUTSwZDCLpFIJB0MKewSiUTSwZDCLpFIJB0MKewSiUTSwZDCLpFIJB0MKewSiUTSwdCEYqPx8fGie/fuodh0WFG9eYvf+abBg9rJkubjcXtwuz14zni53R48Lg8et/usee76736Y9uBvnLOigFqjRq1Woap/V2vUqDSqhu/VGjVqTf38+mlFUdrt90skoWT9+vVFQoiEppYLibB3796ddevWhWLTYcWa5HS/80d0sH3k8XioraylqqyGytIqqkqrqSypovL0e0kllSVVVJRUUVVaRUVxlfdzcSV1tQ6f7UZZjFjioomyGDHFRGGyRHmnLVGYYqKIqn83xURhttZPW031n00YzQZ5cZBEBIqiHG7OciERdknnRKVSYYoxYYox0aVbkzcdZ1FXW0dFsVfkK4orqSjyvpfXv1eUVFJTUUtNRS1Fx0qo2VlDdbn35XK6m7BLwWQ1ER1rwmQ1YbaaMFujMFvNRMeaMMeaMVujiLaZMceaibZ5v4+2mTHFRKFSSY+mJLyQwi6JCPRGPQld9SR0jWvRekIIHHZHg8hXl9dQVfbDdHVZNVX1r+ryH54kio+XUFXq/d5hd/psX1EUzPUib7GZiY6L9r7HmrHERRMd5323xEUTE+99WeItGKL0rd0lEolPpLBLOjSKoqA36tEb9diSYgNqw2F3UFlaTVXpmW4j7wWgot59VFnq/a68sIKju45RWVJFdXmNzzb1Rh3mWBNRlqiGu3/vxSGaaJuZmPhobMmxxCZZsdW/dAZdoLtB0smQwh5CRpw4EmoTJM1AZ9ARl6wjLrllFwaX00VlaTUVxZVUnuE2Ki+qpLywwvvEUFFDVWkVJSdKObTtKJUlVdRU1jbantlqwpZsJS7F5n1PthGXHEtcqo2ErjbiU23YkmPRaOVp3dmRR4BE0kZotBpiE2OITYxp0Xoup4uywgpKT5ZRcrKs4b3kRCklJ0spPl7K9uW7KD5eitPhOmtdRVGI7RJDfNc4EtLiSOgaR2J6AolpcSSkx5OYHk9slxjUanUwf6okzJDCLpGEGRqthvgUG/EpNr/LCSGoLKmi6FiJ95VfTNGxEgrziyk6Vkz+7uNs+HYLtVX2s9ZTa9RYEy3EdrES2yUGa5cYYhO97p7YLjE/uH+SYzFbTTJiKAKRwi6RRCiKojR0zPYc1K3RZYQQVJfXUHi0iFNHijh1tJhTR4ooKyij9FQ5pQXlHNp+lLKC8nPu/gG0ei1xyV6RtyXHEpccS3yqjbhUG3EpXvdPQlcbRrOxrX+upAVIYZdIOjCKotSHb5rokdW4+IP3AlBVVk1pQfnZrp8TpRSfLKXkRBlHduazcdHWRjuFTTFRDa6f+FSvGyix3vWTmB5PQlo8Or22LX+q5AyksEskEhRFITrWG6aZ3j/V77K11XaKj5VQfLz0B9dPfjGF9a99Gw9SWlB+znrRsSasifWuny5Wb/9DF+sZrh/vuzUxRnYAtxK59yQSSYswmgx07ZtC174pPpdx1Dkpyve6fU6/SuvdP2UF5RzYfIiyUxVUlVU3ur41wYItJZa4lPrIn/pp7xOBjfiuNmLiLdL/7wMp7BKJJOjo9FpSeiWR0ivJ73KOOidlBaddPz+4gIqPl1BysoziE6Xs33SIsoIyPJ6zMw1p9VriUmJJ7tmFbhld6ZGZTreBaXTL6IrZamrLnxf2SGGXSCQhQ6fXesMx0/2nmHC73JQWlNW7fs6MACri2N6TfPP2d9hr6hqWj0+1MXjCQIZMyiJ7cmaT7Xc0pLBLJJKwR61RE5/q7ZjtP+Lc+R6Ph4LDhRzens/hHfns23SQ9d9uYdEHywBI6Z1E9uQshl84lOwpgzp8SgdFCH+JVNuGnJwcIbM7SiSStkQIwaFtR9i4aBsbv9vK5iXbqa2yozNoGTo5i5E/HcaoacNanH8olCiKsl4IkdPkclLYJRJJZ8DpcLL1+52s+vc68uav5+TBUwCk9U8le3IWQydnMXjCwLD2z0thl0jCgCZz7st8QSFBCMGRnfms+e9GNn63la3f78ReU4dKpdB3eG+yJ2cx8qfZ9BvRO6zSL0hhl0jCACnskYHT4WRn3l42LtrKhkVb2bV6Lx63B2uChRE/zWbUT4eRPXUQJktUSO2Uwi6RhAFS2COTqrJq1n6zibz561j79UYqS6tRqVX0H9mnwW0zYFQftLr2HU0rhV0iCQOksEc+bpebbSt2sX7BZjZ+t409a/fh8QgMJj1Z4zPImTqYkdOySe2d3Oa2SGGXSMIAKewdj6qyarYs3cGGhVvYsGgrR3cdAyCtXwqjpg1j1MU5ZIzu2yZpEaSwSyRhQCDCLi8GkcWJgwWsnr+BVfPXsWXJdlxON0azgREXDWXMJSMZcdHQoPnmpbBLJBGKFPbIpbqihg0Lt7L+f5tY+dVaSgvK0eo0ZE8dxJhLRjD2spFEx5oDbr/dhF1RFAPwPaDHO5J1rhBitr91pLBLJL6Rwt4xcLvd7Mzby/LPV7Ni3mpOHipEZ9By3hW5TLv5fDJG9W1xm+0p7ApgEkJUKYqiBZYDdwoh8nytI4VdIvGNFPaOhxCCvRsO8M3b37Hog2XUVNaSPSWLG5+4qkUC31xhb7V3X3ivDFX1H7X1r/b370gkzUQKp6S9URSFvsN60XdYL379/HX8Z85C/vXcF9yZ+zC5M4Zzx59/3eJi6X63Fwwfu6IoamA90Bt4Qwhxv7/l5R27JJRIYZeEA7VVtcx77Ws+eGouRrOB3791C7kzhvtdp7l37KpgGCiEcAshhgBdgRGKomQ2YtBNiqKsUxRlXWFhYTA2K5FIJBGL0Wzkmocu48/rniO+axyzL32ev97zHm6Xu9VtB0XYTyOEKAOWAD9pZN4cIUSOECInIaFz5UaWSCQSX3TLSOO1Vc8w/dYLmPvyv7lv6hOUFpS1qs1W+9gVRUkAnEKIMkVRjMAU4LnWtitpP6RrQiIJLTq9lttf/xX9R/bh1ZvncMuw+3jwgzsZfN7AgNoLxtCoZODdej+7CvhECDE/CO1KAsDtclNX68DlcOFyunA53bidbr/Tu+ticAsVHhTcQkEACqBWBCoEfL0RjVaNPkqP2RqFKcb7MpgMEVlzUl6oJOHK1OvPo9fg7jwx6yXum/w418++gqsfurTFGSblAKUIwO12c2zvSU7sP/lDceCj3veyU+XYq+uoq6nDXl2H0+FqN7tUahWmmCiiY02YY81E28zeaavJO22LJtpmxmIzY4mrn1//au/kSRJJJFFbVcurt77FoveXMXRyFg/883ZsSbFy5GmkIoTg+P6TbF22i30bDrB340EObDp0Vj1HjVZNQlo8ienxxHaJwRClRx+lx2DSYzAZ0Bt1aHQaNFo1aq333d/07ksuQ4VAjWi4Sz999+5God/8r3A73dir7VSX11BdXkNVWQ3V5dVUldVQVVZFVWk1laXVVJVWUVlSRWVpNR63x+fvjIo2ekU/zowl3kJMfDSWOO8rJt5CtM2MKSaKKIsRk8VYP+39rFIFtWtIIglLhBD8753FvH7720RZjDzw/p0MmzJICnukcOpIIZsWb2fT4m1sWryNwqPFABjNBnoP7dHwSuuf2iDmwRS3tvCxCyGoqaylsqSKiuJKKoqrqCqtoqLY+7mypIqKksqGeRVFFZQXVVJdXtNk21HRxgZ3kKneNWS2mjBZojBZTQ2fo2NNmKwmzFbvZ3P900RbJGeSSNqKg9uO8NSVL5O/+zgL3J+2zwClcCZcOwWryqrZ+N02bxrQRVs4vr8AgJj4aAZPzOTqBwYy6LwM0vqnRuzdqaIoXqG1RJHUPbHZ67mcrgbhr66opaailuryGmoqahqeFqrLa6iu/3ziP99S6lFjFxrsHjV2ocbTRLCXwaQnOtaMOdb0g3so1utGKv/rnzEqLowqF1EqF0bF+x6lcqHFw8iT0j8vaV96ZKbz+po/8OrNc1jw/qfNWqdD37GHi7A7HU52rd7HxkVbWf/tZm91Fo8gKtrIoAkZDJ2UxZCJmXTPTItYIQ8VP/6PhQAnKuweNb0XL6GqrJqq0uqG98rSerdRvfvo9HfeJ4sqnHVOn9vS4CEmJa7BZWSJj8Zii8aaaCG2ixVLXLT3YhFrIibeQmySFUOUvq13gaSTIIRApVLJO/ZQ4Xa52b1uP5sXb2fT4q1sX7GbulpHQz3Fqx+6jJzzB9N/ZB/pFggyigI6POjUHroPTGvx+iuSulHj0VDr0VArNNR4vK/T06YLJlNR7146tO0oFUUVVBRX4esGyWg2ENslhtgkK7FdrNiSrNiSYxve45JjiUuJJSbBIi/qEr+0JAJNqkoQEEJwbO8J1i3YzPpvN7N58XZqq+wA9MhK58JfTWbIxEyyxg/AYosOsbUSf2gVQYzaSYy68Tv3EW/fes53bpeb8qKKhk7jqtJqygorKCsoo+RkGaWnyikrKOPwjnw2fbeNqrLqc9pQa9TYkq3Ep9qIS7ERn2ojoWsc8V3jSEzzvselxMpoIkmzkMIeIKWnytmydAcbF25h3YLNFBz2pklI6dWFydeOY8ikLAZPyMCaEBNiSyVtjVqjxpYUiy2peUmc6mrrKC0op+REKcUnyig+XkLx8dL69xKO7Mxnw8It1FTUnrWeoijYkq0NEVGJafEkpMVhS7JiTYzxPhl0sWKONcm7/05Oh/axB5OK4ko2L9ne8Dq0/SgAURYjQydnMWzqYIZNHURKr6QQWyrpKFRX1FCUX0xhfglF+cWcOlJE4dEfxjCcOlKEw37uk4Vao8aaaMGWZCU2yYqti9ftE5tkJS7FRlyy9z02yYpOL58AIol2S9vbUXHUOdmxcjfrF2xm/cIt7NtwECG8BWwzx/Zn8rXjGDwxk77DeqLWtGxUmETSHEyWKEwZUXTLaLyvQAhBRXElZafKKS3wvrzTZfWfyyg5Ucr+TYcoLShvdFxBTHy01/XT1UZ8io341DjvdL0LKDE9HqPZ2NY/VRJkpLDX4/F4OLj1CJsXb2f9ws1sWbIDe00dao2ajNF9ueGxKxg6OYt+w3vJDk9JWKAoCjHxFmLiLT7F/zQej4fywgqKT5RScob7p+hYCcUnSig+VsKedQcoO1V+zrpmq4nEdK/bx+v+8Y6l+MH9E4O1i7z7Dyc6rUIJIRo6szYt2caWpTuoLPHWC+naN5kLfj6RYecPZvCEgURFd+w7lnAJC5V4aer/8Iev/0qlUhHbxRuZwxDf6zvqnJScKKXwaHG926f4LPfPjlV7Gs6TH2O2muqjf2Lo0j2BASP7MjC3H90Gdm1xrhNJ6+hUwl5yspQNC7eyYeEW1n+7hZITpQAk9Ugkd/pwBk8cyOAJA0lMiw+xpRJJaNDptSR1T/Q7qMxeU0fZqfKzXEClJ8u8rp+CMkpPlrH2vxv59t2lgHekcP+RvckY3Y+cC4bQf2RvKfRtTIcW9uqKGrYt38Wm77axYeEWDmw5DIAlLprsKVlkTxnE0MlZLRoZKZF0dgxR+ibFXwjBiQMF7Fi1p/61mw+f/oz3n5xLTHw0I36aTc7UwQyZlNnsaCJJ8+lQwl5XW8fWZbvY9N1WNi/Zzp71B/C4PWh1GgaO7c8vn72WYVMH0WtIdxkOJpG0IYqikNIriZReSUy5bjzgTaWx9ptN5M1fR95X6xru6LtnppFz/hByLhhM5tj+6I1ytG5riehwR4/Hw76NBxvcK9uW78JZ50StUdN/ZG+GTMhk8MSBZIzuKw8WP0gfe3jRFj72cMPtdrNv4yE2Lqo/d5ftxOlwoTNoGXReBjnnD2HktGF07ZMcalPDig6Ztvd0StvNS3aw8butbFy4hfKiSsA7wjN7yiCypwwia/wAjCZDsM3usAQi7O15MQj2tsJdOMPdvragttrOlqU7WL9gM+sWbObormMApPVPZdRPsxk6OYvMsf07fehlh4ljL8wv9l7VF21hy5IdFOZ7U9rakqyMuCi7XsyzpJ+uFUSqGHRWOuL/ZTQZGHlRNiMvygbgxMECVs/fwKr56/jiT1/z6Uv/9oYe5/ZtcNv0HtpDulR9EHbCXl1Rw+Yl29m4cCvrF25puHJbEywMmjCQqycMZPDETNL6pURkWTaJRNI0yT26cMntF3LJ7Rdir6ljx8rdDdFs7/zfR7zzfx9hTbCQPXUQudOHM3p6DjqDLtRmhw0hF3ZHnZNdq/eyefF2Nizawo5Ve/C4PeiNOgadl8GFv5xM9pQsemSly6uzRNIJMUTpG9ysv/oDlBaUsf7bLaxbsIn1C7bw3YfLMVtNTLx6LFfcO11GuREiYbfX1PHxH+axYdFWdqz0prRVFIVkdSXj9OX01leQrq1Es3EZbITiF6GYjvkIKpFIWkZsFytTrhvPlOvG43a72bx4OwveXcI3by/i678t5Ce/mMTVD13WqcejhKTz1KLYxEhlMj2y0hk6KYvBEweSNW4AOzMy/K4nhV0SDD6z+U/UNrPkZDtZIgkmhfnFfPTM53z99iJUahW/fu56Zvz2Jx3KZdtuUTGKoqQB7wFJgAeYI4R41d86/Xr2F3l5q4lNPDulrQy7k7QHUtg7NicPneK12/7G2q83knPBYO5/7/YOkz67ucIeDKe1C7hbCDEAGAXcpiiK31vvaJv5HFGXSCSSYJDUPZGn5z/I7a//is1LdnDrsPvZtWZvqM1qV1rtYxdCnABO1E9XKoqyE0gFdrS27dYSyU8A/mwvcbp8zvtJ0fGgbgvCP3Y71HwTn+J3fiD/SSD424fhfKy3BYqiMP3WCxgwqg9PXP4id417hFtf/QXTfjO1Q7lmfBHUzlNFUboDQ4HVjcy7CbgJID298QOwsx18ktCQppdhcZ2FPtk9eWPdc/zhutd47da32LZ8J3e+eVOHz9gatPhBRVHMwGfA74QQFT+eL4SYI4TIEULkJCQkBGuzEolE4heLLZqn5j/Iz564iiUfr+CWYfexd8OBUJvVpgRF2BVF0eIV9Q+EEJ8Ho02JRCIJFiqVimv/byYvLn4cR62DO3Mf5ovXvyYUUYHtQauFXfE6rN4GdgohXm69SRKJRNI2ZI0bwF82vkD21EG8ccffefzyF6kurw61WUEnGD72McD1wFZFUTbVf/eQEOK/QWhbIml32qsT0l+na3t1uAZKoJ3dvvZfsPd5U+09+dUDzH15Pm8/+AG35tzPQx/dRb+cXi3eTrgSjKiY5UDH72ZuZ9qzIzkcOq392RDsqB1/gmqL4Hq24fA/RgqKojDr7osZMLI3z1z7KnfmPswvnr6ay+++uEOkLon8XyCRSCQBkjl2AH/d9CK5M3J46/73eeiiZygrPLegd6QhhV0ikXRqomPNPPLJ3dz55k1sWbqDW3Mif0BT5D53SiR+CKcBT8G0JRwGk7U37fFfKorCtN9MpW9OT564/CV+P/5RbnrhhojNNdOhhb0jHuSS1hNsP7q/jk5/ohTJ/vxgj34OpFM10Db90XdYL/687jle+PkbvHHn39mybAf3vnNbxFVkk64YiUQiOQNLXDRPfHk/Nz1/PSs+X83vxz/aULktUpDCLpFIJD9CURRm3TOdJ//9IMf3neS3Ix5g99p9oTar2URUMWtJZNDexacbcwu0lZsjkMLe4UCwY8GD7YoJxIZAaem+OLT9KI9M/wMlJ0q5+2+3MOmacUG3qbl0mGLWEok//AlMJBDIhaIt/NEtJVz6B9pjX3QfmMaf8p7hictf4tnrXmPHqj385qUb0Oq0QdtGsJGuGIlEImkCa0IMzy98lJl3TePLN77hnomPhbXfPTwuuxJJmOIWCiVuPYUuI5UeLcf/9DVulxuP24Pb5cbt9pBflYJKARAonB6GfeY0KIrX5fnj+af++i2KAopK5X1XFA7Vxjcs630XZ7VT+8lKUBRUKgUUBUXxJrnaa7eCcnobAjUClQIqPJjz9mA06Ukf0BW1Rt3Wu61DotFquPmlGxkwqi8v/fLP3DrsPh6bdx8Dc/uF2rRzkMIukdRT5dFw1Gkm32mmwGWk0GWkxK3Hc+aD7Z1/b2TNtMA3esucRr5sImfJVX/0McOPwOQ+DEBUtJGBY/szaHwGg87LoO+wnmjCxK0SKZw3azTdM9OYfcnz3Dv5ce7+2y1MvjZ0fvfGkP+oxC8dtSqPEFDoNrLfYeGo08xRp5kStzdWWYUgXl1LF00tA/UlJGjsxGtqiVE50CgCBYEKgUoRZyVJEnjvw0/HI4iGe3Pvy3sfXT8t6pdtZJ5AqZ9/drvnTJ/Rxo/neYSCB/Cg1E8r1Hg0HHZGc3BBCWu/3giAFjfdtaX00xfRU1uKVvE0/J5g+9E70uCqbgO68trKp3n88hf5w/WvsXvtPn79/HVh43eXwi4Je4JxwgshOHGggE2Lt/PdHU9xwGGh0uOtpBStcpCurWKEsYA0bRXTj27EEKU/p41ALnKBJhwLtFOwqc7YIUavX7jKo+GQw8IOu5l9jjj2OuPR4qaXroR+uiK6a0spcbpCnmUy0P++PS4SlrhonlvwCG/d9z6fv/of9m44wGOf30tMvKXNt90UUtglHZbSU+Vs+m4bGxZuYeOirRQcLgTArLLQQ1tJL105vfXlxKodZ63XmKh3NMwqF5mGElLUp5gUdYB8Vwy7HfHsccSxy5GAWaljiml/qM0MezRaDbf88Wf0H9mHF3/xBrePeoin5j9Iev/U0NoV0q1LJEGkrraOrct2sX7BZjYs2sKBzYcBMFtNDJmUyax7pjNkUiYnJ+YSgek/2gyVAunactK15UyKOsBhp5Vltd34oiqD8mtf4dZXfo41ISbUZoY1E68aQ1KPRB6d8Rx3jH6IR+feQ/bkrJDZIwcotYD29BGG07ZaakN7DVByCYV8p5kDDgsHHdEccUbjQoUaD910lUyYfQvZU7Lond0DtVrdZHunOVrnaPR7f0Ww99XaG/3epvF979QWrpiW4mscgFsorLGnssbVk2ibmddXP0tietO1isNhQFFTdrSlm+bkoVM8Mv0PHN11nJteuJ5L77goqEnE5AAlSdAIl04tj4ACVxT7HRb2OWI45IjGiRoFQZKmhpFRBfTWldNdV4lO8TDiwUsbbcff7/nMltRiu3yJOvgXb18XEIARvr4PoCCJv0Fc/uz7qe4kN3zzCb8f/yhPXvlHXl76eNh0DoYrSd0TeWX5Uzx/4+u8edc/2Jm3h9+/dTNGs7Fd7ZDCLglrio4Vs742nn11Mex3xFAtvMKSoK5lmLGQXroKuusqiFK5Q2xpx6TX4O7c/fYtPHnFy7x13/vc+srPQ21S2GOyRDH7s3v45Pkveef/PuLg1iM8OveedvW7S2GXhBVlheVsXrydjd9tY8vS7RzdfRzohVnloI++nN66cnrqyolRO0Ntaqdh/OWjueT2C5n32n/pN7x32MVshyMqlYqrHriUvsN78+w1r3D7yAd56KPfMfKi7HbZvhT2TkJrfJ/B9pue2V6dR8VBp4UDDgv7HRZOukwA6BU33bUVXGiuoLeunC6a2k7V4fmhNbHR7wP12QfKaddUglBIVmfywvWvsPuWX9BFU8nMkpNB315jRPJYiuzJWbyx7jlmX/I8j07/A79+/npm3jWtzYt3BKXzVFGUvwPTgFNCiMymlo/UztNIJlwSS3kEHHeZ2FsXwz5HDEecZjyo0OAhXVdJL10FvXTlpGiqUdcf+/58xNUej895gQiPPx+7r85Tf75yk5/CyL5sr/Pzm/wJOzSeWTHQ//DHv6vWo2Fe1RCcQs3M6I3cWBbcLJ3BTIgWbtRW1fLcja+zYt4azrtiNL9/6xaiolvud2/vztN/AK8D7wWpPUkHQQgocBk54LSwv77D0y68h12KpoqxUSfppSunm64SrdL+EVqS5mNUufiJaQfzKgfzbXV/bhAiIsvGhQKj2cjsuffwyQtf8feHPuDw9nye/PcDJHVv/MmstQRF2IUQ3yuK0j0YbUkinxKXnv0Or5AfcFgaOjzj1HYyDSX01FbQW1+OSRXZKXc7IzZ1DWOMB1hS25fFHy0PaW7ySENRFK68bwZ9hvXkyVkvcfuoh3j8i/vIGNU36NtqNx+7oig3ATcBpKeHf2ECSfOxe9QccFjY6/C6V07nXImu7/DspSunp64Cq9q3y0ISOfTTFbDNkczfHviA3EtGdIqRusEke3IWr658mkcufpZ7Jj7Gve/cxsSrxgR1G+0m7EKIOcAc8PrYW7p+R/G1BYO26EzyldPEX4fcMWcUS6pT2VNnxYUKneKmp7aC3KiT9NaVE6+2h7TD821L4wNqUmUsdqtQFBhjPMCX+dG8kDCW4cZjZ81vz/wygfQfhINWpPdP5bVVz/D4zBd55ppXqK2s5aJfTwla+zIqppPg72D2l6iqsURQLqeLD5/+nA+e/gyLzcy0q8Yw9rKRZIzui1anDegi7K/T0l8HpK95xxyBhUP667j01Ynrb0Qq+N73vn5zb6OhxTb4w1/nLvjuZPY1SAq8x0yappzNdUkMMxyrz0fvn3AQ1HAiJt7Cc98+wuxLX+DVW+YQm2Rl9MVN9os2C1lBSdIiDu84yh25D/PPJz5l4tVj+PuuV7nt1V8w+LyBclRiJ2Ow/gTlHgOHnLGhNiVi0eq0PPKvu+id3ZOnr/ojO/L2BKXdoAi7oigfAauAfoqi5CuK8stgtCsJL9wuN/dMfIxThwt5dO49PPDeHUTHmkNtliRE9NaVYFIcbKxLDrUpEY3RbOSp+Q8SlxLL01f9EY+fp8bmEqyomKuD0U4kEy59AG3hfz/d5nFnFGUlWVxh2YeC+Le3AAAgAElEQVT+tllwWeva6yy05+8NZFuB2qdWBIMNJ1lZm06J24BN7TtnDvh3+UH7+ubDjdjEGK6ffQXP3fAndq3Z1+pImYjxsUv/3A8EezCRvxPqzDaPOL135+m6Sr/tBZKoKk2vC6hYhS+sAdb1bO+RnY3RlE/cF758/f76KAL9TafXG68qYnVtV3Y5UplmORxQW21FpGnGqGnDUGvUrPh8dauFXfrYJc3mqDMas8qBVSXDFiVeotVOMg0lbLDH4xRysFJrOF03YPm81bQ2I4AUdkmzOeo0k66t6lQ5WyRNM9RQRJ3QsLfOGmpTIp4xM4ZzfH8BR3Yda3phP0hhlzSLao+GYreBNG1VqE2RhBk9dRVEKU622m2hNiXiGVUf7rjqq9bl0ooYH7uk7WhOweWj9f71M4U9EN+3P59uZ+tU7SioFcFAQwmb690x8n8MnISucfQZ1pNVX63lqvsvCbgdKexBIhw6atrChtMDlHY88jGqP8xj+pH1GE2GgET9dHuN4U/wA6lC5G+gUZ3HwzVlpxqd52u0qj9KXIHlvNH76NT0Z3sg+Nt/gVZX+jGZ+hLW1nZhb52VDEOpz/ZaeoyGw3nV3oyelsM/n/iU0lPlxCYGVmtWumIkzWLn6j30HNQNo8n3qEhJ56WHrpIoxcm2OumOaS2jp+cghGDlF2sCbkMKu6RJ3C43O/P2MmBkn1CbIglT1IpggL6UXXVWXDI6plX0GtKdtP6pLPpwWcBtSFdMI0RqxZa2GiT1RVImtVWZRH30BmvmPRlQG+GGrwpFksDJMJSy3p7IQYeFPvryRpcJZtKucBkUGGwURWHS1WN5d/a/OHW0iMS0+Ba3IYVd4hebVsP2agsAPbQ/DEzyV7kIfCeW8uWbbyzZ2Gn8JQjztS1/J/2+Wt8jJI1+slnttzfuz0/S+T6NAvGX61Uqn/svXMSsMTt66crR4mZDrZU4VfE589trgFdHYOLVY3h39r9Y8vEKrrh3RovXl64YSZMcdEQTr64lWhaQlvhBqwh66ErZ77ARhIqbnZrU3sn0H9mH7z5aHtD6UtglfvEIOOyMpnsTaQQkEoBe2hKqhY4Ct0wO11omXJHL/k2HyN/T8hw68tkoTPH3yB1IyGCgnHIZsQsN3bUtE/ZAfKmBhlA2tl6kP/YHGgve2L7w5zbzl0ven8vKV874HtpSFAT7HTaSNHIwW2sYP2s0f7n7XZZ+sopr/29mi9aN7KO/jYjUTpe2YLvdBIBVKT3rgmJSqXz6xP2Jkq9YZn+i7k98fF3k/InSCYfb57zuBt855WN9nC1lLt/t2T3+fBKNC+7w6Cifa/hLEOYv2Vew8bXfjSpI0VSw3xnLGI6cs04wMzh29PM0oWscmWP7s/TTlS0WdumKkfjlmMuCWVWHRVUXalMkEUJvbQmFbjMlbmOoTYl4xs0cxcGtR1rsjpHCLvGJEHDMaSFVUyETf0maTX99ESDYWdfyUbySsxl72UgAln22ukXrSWGX+KTCo6dK6EnVVITaFEkEYVY5SNeUs9MRL6NjWkliWjz9R/Rm2ed5LVqv0/rYA4kHDpcY4vbimMsbv56qabzj1JdfvKmOy8bi0tvTPyxpe/rrC1lQ3YeTbjPJbdSJ2lnOxzGXjODthz7k1NGiZq/TaYU93GnPg9KXEBfXxqBX3PQ11KFSzl7GX/IofwRSHSiQdXwl2AKwagK7jSx1Nd7ZGavxva1UPwW+mxrk1Rj+OpJ9EuB/5a+aFDReeeu02I5Ql7Oo2sMhVyIDjf5L5kn8k1sv7C1J5StvkyQ+OeyMJk1bhZ/BmBJJoxhVbvrqy9hqj8NvYJCkSdL7p5LWL4WVX61t9jpBEXZFUX6iKMpuRVH2KYryQDDalIQWu0fNKZeR9BbGr0skp8nUl1Dp0TXk8pcEzqhpw9iyZHuzl2+1K0ZRFDXwBjAVyAfWKorylRBiR2vb7ii0V1KxYPocjzrNCBS6SWGXBEh/fRkaPGy1x9FN5/Wzt/RckEU7vIy6OIdPX/p3s5cPho99BLBPCHEAQFGUj4EZQFgLeyCC2lE6Y35MY79r12OfoDw5lxmH1mCynDtgJtATzlcnaSD+Zn/t+e/ADawYdy9D4/7tYw7fOXT82hGA7zuQwhjtUWij8fZcdNOWstUey2jDfuL8JEsLlI56Tv6Ygbn9iLaZ4dzcao0SDFdMKnD0jM/59d9JIpgdeXvokZXeqKhLJM2lr66YKqHnpMwd0yrUGjVjLx3Z7OWDIeyNda2d012iKMpNiqKsUxRlXWFhYRA2K2krPB4Pu1bvZcCovqE2RRLh9NSWoMLDXkdcqE2JeCZfN67Zywbj2SgfSDvjc1fgnDgoIcQcYA5ATk5Oh+snD2bSptMEkoslEH7cXoHLSHX5IAwf/4U1Xz4V1G1JOhcGlZs0TTn7HDbgWKjNiWiyxg1o9rLBEPa1QB9FUXrg/eeuAq4JQrsdipYmvgrmdlrK6SiGNG1gA0v8xZ37jMP24+v153/35d/25x/2V/zCV9ZC8J1YzF9xDn/JyHzFifvze/srnO1rP/lLUgbwy4rGn6ADOT4buxmx/+lr3rjz76R8v5qufZJb1F5n8aE3B1ULBvG12hUjhHABvwX+B+wEPhFCND8uRxJ2HHGYMSou4tVyYImk9Yyclg3A6vnrQ2xJ5yEocexCiP8KIfoKIXoJIZ4ORpuS0HHUaaartkom/pIEheQeXeg+MI28/0hhby/kyFPJWdg9agrdxoDdMBJJY4y4KJut3++kuqIm1KZ0CmSumDAmkCRbgfhFz2wv32lCoJAuhb3TEMzOeF/Hn+K04HZl8XG3XLIMJefM99evEMziHJ0FKexBIpBOHn8HrD+B9lWJJtDO2DNPqh12MwqCaKWMEqc7oEEqaXqdz/3hS0T8bedYda3f7TXW+ddYBsnT+Osg3RrAtl6K8h3KNzBK73NeIPvW3zq+Oq2tGjUzS042Oq+9RnYm1md4LHH73veS4CFdMZKzyHdZ6KKuQqf4j6SQSFqC3eO9IEUpvkfpSoKHFHZJA06h4qQrmq5aWVhDElxqhTd9sUkVWAphScuQrphGaK+kXa2hLR6hT7rMuFHRVVPe6rbaM3nTh9bEc77zl4+9NbxtkeXeAqHS43VJRatbnqcnEs7HcEMKe5gSbP8r+D4JTp84m+usKAgyjTUYVd62fHVq+RsoE4gP26pR+1zHX7EKX3b4q8jkbwCVv235Ggw1Lsbkc52maOw/8dc/4K/QRiBVqAItmOILX/1Gn/1xPtz9LlP3rMFii252ezK7Y2BIV4ykgUNOC4maWowq6V+XBI9TR4tY/d8NmK2mFom6JHDkHbsEALeAI04zQw3Nr6sokfhCCMH2lbuZ99p/Wf75ahCCqx+8LNRmdRqksLeQjurvO+mKwiHUdNfJjtP2pL1cDb7cO8EuIr6kS0+22WNZW5vIcZcZg+JijPEUI6MKiP1bHmv+dp/PdSP5/Ak3pLA3QktjsNvThqbsCOTkKHG62Gn3+oljlLJz/K7+ihY3hj8ftq+Yan/t+UukFUgnqUmlCihzpi8fe1N+6pZuK6CC1X7wl0St2uPxGePeXBx1TvL+vY5v/7mUtYVDcaMiUV3D9OiDDDUWoVMCK6ICUuwDRQq7BIBjTgvRKjvRqsCqC0k6Fx6Phx0rd7Pog2Us/WQllaXV2JJjGR1VwGBDEcmaGplrKIRIYZcgBBxzWUjTtj7MUdJxEUJwYMthFn+0nMUfr+DUkSL0Rh25lwxn6g0TyJ6SxfquPUJtpgQp7BKgwqOnWuhI1Uj/uuRcio4Vs+iD5Sz851IObT+KSq0i54LB/OLpa8idkYPRbAy1iZIfETHC3pR/u6W+uPb0l4f7to67YgFI0VQG25ywpbFBTeA/Bj9QAknm1p40dsw4hIod9lgOjJrJxoVb8HgEGbn9uOONXzHu8lHsGZQF6//C1ntCYLCkScLjyIogOmJnTrEnhqhoI9cW70Kt9j1Q6Ez87ocALi7+Olz9dZD6qobkr0pSoHb4G7wUTPx1Fvu78PjqJG1uZ6xbwAFHDJvtcWyvs+EQapL2HOeah2cy5frxpPZuXvWjjniORBpS2CUccZrpP7ZPs0Vd0nEQAk64othoj2ezPZ5qjxa94iJTX0y2sYhZ+7a2qCSbJDyQwt7JqfOoOOmKYvKovqE2RdKOlLp1bLXHsckeT4ErCjUe+unLGGIooq++DK3irTcvRT0yCYmwV2/e4tMXHKmPcZGa0yLfZUagkDG6cWFvC/9wWxTxljRNtUfDNruNzfY4DjstAKRpK7k4+hCDDMVENZJ5MZDjOtBzIVLP/XAkYu7Yg/2nR/JB5GtATCBJwPY+/Rk88jH9R/YJim1N4cv2QAcN+SPQgWYtXS/QAUo+L5oa3/+jryIrACMa+c5R5+T9pBw21iawxxGDBxUJ6lqmmI4y2FCMTVMX1P0UqTc4HY1WCbuiKLOAx4ABwAghxLrmrFfq1uMSCpr6xz1J6Ni1ei9p/VOJjjWH2hRJkBBCsHvtPha8u5QlHy+nsrwvZpWDXDl4qNPQ2jv2bcBlwF9bslKN0PJuWT+ujdmLQWYSDBlCCHbm7WHktGGhNkUSBPL3HGfxRyv47qNl5O85gc6gZcylI0j/+m166cpRSzHvNLRK2IUQOwGUFl7+Y9V2DjmimVOawY3W3cQEkHy/OQQ79r2jceJAAeVFlRg+e4c1Xz8XanMkzeTM47rcrWWrPY4t9jiOucyAIE1TztSoIvrpitD/bwk2vf/TPFzi7EPd79aeetHW2wqJjz1hSAbPPPsoT8x6iXdN5/P8wkdJ6eW7uEAkEOykXf7WsWk1QTnIdubtBSBNW9XibfnrAPUnCIGIhb/YcqDFSawC3XfBFhh/ybn8FZ+udGvZXmdjq93GYWc0AoUUTRXnGQ/ST1/Uonw/wS60Eeg+kr754NLkWaYoykKgMdV9WAjxZXM3pCjKTcBNAOnp6QybOpgXv3uMBy54irvGP8rz3z5Ct4y0ZhsuaT07Vu3GEKWni6Ym1KZImqCssJzln6/h3yX9Oei0IFBIVNcwyZTPIEMJ8Rp70EVaErk0KexCiCnB2JAQYg4wByAnJ0cA9MnuyYuLH+OB85/k7gmzeeLL+8kY3S8Ym5M0g63LdpIxph/qLd+H2hRJI5QVlrNi3hq+n7uKTYu343F7iFfrmGA6RpahhC6axssMSiQhH33QIzOdl79/AlNMFPdOfpyln64KtUmdgoriSg5uPcKg8RmhNkVyBtUeHdvrkrj//Ce4MuUmXrl5DicPFXLFvTN4c8Pz/C5uC1PMx6SoS/zS2nDHS4E/AQnAfxRF2SSEuKCl7aT2TubVlU8z+9IXeOrKlyk4dB1X3DujNaa1io44wOLHv2mHPRboi/blRyG4dR3CgqYGQQUaMx/sZHNCQKknikPOOA464yh0e2uCxi1ewzhDCVn6EpIqVqO88yUl7xD2YYrt2QEZ6H/cGWhtVMw8YF4wDLEmxPDCwkd57sbXeev+96ksqeIXz1zT4oibMwkXoQ0XO87kiNOMGg+p2qomOycbG/gSKIH4gYNdUSjUnM7PstPZle12G0Vub9rbrpoqppqPkqEvJUFd61PEg3lxCVZHfGvpbDa09bbCauSpzqDjoQ/vJNpq4uPnvqCytJrb3/ilTE7VBtiFGoPK3ZATRNK2CAHHXVFss8exrc5GiduAgqCHroLcqJMM0JdiUTdeek8iaSlhJewAarWaO/9yE9E2Mx8/9wXV5dXc9+5v0bZTytTOgkBBhRT1tsTldLGvzsLOulh21cVS5tGjQtBTV874qONkGEoxNZKfRSJpLWEn7OAd8PTLZ68l2mbmrfvfp+xUOQ9/fBfWhJhQmxZUQhm7KwRhJ+yB7o9wKGRy+tHaUedk03fbWDZ3FSu+WENl2QC0uOmlr2CSPp8B+rJGk221BH++5WD6leUAv8glLIX9NFfcO4PYJCt/vOmv3Db8AZ769wP0yOrW5tsNlwO2Le1QKQI3XieuKYDUrMHumAp2Yq729B07hIpln+WxfN5q8uavp6ailiiLkdHTcxh32SiGnT8YQ5T+nPUCGbgW7pkx2/Pc6cydo00R1sIOMPX680gf0JXZlzzH78Y+wqNz72bY1MGhNivi0SBwiZBHu0Ys1R4Nu+us7KiLZW+dFdesl7DERTN+5ijGXjaSoVMGodNL96EkNIS9sAP0y+nFa6ue4f+mPctDFz3Dr5+7jpl3TWtVxExnR69yUyfUHHdGYUAWsW4O1R4N2+2xbKuL46DDggcFi8pBjvEUM+e/Sda4Aag1sqNfEnoiQtgBEtPi+eOyJ3nh52/w13veY/vK3dzz9i2YYkxB31Ygj8htQVvaMdx4io218fytNIMh+uNkG4779P22NDlTW/hmA/Gjf2ZrPP+QP9fTj3PZlLp17KyLZac9lkNOr5jHqe2Mq+/8TNVUoygwZGJmi+1rCxpz1YRL0exAkH7+wIiof9xkiWL23HuY+/J8/vbA+9y65TCz595Dz0Ft73dvCwJNHBYMrGoHv7Lt5H+Vaayxd2WDPYWRUacYG3WC6BCE3fmLbw+kgIgvUW+KI3YHxR5Tw4ChYrc3T32sqppxpuNk6kuCls88EFHy51f25X/3V5zDH1I0I5eIEnbwRszMuvti+o/ozVNX/ZE7xzzM/e/dzthLR4batIjDpq7jaus+TrmMLK1OYUVNEqtqujDIUEyO8RTdtFVhP9IxGAgBp9wm9jji2eWIo8JjBARJ6gpGGQ7QXVuMVW3vcAOlJB2XiBP202SNG8Aba//A45e9wOMzX+SG2Vdw7SMzZfHdAEjU1DIrZj+TTPmsrEligz2BjfYE4tS1ZBuLGGooarOc+aFCCDjpNrPXEcdeRxxlHiMKglRNGUP0+XTXFhOlkgOGJJFJxAo7QHyKjZeWPM4rN8/hvcc/4cDWw9z3j9swmo2hNi0iidPUcbHlMOebj7K9zsb62gS+rUpjYVVXeuvKGWooor++FL3Kdx7xcMYtFI65rOS74tnvsFEtdCgI0jVlDDcco7euGEHHuoBJOicRLezgTUNw7zu30Wtwd+bc+x63jzrGo3PvIb1/aqhNayBcOmObi17lIdtYRLaxiGKX3nsHXxvPJxW90eJmgKGUwYZi3EndUIdBSgJ/+9clFPJdsRxwxHPIGYcDDVrcdNeW0ltXQg9tKcYzOo2rw/yaFe4FKWRnZ9vh8VOY5cdEvLCD1+8+865p9MhK55lrXuG3Ix7goQ9/x6gAa3mGw8EXbBtaU4XoQrwH1bblu1j80XKWfrqKLSXxRClOMg0lDDIU001bieoMf3xL7Q90sEljQuIQKspFEtvsNnY7rDiEGqPiYqChlExDCTal2GchdZNKFbEDX8IloVcw6Wi/J1CKjhXz/M/eaPbyHULYT5M9ZRBvbniB2Zc+z6MznuNXf7iWWfdMl/HuQUClUjFofAaDxmdw66s/56OkYWyujWNjbTxrartgUTnIMhSTZSimq6a6XW0TAgrdBvbUWdnrsHLIEY0LFSbFySBDMZn6EnrqKhqeLkqcoX/KkEiay4ov1vDSr97EaW9+n0+HEnaAhK5xvLz0CV74+Ru8df/77N1wgLvm3ExUtPS7BwutTkt/fRn99WXUeVTsdljZYo8jr6YLK2qSsant5N4yh4zcfgzM7Udyzy5Bv7jWVtWyM28v/6tMY0ddbEPq20R1DSOjCuivL6WbthK1vKZLIpSaylrevOsffPP37+iT3YMHP7iT+f0/aNa6ihDtf/eSk5Mj1q1b16bbEELwr+e/5J2HPyS1TzKPzr2H7gNDU1O1vQp3+NtOU64Yf6F8jdnR2LZqPWq219nYbreRb0impsJb5Se2SwwZuf3oP7w3vYb2oPfQHsQmNj+h25rkdKo9Gg47ojnsjOagI5oTLhOe+gyVPXQVZOhL6K8vw9qM6J2mcsL7ipv3t14ghTuC3R40/79qap3mrBcIwS5U0lFdNduW7+S5G1/n1OFCrrjvEm54bBZanRZFUdYLIXKaWr/D3bGfRlEUrrr/EgaM7MPTV/+R20c+yD3v3MZ5s0a3uy3teeL4Itgx2L5+03n17263myM78tm+cg/bV+5ix8rdrJi3pmG5uJRYeg/tQY+sbnTplkBCVxvWxBhiEiyYrSaO7Mxn1+p97Fyzl81Fgyl1GwBQ4yFNW8U403G6aytJ11YxvuDgOXb4S5YVySMxI0HIIsHGcKXkZCnvzf6E//5tEUk9Enlp6RNkjunf4nYi9whvJoMnDOTNDS/wxKyXeOrKl9m38VJ+9uSVsnhHG6NWq+mR1Y0eWd2Y9pupAFSWVrF/0yH2bTzIvk0H2b/xEGu/2YTH7bu3PyEtjhRNDSONp0jTVpGqrZLFQSQdCiEE21fu5qs/f8OyuXkIAZfecRE3PnFlwC7kDi/sAHHJsbywaDZv3P42H/9hHvs3H+LB9+8gOtYcatM6FdGxZoZMzDwrr4rb5abkZBmF+cWUF1ZQdqocRVEwWU0MGNWH+BRb2If4SSSBcOJgAau+XMeC95awf9MhTDFRTL/1J0y/7QJSeye3qu1OIewAOr2Wu+bcTJ9hvXjjjrf57YgHeGzeffTIDF/RiLT49+bg7zeNjtDfFC50xgtgJJ0jQgj2bzrE8nmrWfXVOg5sOQxAz8Hd+N1fbmLSteMwmgxB2VaH7Tz1x7YVu3hy1kvUVNRy11s3M+nqsSGzxRcdtdMo3E/ESN7v4b5vg00k/FdCCPas28+yz/JY9lkex/cXoFIpDBzTn9wZw8mdMZyUXs1PWNcunaeKorwAXAw4gP3Az4UQZa1psz3IHNOfP69/nqev+iPPXvsqh7Yd4WdPXiXzzEgkklbjdrvZmbeX5Z/lsezz1Zw6UoRao2bIpEyuvO8Sci8Z3uZlPlvrivkWeFAI4VIU5TngQeD+1pvV9sQlx/Lct4/wp9ve5qNn53FkZz73v3e7zDMjkUhajKPOyYZvt7DiizXkzV9P2alytDoNw84fzI2PX8moi4dhsUW3mz2tEnYhxIIzPuYBl7fOnPZFq9Ny15zf0D0zjb/e/S6/Hfkgj356N90yQhPvLpFIIoe62jrWL9jCss/zWPnl2oZatyMuHMro6cMZ+dNsTJaokNgWzM7TXwD/8jVTUZSbgJsA0tPDp5NHURQuu/On9XlmXuW3Ix/krjnh6XdvKyLBVxlMOmMnoyQ4VJVVkzd/PSu+WMO6bzZhr6nDbDUx9rKRnDcrl6GTM9HqQl/rtklhVxRlIdCYd/9hIcSX9cs8DLgAn+NdhRBzgDng7TwNyNo2ZOikLN5c/xxPX/0Kz177Kvs3HeIXz1wdsnj3jiamkYTc95FBe/1PJSdLWTFvDSu+XMum77bhdrmxJccy9YbzyL1kBIMnZISFmJ9Jk8IuhJjib76iKDcC04DJIhQhNkEkPjXOG+9+x9/55IUv2b/5EA99cCeWuPbzjUkkktBTfKKUZZ/l8f3cVWxbtgshBKl9kpl51zTGXDqC/iN6h3WwRWujYn6Ct7P0PCFETXBMCi0arYY737yJPtk9ef32t7k1534enXs3fYf1CrVpEomkDTm6+xgrv1zHyq/WsnPVHoQQdMvoynWPXM74WaPpltE1YjLFttbH/jqgB76t/8F5QoibW21VGHDRr6fQa0h3Hr/8RX439hHueONX/OQXk0JtVqck3PsAgm1fuPQBhPt+by1nxpiv/HItR3d7E6/1HtqD62fPYvzloyI2kKK1UTG9g2VIONJveG/+vO45nrnmVV761ZvsWbefW1/9OZoITiIl6dhEuti2NUIIdq7ey7K53gFDBYcLUWvUDJ6QwfTbfkLu9BwS0xNCbWarkQrVBNaEGJ795mH+/uCHfPLiVxzdc5xHPvl9u8akSiSSwHG73GxbsYuVX6xl2ed5FB4tRqNVM+z8wVw/exa5M4Z3uLxRUtibgVqt5tfPX0+3gWm88pu/cvuoh3jss3vokdUt1KZJJJJGcNgdrFuwmeXzVrN6/gYqiisbBgz9/MmrGT09B7PVFGoz2wwp7C3g/BsnkNonmcdnvsCtOfdz9YOXcdWDl6LTh1eok0TSGamttrPum00sn7eavPnrqamoJTrWxIifZpM7fTg5FwzpNJXUpLC3kIG5/Xhr68u8+ft/8M8nPmXBu0u45PYLufCXkzDFdNw7AImktQTSKdxUtaux+/aSN389yz/PY+03m3DYnVjiohk/cxTjr8hl6KTMiOsTC0bneafM7hgs1v5vEx898zlbl+3EaDZwwc8mctFNU8I6FbAk/GnNiR3OnafBEvZqj5a9jjj2OuI4Rhxul5v4VBtjLhnBuJmjyBzbH7Umcgvp+NtPI08e7dyl8dqD4RcMYfgFQ9izfj/zXvsv8/+6gC9e/5q+Ob2YfM04zrsyl7jk2FCbKZFEPJUeHfscNvY44sl3WQAFm6qGy++ZRu4l4T9gqL2Rd+xBpLyogkUfLGPBu96KKCqVwpBJmUy8ehzjLhshXTWSZiHv2EEIOOU2sr4mhn0OGwVubxRanLqGvroi+umKiFPX+iz6HckE445dCnsbcXhnPos/Ws7ij5ZzfH8BWr2WERcOYfJ15zFqWnbY5ZbwRaAiE84CEyjtVciiswq7EJDvMrHdbmNHnY3i+gLmyepKeumK6a0rIU5de9Y6UtgbRwp7GyOEYPfafXz34XKWfrqKkhOlWOKimXjVGM7/2QT6ZPcM62HKUth/oLNVKGoPhBDsWrOP7z9d1TBgSKP1FqXInTGC0dNziE+xhdrMsKG5FZSksLcjbpebDQu3sOC9payYtwZnnZNuGV0574pcJlyZS1q/1FCbeA5S2H9ACntwcDldbFm6g5VfrmXlV2vPGjA0/vLRjJ6e0+EGDAULKexhTlVZNUv+tZLvPlrWkD2u15DuTLp6LJOuHRc2dylS2H9ACnvg2GvqWBj6D5QAAAvgSURBVPe/TSz7LI/V/9lAdXkNeqOOnAsGM+aSkR1+wFCwkMIeQRQdK+b7uXks+dcKdubt9Xa6Ts5iyrXjGXPpiDYfVNEWSac6otAFIuzhnkirLe2rrapl9X82sOzz1az5zwbsNXVY4qLJnZ7D6BnDyZ4yCEOUPuD2AyHc/4+maJdi1pLgEJ8ax2V3/pTL7vwp+XuO8+17S/nuw2U8/7PX0d+iY/T0HCZfO55h5w8KSadruB/s7YXcD01TUVzJ6v9sYMUXqxsGDFkTY5hy/XjGzRzF4AkDIzrGPFKQwh5mdO2bws+fupqfPXkVO1btYdH737P001Us+ddKom1mxs8cxdQbJ5Axum9Yd7pKOg9Fx0tY/vlqln++mq3LduJxe4hPtXHRr6Yw7vJRDBzTL2SVyDorUtjDFEVRGJjbj4G5/bjllZ+x7n+bWfrJShZ9uIz/vLWQ1D7JTL3hPKZeP75DpBmVRBYnDhZ4y8V9sYbtK3YjhKD7wDSuuv8ScmcMp8+wnnLAUAiRwh4BaHVaRl+cw+iLc6itqmXZZ6tZ8O4S/vHIx/zjkY/JyO3HhCtyGT9rtBzpKmkThBAc2n6UFfPWsHzeavZvOgRAz0HdvEUpZo2m24CuoTVS0oAU9hASSEeO0Wzk/BsncP6NEzhxsIAlH69kyb9W8OffvcObd/2DQedlMOW68Yy7fBQmS1RbmS4JQ4IdtSME7FrjLUqxfN5qju8vQFEUBozuy03PX8+YS0eQ0quxOveSUCOjYkJIMHvoj+w6xtL68Mn8PSfQGbTkzhjOlOvGM+z8wRGX4U7ScoIh7B6Ph12r97L889V8P/eHAUNDJ2c1DBiST4WhQ4Y7RgBtEXp1eiTfwn8uZcm/VlJRXIk1wcKEq8Yw+dpx9BveW3a6dlACFXaH3cHGRVtZ+eVa8uavp+RkmRwwFKZIYY8A2jqm1ulwsvbrTSx8fyl5/16P0+EiqUcik68Zx9QbzyO1d3Kr2peEFy0R9tqqWtb8dyPff5bHmv9uwF5dR1S0keEXDiF3xghGXDhUDhgKQ9oljl1RlCeBGYAHOAX8TAjR8bLyRChandcdkztjOFVl1az4Yg1L/rWCj579nA+e/oyBY/ox+ZpxZE8dREqvJHknT/AvtuE0IKa2qpa8+Rv4fu4q1n69kbpaB7FdYphy3XhyLxnB4AkDZTWwDkKr7tgVRbEIISrqp+8AMoQQNze1nrxjDy1Fx0tY9P4yFry7mCM7jwGQmB7PkEmZDJmYyeDzMohJsKDVaztdyFpHE/bSU+Wsnr+eFV+uYcO3W3DYndiSYxl32UjGzxotY8wjjHa5Yz8t6vWYgPb360haTHyKjSvvm8EV904nf89xNn23jY2Lt5H37/Us+MeSs5bV6rXoDN6XVn/6pUGr16I36tAZdeiNOvRRevQG72dD1Onv9Wct8+N3X9/JkYmtozC/mGWf5bHss7yGGPMu3RK46NdTGH+5V8w72wW7s9HqUAlFUZ4GbgDKgYmttkjSbiiKQlq/VNL6pXLxLRfg8Xg4uPUIO1buprqiFketA4fdgcPu9E47nLgcLpx1Lpx1TupqHdRW1lJ2qpy6GgeOWgd1tQ7qauqoq3UEbJdao/aKvUHbIPhaQ/2FpP7icfpiozfo0Bp0Pyz/4/lG7/zTn3U/mtaeOa2P3Mih4/tPsvzz1Sz7fDW7Vu8F6mPMH53F6Bk59BrcXbraOhFNumIURVkINBas+rAQ4sszlnsQMAghZvto5ybgJoD09PRhhw8fDthoSfgjhGgQ/9NC3yD8Z0x7Lx7Oc+Y77fXTdgfO+vne75046uc1XHDqv3PUOvB4WvfQqMaDRhGo8aBVPKgVgQYPGsX7vW3c6IanmIZ33Y8+63+Yzn/oYTSK8K5/um3Fgwbv+9Cl3zY8AWn1WnT10xqdptG7antNHYVHiyg8WsypI0Uc33+S1f/dwIHN3vOpz7CejLtsFONmjqRr35RW7QtJ+NHuUTGKonQD/iOEyGxqWeljl7QFQgjcLneD6DtPP22cvnDYHTjrXN73M7531nmnve/1F5s6l3f9OmfD/NPLNrRxxvuZbQQLlVqFVqdBo9Og1Wlwuz1UllSdtYyiKP/f3r2HSFWGcRz//tT1kmaZq2bregksE+mOlrkq3pIQLbtgKib1T0VkfwRGRlIhFWEkQaCgkWSGpUGZhSuum1JrlmmpqymFuhVdDCsN2916+mPG2MzcWc9x332PzweGmTM7O/weZnjmnDPvvC8Dh15C2eTrGDZ5CD36+PQSWdZco2L6m9ne/OZEYHeS53MuCUm0KWpDm6I2dOwcJoOZUVdbn/8AqPtP8z/ZfbX5+xr+vb62nvq63HVdbe4aieKSC+jeu5juvYvpVtqV4pILollm0TWfpCcVn5F0KbnhjvuBRkfEOJdlkmjbrsiHDbqgko6KufV0/q/2WHqHq8455/4tyDCAA9U1vP9yBTfOHOnf1DuXEl+6zx0XZDBr+47tmH/PSzw9fQFHDh8NEcE55zIrSGPvdclFzHxyCpUrPmJ6v/tZcN8iqjfvJcS8Nc45lzXBfpEx7bFbGTLhat6c/w7lSytZvbCc0gEljJsxgtHTh9OtV9dQ0ZxzLmotYnbHo78cpfKNKsqXbmDHpt1IYlDZAEbecQNlt11Hl+7nNXvGNPm5T5eWxuae+T/+PsuGaKftrdn7HRXLN1G54kP276qhVStxzbgrGDtjJNdPvJb257Rr5rTJeWN3aQk9qZgLK9rG3tDXOw5QsXwT6179gB8PHqJDp/YMmzyEUVPLuGrUoGgmi/LG7tLijf3s1iy/PD3T+g3qTb95U5n51BS2b9jJ+mUb2bhqM+VLK+nS4zxG3DGUUVPLGDDYVwVyzrnjWvQe+8nUHqtl85rPqFi+karVW6n7o46eF/dg7IwRjJ0xggv7dk85bXK+x+7S4nvsZ7cWfSpG0o/kpiAoVDHw0xmKE4rXFI8s1uU1xeHEmvqYWaMzvQVp7E0l6ZNCPqVi4jXFI4t1eU1xON2afBkV55zLGG/szjmXMbE09kWhA5wBXlM8sliX1xSH06opinPszjnnChfLHrtzzrkCRdPYJT0l6XNJ2yStlRT9Sr2SnpO0O1/XW5LOD50pKUm3S9op6S9JUY9QkDRe0h5J+yQ9EjpPUpKWSPpB0o7QWdIiqVRShaTq/PtuVuhMSUlqL+ljSdvzNT3R5OeI5VSMpM5m9mv+9oPAQDOLeik+SeOA9WZWL+lZADObHThWIpIuI7dU4kLgYTOLctVySa2BL4GxQA2wBbjTzHYFDZaApOHAEWBpIYvOx0BST6CnmW2VdC7wKXBz5K+TgI5mdkRSEbAJmGVmVYU+RzR77Mebel5HII5PpFMws7VmVp/frAJ6hcyTBjOrNrM9oXOkYDCwz8y+MrNa4HVgUuBMiZjZB8DPoXOkycy+M7Ot+du/AdVASdhUyVjOkfxmUf7SpH4XTWMHkDRP0kFgGvB46Dwpuxt4L3QI948S4GCD7RoibxhZJ6kvcBWwOWyS5CS1lrQN+AEoN7Mm1dSiGrukdZJ2nOQyCcDM5phZKbAMeCBs2sI0VlP+MXOAenJ1tXiF1JQBJ5tVLvqjxKyS1AlYCTx0wtF9lMzsTzO7ktxR/GBJTTp11qJmdzSzMQU+9DXgXWDuGYyTisZqknQXMAEYbZF84dGE1ylmNUBpg+1ewLeBsrhTyJ+HXgksM7NVofOkycwOS9oAjAcK/tK7Re2xn4qk/g02JwK7Q2VJi6TxwGxgopn9HjqP+5ctQH9J/SS1BaYAbwfO5E6Q/6JxMVBtZs+HzpMGSd2Oj5CT1AEYQxP7XUyjYlYCl5IbcbEfuNfMvgmbKhlJ+4B2wKH8XVUZGOlzC/Ai0A04DGwzsxvDpjo9km4CXgBaA0vMbF7gSIlIWg6MJDdj4PfAXDNbHDRUQpKGARuBL8j1BoBHzWxNuFTJSLoceIXc+64VsMLMnmzSc8TS2J1zzhUmmlMxzjnnCuON3TnnMsYbu3POZYw3duecyxhv7M45lzHe2J1zLmO8sTvnXMZ4Y3fOuYz5G53r71mTaWs7AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "draw_learn_density(f, x_arr, theta_arr)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Questions:**\n", "Adapt the function draw_learn_density (code reproduced below) into draw_learn_density_select and check that the mean of the 20 last theta values provide an exponential model that is better adpated than the mean of the 20 theta values starting at BURNIN." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "def draw_learn_density_select(model, x_arr, theta_arr):\n", " BURNIN = 10 ** 2\n", " NBINS = 50\n", " vmin = 10 ** -5\n", " vmax = 1\n", " x1 = x_arr[BURNIN:, 0].view()\n", " x2 = x_arr[BURNIN:, 1].view()\n", " plt.hist2d(x1, x2, bins=NBINS, cmap=plt.cm.Reds,\n", " normed=True, norm=colors.LogNorm(vmin, vmax))\n", "\n", " RANGE = 5\n", " axis = np.linspace(-RANGE, RANGE, 10 ** 2)\n", " X, Y = np.meshgrid(axis, axis)\n", " xy = np.vstack([Y.ravel(), X.ravel()]).T\n", "\n", " theta_arr_m = theta_arr[BURNIN:, :]\n", " theta_arr_m = np.mean(theta_arr_m, 0)\n", " out = density_model(model, theta_arr_m, xy)\n", " out = out.reshape(X.shape)\n", " contour_disc = np.flip(np.exp(-np.linspace(0, 5, 10 ** 1) ** 2))\n", " plt.contour(X, Y, out, contour_disc)\n", "\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "extensions": { "jupyter_dashboards": { "activeView": "report_default", "version": 1, "views": { "grid_default": { "cellMargin": 10, "defaultCellHeight": 20, "maxColumns": 12, "name": "grid", "type": "grid" }, "report_default": { "name": "report", "type": "report" } } } }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }