Skip to content

Instantly share code, notes, and snippets.

@fehiepsi
Created November 14, 2019 18:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fehiepsi/91ea5b4059bc5dbb543ff80e3fbeed76 to your computer and use it in GitHub Desktop.
Save fehiepsi/91ea5b4059bc5dbb543ff80e3fbeed76 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Source: https://github.com/alan-turing-institute/SBO_Pyro/blob/master/branin_hoo_pyro_semiparam_brooks.ipynb"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Semi-parametric model in Pyro\n",
"\n",
"\n",
"Goal: implement the Branin-Hoo example from https://github.com/VDalibard/BOAT in pyro, with both nonparametric and semi-parametric models. \n",
"\n",
"Also borrows from the example at https://pyro.ai/examples/bo.html. First step is to implement a \"structued\" GP.\n",
"\n",
"The Branin-Hoo function:\n",
"\n",
"$f(x) = a(x_2 - bx_1^2 + cx_1 - r)^2 + s(1-t)\\cos(x_1) + s$"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.3.0\n",
"0.5.1+0a14817a\n"
]
}
],
"source": [
"import numpy as np\n",
"import torch\n",
"import torch.nn as nn\n",
"from torch.distributions import constraints, transform_to\n",
"import pyro\n",
"import pyro.distributions as dist\n",
"import pyro.contrib.gp as gp\n",
"import matplotlib.pyplot as plt\n",
"\n",
"print(torch.__version__)\n",
"print(pyro.__version__)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def branin_hoo(x):\n",
" \"\"\" Compute Branin-Hoo function for fixed constants \"\"\"\n",
" a = 1.0\n",
" b = 5.1 / (4 * np.pi**2)\n",
" c = 5.0 / np.pi\n",
" r = 6.0\n",
" s = 10.0\n",
" t = 1.0 / (8 * np.pi)\n",
" x1 = x[...,0]\n",
" x2 = x[...,1]\n",
" return a * (x2 - b*x1**2 + c*x1 - r)**2 + s*(1 - t)*torch.cos(x1) + s"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plot the test function everywhere (obviously can't do this in real-world setting)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def plot_function(f, n_points=100):\n",
" XX, YY = np.meshgrid(np.linspace(-5, 10, n_points), np.linspace(0, 15, n_points))\n",
" ZZ = f(torch.FloatTensor(np.stack([XX.ravel(), YY.ravel()]).T))\n",
" plt.imshow(ZZ.reshape(n_points, n_points));\n",
" plt.xticks(np.linspace(0, n_points, 6), np.linspace(-5, 10, 6))\n",
" plt.yticks(np.linspace(0, n_points, 6), np.linspace(0, 15, 6))\n",
" plt.xlabel('x1')\n",
" plt.ylabel('x2')\n",
" plt.set_cmap('jet')\n",
" plt.colorbar()\n",
"\n",
"plt.figure(figsize=(6,4))\n",
"plot_function(branin_hoo)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Before trying Bayesian optimization, let's try different GP models in Pyro.\n",
"\n",
"Would be good to understand how to use the following in Pyro:\n",
"\n",
"1. Standard (nonparametric) GP model, optimizing hyperparameters\n",
"2. Standard GP model, but running approximate inference over the hyperparameters (i.e. estimating a posterior distribution)\n",
"3. Semi-parametric GP model, following the example BOAT code, running inference over all parameters.\n",
"\n",
"Hopefully we can see how easy it is to fit these models in Pyro, and the differences between the learned models for some fixed set of data.\n",
"\n",
"## Standard GP model, optimizing hyperparameters\n",
"\n",
"Initialize with some random points, then try out a GP.\n",
"\n",
"Use a Matern kernel (an arbitrary choice, at this point) and lognormal priors on all parameters (also an arbitrary choice)."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"torch.random.manual_seed(666)\n",
"\n",
"N_points = 10\n",
"X = torch.rand(N_points, 2) * 15 + torch.FloatTensor([-5, 0])\n",
"y = branin_hoo(X)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ `set_prior` method is deprecated (though it still works) in favor of using `PyroSample` (which is more handy).\n",
"+ `.expand([2]).to_event()` is required for prior of `lengthscale` (Pyro restriction)."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"gpmodel = gp.models.GPRegression(X, y, gp.kernels.Matern52(input_dim=2, lengthscale=torch.ones(2)))\n",
"gpmodel.kernel.lengthscale = pyro.nn.PyroSample(dist.LogNormal(0, 1).expand([2]).to_event())\n",
"gpmodel.kernel.variance = pyro.nn.PyroSample(dist.LogNormal(0, 1))\n",
"gpmodel.noise = pyro.nn.PyroSample(dist.LogNormal(0, 1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## This is what the GP looks like before optimizing the parameters"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAD7CAYAAACouNoGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9e5QdV33n+/2pu90v9YNuSS3r5ZYlIVmWbRkJyzEGDHYGTJgxySIBkkWAwGWFkGQyN7OGhMmFhMzcC0lWEmaRxNcXiDFDMIwhwWESEkhiDDG2Iz9lLNuSJdmS9Wi35NarH+pu7fvH/v3q1NmndtWu8+iuPv37rNVr96naVbXP63f2/tbvQcYYKIqiKIqiKLWzZL4HoCiKoiiK0izoxEpRFEVRFKVO6MRKURRFURSlTujESlEURVEUpU7oxEpRFEVRFKVO6MRKURRFURSlTujESlEURVEciOgcEV0+3+NQFh46sVoEENG7ieghIjpPRCP8/68QEfH+O4noAhuSU0T0XSLaMt/jVhSluSmybTLGLDXGHJiLaynNhU6smhwi+k0AnwXwhwBWAhgC8MsAXgfgkljXPzDGLAWwBsAIgDvndqSKoiwmimqbiKi1kedXmh+dWDUxRNQH4FMAfsUYc48x5qyxPGaM+QVjzJR7jDFmHMBfAdjmOeedRPTnRPT3vIr8VyJaSUR/SkSvENEzRHRtrP8qIvoGEb1MRAeJ6Ndj+64joh8R0RgRHSOizxHRJbH9hoh+mYj28bn/TFayiqIsXOptm4joeiI6TkQtsW0/TURP8v8htuajRLQPwL7Yto38/08R0WNEdIaIDhPR78aOHea+7yOiF4lolIj+a2x/CxF9nIieJ6KzRPQIEa3lfVtYhTtFRM8S0c/V+toq849OrJqbnwDQDuBboQcQ0VIAvwDgsZRuPwfgdwAsAzAF4EcAHuXH9wD4Yz7XEgB/C+AJAKsB3AzgN4joLXyeWQD/iY/7Cd7/K8613g7gtQCu4eu+BYqiLHTqapuMMQ8COA/gzbHNPw87EQPCbM07AOwCsDXh8ucB/CKAfgA/BeAjRPQOp8+NADbzuT9BRFfw9v8TwHsAvA1AL4BfAjBORN0AvstjXMF9/pyIrvS+CMqCQCdWzc0yAKPGmBnZQEQP8KptgojeEOv7n4loDMB+AEsBvD/lvH9tjHnEGDMJ4K8BTBpj7jLGzAL4GgBRrF4LYLkx5lPGmAvsr/D/AXg3APA5HjTGzBhjDgH4fwG80bnWp40xY8aYFwH8C4DtVb0SiqIUiUbYpq/CTk5ARD2wE5mvAsG25v8xxpwyxky4JzbG3GeM2WOMuWiMeZLP6x7/e8aYCWPME7CLyWt4+4cA/I4x5llW5Z4wxpyEXTQeMsb8JY/rUQDfAPBO76umLAj0XnJzcxLAMiJqFQNmjLkBAIjoCMon1n9kjPmdwPOeiP0/kfB4Kf9/GYBVbBSFFgA/4DG8Glbd2gmgC/bz+IhzreOx/8dj51YUZeHSCNv0VwAeIKKPAPgZAI8aY17gc4bYmsO+ExPRLgCfhr0NeQms2va/nG4+W7UWwPMJp70MwC7HPrYC+LJvHMrCQBWr5uZHsLfqbpun6x8GcNAY0x/76zHGvI33/wWAZwBsMsb0Avg4APWhUpTmp+62yRjzNIAXANyK8tuAQJitMSmn/ysA9wJYa4zpA3B7wvE+DgPY4Nn+fcc+LjXGfCTwvEpB0YlVE2OMGQPwe7D37d9JREuJaAkRbQfQPQdDeBjAGSL6GBF1shPnNiJ6Le/vAXAGwDkOoVaDoiiLgAbapr8C8OsA3oByRalWW9MD4JQxZpKIroOduIXyeQC/T0SbyHI1EQ0C+DaAVxPRe4mojf9eG/PNUhYoOrFqcowxfwDrPPlfYEOVT8D6F3wMwAMNvvYsgH8P6xd1EMAorJHp4y7/GdZAnYX1vfpaI8ejKEpxaJBt+iqAmwD8szFmNLa9VlvzKwA+RURnAXwCwNdzHPvH3P8fYSd3XwDQaYw5C+DfwfqcHoW9lfgZ2NuMygKGjElTPxVFURRFUZRQVLFSFEVRFEWpE/MysSKit3IytP1E9FsJ+9uJ6Gu8/yEiGp77USqKoiSjNkxRFB9zPrHizLh/Bhu5sRXAe4jITcj2QQCvGGM2AvgT2PvOiqIo847aMEVR0pgPxeo6APuNMQeMMRcA3I3KkNvbAHyJ/78HwM1aykRRlIKgNkxRFC/zMbFajfJEbEd4W2IfTh53GsDgnIxOURQlHbVhiqJ4mY/M60mrNjc0MaQPiOjDAD4MAFjSvQOdW0o10Tu4bS9/TB0z6GiZ4l1TvGsy9XHbhVl7sJQFneb2ArezCaOTUqDt5a3hcUy22A0TPLBJbqeix+24wE9m5gI/qSkqv77bzmS0s7H/I2ad9mJGazxtNfiOTTq373pZ40gbX3NExO7YsQqPPPLIqDFmeegxG4nMeEC/Y8A/GGPeWsPwmpGG2LB2YMcqlFa7rU7bxmdsaUXJzjn2DZ3cciao8Ta74xwnAT/NmU7OTPXbDi9z/5MAZqSSy3lnlF08EG7lU7bcPp2+Nps4vBdnuPc4D20KbTNsV8S8uMgr4poZsVOujbuAZPsLwPCxF7kVfXCJ+4LKa8VPB0uBCz125xjs63KS58Djr3DydKktcV4ueqb84tEL32ubFfxw5UUsa7NZHwZwCgDQM8Wv72k5J7f8hZzl35kLJvFp4iL8Vhmex0XnmC1vFGy/gDAbNl/2az4mVkdgU/wLa2BzeCT1OUJErbB5j065JzLG3AHgDgCgpTsNrtoNDPPOjU67xTbtW07h1X3P8a79AIBXw338LD+2VQhWHuZvwAE+l6xVZdSnUZp0yYRKMjWt43aTbaZ5HE/32R1Pc73P57AZAPAst89jA17kl+n4C/xyHWqz7RE+53GnHc1ox2L/R5zxtBOe1mfx4vtCmfZsd6/h25a2PWRMvmMWFrt3/y6I6IU8x0wA+GhAv9+xNd2Uchpiwy4nMp9C9NOMAaddw5Op3hUo2ZX13EpKyW3c7rTNo6tshx/g9QCAf+Aa5n///E/bDrfz7ONOAKNP8sEPOaN8jW36d9j2g7z5l+0C9PWr/xYAcAu+BwDYgd0ArP0cOmVtJ8kkwv06ymxhkluZZJzk9hi38uq+GPtfWn5Vp/nYCT5XK/+6dUm6UZnssC2Oqo6+EXjhja8CAPwN7OtyF94LAHj0GzfaPn/EfR8U4/v33J7l9iq+6E/altOHLvmt87ht6C95k00E/+aDP7I7/44P/Vdu99jmzD7bHuLflJd4t7wkE/BbZWGhWbbfsxnzcxFiw+bLfs3HxOrfAGwiovWwn5l3ozKL7b0A3gdb9uCdsMne0ifhrbAvobyMK7ldY5slw/Zbt77vEIZxEEBpQrUVTwMANvOEavOsbXv38seTP+gVEyv5pJ9GyUDIClJE/5ny7W1sJZf12YOX8UlGYFd9/dwO4iTOogcAcG4Zt5PLy8/ptvBsj7diwM5JZ1lphcpfcPq1xf5v9fQNJem4as+lpLEEpXdeyU1DbBjBvicysZJ2iBdrvTIxWAf/hIrLnz+z6jIAwB7+wZcFnLR4iidU+/m4UaBk6OSnXGAjOhbvC2DUSj9jq63KcwJDAIDDsTnnyQE+iO3eDK88Lzg5MFvYgPbwRGVo1kpEvS86NngApbzscgo2O21sj1tlcYvy/RXmSWz2FNDOupCobWKH3d+R0j9XcysLUX4jhsu7DQ6djJ6TnDtahHtM7LS0UNIosg2b84mVMWaGiH4VwD/A6jtfNMb8mIg+BWC3MeZe2My0Xyai/bDrkXfP9TgVpZkh2Cmxkh+1YYoy/xTZhs2HYgVjzN+hJITKtk/E/p8E8LO5TtoCoB+lFYaz0lg7ZGWmYRyKbvGJQiWK1dbzewEAHU/xsXu5ldXSi9yKBC2LlXMovZKymppxHp8ub3tm7Sqmp4VbVLbyf3+3XT2N91ungIuTfFJRn0IVq8mEYybloylz/wnnsatGxZWq+OM81GMtVouSpWvBIq/2FgKNsGEtsCpVDz8e4nZQ/lnF7XqUlKrt5e2PV10OAHiMpavHeYcoVy+8wLWAD/FxokLBIKaRcSufEKt+RXcD2D1LTMIsq1Bn2Y9rhI+fRWt0mQk+l6jwr/BJJtjRSRQrUYrWtlh7vXG9ldS2rrM2urdvuuQjJSbJ8d8i2e66Z7hKldx2PA0MnraG+dI+a9zX88j7dlo/i9O38A+KKP27d9lW7KkIWbdwy3cQN+NZDPO5VoijVvxOR3wcPF5xS0tzflAdv9g2bF4mVoqizC8E/fIrirJwKbINK+q48uPxsVq6xoa9rGKZaS0OYwM7FkQ+VVO27Xicj5VWFKuD3IpSxSsOEwueIVlFyVKiz3kcu58PAC28LGlpse0lfI//Eu5wCS6gk9WjTr4339NvFazTk+zFKmpTkjKV1Pan7IOrXLnKVJbPVQihDuZJ/fKqTLqmS6PIMvpiRVbg4qy+IvqH28u5vQKRQmWut+3uAetkJQqVq1g9dpoPeIrfdQl4EToImGQn9chRiBWsDlaw+FoSCLR02NpWsU+CRNadZd0dAE7wkxD/q2Msv406vsXL2IFrA99V2I7HbL8W67S6a9fDWD7DspHr8B6q4Es/UYxGgDa28Ru3y3Xtj8CJdvvcv/fum+2hK/lNkbsaci65Q8Kv0bYd/2bHi4eiOyLrT/GLLnc+Rpxx8POQV9MXpqNYimzDmmdipShKMEWW0RVFUbIosg1rnolVC4ClKN3/X2kDcFZ022VBXLGS++eyKurew9lAfIoVrzDO8ArjDKtOsqLoAjDAClWbuCkI8go7ea1mK0JXpPssd5uK8mh1sXLV024Vq6l+q1hNTvLqyadCJbWcliXyFYgiZWTu77a+j4jrc5VGtUqVrtEaRZFXe4sV8bHqZdNAElkc960CgCtKStVDA9cAAB7ADfYxrO/Pbs63cODZK21HUVie4VYi++RrvBHAmFyQW1FhJOKQ/YZwk/2ebui29nOIpRexXePsN3UWPZFC9SxeDQDY9zxH0+3mqETJXsBf9ZdX2jwSe6+36tnhzfZ48cVqxSxu3vZ9AKUowEj5kcfi++pG3806+6X/UUR+tFtW2Kj/s6se4kPsm9HfZ32/9txmfdWO3mbflAtT1hb3t9v9chdEFK8b8ED0P3E6hegOiKNYjUu6CCS3gnqIWopsw5prYtWPaGLVsewVACVpeZC/RatwFGs5X8Lygzy7EGOzp7w1kk+E86RIEhrXvRsoyfcVTuxuyxOb8RZrKMQIRclA+Ys8g5bIobOFLYPcLmzvsO3kUp4xLe0oO3dF2xFrOxK2AbH0C1kTqbQJVbUTpbR+WedQM1MtzfPlbw6WwDquyyItMiruxGob8NiA9V6/n/NT/RN7Td9/2j6evI8PlkXiIW7FWV2+RvL934iSvZC7c8Ol6wFAx05rAa/uswZSFqayaJVbgpJKYQz9eB7WWX7fj+0EEN/mc97HrXtLbbh8+xPvtjPInh1no2sN99kns2UVpz6SW6XiqiETFhe5hqxpxaC/iIoUDq/daQfQs8peV34zruVbk5JaYrbdnkwCjaSfvDZX4UkMPDRZ/lxd1xL5feGJlWTGSssY6GOxWcOi2rCijktRlAZSZBldURQliyLbsOaZWBHs6osVq66lVleKJ9yUdoUsacSJUNIpHCxv9/JKQtLliYIs8mOkUgFok2R1stocdDoNlT8Wp04JUS4pV/ZEs2iNZGiXllarZLWxcjXd4ShWPlWqFZXCU8UnwHdL0BWk06hWZUrrF3pbUG8fhlBkGX2xsgTWrYBEPXFvBbLz+vFNfVH6BLkF+L0TVrG6eDcf/D0+RlQSUarEFshtvmFuN6KiSkXbNmvxNg7aYB9RYaRCxaUsuYirgtgrUXPG0YkTs2z4RDm7j9vvyLOWbO9sXUc5LfoYH8fq2Z5t9vlub38MR/kF2TLEipUnYWgE3xI0bBrIV14HKJkPPmbLJnuNYW6PdtsXTuz3LF9Mkn/K78zyw3wLYC9KLiXSSqJpVqzO8C1J946IOLEnhQ25aZwXI0W2Yc0zsVIUJZgihyoriqJkUWQbVtRx5WcJynyIulrsfD9KVSDJNjGGZad4NSH34qXAJq8gjvD2F5zdgis/dgElpcoNkV5V/vjlFVZWkiKfY7A1qkoKlm0n0ImpmHqVirvbp0olKVYNpZFKVbXeBIvNCyGZIsvoi5UlBHRegkq/TMfX6jDWRqVpHue0Che/w53v4b4/lLM+za18j4b5IUfZiEq1BlGqgDXXWAlf0gT4lKpXlbKLAigl/RyPOZpfkNQw4iwvzurR7QGpS3i2vN1/q20P2eb0cWsvT162DOP8yTX8lMlNGOogStWEOLNz25VUnF76yO0J/k3o4Lsalw9yyoRubluc41yH+sMo3RlxfKvGuc+JqfJLutVa8/hYLSaKbMOaZ2KlKEowRZbRFUVRsiiyDWueiZXogvyMJKIunr5AWnITyzmtrBjcRG1uCs2yRH6uQrWuvJ3muqQj3FH8EES5kjauXEkZiHGnnZ1pKWu9ok4tuTyrwremqkd0YNY1FrO3QX6KLKMvVoiA1laU/KA8ytUJrIj8jKISNbu5z4Nytu9yK449TgmqcztsK9caBpZfY6UVSQ8gyTk3c7F6iXgbYg3fjQKUJKDn2Ib1YwxLu60CdW4pF5AXP1BWtUrWVL6/rWVNqZUI6ZKDFAUmAhWl6uz58u4TvL93CmhzfxPiqRiAkrGXOxPlNaQry+TElSvnzsgZR6kS3yrR7Nw0C+7TmobGRgPFtmFFHZeiKA1EHKUVRVEWIkW2YYtmYjWTFGHn8UWSNZSb61PWfKu5XcOrFlqHUo4ZKTuxvrw93GejSWSleRSXAigpV6OOcjWG/pi/lf34TExx4r0xu/3iOf5YSQ4qad3SDvE2t4rlU5FmEra5j+sVHZi3bxKLcU2XzqL58i80XLvEqpLhxxfQHqnZOMdWSXyYZgz/I56hooc41kyUI4kO3FjyobqKE/ldza34Wq2dtYpV70n+LvFXb5oVtUv6rAQjitWLWIt1rHId38aGUZKNPsNRf2M/yRtE4uGoQCkuzRGKK1db6WgZRqNIb18RY7cVZUruQIgS1MYq05nTQC/bzl6+XVGRfNRVD0XpE8QMuXdBTgOGxznCb4Wc2lWqXN+qavJYLTZqtWFEtBbAXbDfhIsA7jDGfNbp8wsAPsYPzwH4iDHmiUaOS1GUBQgBaAv59usdVkVRCkiQDcu2XzMAftMY8ygR9QB4hIi+a4x5OtbnIIA3GmNeIaJbAdwBcIkDD80zsTKwLxGvTqY4k7lE1okfwFn0YJLvk3fIIk7yxbCf1LCzpJAVhShZq3nV0iWq1CZECy23fWmVvTl/iKUrKfEgypX4XI04PlevoD+KGJw4b698jpUqnOPlkqtU+dp4SRufmhXhWx/VEp3XCKUqFF3nJbFkCdDp+okkoROrucdT71x8ii7BVFSgHUv5872MlasOLhUzKYZIECNnM7ZHyhG3K688EClT0opytfmUjY8miW4TqYVpY3t42XpblPnCChtFOIplUbHlo7tse+Q4j0t+eR5n5eoct2t4u5TPeatV4EQ924Dno0zvFaVsRMFiGzct0XasTLk+TEIrgLMx9QoAurjt4ecq35UoAtG9AcLHmwS/Ljfaz6dQua0vV1VaXYrFRJANy7BfxphjAI7x/2eJaC/sTamnY30eiB3yIEqfUi/NM7FSFCWYyFFaURRlARJow5YR0e7Y4zuMMXckn4+GAVyLUg6QJD4I4O+zLto8pvUiyhSZyB+p3ao8Y5xjZQz9ONFtI1QuW2dXWJHKxKsU4ldlvUSEiMoj99clizpH+uEKRAtBWQEeX29lsf2cKOYQ548RxSpayXErETUnOdXw2dmeyJdqOlKqeDXqKlJjnjZJufIVaI5w7+z71KbphG0+3yq3n++aof3TjlFCCL4VqMwZxgAzMdU98hUSJYbVk6EVI5Fqc9llVh164Xp2RtrPfe/jOxWT1/EGth07+eEt3HJB5WvxeKRQiWIVKVVOMfpIahFE+edxb2y1yarODvRUVJZ44DYr7bwwzON9pvxY8flast06Kd0wZMWC6/i37irsweUjx8vH4xQzlvYM270sRQgo+c/KU5O7E23sK9XJbavTX/BZwInY9USpcn29ZpzHvnOpUlVOoA0bNcbszOpEREsBfAPAbxhj3E+49HkT7MTqxqT9cdS0KspiZAkqQ8argIj+E4APwd6M3wPgAwAuBXA3bJD6owDea4y5UPvVFEVRmPrZsDbYSdVXjDHf9PS5GsDnAdxqjDmZ1CdO80ysLsIqM6zWiNpzcsj6Fkj03VGsivydll1hX5/u8xfLzyU5S2Ql5FaCl5xVkqtqPSLF6qW19mBRqqS6+0GPYuXmsxo7b5W1c6P9pYifLB8qn2KVpFy5SlW0DJJoonqpTVn70vbXQ6nSNV0qdUgCQ0SrAfw6gK3GmAki+jqAdwN4G4A/McbcTUS3w67y/qK2qzU/F431zen1KFXiWrR2y+FIVdrFSs7Jd1j7ca6V80WJD9VxVqq4hmoUbXeL/X7ceNl90Xkkf9XW81aiipQqaV1lSJDcTjxuUfy3bt+L2W7rjCT5BCWi79lrrLQ2co21f1JnUCpkDHPKdVHR5HleO/tYqf6hZDKXcfHrZCQfoeNb5ctoHsetkOoqVKG+0nGVya35F6pMaT3ADOpjwwjAFwDsNcb8safPOgDfhF0gPhdy3uaZWCmKko/6fPtbAXQS0TRsWpljAN4M4Od5/5cA/C50YqUoSr2p3Ya9DsB7AewhIikV/nGwbGKMuR3AJ2CjP/7czsMwk3V7sXkmVrOwCg3nc7l43DpEjbJiJXmjDmE4WhV1tdu1xObrnwUA9PbxGkF8p2RlJitIkR2dqvOT64FD3ZdF5wfiCtU6bteWtRINOMo+VSdP2JNeHGNHrjFkR/m5ipXvcZpiFZGW5zdpex7qEWGoSlVdCZfRvc6fxpiXiOiPYL1dJgD8I4BHAIwZIxXacASl1G9KChdh1Q3Je0Ru9u8Dtlm59jR2brJvieS6a+m28szud9mM6odusaq8+GcuWWpt3dohm1fKVYJ24SGrBgHokJ8XUapcZci1HWInna9oRyuwfYuVlyTH1SCH8G2Gtbni+zrjKFarbKBWlFtr66xV6Hp3T5fGJT5W8vrw63WKx+PLZJ6mWEU5rpzteX8ok7KkhypSWUqVWjimDrcCjTE/ROSA6O3zIVh3h2CaZ2KlKEo44TK61/mTiF4F4DbYm+FjAP4XgFsTupqEbYqiKNVT4Jo2BR1WFczAqlWSgZgDR44vs7JSz2pWqTCBS1DuR3u2xa7q1m7jWlhX2KzFPaft2kDyx0jm41cGrLOVRPCdwIoKRUp8qNy8VZFP1ZRVqKRqO0Z5jRRXm3wKlfs4y+cqLSowwpfnN2TdFOoVoNF/hSKhGEFObgFw0BjzMgAQ0TcB3ACgn4haWbVag5KmoKRwEVZlEcVl0PGtwj5u+4ArO6x81bLWKlWDbPhECTo6aO3N+KCNxpNaqStYdnKzrF91/qmSUiU+TAec68t43K9kH5JpLSk/16y3g1+2wspK4kMV1T/lnyJRrOT5rDtlI7fL/L1EQTvMLSeZn2YnKvGtCs0PlaZcCaHFftO0+SyFKumYtH4K6mHDGkLzTKwURQlnCSrLcuTnRQDXE1EX7G/RzbDlgP8FwDthIwPfB+BbNV9JURQlTn1sWENonomV+FixUhVFwSy1r/yhDutz0DpYqo4uqyWp0yeqUn/LKwCAngEr9bTwGkJWVZKbRTKjn8RgRT4qN+ovylN10qpc06Oc/EUUtiSVyVWXkjKpx7eH+FjJ/xGuQuVbz/kysqeto7LWWFn786hVup7LTY2rPWPMQ0R0D2xKhRkAj8GWe/jfAO4mov/G275Q25UWB7OwkWs9bKJ62adJMptH/iStiL4aW66yuaZWXWFlpatbrAIlvptSU1BUelGCxIdp+UE2CHtRUsREEXJ8l6L6d2JC3c+PU9sQ3ajwgVl93speKwZsO7HUakEtM/akXRyhTeLP5fiXYR8q81exUuXzrZKovGlne568UD7fq5DjVaFqIKpYKYpSGOrkn2CM+SSATzqbDwC4LqG7oihKfVAfqzlgGlb9kdWSVG9vld1WIdq/ZSOmBu0ySiJSpE7fYb5Z38OyThevdVp4iSa5ViSLcFy5kjxU0sqKceS8VarOjbKENupUo0/Lku5TqHxtlk9W3McqwreOy1pX5VGT8vpJqVLVcAosoy9WLsJ+C8WVqY0VmDVJHmoSqcyqTe8B+z24coilnQFu5T2W7/358uPKIuscn6Wojxzjfi3l3DIWNzfeVOxYiRxkhaGN+7Sdmi4/xs3dJeOTsY2gojbguLS82fWp8pReTPQSzSKvJUuyTlnnUIsWSIFtWPNMrMR53ZWjHaZnenFgzVYAwNiwneycaLGTn1fxLGcpSo7uQOWtwAtc4FkmWGPoj8Kex6bsOb1O6SFlZ6SdSdiW1qadK94CKAVquS6dWekVkiZcoSVtfOdQ5oWCyuiLFbkVKETJKnmCsyJejFkmIDIJkomHJDeW24diD+OTHaA0OTkVeyz/y7llUuQuxnw2tsNp21F++zLeCu64pD2f0jrjmpAW5W2WE0N8CI2ySCETMbWGNVBQG9Y8EytFUcIp8GpPURQlkwLbsDmfWBFRB4D7YdcyrQDuYT+NeJ92AHcB2AG7lnqXMeZQ6oldxcpdqUl7DsCYzQd2atTmLTzFKRk6llmn9a6lds1zScsUn2qWT2Gnx6JcTZy3jqHj57rKE3smtVnJPpNKzbjSel4Fy1u+BggXyqtxWq8WTa0wZxAKu9orOo2yYQblYf6iWEXfQFaUBqaALveWmShW3U7r2kFfgee4EsStcb6O5NpWaeVaUoxZVLNVKJX94jJghoX8KcepveN8+eNoXPLDmfRZnS1/mKWtu9vT9PVGWiJVqOpEgW3Yknm45hSANxtjroGtXPVWIrre6fNBAK8YYzYC+BMAn5njMSpKcyOOn1l/ShJqwxRlvgmxYfRXDe0AACAASURBVPPEnF/aGGNQ0mva+M/NzHwbbH0xALgHwOeIiPjYZESxij+Ot3E/JFGRotQMVsGa7LdLrUlxfPfJjEnKUVahZJ9DuU8wmsnYV0tb9iCvEqWqUlNAqEtl+MVIo2yYOK8L4gblKixnzgODrPD0sGLV5aZk8Ck9ovI4ytX0FDDNF5hxvuKt/CvRJb8Wcg25ZlyhAsA17oErgGn+/2jfcn5ONqhH/FQlDURPN5ey6bOe+t2tF8vGF70Y3Sj9auVUK0IsV63WTdWoOaTANmw+FCsQUQsXPBwB8F1jzENOl9VgcZuzN59GqUKfoii1oopVTagNU5R5RhWrcowxswC2E1E/gL8mom3GmKdiXZKKIlas9IjowwA+bB+tK1etQhQr6bvU02ZFssTPndfPyY20SVoq+TIcpCpRWefxLZh96RVqWcOFej0oc06Bc8AsBBphw16FylIqceTbNIFSEsweVq46ue3i7a0Zag7n40yNmJNz9bhKldhHUarEj+pybq+yzcvbluJp2AhsKU4v6Wim+GRuqZ3hdpuddPOW5wAAy2dYGBQfrFMopYFgxayT1blWx09LfNTSXlNBUyAsQApsw+ZFsRKMMWMA7gPwVmfXEcAW2SOiVthqVKecPjDG3GGM2WmLxC5v8GgVpYkQGT3rT0mlnjZsqbtTURQ/ITZsnpiPqMDlAKaNMWNE1AlbyNV17LwXtsbYj2Brjv1zqn8VgCgLzIzNJ4VRXjC6CtEYSoqVT6kS/wSfYiXERZ2sCL68+TWTrpklIgUpWb6ov6yB+fpNpxwzF7ixU0oQBV7tFZ1G2TAD+03yxevK9k6U1KQzsW1A6dvQ6kTMhRAd6zyOkB0S/ceRfpFitc02L22zUtZu7MRu7AAAPIfNAEpF6afYx0pyBa7lsMateBoAcI7zAl63zd5hHTjNhvQEKhKYdvIPqKh2vo+1bM9jKdSqFJgC27D5GNalAL5ERC2witnXjTHfJqJPAdhtjLkXtrbYl4loP+wq793zME5FaV4KbJQWAGrDFGW+qYMNI6K1sGlRVsLGj9xhjPms04cAfBbA22AT/L/fGPNo2nnnIyrwSQDXJmz/ROz/SQA/m+/MM7ChI7LG4GXVGK+7RDlailI8j1v+xlWq3KjALF8r37akx+45k/JvZS296ioUzYXqlKUu1fLE3PW1rjVTKXBETdFplA0zSP/Uxr8dblFgV2XyFQv2mZQ2VApS0T43X1Uft0PccuTfmavsVR/DdgDAfbgJ9+P1AIBHX9ppOz3DRlVsMFf66thu75Ie7bOhhaJodfIzfcMVDwMA6CjA9aOjAs3E4+o6VXou8bYa1HosAOpjw2YA/KYx5lEi6gHwCBF91xjzdKzPrQA28d8uAH/BrRddsyrKYkQVK0VRFjJ1sGHGmGPgqbox5iwR7YWN6I1PrG4DcBffyn+QiPqJ6FI+NpEmMq0XUYqVAUqqB/tcTbIXwiSVfKzc2lZ5FSv3UnnwKVXuGNKuG0qqr5Uvcm8uM6671EOSUwUrFZ1YFQ7xsXKRbUlitk+5grPdxVW4ZlDy03K/KVGEodgmUa4cH6v9LRsBAI+zmPcAbsCjj9xod/4N932cW7HBK20zeb31y/r+O94CAGjfYKMFh9iRau2ArcZ8+arjlfUQJSqQx+n6l+WJDlQWEHW2YUQ0DKtEe1OnMEd422KYWCmKEozeClQUZSETZsOWEdHu2OM7jDF3VJyKaCmAbwD4DWPMGXd3wnlTA1GaaGIlteFlvSXrk3FuxXOgE5jhtdk5fr3kfr+QpBolPU7Dd2yIQhXfnve6mWRV0KonPuUpNJKvNeHYaknzuFiEapYqVoUlJC2dz91TcBUtwVW24rG9vo9DVCPQk3F9+lLbSsTfsxwBuPvETuDb3PdubveLPZbME2tsc4QfLrU2+ckNNhmWRAke5bTul684XvLxEt9YHpf4grXNlj9HpUkJs2GjNh1TymmI2mAnVV8xxnwzoUuUOoVZg8jDL5l5zWOlKMo80hLwpyiKUlRqtF8c8fcFAHuNMX/s6XYvgF8ky/UATqf5VwFNNamXSltZ6clbEctPzK2TBWZSticpgIH4FCtXoZpxtsfpcPrkJfW4vCpNI6IGQ5Srejq2ZY2jCMyRerYE/lqYSiFI+4TLpyTuIxXH52uV5K8FWAuYWWvBtWHcTiy1Zx/jEL8Rdr66uL+75FO1X0b8PW4lGdUm2+y+ybasLRx/wQoEJy4bKjs3+lBSzERB43FJTcNWqS+oNDf1sWGvA/BeAHu4RBUAfBzsOWiMuR3A38GmWtgPewvsA1knbaKJlaIowRBUkVIUZeFSBxtmjPkhMhQUjgb8aJ7zNtHEylWs3Ki2eN7i0CwwvhzEabE3vG/Gea/c5WDWTDvuXjQZ2xbHV4fQm4E9Ke6oETUCXbKi/KqJ4JsLJWs+SFLPGqBiqY9V4XDzWLmfhPgnO28WcVepcmlFdjxwBfyjNtNi/5nlDVIHsKyGamRzxS/4bPljGaD4u062lZ1zVj+sikuBbVhBh6UoSkMh6K1ARVEWLgW2YU00sTKwqyKf90E8TqbT2eZTpEKzw8TzFvvULkfJkpVZmsDiqluu8OOrS+irT4gZVK5HsxSqPOqRnMPnO5UVyyTUoto0o5Ll8wGrQcnSW4GFx31345+CrEIOvmOzfLHiSF/D/5BrV9iXqeu83dHZbSP++vGK3bESUdAfOjgqe/Jq3iA+Vjb3VdRvmLuvPMXnsgmvekThmipd12e66vFN1wqkC4AC27AmmljJrcCkQGKg3LS424S8E6p4/6zbiW6ZVKfUjhA3Fkl+90l93QmV20bECyZnJQatB1m3+LI+fvExZjmYh6RuKDL1KOOTgwLL6EoySZ/wtNuFQOVEy9c/bhVdyzkhEyiZ0JzmljMmdHAx5LXrbQ7FjXgeAHDZlc/ghVu22J2SEPTBq8sfy4SK84jiJtts7bNpFoZxCAAwJBOxE7Hrc9FlmWhNTJaPu54TrFB0IjaHFNiGFXRYiqI0FE0QqijKQqbANqyJJlau66cvsDjJPdRVl1zndjj7k7Zn3AIsC2yO4yhXSYqVz3nddyvQTXha5sA/7myrNWFoW6xv1q2+0PWf73zVnHuhrCHzPNc6UODVnhJO2u1CoNIKppU/l74Tbst2pUsUIlGM5G6erTaDjeutUnUV9gCwST3H32VT27y8jOveXM/HiI1axi2nWdi06wkAwC48zOd6EgCw4fwB2+EwwFVuKpSrCU4M6gtfSqNede1DLNxCsUiFp8A2rKDDUhSloRTYKCmKomRSYBtW0GFVg6QSyHJIiqtLSSoWYvt9aRmStvsUMncc7jqqs7yNO7e7pwhVrCquFV+DZuVkCF2zxZ9nqLN6Fq7zexJZala1KllRSFrPhjr956DAMrpSPVm+VGnfGl+CmjOsBA06vlVRUY99tlk5ZDvs2mJr2M6iJXI633OzLVFz+Gab+HN81ipZ/S3W2WoYBwEA13JG0V1cB1cedzzF1zoQuy6PY1oUK2fcoeE5cer9g5h0zYWurReGAtuwJppYKYoSTIFXe4qiKJkU2IYVdFjV4PpYCUleBr7YGV+KhpB1YJZi5fOxcs8Vix6sUKBCSVKqZLsvDWC166X4c69VHaolyDmvklUL9fzahChstSqBCRR4tafUTpbFcmmL7XOtR5TKkxWrXvFxOsytFEPmUjNbWl4AAHRuGscKdsQSv6sTXO7mQov98HWxz+cqlqFejecAlIovL9/NzlhSbGQfSorVSduc4nFJ6lEZd9GLXmV981XByqDANqyJJlaKogRT4NWeoihKJgW2YQUdVjWIj1XeYg9xspSqtP2hipXgKkVdzuNOVPp2ZY07TamSx+6+vPmsklSlen+M4uerdd0ZEmFYLY323/IpgXVYyxbYKCn1w6dcJfXzeZDK45OcL6qTFas2UQuklWSN3O+yUy9j3aZ/BgAcHRgAUCqmPMOd23EBADDI8tPyw6xQsd8W9jrtQUSK1Tj7WLFwFSlrebX4tNem1q9IXM/PwqdgqXLlocA2rKDDUhSloRRYRlcURcmkwDasCSdWWbmH046pRqmCZ1tI2dO0Mcwk9MlSLuQc487juGLlxshUm6c4RK2p9uOVlHHdVZ6KUKKmkV+fuIYg1MuXDXVd7RFRP4DPA9gGKx3/EoBnAXwNtkjJIQA/Z4x5pT5XVOpFUuY/N5+V+C5Fnqjs07SaFSqSHZKZXfJdjQDEytPqFVZeWt3HMpOjbkU5qY467UFuOVcWDgPTrJid4OuIUuXT4n2x32kff18GQ99+l6TXNWlfGg3Uqxuqtc+ZwlZgxWrJfA9AUZR5QIxS1l8YnwXwHWPMFgDXwN64+S0A/2SM2QTgn/ixoihKfQixYfNEQed71eBGBfrKjiaRp28S08heA7jrqEYqVt6qXwF9fGTl50obZ9Z2l+mE/7MKPVejZOUpSRunGrUuLR4LSF5PZz2X6lU7Q8BMHWR0IuoF8AYA7wcAY8wFABeI6DZEld/wJQD3AfhY7VdUqiFET3e/SdKKYuXWqWhj8WkFP46KNMcUKwzw/33cdjsDm3WOOem0I+Xt+EhJqZJdMr7QmhIu8W+zr25GloLlEv9mupY2rRZI/LHPoiXdJ/GRR5mqNutgyDUboWLVy4Y1AlWsFGUxQsBsa/YfgGVEtDv292HnTJcDeBnAXxLRY0T0eSLqBjBkjDkGANyugKIoSr0IsGGZpyD6IhGNENFTnv19RPS3RPQEEf2YiD4QMrQmUqxc0qpoFcE/R/ApWfExuvE6Lr67+EnqVJZSFapcCW2e/7P6piG5vKZj//sqgFWjVLnHho6r2ueT1rea51F7pKMhYKYlZF11cdQYszOlQyuA1wD4NWPMQ0T0WehtvwVH3KPP9bGST+4ZJDPNytUA+0t1SccTqFSqOpyD5WKufxb7XBknV9Wp2VLi9zNOmxXv7PsGtsb2dca2IWF7loVLssRJsdnxvqFx5EnXqNZXqpr7DXlJG2c9FKwwG3Yx6zR3AvgcgLs8+z8K4GljzL8nouUAniWir7Ay76WJJ1aKovgwRLjQHqKj+ybzEUcAHDHGPMSP74GdWJ0gokuNMceI6FKU7twoiqLUTJgNS7dfxpj7iWg4rQuAHiIi2FS4pxCw+m2iiZXksRLcp5bkfyVkRRLmyWOVRdYd97g6Vc36KGl/UoxKXqVKcMfUhmxPhGo9FDrhf72y6hOmvR+1+lLVolxlnSv+/jQuAtKAMBuFZtVwHmOOE9FhItpsjHkWwM0Anua/9wH4NLffqvliSkPxWcGsqXWkxLDa1Mttz+lSzisSpUo+cu5HmxWraW7PcDorqVMYZX+P/S8+VXkzrSf5UYkiJdkEOz1tq/PYR1z1c5U0ad3xh77OeXJj+SxdXosccu60MTUiR1egDVtGRLtjj+8wxtyR4zKfA3AvbJxqD4B3GWMyZbAmmlgpihKKAUVJGuvArwH4ChFdAlsm9wOw/ptfJ6IPwgbL/2y9LqYoihJow7JcGbJ4C2xBpTcD2ADgu0T0A2OM7844gKaeWKVFr6X5XyUdG6Jc1RpZ6I4tKZu7T5HyncPtl7Q+yBtXkpQNPstDARnbfWOaiZ1T1nM+ha8WBcslS5FKy4ifJ8NNUv+QdWnt6z0DwoU6ZdczxjwOIMl43VyXCyjzgk/B8ilZFfmvzgOtrF51IR03856r4sT9qHw+S75xCz6/qc7Y/73c9jiPe/mr0snKW5R13iPbGG7PngcmRIVDeXvWeexmuveRlOHORx6v11Ad3vfrkscq1SMjXz1tWAofAPBpY4wBsJ+IDgLYAuDhtIPmJSqQiPqJ6B4ieoaI9hLRTzj7iYj+BxHtJ6Inieg18zFORWlWREbP+lOSURumKPNLiA2rAy+CF4hENARgM6wqn8p8KVaSUPCdfPvAXdDcCmAT/+0C8BfcVkFIrqKsWvAhypXvHD4FJWteX03dw5Acv7X4UgGV676QmBr3cR5Vx6dU5VWwQtZToc8ZKdvzZLiJjydp/L6IwfpkhdGJU03MoQ2rnXpm2nbrOwhuvO4ESp/cs0gmLeNe0rVmUKlYZWnRaUoVYFUpSbcVtRzF2NUX6wSUohzFZ8wVTHgwFPM36+WIxgGWpk6cLh9P1muURpb+HWq5WlE5Hh+hFiwegx56rrzUasOI6Kuw+faWEdERAJ8EvxTGmNsB/D6AO4loD2xK0o8ZY0azzjvnEytfQkGn220A7mL57UFeHV4qeXFqIynxplDLBMvnyuebHGVNmqpxiA/dnoe0CRVQXizaNVmhtwhd0m4FupONvMHLeUquZj33JLMUSlpKDKD8Z0nO7f6UVc9FLMFUUQttFZz5t2G1k/RJz/qUhxIvJZN129C1UL5JU1rCGB9ZE6r4ZGqQ/x+SbGtuO8Stb4IlyKCkRM8pRMlO29iRfw23nSd4nJIkNQc+a5ZlwXyWOe39d68puO9D0u3cxiwJLfWwYcaY92TsPwrg3+U973zcCvQlFIyzGsDh2OMjvE1RlDqhtwKrRm2YohSAotqv+bgV6Eso+H/F+lDCccbdwFmgORN0H8JKywBhZVmqxad6ZY0hzy2rrGv7rpVEXjdId+0Td/30BSvLMUlva9q1gMrXxV37hrp8pr2uIUI5ULnei/cLFdIF382PuCLnCySvfd1Xr3QLi5SG2LC+iu61k0fRCNVnfd+CJPImhAlRrHznEnzP2XVQl3aoBRgURWoVt2u5vdx57CpY7nTaSXCKoygrIB0/ZpC/fqJkRUlSGV8q5DSy3rO0NvR99b1nSW1oKolqKLINm4+JlS+hoNtnbezxGpTqnUdwPoo7AIBoVYXRUhQlGQPSW4HV0xAbtopIbZiiBFJkGzbnE6uUhIJx7gXwq0R0N6zD5+m59U0IVZ2SqNVNNOTa9XQJ9Dl9+9Yt7v42VCpVEqzsLNrFH8GN23aHEm9nfOPJSl/ou7uf9pHP45EQfxxPMSj41Dn57XSd8F1fsrgKVv/1XpFXe0VnIdiwLCuUpGxkqRxZ3440fOmIswomV6NU+SyZa53Ex2pwEJUK1RZuryhvJ9fb9kT3cgDAOT6b5FPqYRf0ZbPWsap33zTwHJ/jGW6duUCknPG0e4Z9rlz1TkjyXcrS2MVCu2kkosctpVQSnTw+cv3HGMPFtiWNxFlW6cTHKimZayMosg2br6jAioSCRPTLQOSJ/3cA3gZgP+z7FVT4UFGUcIpqlBYIasMUZZ4pqg2bl4mVJ6Hg7bH9Brb4YRXUojY1ktAiAnOlVIXiU4qS7s47SpV0Xcpth9NmKVaTAM7F/gdQWnvlfX+TEoX61DjXN8znO5YwBp8aJ8zwa1OhxImSJevUswEnqx4bUXNJ3c+7WGisDase37cixG/Kp3JklXdJiyJLinVN6gunXz1IslRATCESp7YVANbx/6JU7Sxvf7zCSllPYysA4DBLXKNYVnZNUazWtliHqq1bnsbWtXsBAB1LUY5TzmeAlZ8zXGXa9bCMvza+qEDfeyXPOYqE5PnIoIRD9qHkLyatmwRVUklIsW1J/ioFs6VQNreds+G/etVQZBs2X4qVoijzzKx+/RVFWcAU1YYVc1TzTrVqSNK2PEUFsvBFtmWt89JUPN9HIMu3Kr4elHWRo1T1c1uLYiV9zjlthbrkIySPVZZPlbuGZ+LPpxr/MaCkxJ0Tn6y4IpeVSaZ6iuyfoNSP0Ai/pLIurg4dbeePjeuT4zIzC0w4/jiuH04W7ic+5BuQ5AUKVD6/NvlnFUqKlfhUsVL14IprAAAP4AYAwG7eIcrVCQ4TlB/4ZbC5I1+NZ/k0wxjrtobwhl0/AgB0yHfeiSAkbgd5u7xmPl+rOL7nKO+dBDGKStcm0lU8X5eoV9J6FKuKyEfO00Uc3TgoebpGEJU0cqmHJSuyDdOJlaIsQmxETTFldEVRlCyKbMN0YhVEiMqUlf0j6xy1+FYl+Q/5zuO7jq/cjCvBJMXcOMcszWh9ipUQqTgJ+1ylJ1qjuVJQSK4n9z3L8KWSbjL++PPKUuOESU8rx0U+ZW0orTt91FaEuagyupKf0ExsaWVdXGXKW97F54vjjmkKaOPPdy+Xc5lmBUP8cGRcroLlxvDGP+mubu+zvD4fqx4ZtygzK1CKCmTFSnyqRKn6B7wFAPAvJ99kr30fv0r7+Tg2Oy+vsdLX3huvBQCMbBiKVJWubqvXXX/FE7azJN+QlpWeHlaAOqfKx52kXLnvq0+pWs1vJolCtc5p18b+lzfezS4vtkqUKsm/JeOXPF1cSa+rHVhzzDmmjhTZhhVzVIqiNJQiy+iKoihZFNmG6cSqJpKywCC2ze0Tb33niuP6BdUjO3u1+DwXYuN2VZskZSdpv5CWEF/2dTiPJcouWteFRIW6FwhUqmT8ru/YUvjVOFdMlNb1GXOPGwOrVkBpHVqNKpdMkWV0pf6kKVWAVThE3YgixqIN3A46j0XR8PniTKG8Zh6ANlZjhlg16uTHJ5ys4z7tfQLp3pLxYXhzOrmKWx+ijOuSp+pZbAZQ8qmKlKo7+RX7Nh/7lDNgiSrcb+3Sj97/JgxusE9yLUs6G9Y/DwBYvo6//Pti4wAgxZG6TiWPP+m+g68OovhURUqV5OnaxK34lG0pbXt5lTVmY2zoLrCduITLYfZjzI7/sDP+vdzK69oKtHFOriF+fSbEf4y71FL9tMg2TCdWirIIKbKMriiKkkWRbVgxR1UYslSoJLKUqlqiAn24Hgnueq+WDPJZPldt/l1ZCpbbP/KbYmZQ6YPk3u+Pnqo7njR/s7QIx9h2n1KV1LqqnE+xcv3HpB1LGOaoHOvqDW6VrvwYULQSVRYuob5Vvix0cV+cIVaeeqVeXlbrKlfuZ/00IqWqwp+I6+f1yp0cp16eL+45KZeTL/4azvZovxwQV6xYjZOM6pKn6nlssON5kJWq7/Ex90neuYe55e/ig6/hx9x/I+HZDa8uO+cIh+ItHzhXuj5QUv7YxrVKLcFZ//P0vZ+DfK4o+k/8p0Sp2s4tRz8e39aHPbgKAHAIwwCAo/xGS9mYLtaXhnACALBhrVXerlq7p/z5yPOYQfQmdbHdG3QUq1pqShTZhunESlEWIUX2T1AURcmiyDZskU6sqsl6nta/FeFKVYjqJfgUKJ+XwVz6XAmtlf/6wnN8ihacx/GlaGiQZeYg4viUKucYV2Fzlaplsce+nF0uWUpVfGk+6fZx44OycnilM1NQo6TUj6xcTpEvTntMqRJ1g/2NIpVjk7Od+53vWwIAmGq36kH7lPXF6T55saRQHeRW/HFELeooH880959mlcb1JswT6+uNu5aPfdxUsMoywf6WZ1n7eUW+2Ee47yE5iTgUPeqMjF/h/bui407OWkNxtsWec1x8OsVGOEqVjK+Nx9c6W/484lbK9772xrPKAyWV0VGsDmxbCQB4AK/DQ7gOALAHVwMoKVcyXskqP8xv5tWwSpXk8rph+wMAgMtmXrYnP4+Sjx1HhQ5we4a311pLsFYbRkRfBPB2ACPGmG2ePjcB+FPYl3vUGPPGrPOm/roTUS+A5caY553tVxtjngwcu6IoBeMiluBCQSvD1xO1YYrSnNTJht0J4HMA7kraSUT9AP4cwFuNMS8SRWEAqXgnVkT0c7CztBEiagPwfmPMv8UG8xrfsfNLI2oEZqlMSbXhQ2vBp81ts/JSZflSNaJ2YNIYMl5z3zCqSatcNWm5x6R1Msf7ohqTlCt3mxvl50YDjnn2x32xKnJeuevTWmJqilvAtF4sXBuWTV7fKrd2QOSLw23vICpVDVm/s7oxze1zfTa07CArGidZuo2ix9qtYjW06gSGVx0CAGy+/AUAALlZvQXxwWF1ZoKVKzd30zQq/XJCdfqKfgkOWy2YLWtbua2wARWan4yqp7xfB3BJy1TiuaPriyKVYf+SvEcrojzldRXFSl5vx8fq1HZroB5hJ6v7cFOUq+vIv3Knx/kYtlUvs207sPNKAMChXVa6FEWrnaMGX3WtdUTrPTpdkaNLst13Sj1B35MNpFYbZoy5n4iGU7r8PIBvGmNe5P4jKX0jlqTs+ziAHcaY7bCV2b9MRD/D+8h/mKIoRceAMIOWzL8FjtowRWlSQmwYgGVEtDv29+Gcl3k1gFcR0X1E9AgR/WLIQWlySYsx5hgAGGMeJqI3Afg2Ea0BYFKOmycIYWpV0lPOW4M7ScEKVapCfa2qkW/q6WPlRhr6MpzH8NXDcyPifD5Xbr/JgHNWhW8AjC+aMU3Bivtbxfu6z82Xmd1Vp5aipG5VfESy4qCysRE1TX8rcIHZsPqRZY0ivSXui+OJHDtzoz3LQy3Wb8itl3cUlwIo+Sd1spK6FocjP5yjA1b+2PW6hwAA3TMX7cklf9X58naAFQ3JeyS+OG2oVKxyfwtcheh86bqSo0ki3yT31N4tLG5KNN2hNbYdvZU3sL3sYImIo+2wDVjH55Bz9uOV0nWB0nd+qryddmxcUK1AsS/iw+bWBOT3+HlsBAA8Bpsh/n68Hke+xW/8Pdz3QW4lOnklt9fb5sCYVa4eeIt9v1exPLWhxaajv+byfRU5umRcoqydcvKX5SHQho0aY3ZmdUqhFcAOADfDfn1+REQPGmOeyzrIx1ki2iC+CcaYY+zE9TcArqxhoAuIrK9s0uSo2luCSecOLVXj2x96PJCdWNNxziwT5/kYX7kW3wQhpOyLey7vxKouM65ystJHJCUI9aVdcGPD3VuDSSVx3OtWFKCubWLV7LcC0aQ2LCncPuuxL0FoW/yOlnMrUG79yYTqe7gFgL1tBAC7T9jfq4tP8a+l3N7mRUbbtjN4ftBOpMQJvKXdzmreuJ3TFHCC0CjdAreSHLPzfPl4J5B8SyyO6+juJicxbEsoXkyYr7v8qP2SyS3MrXgaALB/h52IHHgnf2zk+/1Mb/lgNnJ7E5/vLS/iKp5cboB181t17wWYCAAAIABJREFU/rjdKbfJJCWFjIcnGzPOHcMkKpaI8pWW+UY8pQQAs0Iubd9scVDf98JW4D7uK8lPx2RW9BI/Xm3bUf6A8ETr6e12gn1wyJ7rGJ/7moF9FROqKJWEOObXOLGaAxt2BHZydh7AeSK6H8A1AFInVmm3Aj8CYAkRbZUNxpizAN4K4EO1j1dRlPlkFi2ZfwsctWGK0sTMgf36FoDXE1ErEXUB2IVSSKgXr2JljHkCAIjoKSL6MoA/gJ1v/gGs0Pnleox67qjlFmDI7TufQhWafsElSfh1r5tWA8Z3Dhf3HFmp+dxbhBOI1pNSXiatiDKQXfYlrlKdS9gW7xvd0XHXp76yLwEqT6gMEG99qpab/NSngqWdswFcxJIo8V+z0nw2zE+WM7vXyTlekPhS/p/TKYiT+mN8/+sHeD0A4OFHONr8b7j/bm6dW0bT1/fih+/4SQBAy5VWflnGEtWqFVau2XQ55zGQdAxy60pK3vBvY2csSabPbLi4lkAUq7OsDPVKKoCTKKlHLNJsXWWVKkklIA7actvrqW02mSb2O3lV1lh7dPkGe/wNeAA3wKYhuAo2CLVDfpblmqLa8XikULWEpiRZNF8qCfJ5OfD7Pd5ttRRJJyFla3C8rZRKYkyuKKkkXiof6CjLcoesvb943L5ZY0P9Zeee7gbaPPatrQ62rR42jIi+CqsvLiOiIwA+CX45jTG3G2P2EtF3ADwJ4CKAzxtjnvKdTwh5ersAfAbAA7AhD18B8LpqnoSiKMWhCRSpUNSGKUoTUoeowPcE9PlDAH+Y57whEyuJcO2EXe0dNMZczHOR5icklD9LwUrD9X/KUpnqSZJC5Y5FtnEwt0+pynLgFpJ8rFzlquKkPmUtrXC1Z62blQYizekhr6vXnKacKLFIfKyEprBheTzqsgoUd7rKajdKofnsayUlWMRJ/bHT7HQlPjh3c7tftBVRNoZtc6gtOv/jG+2xW9utkiN+R5tWsGIl1xYFrb18nK3n059XHPcr6JZPOcN+Pb3i2zSCkmLG41jZZ+WjN2z/AQCgi48WB+3tq60z/snV9gD5Lonzu/hTXYUnsROPAAAu38e+Vc/wteSaolyxYnXmXPK4k6y8a+0MbyCPWWzhoIGWdrshSv3QgVhSY3mVxQHvjPOYSsfE2lY3VYWT2LTeFNmGpflYCf8G+96+FsCNAN5DRPekH6IoSpGxleHbM/+aBLVhitJkhNiw+SJEsfqgMUbuoh8HcBsRvbeBY6oz1fhWha4Nk6IBfXgLLDjHx8vV+JSqWvD5HIVGFrrrwKTn7ShXrlLllnsJSZJZMTw31icplWDigfAnUm1L3pyVPiIpetHnDufzGUuKevSqX3kKfCRT5NVeA1jgNqyStFTFSf0q9HM3eqwdkVokJWokkk8SgE7uZwco8TDZL/6NUpnYUayeujXqe/qQdbwa2Wx9lsS3x3DUGDlRY9Lm8cXxadOip4l/megvUlal9yhKSpm0/PqsnrKyVv92+xyH263MJJFv8hrN8istZV+i1APYj4Gn+MstCTf3cHuAWynjwwraGVZ6JMWEWLYkr9GKJDh8rBRudtNZdPBzXtZ9smycSze+jHPbbQHq6P196q38j7yvHBUoyQtYwBzYaPdfyucaZF8sOo3KlBLcTkyWj7saimzDMj+2MYMU39Y0Tp+KshgpslGqN2rDFKX5KLINa2Dc0XyRVzkKOVdoJF/I9eeTJIUjSxXzrYFdn6skeD016UQLevJyRiQqNbI6dhUqV6nyRQPGcf3GnPfVVY98ebni5Wl8CT+zStqkKVheta525dLK6JfUfB6lcYRYqjwl3VNJOIGoMNGPV8X30ufFFPvuZfgczkjB4TxjdXC/6b64ZhmduFa1sZrTOgJ0uXeN5CBWeLpPWN+ka9bZsMFrVth2mhWuWX79OkShkbxcL6KyALUoVTZvKKRIyonT5eNL87Fq8+wTJahN7IqMR07K6tjaVfbim/EsAGBH9yP4/ttFoWIeZLs9xslQJQkyJwjF261N3t7yGJ/LpnZaixdL13IiHt3kp7V4BxfZhhV5FqAoSoOwq736fP2JqAU26P4lY8zbiWg9rGvzAGzM9nuNMRfqcjFFURTU14bVm2KOqioI6U8naU1UrW9VGh5/nQqylKJpz/9J13L7pfkXhY7Hd+00hcrFjV508l1lDs+g0sOgYo3mPM6q+JyUIEqesykfn0+pEj8Qt5ByvK+vpI3sH8tozyVc35uzqzrqKKP/R9ikeRI29BkAf2KMuZuIbgfwQQB/Ua+LNSu1FOXKS6IvDqsJXeetOtPTbr18JNINa/iDuJE/3Mt4tKPX8UkcH6s1iDKRd6w5VXYu8UVqc31wHIUrraxL3oBa37e+9Tyw5hhvc32TROnh/VFpGPYNa+suP1f0PEShGUEp6s9pRal66VT5pcS3SnzBkiyb+I259w0mJOJRXldRjOTarJ5JUewTAzZi8RX0R7UIHhneAQA4dxP7XIlN4pRXfdttdOOOdnuH/U2csn07rHJ1+VGOfnwxdl15MhL5KMW2URtFvRUYEhWoKEqTYZPrXZL5lwXX3fspAJ/nxwTgzShVHPsSgHc06GkoirJICbFh80UTKVY+QpSqvPvz4Prz5DkuKzcTnP1ZYwjpG0rSWsMdr6yrupxjsiIihfhrkKVQZb0m8dffHbsb4ehENfqyGceJF08GKiMf3X6ur9Wos/0cKqMqvepddQTK6MuIKO78fYcx5o7Y4z8F8F8ATrdsMwGNGSMZdXAEUTiRkoeQyD+fF2hWLQZRgtrk83gekZpArKSsGihFtgHAFattDqq9t3BBYvnsPsip2ke5lWK9NyKqmbe172k+F9fLEylDfJFErhGlJyV6LEup8um47rcl/hrN8HWH+HpexcfJDF/xgsdfT8A+H3lufK5xUai4zwne7SpVPkuXZMmiHF0yTP6nTV5fJ7M8Sa3o1/FXu72UFX9zt/W7OrrLRj6O850GyeUlhamljqIoVbtOc6Z2iX7cF7suP8nx8+XjrfXXSG8FKopSGHJE1HirwxPR2wGMGGMe4eLGQJQ90LmcoihKHdGowDkly0sh/pTr4VMluL5VoaqSuw6J9/P5TPlUmrwqTtp4QpmIHSNZVbIyxcPZ75KksPmeW0gUoNtfxulbw/K4Zrj1KVfxIYpStdTT1xdh6EYHjsa2Rxns3YhIUQKrX+/VKaLmdQD+AxG9DVaj64VVsPqJqJVVqzUorVuVFHxeomlZ97Ky4/kytokS1CW+RKdRHskGYMMWq1RdzYmXRjAEAJh6iw2hO7CMnXIkSkw+r+yLg+3AFddYFcOtl7fhPIfGScScXFsUK1E2HF+cGfh1+6zHPn237Jzio8Sf2AEeT5eoTm6NRV++ulj+KKn9d0r8i3iXnNJVqLIyrscfuz5Wci6JMFwj43wxedzdnIn9jdsfjuo3SlZ8qZN4gZ90F9sdyVM1zG9e5FMlSpXkwYorVo5K5+boqoYiRwXOi48VEf1HLoz6YyL6jYT9RET/g4j2E9GTRPSa+RinojQrElGT9Zd6DmN+2xizxhgzDODdAP7ZGPMLAP4FwDu52/tgK8Q3FWrDFGV+CbFh88WcX5mItgH4PwBcB+ACgO8Q0f82xuyLdbsVwCb+2wUbUbQr48wI96fKqqSV1S8Nn3LiW9r46v3F11E+H6tQtSZJBfORFaXoXjPtNQ/pm9Q/5Lpwtrv9hbT30M1b7K6fOMhtks8x5nSPq1BuxKBPsXKVq6ScWPEWQOX6zm3z02AZ/WMA7iai/wbgMQBfaNSF5oNG2TDXgoVYo7yZ9qJvk0S/xX2BHD+cgRX2Q3rd9ofsMfx5kYi+PTusonV4h60pOM6+ibJ/LQ5H6scu2HNI3bwOUTWc7OOibEyz9OJ+0sfh1+1D9VvXvyfJ0kb+Tvz6dHIr3qKdrFy1Om/SjBPNODFbqUi53+Zx53HI83K/+fJ+y7nFsp1k36ZB+ar7FPSTwKZ1tm7jplW2nWZ/sgsdVn+5ZNKqW21OTixvnq6DiHJ1nWT/Mlelk+deDXorsJwrADxojBkHACL6PoCfBvAHsT63AbjLGGMAPEhE/UR0qTHmWOXpFEXJiwHhQh1ldGPMfYCNuzbGHICddDQrasMUZZ6ptw2rJ/MxsXoKwH8nokHYiffbYJMLxlmNaK4LoBRZFGCUQqto5emb9TKF5BNy1yM+pQqxfqF+RVn98oyzltxI7nNzowBr8bFK2pe0P2tM8UjDUBzlyl0yn0NlHcSsrPJZ2dwBVK5lQ+rdh2FQUiCU3DTEhomPVVa9v/g2JOzzHRNHPlnj4kN0EiUFgnM0iT/OZa0v2z7b/gkAsIqfgkSFjcKGmE2wntPJZ1+FY5EfztWzVrnq3c2f2XjkGGLXFmXD8UdK8rFCbFucrKx/Id6sokzJ9UUBiiwZ+1BJ9nbfteMeqD4PyWpqR8TPHx+XEH0+JF8Z+7BJornoIvFM8fJecMRgm+TqarFKlVt3sCJiUtpjpceimJ3gcfiyyldDkW3YnE+sjDF7iegzAL4L+zPyBCq/G0GRRUT0YQAfto9eVddxKkozY7AkckpV8tEoG6YWTFHCqYcNI6IvApDo5m0p/V4L4EEA7zLG3OPrJ8yLd5cx5gtgvwsi+r9hV3NxjgBYG3ucGFnE+XTusOdZZ9LjZfJmZc86Jos8uaWyzlFPpSpUrXEVtTTfqyxfKl9OqZD1Suh61LfdjdJM87nKymgumeN5PRvPvO7zrXJxFStX/Yp+e8+iMtanfj5WQHGzFi8EGmHDholMJ/z+UnmiAQWfZ2f0CZLowFMofYbdjwUrFctHrJz6xk0PAwCuWmsj/MY4DFCchS/hA141O4beF/m7JGrIXqd1FKszrKyIGCI+Q3HtNism2iXE0roqlk9rb3NaH0l1M7J8qKqJ4RZcS3DW7cDv4RC/zoPxaFDAKlaiVEorcxb3xXGPlTeL5SjDj0dOVeyKLJlr0aqlDjbsTgCfA3CXrwOX7PoMgH8IPem8TKyIaIUxZoSI1gH4GQA/4XS5F8CvEtHdsA6fp7N9E7JcP4VqEob6jo2Lyz6n6VDn6qSvv+/Yam/95fmqVhPK70tll8eh3HdOl9DxJaV68L1eWWkV3VmQTLRagXNJAkUIacWlsyZWtaVbKKqMvhBohA1bAvuJcm87VdyGih2TN7zG/YRLOoMzp4Fed6c4uMvtaclkyc7JA4N2VjbQx+H28nFKSuEgU0oJ+z9cvn2c2xN8bFoh4monJGlhQu7cIdSZIYu0W5eh22uhwnLJ+83vyyBPjnpPoZSKQSZUWUmO+ZagkRQK3J6MvYe+pKf1SBBaDxtmjLmfiIYzuv0agG8AeG3oeecrHvEb7J8wDeCjxphXiOiXAcAYczuAv4P1W9gPu1j5wDyNU1GaEuv4qbcCa0BtmKLMI3Nhw4hoNWxgyptR9ImVMeb1Cdtuj/1vAHw031nd9Hr1uBVYDVmCdNZtsqTzZClSodvTxufDp7yFEKriVXOuaomvT118N07c1i3VE3c5Dg54dx4nrc19t/7cceSnyKHKC4FG2LAWWL9hUah8bZKDu5DXATpSZKaAVnFkl51uQWFRndi5OfOWUaxMTiRBiYLF6pcoJ65S5Sod8W9gtbfOQqxOkr6ddmxIv1qd7ZOuFWoNfbdL5XU9y697z0jMmrFZ6HQUKzeVRKR+8f4kfT1LqarFqgfasKySXFn8KYCPGWNmbRnUMJow87qiKFkYEGYv6sRKUZSFSaAN85bkCmQnbE4+AFgG4G1ENGOM+Zu0g5pwYhUS2j8XTzuvcpXHx8rdH7p2q2Z9UE/VybceDDmmEYQ63bu+bdIv7oGRpVS5ZClXMyhXr5DwuAYfq4uEqUm9FVgkWmFr/Eo1awmN7+W3SRSEtnZ4v0JGihZLKRgpZszKhK8Y0jhKpVcmnELEbSI7iCeyeIq1O60gvlmTKE9AilLiT0mn4Do3Z/nkhFjJUNKOywrZEbJiVJLOWc143P1ZyXrcfoK8jm5RrzOI/XJKiobzSMS1Pj4rNZGwzz2mFubChhlj1sv/RHQngG9nTaqAppxYKYqShTGE2RlVrBRFWZjUw4YR0VcB3AR7y/AIgE+C55jxW/t5aaKJlUQFpgUpx7dXQ54UCfXol/fufDUJQUMj49xzxl/HvGvGPJGR9SI+7lDlzJdSMOkzFurTFxoTlBRYXsd1n4FOrApGG2wG0QGOzurikiJRtJb4NHWgUiXijwSJyiQJLCXqi7ePOxFccQUr+rSJ2sXHdnJUYCc/buOPdpvrW+WMxcyUriOKmRtun6VQJSkeWXptqBWpxYLlvVacemjwoeqWz3K56lLcgvksWd4Y9SQLVtfIxzrYMGPMe3L0fX9o3yaaWCmKEooxS3BBbwUqirJAKbINa6KJlWSB8SlUeXysfHPzNL+oWlWbrDEkHVPNmi1v7ExWbicgPNLRd85a8m2FEuKV4FtXuZ4WSVluqslwk3XtrHxlNaz7DABVrArFJa3AmgEAK3iDtEPcitNVHypzDDm5hSKnJceJqYsfSyHdVlajzsxWqkOiJvl8bkKsqE+ByipAnFbmpV4epGkWTGikh2fSOELJa3HdayVp742wYG7fulr6AtuwJppYKYoSjKHCGiVFUZRMCmzDmmxilXSnOC1ay5eFxPX5ce8y51ljVBsLkif+pdZ4kzzHJn1kfNev5zqwWnUmJIoxS5H0ve9p5w6NF/JlmgnJ2VzD+2oATFabLV5pCO0A1gNYx4+llcI4q7jtQ8nvSnAL40q+KCfDufhmiZ+UiGAzpyvVIteDL+83MP4JzooOC9Vm65GZL4msc9Qj02EjMqrnzYqYZeHi5Il49J2rofciCmzDmmxipShKELY0vKIoysKkwDasiSZWEhWYVcI0ydcqVKnykbQWyTtXryZDSyOVqnrQyCi/UJLGkKViZa3v3ONreZ5pClZoBGEVFNgoLVraAWwCcAU/lnaTbSY5o86J7uWYKOVHBwD0sEfUitPWeartIO/Y57Ry50Qi+/gz0DNTihgUkjKrJe13SfsE51WkGq1UhVIES5aET0MXfNGAIXm68ipWSWOq9RcslQLbsCaaWCmKEsxFlByeFUVRFhoFtmFNNLESxSpeUQsI87UKzdzhEp9vhx6TdGycWtZmjZy+F+WjUu1zTKu0lVfBypv7K4QQ5SppXx0vqcwvHbAqFRfgkEIcTw5Yyeo5bAYAHMZavIL+skOXsXPV2j7rVLV5+7MAgCtXHbAdXJ8syY7OKlXXefsHlKIBhaxsamnafF4lKkTnL6p6VATyWrY85wolxJu1bhTUhhXl11JRlLmkwDK6oihKJgW2YU00sSLYp+MqUz4FK4nQ+XSSD06oAlWPXFRZx9aDonw06vUc07wI8iqCSXm48sYN1aJY1uE1KbCMvmjpBLANmN5lHz7Qd51tcQMA4HFsBwA8i804icGyQ1fgBABgM54DAOzEbgDA2RUPAACu3/mE7cgZ0KV2X7yVzOqt0sfB53MVolgl7QvZ7+unhBHqgzVX168rBbZhRfn1VBRlLinwak9RFCWTAtuwJppYuVGBrlIlj9OUhSw/qZBYCh9FVapq/QjkUWqqyYTTSHznz6tkpZ0rL/XMX5ZBQY3SoqUTwBXA433bAAA/wOsBAN/DLQCA7790k+33ww7gEB/DH9UjG60f1p4brwYAnBwsV7R6VljPqSs3sc+V5LWStg/oYT+sTo9iNeO01fha+c7pQ5Wq+pI342A9zt1QCmrDmmhipShKMAWW0RVFUTIpsA1roomV62PlU6qSqiJlKRduP192kFqopb5fKHne7nqsYULP6Xvurcj/3PO8F3kzw9fz/fYxRzE1BZbRFysz7YRTm9rxNLYCAHZjBwDg+y/cbDv8T/68fgfAfudgK3Jh+pDNpX7/+63aNdjH0YKcgn140yEAQPe+i/YAEba6AeL6g0nVVRPHy21ohF9SHxdVqOaHBfm6F9iGNdnEKn4r0NfGy95k4U6khFp+YPOEztf6qQl5e7Nei0Z8RNznlVbcOm8aizzkLWQx19/iBiaALbBRWqzMoA0jGMJhrmEj6RXww9iECgB+OA5gT/nBx9njnb8ukxsHAADP/9QGAMBRrocz2m5nUt19L9uOkoahHVHy0Kzljy/tgtsvaZ/vnIqSmwLbsCaaWCmKEoxBYWV0RVGUTApswxbRxCpPgtB6rKNqnUpXc3zW2xlSiDqtb6PxlRYCGqtc+Qj9HFTzWtVD7ayBAq/2FisXsQTj6MJZ9AAARrHM7jjCHaLbf3sAPMT/y2evh/tsLTtGzjHGCUWjUjhxpQoo96KoEk3uqcwpdbBhRPRFAG8HMGKM2Zaw/xcAfIwfngPwEWPME1nnXVLbsBRFWZCIUcr6UxRFKSIhNiybOwG8NWX/QQBvNMZcDeD3AdwRctJFpFi5akg9zpWEuyYLKVUaem6XeihUvnI+IefKop7r09DC2ElqV6NpxLUaPKspcETNYqeF6820yGeAncqjFj0Aevl/J0hnaXlfOUfpnFzLRj5eUtomti3LgmV9MlWpUuaEOtgwY8z9RDScsv+B2MMHAawJOe8imlgpilKGKlKKoixksm3YMiLaHXt8hzEmSHVK4IMA/j6kYxNPrFyFI0TJ8KW6y+rv/p/Vt1byqkqtCX3yKlfVKFa+dBV5VCXfMY3wuQo9Vy1fm4LMZlSxKhwtmEE/XsEyjAIA1nGKhONbLrcduCgzjmwFZiRPAn8Wl/Lj7bx5i20kzcIQl7zpkRLLXHA5+gxMoly9QrZSFWItValSGkaYDRs1RsqZVw8RvQl2YnVjSP8mnlgpiuLFQH/1FEVZuMyRDSOiqwF8HsCtxpiTIcc00cRKXmWfShLyDviKNPha97hGE6pU+dSmNOXKPYdP2fJdE6h8HSQ5qy/Tjas65VGyspSralSxUOZbdarD582gQqGoBiJaC+AuACth15B3GGM+S0QDAL4GYBi2AMvPGWNeqf2KzcslF2ew6vxxbOh+HgBwFeeqOviW9QCAl8fW2Y79APYP2f/l488KFVe/wWW7ngEAbMXTAIBhroGzcoQrLY9wfynCfB4wvPrPKrLsI0+GPkWpmTrZsDSIaB2AbwJ4rzHmudDjmmhipShKMPXLATMD4DeNMY8SUQ+AR4jouwDeD+CfjDGfJqLfAvBbKIUtK4qi1EYdbBgRfRXATbC+WEcAfBK8KjfG3A7gE7D1Cf6ciABgJuTWYhNNrOKxl3Hcp5jHx8pdu6WtybJKkmZdP0kFyRv156pPScqV28enXFUTPZhVLNgtBeSqSkmvTV5fqlqUq6LRwDHXSUY3xhwDcIz/P0tEewGsBnAbrMECgC8BuA86sUqFJoGOvcBVO58EAIxgBQBgnHNPPfCuGwAAL2zbUsptJV+PYQMA2LTBHvsG/AAAsAsPAygpV9jH/V/kNqZcnWW/K7F6Wfr9QmO+45qVOlMHG2aMeU/G/g8B+FDe8zYsjxURfZGIRojoqdi2PySiZ4joSSL6ayLq9xz7ViJ6loj282pXUZR6IjJ61l8OOGz5WtjslUM86ZLJ14q6jHsOURumKAUmxIbNE41UrO4E8DlY/wvhuwB+2xgzQ0SfAfDbcFaxRNQC4M8A/CTsuuzfiOheY8zT6Zdzp6/i3+OqTmlP2VdWNGsNl6am5I00CxlnlqrkU5/aEra5RarTjk0iPgafoud7vbJe55AizL78ZPPtBxXKPK2Jw2X0oHBlIloK4BsAfsMYc4Zl84XOnZhLGzYJ4Bng8r7jAIALm6zq1MnfC4nwe/7KDRi90mZUlzxVy2B9ajfA+mddi8cAADtg37rVT52y19jL13IVqzPAmSn7r3wL3W+jS9HUnLksGy8U7TVYVCzGkjZJibeMMf8Ye/gggHcmHHodgP3GmAMAQER3w95WyJhYKYoSTLiMnhmuTERtsJOqrxhjvsmbTxDRpcaYY0R0KUo/4QsGtWGKUmAKHNk8nz5WvwQbNeSyGuClmeUIgF3Zp/MVDsqjBIUqK0mPq/WtcqmnUpWkRrnbOmP7ko4JVa7iZHlnpClU7v5qY5JqiTishYJ+013qFxVIAL4AYK8x5o9ju+4F8D4An+b2W7VfrXDU14aNAxwICADYMvUCAGBwm1WjNnKxwKNYFdUTFPoxBqCkam2ctX179/Dn8XHuKDc1D3LL090zJ4EzvMmnz/s8TecrGjBUoarHj1xWnQdhgXz7m4M5iAqslnmZWBHRf4X9rH4laXfCNuM5z4cBfNg+WnAuHIoyf9QvQejrALwXwB4ikp/vj8NOqL5ORB+EvfH0s3W5WkFohA1b15vUQ1GURAqc5HjOJ1ZE9D7YatI3G2OSjM0RAGtjj9cAOJp0Lvb1uMOed4OxSz7fGqIaxcq3Pcv7IH5MPQhVqnxqU2es7XS2ybFdCX3j+6vxmZG316dQud4cbc7j+PXdxxNIJy1XVr3WlQt4fVq/qMAfwv/huLn2KxSPRtmwnf1ksBelVTjnmFp+9Jxt1z1hj1nxBMa7y+OOuk9ftP/IDVfxodrntAfL909z/xNTAHtheZWrInza01SqelY5DcUXgywU4TX7/9s7/xi5quuOfw+76/Vvr9c2a9Z2vQZcExqMi93gpmniEDUFN4JWyh/QNqCEKqUNqqpWaonUNiTpP+kPtUqDgihBBKUhv1S1CDlFKC2iFTLFDT/CjyYYMGVtsGObtb221961b/+458y8ufvevDfrNzN3Zr4faXTnvXnz3pn3Zs7c+33nntO18FagR0Suhw/0/JBz7lTGZs8A2CgiGwDsB3AzgN9skYmE9A6RyugxQx9GSERE6sOa1rHKSLz1WQCDAB7XWUO7nXN3iMgogPudczt1ts2dAB4D0AfgAefcS8WOmqYSDQSvFVGsjKzYoDRFK2uG4IV0qeeqVIWqU5piZQrVkmCbQHyYH7RZAhLEkEBjAAAV/klEQVQwOwhjSvc1M1DbVrD/pVC5sjFzP/KVqaLKVT0azZUV6TCpESKW0WOh5T7sDLyypLPzYMUzTOvSaAdZBiwaPF/7Xqv9Z5nUTbk6kN5Ov+3bcd3+KGBVBDOz9+XNhW7mryJNdZpLpr2sfWXRaGXSNAWrC7xFnETsw5o5KzAt8dbXMrY9AGBnYnkXgF1NMo0QErGMHgv0YYRETMQ+rMsyryfPcji+mksduqx9pY3Vyh6/pY2r5qpULU0s23NTqlRVCpWpxUhfb62RplhNBcuTwfrKchjXFcZaHUfx8WWecpU0spOzsZdExDNqepXzZ4FTbwELTbGyoCdTm5ZpuwizPbf9tkLlyvah6tcpXT6o2yXSWGXqx+38ldRTqvLqThRdnySvbsdc6ifS2zSJiH1Yl3WskiVtsn4SjZDXwUrbd5k/n7xknUU7VMnO1MLaXVkHaihnOe+WIDC7YxV2pMJ2wpa1c1fpaCU/r90WzCPr+qa5yqxtG70l2MFEnFyvV5k+D+w/CSzVAPNh7QQN2M/XfnuDiefhfTrrlGnHaVrbo9rRsruLdtvP+l2nEuvyAiBacQuwXieoaCrjRlMdJ8n77KGnCM9BWopjdrBKJmIf1kUdK0JIYSKW0QkhJJeIfVgXdayyznKRoPWs9xhFCic3Uly5nj1pAet5iT/zlKrh6vY20l2p7VDQhusXB23WLUFgtmI1S5nS9nCwz4lg/aR9rgtJ7JN13ZPXqYfHkBHL6L3KWfgphKbRHleVaYG1fb4d6Af6g6/1jH7dp7U9rdc2TJ1gqlS4PpmKNwxeL1K4qyzybtellZHPSnG8MGN9vWPkFds6lbE+KwnMNGarWz3sdcolYh/WRR0rQkhhIpbRCSEkl4h9WBd1rLJK2hhhEHu9bUKy9tvsBKF5YZh5sVXDtdsvRlWRCtvVGetDRctUpv6gBWbHVk0ErSlSQ8HyO8G+bP3EQOKz5E36DtcX+Wr3QCxVFhHL6L3KDHwMVKguVRQXHZ0PnEM1liogS3UKFZe01xstMV/m16eIUmXrs/T6pcGytWFCmcr7+mbbMaPnOCuQP+vahEpV2r0MKlclE7EPuyh/E0JI12Eyet6DEEJipIgPy0FEHhCRQyLyYsbrIiJfFpG9IvKCiFxTxLQuU6yKdF8vRKVoVNFqhCITi7PSLYRjtiW125vKtBJVZSps12ast3bIV+4YGPJjtcH5fsjc138O52b80O/M1CAAYHpS7ZnQ45siZUrUOGrtCtWv5LfS9lFR34ys8XWYEDbcPo1w7NgDswMjTq7Xq5yHV0JM/cgqUAXkz3nOKr7VSBn5VihVeaR5vCJznwFghS0v8u1CbWGt7bQP1T/hYHZlOKvSYtPs2GHMmhFeQ4DKVemU48MeBPAVAA9lvH4DgI36uBbAV1GgoHoXdawIIYWJWEYnhJBcSvBhzrknRWSsziY3AXhIa4LuFpEhEbnEOfd2vf12UcfKYqzsIzXzX6OZSkZatpWi82BszKbzYcIZgKtRVabCdqx2+aIxP1RbMXJEd+HlpiU6RlugY7I+zODcoLfj7KJ5AIATK/yYcWK9D6Y6uHYEADA9rvYVidcCatOSTWbFldUbgyfbNCWrB5SpevBWX1Sch1c6sr6VabmcjEYz7qWpUu1QqvKiSNO0+axIUmtHTKGyFSZdJROsJttksqkg0eqASlHqBiu5xQ4eS7c/JHk9DY5nSiTfh60UkT2J5fu08HlR1gB4K7E8rut6pWNFCGkI124DCCHkAsj3YYedc9su4AiSsi73qF3YscpTHzpltlg/smOrQvUmLA2jpOWospipMW0vr22HL98PABjt83U0RrWexsVa/GII7wIAlmhSqj7M4JzadVqPf0KjHA7CK1UHVlyi7SgA4J2hdf5g8wdqP5aRnOgXzjScsQiKrEwzCzJeT8trNdexI6MiSPmEilVY4MlIK01eVGWqF3kYg1IVLqfVmAiVqhFt1+gK0WLVGA1a29DeGMZaAdWSQJai/lBtO6DlhdZqu8C2K6D+ZhXdYqxV1IwDWJdYXotqkalMOCuQkJ7EAhTyHoQQEiNFfNgF8wiAW3V24HYAx/Liq4CuUqyyItnCsVEzZgXWI+8ufPh6vdiqvFmBwSzAMJt6MsZqTFtVqlZveh0AsAH7AACX4TUAwDq9vbwO/6e78kM0i7Wah7M4Bz8r0JSqIxrUcECHim9ph39IE1oNrj8LAHgTl/mDz6jdoTo1hdkFnA+bMpuVwyur6HaR2LteGjPm5X0jrSb5NwFkz2+t57QbVZ3Sto+p6HJaNvVMpepndIXpC5dquzFYbwqWxV4lY6yseLUpVVq3Ud1fVeUa1F2ogTOBhpGM8Aw1c/7qyuLCfZiIPAxgB3ws1jiAz0G/hs65ewHsArATwF749GafLLLfLupYEUKKw2mBhJBO5sJ9mHPulpzXHYDPNLrfHuhYdcqfR71LEU6by8o9rGTV/0tRrFZt8kOxy1Wh2oQfAwCuxMsAqsrVmA7dRizW6qQf2g2eATSNFU4s89MQD+lYcp8eZIWqXAs0n3G/BiScW+/fOD6jstmkqlGmUk1idp3BioIVnoOs+UQhAyg+yunmWYMW0UNioei85rl4tCLf4HZ4yrzYqrQs6hZjNaKz/MQUqA3avkfb92p7lW+Ov8fv9Y2+MQDAEXWMp7AAg/AquvkqU+pXvaEO50e6rzAuS2OrRqxWoypdycz2YT3BLM/EWKtGideH9UDHihAyGypWhJBOJl4f1kUdq/B+aywfrUiNwjQGUt6TNkcmsWyxVZa/Ki3WSmcFzh/zCVksduoy7AVQVaqu0iGaLa95QxO4WMzBQW3PAAN6qoeHfSDU8KVvAgAuvuKgmuHjsfr0+tgswlM6m/HUmG+PHl7jd5SsLWi22zr7bFNhrFWWchVGqiQ1gZBuVKbq0WuftzNo5VVp9d9SlhcsWhV1KYBhVcgHLNjKFCuLpTKl6gO++d916wEAz2ILAOAn2ASgGvt5CgsxT1OtmyJvyv1VG7wf3LbMVzwRM8xqNVrspwpbwzqr8Li2pzE74x5jrcokzrMYS++DENJS4pXRCSEkn3h9WBd3rFrdky3rVKbtJ1Rj0rKzY7ZSVUexGlnmR2ajmkDWZgP+rI3UVLFa/ZxOk3lO9/GKtjYL5mTiuJY/RkeOw0f8cG7zdr+vs31+Ks1pVaom1LAjfX56ztHVuoN3Bqp2h5/FjlUhjDsLf2gDwfp+xCoft5Z4ZfReJbwijWrcaXTaFS4y/3nYMqibv7HZgDYL8Od989I6v+JJ/DIA4D/xQQDAHmwFALx20Md2nj+8CFjsz9Ta9fsAAFvU4VkuvnMqk23f8rzfuc0etFYF/YWaqX2pKlYnUj4LguVOu0bxEK8P6+KOFSEkG6ZbIIR0MvH6MHasSiMts/eFkMy8bmSN54LFOsrVRSu1BqDW/rPM6jYLxpSr1a8GStVu1C5r9aTpk8CA5nSpxDpYNmI9JUsH/ajism0+juugDjVHNFDLZuIsXukDqSaHVlXsnaVUWVuZsJc1ruf4sD7xyujE00vf1KKZ15cCEJuZFypXOivwp1d4p/GsSldP4MMAgF0ndwIAJh9V/2I+7R0AQ/4I41u83D7+MR9/dXaNr39qeftWjHpftfHScf9eqyIX5LlaoHFg/eeyvXZ4fbt5DnJziNeHdVHHymTBMgT02KiXOgCzO1Rhm+hgLRnyDsJK0ljSTuvcXGL3+CxI3W79aYfquLavaPDmUQBWZGajTjW2qceVqcna4Rrd+FP/ut6GtGOaDYsXedsmF6+q2p/Voap4oaJpFkgt8cropHcJf72zbgkOoupXrGMVBLFbmpeXcSUAYA98qbhKh+pB3f4JbacS/xvbbZ13OE/fcS0AYGxwH4BqUPvGdeO1xw4KPC9Qf7XgZL5HYnqFuRKvD+O/ECE9SbwyOiGE5BOvD+vCjlVeD7bZilbZtwTTyFFnQlUnoWjNG/SJ8BZqsk6TuK1dflTnD1tJhwO1rSlVJmQdxezpxMMqj1vB0koBUw3wHFo2UXNMs2WhybpJlSrrs1Q+uoQrlHrnKKtYSC/hEKuMTrqfjOk3FTLT/vaj6h8sBCFQrqoltXzx99f3a+ksu/X3X9pOPa1P9qFSIGf3Dt+O+ebYB/xsn7e2+luDFsx+coUvs7to2Xm/YVDqZoG2AyfnrqVTycojXh/WhR0rQkg+8crohBCST7w+rAc7Vs0opNwqCipUddZbks4+rcVgrSXIExNxLPGdKlQukfAOAI4n2ulg3Wl970CYRO9MfRtm2Z32mUhJxOuUCAlJdQMZKvYZ1KZ1waRKXGF5rEqW4/2Y5cUmlta85wx8EPtZbc8M+nZR/1S6LXUIE8CQuRKvD+PfFiE9SbwzagghJJ94fRg7VoUIe8XtUrDCmCBdtpQDGS8n11s5mXPw84HPVkZifpQ3bbEBFjOgrU1xXqJxUlYIFajGWNkEmSXBe8OYCDuWHdtssbbmcxSu/9BIvFSco5zWEm/gJyEhM2kL1p6pXQ7jRy8a8nL7+dXqkCplssb0yTQqMVbm2TSRshWwt/hPKyQ/eOZsui0FflJFvQ+9VB7x+rCLmrVjEXlARA6JyIuJdXeLyH4ReU4fOzPee72I/FhE9orIXc2ykZDexWT0vEfvQh9GSMwU8WHtoZmK1YMAvgLgoWD93znn/ibrTSLSB+AeAL8CYBzAMyLyiHPu5WYZ2jhzKaw812LM9fYVEMZHhctTwOmTXl86tUgLIAflZSaW+aRXq0Y0EMGSfmq5iM0agjCg+UOTswIvV8FJrMTEaG07pYn8Tmjmq7C1OIakvZkjwspAxSGd6XBDUkO8MnpEPIiu9WHtJfxVhn9E4a/Xlk9PAQtDpcpipnT2sSXxtKTHm0Z87qlXtl/jN9ir2z+x2beHN1dz/W2vbVdd7TN/jmliPyvSvOiQzga0kjYna206faZqNz1Rs4jXhzVNsXLOPYlKBaWGeB+Avc65151zZwF8C8BNpRpHSM9jMnreo3ehDyMkZor4sPbQjhirO0XkVgB7APyxc+7d4PU1qBYKAPyI79q8nW7dOoo9e+4uzcjuRbMP4/qgDbguaBXT2zbP4cgWapWx6ypbg7YulsdqJGhJfeKdUdMBNMWHjW7dirv37CnPyh7lmqD9nL1wU9AWwuT3P6lt1+ni7wStovMRcaU+SH0+L5K/0Szi9WGt7lh9FcAX4c/IFwH8LYBPBdukneHU+z0i8mkAn9bFSRE5AmgRvLhYiTjtAuK1jXY1xqbGNj/wGPBnKwtsGONnbSf0YXFBuxojVrsa9F9AQR/Wls/a0o6Vc84Sh0BE/hHAoymbjaM6HgCAtajm/w73dx+A+xL73OOc21aOteURq11AvLbRrsYQkYakDudchlRJ6kEfFhe0qzFitqvR98Tsw5oWY5WGiFySWPwNAC+mbPYMgI0iskFE5gG4GcAjrbCPEELqQR9GCMmjaYqViDwMYAeAlSIyDn+re4eIbIGXxfcB+F3ddhTA/c65nc65GRG5E8BjAPoAPOCce6lZdhJCSBr0YYSQudC0jpVz7paU1V/L2PYAgJ2J5V0Ads3hsPflb9IWYrULiNc22tUYsdrVsdCH1UC7GoN2NUasds0JcS4rDxAhhBBCCGmElsZYEUIIIYR0Mx3ZsRKRHSJyLFFW4i8yttsgIk+LyKsi8m0NJG2mXb8lIi/o4ykRuToSu2aV5gheFxH5spbfeEFErknbrkm29YnIsyIya3aViAzq+dmr52usBfZsSnyvnhOR4yLyh8E2LTtfGWVVhkXkcf3+PC4iyzPee5tu86qI3NYsG0ljxOq/9JjR+TD6r4ZtisaH9az/cs513AM+oPTRAtt9B8DN+vxeAL/XZLveD2C5Pr8BwNOR2PVB+Hx5L2a8vhPA9+Hz72zPsrtJtv0RgG+mXU8Avw/gXn1+M4Bvt/h71gfgHQDr23W+0q4dgL8CcJc+vwvAl1LeNwzgdW2X6/PlrTx/fGRe0yj9lx4nOh9G/3VB9rXVh/Wq/+pIxaoIIiLwyb2/p6u+DuDXm3lM59xTrpqFeTd8/poY7MorzXETgIecZzeAIamdVt4URGQtgF8DcH8du76uz78H4CN6/lrFRwC85px7M8WulpyvjGuXPC9Z359fBfC4c+6oficfR2aafRIb7fATQJw+jP7rgmirD+tV/9XJHatfFJHnReT7IvJzKa+vADDhnLOCQePwpSZaxe3wI4KQdtuVRloJjlbY9PfwNSLOZ7xesUvP1zH489cqbgbwcD27lFZfwxHn3NsAoO3FKdu020ZSn9j9F9A5Poz+K5sYfVjX+69O7Vj9EF7avBrAPwD4l5RtCpeVKBsR+TC8U/rTtJdT1rV7ambLbRKRjwE45Jz7n3qbpaxr1TWcB+BGAN9NezllXbuvYUgn2NirRO2/gI7zYfRfaQfvbB8Wu3116ZiOlYh8xoLxACx2zk0ClXwxAyIS1gw6DC9vWq6uzLISZdklIqMishleGr7JOXck5S0tsatBCpfgKJFfAnCjiOwD8C0A14nIN7Ls0vO1DPVvCZTJDQB+6BIlTNLsUlp9DQ+abK/toZRt2m0jSRCr/wpt61AfRv+VTqw+rOv9V8d0rJxz9zjntjjntgA4b/eqReR98J/jSLC9A/AfAD6uq24D8K9NtqsfwD8D+IRz7icZ27fErgZ5BMCtOlNkO4BjJtU2C+fcZ51za51zY/By9b875347xS6bDfJx3aZVo5ZbkC6hA204XynHt/OS9f15DMBHRWS5zrr5qK4jbSBW/5ViWyf6MPqvdGL1Yd3vv9odPT+XB4A7AbwE4Hn4AMv3J17bBWBUn18K4L8B7IWXQwebbNf9AN4F8Jw+9kRi18MA3gYwDT8SuB3AHQDu0NcFwD0AXgPwIwDbWnw9d0Bn1QD4AoAb9fl8PT979Xxd2iJ7FsL/0S1LrGvL+cq4disA/ADAq9oO67bb4Muq2Hs/peduL4BPtvKa8lH3mkbpv/SY0fkw+q852RSFD+tV/8XM64QQQgghJdExtwIJIYQQQmKHHStCCCGEkJJgx4oQQgghpCTYsSKEEEIIKQl2rAghhBBCSoIdK1IKIvJvIjKRVuWdEEJihz6MlAU7VqQs/hrAJ9ptBCGEzBH6MFIK7FiRhhCRXxCRF0RkvogsEpGXROS9zrkfADjRbvsIIaQe9GGk2fTnb0JIFefcMyLyCIC/BLAAwDeccy+22SxCCCkEfRhpNuxYkbnwBQDPAJgC8AdttoUQQhqFPow0Dd4KJHNhGMBiAEvg62ERQkgnQR9GmgY7VmQu3AfgzwH8E4AvtdkWQghpFPow0jR4K5A0hIjcCmDGOfdNEekD8JSIXAfg8wCuALBYRMYB3O6ce6ydthJCSAh9GGk24pxrtw2EEEIIIV0BbwUSQgghhJQEO1aEEEIIISXBjhUhhBBCSEmwY0UIIYQQUhLsWBFCCCGElAQ7VoQQQgghJcGOFSGEEEJISbBjRQghhBBSEv8PHvP/sMBzmVMAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 720x252 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10,3.5))\n",
"with torch.no_grad():\n",
" plt.subplot(121)\n",
" plt.title(\"GP mean\")\n",
" plot_function(lambda X: gpmodel(X)[0])\n",
" plt.subplot(122)\n",
" plt.title(\"GP variance\")\n",
" plot_function(lambda X: gpmodel(X)[1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Now find MAP estimates of the GP parameters"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"MAP - maximum a posteriori probability estimate"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ We can use `gp.util.train` utility to train `gpmodel`."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"optimizer = torch.optim.Adam(gpmodel.parameters(), lr=0.005)\n",
"loss_fn = pyro.infer.TraceMeanField_ELBO().differentiable_loss\n",
"losses = gp.util.train(gpmodel, optimizer, loss_fn, num_steps=5000)\n",
"plt.semilogy(losses);"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"variance = 0.5909644961357117\n",
"lengthscale = tensor([0.9009, 0.5953])\n",
"noise = 1.131041407585144\n"
]
}
],
"source": [
"print('variance = {}'.format(gpmodel.kernel.variance))\n",
"print('lengthscale = {}'.format(gpmodel.kernel.lengthscale))\n",
"print('noise = {}'.format(gpmodel.noise))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x252 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10,3.5))\n",
"with torch.no_grad():\n",
" plt.subplot(121)\n",
" plt.title(\"GP mean\")\n",
" plot_function(lambda X: gpmodel(X)[0])\n",
" plt.subplot(122)\n",
" plt.title(\"GP variance\")\n",
" plot_function(lambda X: gpmodel(X)[1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Standard GP model, doing inference over hyperparameters\n",
"\n",
"This is more along the lines of what is being done in the BOAT baseline nonparametric model. \n",
"\n",
"Instead of optimizing the GP parameters, we will try to approximate the posteriors of each with a normal distribution.\n",
"\n",
"This is actually very simple to do — we just have to define an `autoguide` for each parameter."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"\n",
"+ `pyro.nn.PyroModule` is designed to have parameters corresponding 1-1 w.r.t. the global pyro param store. So we need to clear param store..."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pyro.clear_param_store()\n",
"gpmodel_svi = gp.models.GPRegression(X, y, gp.kernels.Matern52(input_dim=2, lengthscale=torch.ones(2)))\n",
"\n",
"# Set priors\n",
"gpmodel_svi.kernel.lengthscale = pyro.nn.PyroSample(dist.LogNormal(0, 1).expand([2]).to_event())\n",
"gpmodel_svi.kernel.variance = pyro.nn.PyroSample(dist.LogNormal(0, 1))\n",
"gpmodel_svi.noise = pyro.nn.PyroSample(dist.LogNormal(0, 1))\n",
"\n",
"# Set guides\n",
"gpmodel_svi.kernel.autoguide(\"lengthscale\", dist.Normal)\n",
"gpmodel_svi.kernel.autoguide(\"variance\", dist.Normal)\n",
"gpmodel_svi.autoguide(\"noise\", dist.Normal)\n",
"\n",
"optimizer = torch.optim.Adam(gpmodel_svi.parameters(), lr=0.005)\n",
"loss_fn = pyro.infer.TraceMeanField_ELBO().differentiable_loss\n",
"losses = gp.util.train(gpmodel_svi, optimizer, loss_fn, num_steps=2000)\n",
"plt.semilogy(losses);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Instead of having specific estimated lengthscales, noises, and variances we now have distributions."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ GP module no longer needs to use buffers. We can inspect autoguide's parameters through `.named_pyro_params()` method."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('kernel.lengthscale_loc', Parameter containing:\n",
" tensor([0.6713, 1.1398], requires_grad=True)),\n",
" ('kernel.lengthscale_scale',\n",
" tensor([0.4691, 0.4194], grad_fn=<AddBackward0>)),\n",
" ('kernel.variance_loc', Parameter containing:\n",
" tensor(4.5602, requires_grad=True)),\n",
" ('kernel.variance_scale', tensor(0.4303, grad_fn=<AddBackward0>)),\n",
" ('noise_loc', Parameter containing:\n",
" tensor(1.7623, requires_grad=True)),\n",
" ('noise_scale', tensor(3.4518, grad_fn=<AddBackward0>))]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sorted(list(gpmodel_svi.named_pyro_params()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ `lengthscale` is a positive variable. Auto normal guide approximates its posterior in unconstrained space (through `exp` transform). So the actual approximated posterior of `lengthscale` is a `LogNormal` distribution. For example,"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"lengthscale ~ LogNormal(tensor([0.6713, 1.1398]), tensor([0.4691, 0.4194]))\n"
]
}
],
"source": [
"print(\"lengthscale ~ LogNormal({}, {})\".format(\n",
" gpmodel_svi.kernel.lengthscale_loc.data, gpmodel_svi.kernel.lengthscale_scale.data))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### There's some amount of variation in the GP mean and variance, then:\n",
"\n",
"~(note: the GP means and variances are all independent samples; left and right plots are unrelated)~\n",
"\n",
"**Note:**\n",
"+ We can use the same samples for left and right plots using `_pyro_context` context manager."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x216 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x216 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x216 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"for i in range(3):\n",
" plt.figure(figsize=(8,3))\n",
" with torch.no_grad(), gpmodel_svi._pyro_context:\n",
" plt.subplot(121)\n",
" plt.title(\"GP mean\")\n",
" plot_function(lambda X: gpmodel_svi(X)[0])\n",
" plt.subplot(122)\n",
" plt.title(\"GP variance\")\n",
" plot_function(lambda X: gpmodel_svi(X)[1])\n",
" plt.tight_layout();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Parametric model in pyro\n",
"\n",
"The parametric model used in the BOAT example, with two parameters $\\alpha, \\beta, \\gamma$, is\n",
"\n",
"$g(x; \\alpha, \\beta, \\gamma) = \\alpha \\cos(x_1) + \\beta x_1^4 + x_2^2 + \\gamma$\n",
"\n",
"with uniform priors on $\\alpha \\in [0, 20]$ and $\\beta \\in [0, 20]$.\n",
"\n",
"The $\\gamma$ term isn't actually part of their model, but if I understand the GP code there correctly, they also estimate a mean, and this also has a uniform prior on $[0, 20]$.\n",
"\n",
"First, let's just look at what this parametric model looks like, without fitting it to data at all.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ We can create parametric_model as an instance of `pyro.nn.PyroModule`."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"def parametric_fn(X, alpha, beta, gamma):\n",
" x1 = X[...,0]\n",
" x2 = X[...,1]\n",
" return alpha * torch.cos(x1) + beta*torch.pow(x1, 4) + torch.pow(x2, 2) + gamma\n",
"\n",
"class ParametricPrior(pyro.nn.PyroModule):\n",
" def __init__(self):\n",
" super().__init__()\n",
" self.alpha = pyro.nn.PyroSample(dist.Uniform(0, 20))\n",
" self.beta = pyro.nn.PyroSample(dist.Uniform(0, 20))\n",
" self.gamma = pyro.nn.PyroSample(dist.Uniform(0, 20))\n",
"\n",
" def forward(self, x):\n",
" return parametric_fn(x, self.alpha, self.beta, self.gamma)\n",
"\n",
"parametric_prior = ParametricPrior()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x216 with 6 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pyro.clear_param_store()\n",
"plt.figure(figsize=(12,3))\n",
"for i in range(3):\n",
" plt.subplot(1,3,i+1)\n",
" plot_function(parametric_prior)\n",
"plt.tight_layout();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Two things of note:\n",
"\n",
"1. This doesn't look like Branin-Hoo at all\n",
"2. For the main thing that changes for multiple samples is the overall scale, not the shape\n",
"\n",
"To fit this model to data, we will want to define a `guide` which samples $\\alpha, \\beta$. This can be as simple as two independent Gaussians (though ideally they would be truncated to $[0, 20]$).\n",
"\n",
"We will also need to define a model class which links the parametric model with the data — in the semi-parametric model, this will be replaced by a GP, but to see what the parametric model would learn by itself we can instead let the errors be small independent Gaussian noise."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ We can use `pyro.nn.PyroParam` instead of `pyro.param` in a `PyroModule`.\n",
"+ The prior for `alpha` changes during the inference (because of the changes of `mu_a` and `sd_a`). So we use the pattern\n",
"```\n",
"PyroSample(lambda self: dist.Normal(self.mu_a, self.sd_a))\n",
"```\n",
"instead of\n",
"```\n",
"PyroSample(dist.Normal(self.mu_a, self.sd_a))\n",
"```\n",
"The former pattern can be used to define hierarchy priors. The latter pattern is used for fixed priors.\n",
"+ Formally, we use `.to_event(1)` instead of `.independent(1)`.\n",
"+ In ParametricGuide `forward` method, we need to access `self.alpha`, `self.beta`, `self.gamma` to trigger `pyro.sample` statements for those variables.\n",
"+ Support of `alpha` in `guide` and `model` are different here. This might cause `NaN` problems where samples from guides are out-of-support of priors. It is better to use some distributions such as `TruncatedNormal` (which is not available yet in PyTorch/Pyro) or `TransformedDistribution(Normal(self.mu_a, self.sd_a), torch.distributions.biject_to(constraints.interval(0, 20)))` for the guide. Using `autoguide` does not face this issue, but currently, only Auto Delta, Auto Normal, Auto MVN are available (which should be enough IMO)."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"class ParametricGuide(pyro.nn.PyroModule):\n",
" def __init__(self):\n",
" super().__init__()\n",
" self.mu_a = pyro.nn.PyroParam(torch.tensor(10.0), constraint=constraints.interval(0, 20))\n",
" self.mu_b = pyro.nn.PyroParam(torch.tensor(10.0), constraint=constraints.interval(0, 20))\n",
" self.mu_c = pyro.nn.PyroParam(torch.tensor(10.0), constraint=constraints.interval(0, 20))\n",
" self.sd_a = pyro.nn.PyroParam(torch.tensor(1.0), constraint=constraints.positive)\n",
" self.sd_b = pyro.nn.PyroParam(torch.tensor(1.0), constraint=constraints.positive)\n",
" self.sd_c = pyro.nn.PyroParam(torch.tensor(1.0), constraint=constraints.positive)\n",
" self.alpha = pyro.nn.PyroSample(lambda self: dist.Normal(self.mu_a, self.sd_a))\n",
" self.beta = pyro.nn.PyroSample(lambda self: dist.Normal(self.mu_b, self.sd_b))\n",
" self.gamma = pyro.nn.PyroSample(lambda self: dist.Normal(self.mu_c, self.sd_c))\n",
"\n",
" def forward(self, *args):\n",
" return self.alpha, self.beta, self.gamma\n",
"\n",
"class ParametricModel(ParametricPrior):\n",
" def forward(self, X, y):\n",
" g = super().forward(X)\n",
" pyro.sample('f', dist.Normal(g, 0.1).to_event(1), obs=y)\n",
"\n",
"guide = ParametricGuide()\n",
"model_parametric = ParametricModel()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### The actual inference code is a little bit different here.\n",
"\n",
"We're following the simple example in http://pyro.ai/examples/svi_part_i.html. Main difference is that this uses pyro's optimizers (i.e. `pyro.optim.Adam`), rather than `torch.optim.Adam`; the pyro optimizer does something to automatically extract the relevant parameters, which we explicitly passed to the torch optimizer.\n",
"\n",
"~(This setup is simpler, but I can't figure out how to make it work with the GP class…)~"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"pyro.clear_param_store()\n",
"svi = pyro.infer.SVI(model_parametric, guide, pyro.optim.Adam({'lr': 0.1}), pyro.infer.Trace_ELBO())"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 24.6 s, sys: 124 ms, total: 24.7 s\n",
"Wall time: 25.2 s\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f8b4d64c710>]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%%time\n",
"losses = []\n",
"\n",
"num_steps = 10000\n",
"for i in range(num_steps):\n",
" losses.append(svi.step(X, y))\n",
"plt.semilogy(losses);"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"alpha ~ Normal(2.08, 0.08)\n",
"beta ~ Normal(0.01, 0.00)\n",
"gamma ~ Normal(0.01, 0.20)\n"
]
}
],
"source": [
"print(\"alpha ~ Normal(%0.2f, %0.2f)\" % (pyro.param('mu_a'), pyro.param('sd_a')))\n",
"print(\"beta ~ Normal(%0.2f, %0.2f)\" % (pyro.param('mu_b'), pyro.param('sd_b')))\n",
"print(\"gamma ~ Normal(%0.2f, %0.2f)\" % (pyro.param('mu_c'), pyro.param('sd_c')))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ No need to use `pyro.param`."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"alpha ~ Normal(2.08, 0.08)\n",
"beta ~ Normal(0.01, 0.00)\n",
"gamma ~ Normal(0.01, 0.20)\n"
]
}
],
"source": [
"print(\"alpha ~ Normal(%0.2f, %0.2f)\" % (guide.mu_a, guide.sd_a))\n",
"print(\"beta ~ Normal(%0.2f, %0.2f)\" % (guide.mu_b, guide.sd_b))\n",
"print(\"gamma ~ Normal(%0.2f, %0.2f)\" % (guide.mu_c, guide.sd_c))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ We can use PyTorch style here too."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"pyro.clear_param_store()\n",
"guide = ParametricGuide()\n",
"model_parametric = ParametricModel()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 26.3 s, sys: 167 ms, total: 26.4 s\n",
"Wall time: 25.5 s\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f8b4403b630>]"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%%time\n",
"losses = []\n",
"\n",
"optimizer = torch.optim.Adam(guide.parameters(), lr=0.1)\n",
"loss_fn = pyro.infer.Trace_ELBO().differentiable_loss\n",
"num_steps = 10000\n",
"for i in range(num_steps):\n",
" optimizer.zero_grad()\n",
" loss = loss_fn(model_parametric, guide, X, y)\n",
" loss.backward()\n",
" optimizer.step()\n",
" losses.append(loss.item())\n",
"plt.semilogy(losses);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ Or we can create a single module and use `gp.util.train` here. ;)\n",
"+ `pyro.nn.pyro_method` decorator is used to trigger `pyro.sample` primitives for priors."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"class ParametricModule(gp.Parameterized):\n",
" def __init__(self, X, y):\n",
" super().__init__()\n",
" self.X, self.y = X, y\n",
" self.mu_a = pyro.nn.PyroParam(torch.tensor(10.0), constraint=constraints.interval(0, 20))\n",
" self.mu_b = pyro.nn.PyroParam(torch.tensor(10.0), constraint=constraints.interval(0, 20))\n",
" self.mu_c = pyro.nn.PyroParam(torch.tensor(10.0), constraint=constraints.interval(0, 20))\n",
" self.sd_a = pyro.nn.PyroParam(torch.tensor(1.0), constraint=constraints.positive)\n",
" self.sd_b = pyro.nn.PyroParam(torch.tensor(1.0), constraint=constraints.positive)\n",
" self.sd_c = pyro.nn.PyroParam(torch.tensor(1.0), constraint=constraints.positive)\n",
" self.alpha = pyro.nn.PyroSample(lambda self: dist.Normal(self.mu_a, self.sd_a)\n",
" if self.mode == \"guide\" else dist.Uniform(0, 20))\n",
" self.beta = pyro.nn.PyroSample(lambda self: dist.Normal(self.mu_b, self.sd_b)\n",
" if self.mode == \"guide\" else dist.Uniform(0, 20))\n",
" self.gamma = pyro.nn.PyroSample(lambda self: dist.Normal(self.mu_c, self.sd_c)\n",
" if self.mode == \"guide\" else dist.Uniform(0, 20))\n",
"\n",
" @pyro.nn.pyro_method\n",
" def model(self):\n",
" self.set_mode(\"model\")\n",
" g = parametric_fn(self.X, self.alpha, self.beta, self.gamma)\n",
" pyro.sample('f', dist.Normal(g, 0.1).to_event(1), obs=self.y)\n",
"\n",
" @pyro.nn.pyro_method\n",
" def guide(self):\n",
" self.set_mode(\"guide\")\n",
" return self.alpha, self.beta, self.gamma\n",
"\n",
"parametric_module = ParametricModule(X, y)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 26.5 s, sys: 168 ms, total: 26.7 s\n",
"Wall time: 25.4 s\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f8b440642b0>]"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%%time\n",
"pyro.clear_param_store()\n",
"optimizer = torch.optim.Adam(parametric_module.parameters(), lr=0.1)\n",
"loss_fn = pyro.infer.Trace_ELBO().differentiable_loss\n",
"losses = gp.util.train(parametric_module, optimizer, loss_fn, num_steps=10000)\n",
"plt.semilogy(losses);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Samples from the parametric model"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0YAAADXCAYAAAA+9kFjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9f7AkV3Xn+T2vqt/rbiQjhAQWkrDwIhPGxCCDBvCw6xXgsQXBWOMJsCXPggwKC8/C2h47YhHMrMFmiACPDYMXFtz8WCEGEBpsDwqtjEbGsITX/JDEYFlCw9LGrGkkSxYI/ehWv+5X7+wfmVl169b9fW9mZeY7n4iKyrp5M/Nmvcrvu/ecc88lZoYgCIIgCIIgCMJeZmPdDRAEQRAEQRAEQVg3MjASBEEQBEEQBGHPIwMjQRAEQRAEQRD2PDIwEgRBEARBEARhzyMDI0EQBEEQBEEQ9jwyMBIEQRAEQRAEYc+zloEREV1MRF8nosNEdJVh/xYRfaLe/yUiOq/7VgqCMBZEcwRB6ArRG0EYLp0PjIhoAuA9AF4M4OkALiOip2vVrgDwADM/FcA7Aby921YKgjAWRHMEQegK0RtBGDbr8Bg9B8BhZv4mM58AcC2AS7Q6lwD4cL39SQAvIiLqsI2CIIwH0RxBELpC9EYQBsw6BkZnA/i28vlIXWasw8w7AB4E8PhOWicIwtgQzREEoStEbwRhwEzXcE2TVYQT6oCIrgRwZfVp69nAE7VqrL0bT2MpK4F+GyEGoRijUUi7u7pfU7tN9x9bZjuvvj+mTG/fhrZtue6Gslt9n2hlk8X2s58C3Hbbbfcz85mGG1nhqUR8zFPnHuAmZr445HwCgFY15wfraiFa49OhEtj0I1RXgr4GC656XWiO6dlWt026gMAym5boemGqZ9IXQ/NUfZl4yqZa2UTZ/rtwvQH8miN6E00HeqMf4iuzXqIALm1pwwnWtc4A/n5IaJmrH6LriUtHTMc4+i4TpVjVEVPfZaLVU8v21e9TzDXo2QfK9nH6oDfrGBgdAXCu8vkcAHdb6hwhoimAxwL4nn4iZj4E4BAAEP0QA1cBOKnU2KnfTWUqJw1lOeyzlId83bZjTYS023S/ocfGYGq3fr/7EsrU86pl+wxl+jHTwHoHtG3tuk31/fULAE5R3k+xl936EYCI/j8E8iiA13rq/FvgjNDzCQBa05zzGPg3qJ6x5nlSnzf9GXPtK0WO9tiOD22rTWtizhGD3tapZZ9LF2Aos+mMaf8BR5mqKVNlG1jqvGzV76cgXF9Oq7fV92b7V8L1BvBrjk9viGg/gM+jupMpgE8y85uI6CmowshOB/AVAK9g5hNEtAXgGgDPBvBdAL/AzN+KaXPP6UBvGly600VfB3D3WdroYnatM4C9f+PSEVOZqx+i64l+jK2fcsBQph1aSlvOUN7r7VufWbaP04f+zTpC6W4BcD4RPYWINgFcCuB6rc71AC6vt18G4M+ZuS1TgDAI2hBYteMT0YwWzQmERatsLyGaDjWn5R9Ia7h+XUP+5bX5txji33kVn+YEsA3ghcz8TAAXALiYiJ6HKqHAO5n5fAAPoEo4AIw/8UDLehP6u+vi99k3XehCq0I1PvZ/ga2u656Gp0EF9KZ1Ov9WmXmHiF4H4CZUDroPMfOdRPQ7AG5l5usBfBDAR4joMCoryqVdt1MQ1sEGFnYfoQyiOYJgJ1dz6g79I/XHpn/DAF4I4Bfr8g8DeDOA96JKPPDmuvyTAN5NRDQW46fojSDYGUIfZy3DTWa+EcCNWtlvKdvHAby83BX3YeFibW7Z5Y5dBylj5eaYttzHOdjCWlys015Q+FFIPN0QRGOIdK85Pko/u12E76o66rqWSVt9x8ZSSiuGZ3EtTQnNqVNU3wbgqahSVf8NgO/XiQWA5QQES4kHiKhJPHB/ZjN6Q//0pmu68NT2rQ8nhDCEPo78VxCEHkGQh1IQhO4I0JwziOhW5fOheu7LHGaeAbiAiE4D8CcAftRwnsYjlJPhQxCEATOEPk7f25dAimWylPU2ZRJiCcunq/1T2C24tmNSr9/HY4bFEKwpQij6M2Z7FtfFWLzUKd5pnZjj1qXznku056W+n5kvDDkXM3+fiD4H4HkATiOiae01UhMQBCUeEHSa2Rk5z14pz23f/xf36T5NCabUc8dco+Uue2FtMTGEPs46ki+MFFcoSwf/LLPa0DeR8z2Fue31TWa0XL8DM4IkXxgqqX+dtn/LsccM+bq5xzTPvvq0qWUpk6n1+oZ0vmvO15E7GZqIzqw9RSCiAwB+CsBdAD6LKrEAUCUa+FS9LcmVitMXG3foj9n3Xy7mee0DsfddMnmDp8/Sl6+oRpIvCIIQBaH/1hRBEMZDAc05C8CH63lGGwCuY+YbiOhrAK4lon8H4L+iSjgASOIBQdizDKGPM6KBURO5qIaqqJP0QsJa1PFqqBu2byFhqaEuMa7n0FASvZ7p55bqTTOtcxSCy6UdcYjrycl4qhprijAkTFoSEzaX88za2hN7TCo23fAlYoDlONd1Yoh9aHNJ+F5zmqjXW6PmMPPtAH7cUP5NAM8xlI888UCXmJ4ltcz0HOaEw6aEkYYc66vvS/pSerqAqa36/Znq9DiBVAltsW1HMIQ+zogGRoIwfIYQfysIwngQzREEoSuGoDcjHRiFWgpCrJo5hFgYfMe4cFmkTd+BL81lzj2HtjvWyhJj5tinbDfnTfUsRVx2qmxnMoSMLUJD6GRonwXXVM91HhddzWc0nTvVc2Q71lTPdG5fvdDzpRDigU54okO9SaI5e5QSKatD+0mh0Rupx4fga2sJnTHVT6HE0+TrJ2W0sYS2ZHqo+643fW9fAr6wlpQBQ8y1baSEvcReL3T9EPW4ElmyfJ2DEk9iG1PzErJZpbqjAxmCNUVwsS6jTM6AqE1jjHqNkGNDyTHEqMfnaEphPbJJYsv/pUVzhkZo+Kpary0jcBeDIv18qWupNcenYOsrlAxbtiVlKHCNNWmLiSHojWSlE4QeIVnpBEHokiFkiRIEYRwUyIK5n4i+TER/RUR3EtFv1+VPIaIvEdE3iOgTRLRZl2/Vnw/X+8/zXWNEHiNTWIsrhMXmSYn1oORYTEp//SmTEHO8R7GeotAwOl86SzVsLhbT46dey7T2oKFaS27mIVhTBBMmS2VbmmO6rok+eanVY0vfb4p32lSnOc8+Q5kpVNeELdzFcIwpBDe0qTHlHkRzhoIpwVRDaPKkXL1Rz2Mi9P9yyI811OuT4qEOJdcz3ZzDFObv05OY/pLj0jEU1hYTBfRmG8ALmfkRItoH4C+I6E8B/AaAdzLztUT0PgBXAHhv/f4AMz+ViC4F8HYAv+BroyAIPaFJZel6CYIglMKnOYIgCKXI1RuueKT+2IwwGcALAXyyLv8wgH9eb19Sf0a9/0VE5LCAj8pjpBJqmXTNN8ohx1Ib4wnxeYAAc5rO0GNjyLEU5cTQuhIthFp5Paf2eYcKJ1/Y5ztPCUOYUAB1Gqn+PNni+0M0x/YHztGPtqTe5nF2WXVNbXH9qEMtqr45gxlaYCXWixSITyZ1zcmcDO3UHNGbHuPzVOfoje1aNkprT6hO+DzUrmNDr9tcx1evlLaECoAKuXeHRrm4tEUtS7zVEnpTr5l2G4CnAngPgL8B8H1mbo4+AuDsevtsAN8GAGbeIaIHATwewP22849wYGR6SHyTEEMnTPuu6yLX9RxybIxLOeTY1HY013Xtj+24mAY+qZjOE/AoxIhBaljLBnBgy1PJIRxEdC6AawD8IIBdAIeY+V1E9GYAvwzgH+qqb2TmG+tj3oDK3TwD8KvMfFNa6wV/p6QhNLw1lJROSc5zlJKBLmTSdCi2tod0XtR6KZriGwx5Oi02bJ0Zvbx0KJ1Pc2Rg1DPUP7Rt6kBTz5V0ynS+WFL7Pank9GdK3WdbBhjVkGu7tumYwFPr2xmDmxwC9OYMIrpVKTnEzIfUKsw8A3ABEZ0G4E8A/KjhTFy/m8SXDWVzRjgwEoThQgRM857KHQC/ycxfIaJTAdxGRDfX+97JzL+3fD16OqqV538MwJMA/BkR/UgtPIIgjJwCmiMIghBEgN7cz8wXhpyLmb9PRJ8D8DwApxHRtPYanQPg7rraEQDnAjhCRFMAjwXwPdd5RySH6sREfYRtst6aQkBMI3OXtddHqpcodWKiLVQuxKWce+82L49eJ6RMPdZ3PVPYnKtehEXGFaZisrqUCGshYJ/PY+SAme8BcE+9/TAR3YWFS9nEJQCuZeZtAH9LRIdRrVb/hfRW7DVMFlyTZdOnOaFe2xz9KJVnzNXu0PA607Eh1zNdx7Uv1IJr8iKZtl3HBnqhbSG4JcJdIsnVHKErXOum2TwpOqFJGlzHu8gJ9zWRGiKXoqsmSiSTMEW7hETAhPSpLPVitcVXp+BIIVdviOhMACfrQdEBAD+FKqHCZwG8DMC1AC4H8Kn6kOvrz1+o9/85Mzs9RpJ8QRD6RDO+d71CT1WlpfxxAF+qi15HRLcT0YeI6HF12Tz+tkaNzRUEYez4NEcQBKEU+XpzFoDPEtHtAG4BcDMz3wDg9QB+ozbuPh7AB+v6HwTw+Lr8NwBc5bvACGXPZqlNXeA1xrqRYqlN/ROYjgtNtGCz6OrkWEtSUui6LCiqR8j3nfksMabzBM4BCP1zpf5ZCcB+by1vDC4RnQLgjwD8OjM/RETvBfAWVLG1bwHw+wBejYT4W6HBt0SAq8ykOTnenFTvtOtYE7Hx/T6tSb3nUGuqrSxlbpHrPK5r9nweQJjmCL1C/1GcDCwzRdQ0dXVKeUtyCGlrisbE3q/tOdfLfZ5lHy5d2mfZTryEuh3qjV7SJdcUHgeZesPMt6My+Orl30QV7aKXHwfw8phrjGhgpHZSXALhCmEp/XWk/IPMcTPbBkuxGaJSCHHxxgiJbxDkC3tp9ukhLoGDNFuoi36IqV7OV0oAJt5azhjcOrf/HwH4KDP/MQAw873K/vcDuKH+eARV/G2DGpsrBKH+9k364lvHSK8XSspgKPd59xlk9OuXyIZlu67peqaORcggyKcfPsOMaZ/jejZ9cd2mT3NyjDF+zRF6QfNHdiWYcpWZDMdN3ZR2pJ4n5Measo5R10bfkDJbP8SXAMakKab+U8Dai7G26dDyFAagNyMaGAnCCNhAljWlzs//QQB3MfM7lPKz6vlHAPBzAO6ot68H8DEiegeq5AvnA/hyegsEQRgUmZojCIIQzAD0ZmQDI92aot5eaNKF1Il6KaFy63Iz50yC9l0/1ppqKmsz/EW9ZuR5fF4kU70U8qwpzwfwCgB/TURfrcveCOAyIroAVZjctwC8BgCY+U4iug7A11D9QF4rGeli0C2wphA5tawt721OqG6bk6FDQ3pjCdUeW5kvuUvItdXzuK4ZGGoSGkrXhlW35xZcQUf/3cXoTYjXVz1PbFtSzhFzbKqH2nUOX/0YvckNz7WdOyGxi15uOzQplM7Vn/TQc70Z2cBIEAZOpjWFmf8C5p7YjY5j3grgrelXFQRhsAzAgisIwkgYgN6MdGCkT3Y23aZp3pF6bA6hcam+Y0IJTYnrir8t5YUxnc8Xd2+y3pri/U3X88XsuuJ4mzLDOCJ0DkDKXAEXBEBS5w6EZl6jSuh8xRzvbY6WrHMydKqnOtQb5tMcl6fYph+mbVdbPFZd1zwhyyHGfS6rbiyiOQNB1RvXUgCuJQNM8470412U6Md05aGOOYcNn6coZO6yrR8S28cxtcdzHz4vURfeaJ0B6M2IBkYm0VAHSPogSBWIWJer75iG1PCWEOHwuYxdYmFzp5uO1Ylpe0jHZR/MD7sv/C6ks2O6tsfV7eq4uDomtrJYmlSWwsDQ/2gxmpNjpEgZBJX8gfmyXMVqk4/YEBPbgCa0oxJqeIGhnsXgYiuzhqwEnMNV7kM0Z2DYnjeXBjXYntdUSvRlYo8PTTpVqg22a5i0JTfk3zUYMvWFPEZdU1moccarS03EfeR9DkBvZB0jQegTjTXF9RIEQSiFT3N8hxOdS0SfJaK7iOhOIvq1uvzNRPQdIvpq/XqJcswbiOgwEX2diH6mhbsSBKGPZOpNF3Q+biOi/QA+j+ormAL4JDO/SauzBeAaAM8G8F0Av8DM3/KcGe6Ra2iIS+oE4a6TL9iODbHU+qwwpdzMej2TxcMVPqefwxfWoh/vqxdo0VX3hYS/mCw2oQzAmjI0utGckIQvMZOhY8n1DsV6qV3nT/EixZIS4uLThZQ2mDQr4NxtWnVjydecHQC/ycxfIaJTAdxGRDfX+97JzL+3dDmipwO4FMCPocqE+WdE9CNjSfrSvt7Y/lf7pg7o+0otD9DQh+kCrmvlLg/gCmPzJU3weaP185siW9TzGK4TqhkuQnUJwMY08XEdQB9nHR6jbQAvZOZnArgAwMVE9DytzhUAHmDmpwJ4J4C3d9xGQVgPGxCPUXlEcwTBhk9zPDDzPcz8lXr7YQB3ATjbccglAK5l5m1m/lsAh2FYmHHAiN4Igo1MvemCzsdtzMwAHqk/NkHarFW7BMCb6+1PAng3EVF9rAd1lB2afKEhN/52yPH+pe/bNxHa5ylyWVhM11H3J8xFCrSSJNcLZQDWlKHRnuaY/lhjTr7g81Kbrt+n5Asp8xZt27a2ePQlx6rrOrYnXmoiOg/VqvRfQrV0wOuI6JUAbkXlVXoA1aDpi8phR+AeSA2K9euNKflCaL8olFLeoZxkCSW8SD5yPdPNvtg5jb7rRWLzNrs8z75+TyoD6OOspXlENAFwG4CnAngPM39Jq3I2gG8DADPvENGDAB4P4H7HWbEQgtgfT8kQDziu31aHxTfwaTusBYZr2B7mlEQL+nE2oQkVH0cIXWjno81OSk+sJmOiHc1RcYXItZV8wfcj66sxxnesixgjTLPPZ1BpPrs6Kj7Di3r9lvRFP5ftGrH4NecMIrpV+XyImQ+tnIboFAB/BODXmfkhInovgLegGhS8BcDvA3g1zMsJBBg9h8N69cZVVjr5AgzXUEm5lu+YthK7uLDpTqjexF7HdB71Wh6NSdUbfb9j3yQnlK7nfZy1DIzqWOILiOg0AH9CRM9g5juUKkHCSURXAriy+vSEFloqCB0zAGvKEBHNEQQLfs25n5kvdJ6CaB+qQdFHmfmPAYCZ71X2vx/ADfXHIwDOVQ4/B8Dd0e3uMaI3gmBhAH2ctTaPmb9PRJ8DcDEAVTQa4TxCRFMAjwXwPcPxhwAcAgCip7E71MM1Sbo0tnOHWBJirA3NvZS2AKXgs+Q2n00WFleZLbxO3x86wdGTcCHWzeyrFwuh94ufDZnuNCeUdSZfWJeXuiHnvn1hc+rnEH0JaUuIlykwfa6JGH0p7aXO0BwiIgAfBHAXM79DKT+Lme+pP/4cFs/b9QA+RkTvQJV84XwAX05vQX9pT29iQ+T2SvIFn4c6lJD+jEl3Qvsrpr6JHlnj6uMYLhPqCXJh81CvXIMxmcb+fmoG0MfpPPkCEZ1ZW1FARAcA/BSA/6ZVux7A5fX2ywD8edj8IkEYOARg4nkJUYjmCIIDn+b4eT6AVwB4oZaa+3eJ6K+J6HYALwDwrwGAme8EcB2ArwH4NIDXjiUjHSB6IwhO8vWmddbhMToLwIfrGNwNANcx8w1E9DsAbmXm61FZnz5CRIdRWVEu9Z9W9c/FpuZOsTLEWBhDy2PO7YsVdnmTulrgNcTCYisL3R9q8TVFLiiHpsbk+qy8sWyg99aUAbImzdGfwVLeIRN7zUvts+jm6kvz2WTNVdsQoD+lPEG283gu7yVTc5j5L2AW2Bsdx7wVwFvTr9prOtCbBp/nqHTyhRJ9lxS98fVXQvpCpe43xlPUfE5JvmDSloQlRvQ6sf0Z3zViGUAfp/OBETPfjiprjV7+W8r2cQAvjzuzbx2jWEIfJtc1S01+Vidtp54jhNL3bAph0ff5XM8wlJkSLcBQZnE965cr1UmBoV4sA5iYODS61ZySRhlg0bEJ/UGlGmMaTNcJndCcY4xRr5V6r77wuhh9aeq7QnXVcxaYDK3vjzlWNKc3rKePE5pUoXTyhRyDTAipA57SSRhMemI6t20QFHLu0H6NpVkuLSiuQTuYjjj5wjrWMRIEwUZjFHS9BEEQSuHTHEEQhFJk6g0RnUtEnyWiu4joTiL6tbr8zUT0HS2ctznmDUR0mIi+TkQ/47vGiGRvXakuXNaAktaUdYeuqITec4lQOhjKQpIzNJ87TM0t1ts9RluaY1vZPicsLqedXeiqy/ob6gWzfVcmXdDr2Sy9vv2eEN3mPccjHXu+WERzBsZQ+gIh+1NYRzivzUsU4nmGoczUx9GP1R9yT2KXNvsz+m1MZ+tM172Dak20rxDRqQBuI6Kb633vZObfW7oc0dNRhar+GKpkL39GRD/imtc4ooGRIIyAAaSyFARhRIjmCILQFZl6U2e6vKfefpiI7oJ7gehLAFzLzNsA/rae1/ccAF+wHTAiOSw9xygU11fYhvW2D4Tes8maou+LmWMUO3l6jRYWsd7uAdqa15hrhU3RpBxCYv1t18255xB9UctDNcfmmXZ5ngynNFpalfcQ3RDNEeb4FrHXn8OY+UT6HGZEHJsSNdMWoXoSe7+hSRhMniCbt9mkR67zWC4d6nku4Y2u3zfW6zFanIroPFTz+b6EKjvm64jolQBuReVVegDVoOmLymFH4B5IDb6HrjDmULpGDPvCOkLpfJ0U9VwtZqDropMyoqdyb+B7nn2Dg1h8P5A+dVRKYWq3q7MSY4RpPu9zlJk6Nz0wvIjm7CFUQ0ysprjqn7SUN+QYYkKOjyE3s2fIwCnUoJ1i6PXpDQzHFEjsUrhsMp1hMskYGLn/hGcQ0a3K50P1el7LpyE6BdWi0r/OzA8R0XsBvAXVQslvAfD7AF6NwMWUVUQOBaFPbECst4IgdIdojiAIXeHXm/uZ+UJXBSLah2pQ9FFm/mMAYOZ7lf3vB3BD/fEIqsWUG84BcLfr/CMaGJUOa1Hd0a79LlJD6UzH6WUmV3AuvntW69goFUoXO1Ha4SUCFnnzS1tT9mvber1YxHo7IPropQbcberTxO0YQkLp1Hox3unmsy/cpb8WXNGcvcC6/1CpnqEu2lxivaMG2zlKRMCE6s0UrSWOQmA9Y1nlaJlMdzBJjWLK/BkTEaFaB+wuZn6HUn5WPf8IAH4OwB319vUAPkZE70CVfOF8AF92XUPkUBD6BKH3i58JgjAiRHMEQeiKfL15PoBXAPhrIvpqXfZGAJcR0QWowuS+BeA1AMDMdxLRdQC+hmp0/FpXRjpgdAMj3Qvh86qEeEhSLKyhFoeYY031Qtpt+g5Cj43BZb1V64SUhaS8DPAUdWWp3e+oFwsBmCQeiyrHP4BrAPwggF1U8bnvIqLTAXwCwHmoROPnmfmB2vryLgAvAXAMwC8x81fSW7CXIAAH4J//F6IzKfVsjG2OUY4FVy13WXV98wAsFlz9EkP1GGVojtAV61rEvmGdc41i25pLarKX1MQuTf1mu6fzF6fV/6bpdIYpMuYYZegNM/8FzGJ8o+OYtwJ4a+g1hvhf0oJLNPbBnLGlLVJcyimiEToA7ILYToq6LzTURT1HgU6KOqBxDW5CB0GmerHkW1NsOf5/CcBnmPltRHQVgKsAvB7Ai1G5ls8H8FwA763fBS9dZ8IsGQZSEp8RBrDrbYiG5UyGVstNWuILd/EYYEL0YL+hLEabuhgYicdoIKyzy5Y78BlSd9PU1hKhdKF6Y2lS28YUX1mdiW4ynWGSMzDqud4M6ZcqCOMncyK0I8f/JQAuqqt9GMDnUA2MLgFwDTMzgC8S0WlarK4gCGNGki8IgtAVA9CbEQ2MGuut6h0KpZQXKcUjVOJP4Gq/7fso6TnzWVdMVpSUdLqeBAtrdzMbymIpOL9Wy/H/xGaww8z3ENET6mpnA/i2ctiRukwGRl7a8hjl/ABydcaWzrdtUu45NZTOZJm1hbYkhOqGepVDPEv7Y87nzEBrZ91z+oVASutNbMRJqkeoRJu7jI5pI123L7FLs29NiV1MHmpD2UYpj1HP9abnzROEPUbY4mfePP+GHP+uK+ok9rAEQRgcssCrIAhdMQC9GdHAaAPVRGjVohCbgCDF26Rfy3Sd2GNSSfEO5VhiYlPoxnqJ1LIAb1GolcRlgXXF9vtSc5vqxRJmTXHm+Tfl+AdwbxMiR0RnAbivLj+CyBz/QoPpj1Uy8UsMOdZa3w9O3d9WwpdYQr3UofOJ9P2AVXNcHp61eqnXkz5X6Iqu5zQ2+H4cfZhbFKK7oRoUqqUu7VDLQhK7ACt60yttqTYnjcdoMltbuu4u6HnzYvB927EdloY21jEqISQpk5lDJkm7zq3Xc11f39aPNQmEWi8hbM60L3Ygo5btV7Zdx7rqxZJpTbHl+EeVy/9yAG+r3z+llL+OiK5FlXThQZlfFIraUTENdPTnrfTgQL2GjdKGmRKGlBLhML5QXfWzafBq6qhErIXWvIdoSY4xJuIaG/tPAKhSUUYxAAuuACz3cUo/S67+go/SGuMix3jdHA/LOWK11Bc2p+6LTOzS5oAnKbHLYv0iAJhgB1lZ6XquNyMaGAnCCMi3pthy/L8NwHVEdAWAvwPw8nrfjahSdR9Gla77VVlXFwRhWAzAgisIwkgYgN70vHkxuKy3tnTdOaliXYSGmOVcR60f6wHyWV1K3LPNiuuy3nostuopSltO+pSuOy8r3V/A/kW+yFCfAbw2/Yp7mRIKn+NFStWUtidD+/TF5F0LxXTPPi91iAXXEzZXyjKrepdNWpKhQ02Yi3iMxoovwVRqtAiQrmN9CKNTSY0MCj2vfg6XhzohmVSshyc0nDc7scti/aKqKDP5Qs/1ZmPdDRAEQaHpa7tegiAIpfBpju9wonOJ6LNEdBcR3UlEv1aXn05ENxPRN+r3x9XlRER/QESHieh2InpWS3cmCELfyNSbLuhJM0rQWFNUC2yoVdPlXQnF9lW6LCqlvn5f+03fg37tNqy3er2EpApqdZNVw7bfVdbn5AsbSPc2CR3TJHzZwarGxHip9WfGZ+30WWm70Bz1fKlJXULnC4R6vqaWfSZrbUNEOu5Y71Bb3iajB+rkPFPKBJcAACAASURBVP4/egZGvubIotKdYEow5SJ3Pk4IKf2eXLpM3d1g05bQ+UT6eQLmFcX2XVosa+YvzpMv5HiMBtDHGdHAqEENqVOzDrsGB6YJ0znkiEXMn8TVIWmwDYZM4XU5hAySpogaCOmnbevB71PyBQA8ST9W6Bo9nK5EVrqUZ3GImmM6NhSf3mQYY2xaEaIbps5LJ+Eus3mYSwo5miOLSneFK3Q3xshQOvlJSLlOiOb4jLU54byhmO4nVGcCE7vYnusS4f2FErtMlPWLgGZglJ5IqO99nBEOjARhuPAGcKLn1hRBEMZDgOZ4101rkEWlBUFwMYQ+zsgHRs0ofR8W3iOXl6hEGkgbtq860IMSdE3TupxTxFt5c9vRXLehJS+Rb3+MhSXWOxR6jUh2NwjbW77f0om0kwstEeqlNj2LpdLPmsjxIoVeL2bNorZ01uSxU/cF6E+IfsRaXE3JXUJD5CKtuhvTGTb3p+mCX3NOONdNa5BFpbsgxEOtlpXs7+QmWiidYEq9buk+TkgCrUwPtetZt3mPXZrRVmIXJUx3c7INoErXvZXYDwnQm6TzlmTkAyNBGB6zSc/9zIIgjIpczZFFpQVBCKXvfZxxDYxshgMAq6N2dcSqe5NUTCcM/dpyvEEp2K4X6lnSibn3xHtVrRamshTvkFo/dVFG39whk3VGfU98snaxgW1semo9mnZyoQN8XuqcRCghPyqbJa4tqVfP65qr6bpf/VjXNVRcyRcSvNQpHqMS+hLquTZ6oKrvdXP/NiaTtDlGfs1x640sKt01MfOoXftsz65pv4u+JpiKPYerraHpujM91KWTuNi8Ufr1nHozW0rTDQBbOJGcfCFXb7pgLQMjIjoNwAcAPAPVk/1qZv6Csp8AvAvVwpPHAPwSM3/FfVIs/qjNbz54bpjrh9xmdpV1ETqIaeHefQMe176cwZKvM9OTUDoAmI3MXtEHWtEcINIYY/rhtp18oUvjjKmz1uD8ohB/z6b7zVwHTT+1bWDk67ykhrGEDqCW6tUdlukMW9hGKpmaI4tKa7SmN6tXqt9Nfz9TmK7tOSzx/OWcLwbXIMg3+NHP4cP2vdr2e8Lm1M8+TXANZFyaEaMtAceqYbrNYCgrKx3y9IaIzgVwDYAfRLVs2yFmfhcRnQ7gEwDOA/AtAD/PzA+kPGvr6oG9C8CnmfllRLQJ4KC2X9J5CnuSXWzghNdjJCQgmiMIBnI1RxaVNiJ6IwgGCvRxWl8eoPOBERH9AICfRHUTYOYTWJ1tFZ/Os8mNvoNVY6xqOEjPMJhPyLcd8xcJuZc+3e80oSzXO5RjTVlDKB0AzNDv+Nuh0ZrmRHupTX1HU0ivj65DdGMJDekFOrnnUC+1r8y1P3rdIZj1JTT17v7qe9tXW3I396eHtgCiOSVpTW8Ah+NVfT5Uz63JM52TBCUnbC5Ht3zh/6WTvYQkX8j0UPvKYqNTcrTF6KGuvnM1THcTavKFHA91ut50sTzAOjxGPwzgHwD8n0T0TAC3Afg1Zj6q1IlP50lYDIyaZ8SkCb5BUuxAwvcNuvbnfvum4/X2h3qWQ/aHXN/U+XDt8w18YCgLHUyluJRNgxuf4BjFpRHjuJCCKv52K+oYwUs7mqMaYxpUzYk2SqxpwFPaGBNFS/cca1gxHWPTnNhQutAQXJ/mLB1b/SGabFGTSXpoi2hOcdrr4+jParAhxhTmWqr714Vu+a7hC+Nt+/qOy8UMjHz9ilANitUWoxGnGvhMp4s1i8rNMSqjN20tD7BRpHVxTAE8C8B7mfnHARxF5fJSCUrnSURXEtGtRHQrdv+hfEsFYQ3M5hG85pcQjWiOIDgQvSlKO3rDojfCOPDozRnNb75+XWk6h748gONy0csDrMNjdATAEWb+Uv35k1gVjSMISOdZLzJ3CABo80Kej3b1sJYpzF4kk/Ul5xtJ8Q6V/AvY2q/fu2lfTltiPEchllpTme4lCrXAuMp8buaQMovVZWO+pkisx4gCstIJkbSjOfsCNaeEZzqGFB3KObfrXrq+zxL64vMYhXqR2gql27/Ql63mHdvJoS2iOcVpR2+mF/JKVIxK0LPW9zDcXHrgdS/RN0npf4TqUqBnaaNO7DKZzuZrFpVIvhCgN95109peHqBzjxEz/z2AbxPR0+qiFwH4mlbtegCvpIrnQdJ5CnsGwgxT50uIQzRHEFy4NUeIQ/RGEFzk6U3A8gDA6vIAUc/aulTvfwHw0TpbyzcBvIqIfgUAmPl9SEnn6Uu+oJepd+7yqKSQ4x2KaYNrPpFaJ9aLlILPa9R8ji2zWWJKWWWA8Pjb4HonMZmmWVMYJFnp2qG85qjzGkM0R9027cshRXNynn2Xp9m2r6T3yKQLpraE6kuIzpRMuW3zIrn0Zb5voS/zd8ywmbhivGhOK7SjN/pva11e6RhK9jL7ck+AXzNgKIvxQIf0U3zeaJN++bzbytpoALC5tZhP1CRf2MzwUBfQm9aXB1jLwIiZvwpAd5W9T9kfn84zJ/mCa+DgI6Xj0fYADPDfWxf3bBIIfTtVXHzH2+rFJF8IzfainW9j/wls7U8NawlZ4FWIpRXNUY0xJiOFK3zXZ5hIXW+xbc1xnS9Fc/Rjfddw7fcNlnKNLab9oeEuOZ2XlbLZXF82J4uOyiSx1yiaU57O+jgNqt6YwnlVSgwucnUmpF6oJtjup637jOnHNO8pZcZBi3ZMitHFdex+QF0bDVjOQNckX5hmhdLl6U0XywOsZWAkCIIdCV8RBKFLRHMEQeiKvutNv1sXg2lNkQabFynW6ukixYLSxrcf4gVLseiaiPUclbbo+vanWHm9abi1ektllQt6oqwUHYss8DogXOsY2bxDrlBelRzvkG9/Sd0JDZvzWXpzLM02XWk+l7LqhhxjC3cJ8T5bLbhN2WLtokZf1PS5W4mhdKI5AyE0lM7Ux/E9ay7vSqrOhO6POc6nlV3ep68fAkNZTN8kVFtM3qHkUDpeWhsNWE7N3YTrbuJEcujuEPRmPAMjQRgJO5IiVxCEDhHNEQShK/quN+MZGDXx/kBYrK0t9jbnG0nxDpW23qZ4inLbEWPFDbHemsp0S0yKxVcvC43d9darLLmLFLrb89j/WCpriiy2OAjUmP8Gk4XW5EWCoyyFHH2JuX6JhC8p19WxaU6sVdenPT7d8Fl9m/qxiRuMnqVKU7aWVqJfpNHNs+CK5vSe0DmNbXmoQ+qHniekXsocoy7uM6fvElNWMl138Byj7aVFo4FGW7bn29X7Ttacxr7rzXgGRq4MUfq2bV+pbyNFNHKunZNooa179g2M1M+h4uI6pouBkbWsngA9f08PawGQvagiEX0IwEsB3MfMz6jL3gzgl1GtyA4Ab2TmG+t9bwBwBYAZgF9l5puyGrBXMHVUXJ2SGM1JHUS00WEJDXkrEaobE14XqzkmDYChzDcwSum8OAc8hmOX6lUhuk2IS7WuSD1IUt5TOypAvuYIHdH8DkNCd9s0xKjtydmfcmyOcaZkW0J1BIayED0JNZy4tCW4P1Mbd6ezpbXRmvdFyG5Ttt4+TtuMZ2AkCCOgytiSbU25GsC7AVyjlb+TmX9PLSCipwO4FMCPAXgSgD8joh9h5rSUM4IgDIpCmiMIguBlCHoznoGRar1tsIWzAH6Xaw45VtuYv0iI16fNVJYqLpdzqMfIVNZ7j9HJuSW3sbRsTraTU1kC+dYUZv48EZ0XWP0SANcy8zaAvyWiwwCeA+ALWY3YC7iSL8BQ5tOcUG9JjpU2RfF9x+SE6oZ6xlz6YipzWWtNZakeI5OWuPQlNvnCFGjS524p64qok6Cb9zFbcAWY+ziqlyjWQx3bB8j1DuX0NmOTKoTUcRGiNzEak9I3CfEYhWqLzbs9366+nM3929jcWoTnAsuJFpZDd9OmCwD915vxDIwEYQS0nLHldUT0SgC3AvhNZn4AwNkAvqjUOVKXCYKwBxhClihBEMbBEPTGOTAioh8AcCYz/41W/o+Y+fZWWxaLy2Nkm3ek1ytF1x6jlDpdeozUz6keIyDc2hJbFjoHYKneIuGCaskFmvjbdGtKQMaWM4joVuXzIWY+5DnmvQDeAoDr998H8GqYF0rjwKYWZ1Ca45rX6JvraLLcxpqpUi20Jc1hOXMYSy0RUMojneMxKmHV9XikJ9NFnH8zn2jxnmfB7XuWqLYYlN6EzmkMTb6QowOlvEOhnh1fvVQvko9Qvcn1RpvKXDqi7otNvrCkN3riqBNzTVkkXNhZ2m72TTOiYvquN9afChH9PID/AOA+ItoH4JeY+ZZ699UAntV+8yIwZYhyhbfAU5aDDIzMZWMYGGkZojb3byv5/her0LecIep+ZtZXVXfCzPc220T0fgA31B+PADhXqXoOgLtjzl2KwWmOzxijl+nbzee2OiilOi8mYkPkYo4NwTYYKjEwstWLzSyX1XmxG17UsLnF+3bmOkb9jvlvg8HpDbD621p38gW1LbH7Uo8JCd1NvbYNW/+mtCEmNvmCTUeCpwYsJ46qErvo2nIC6nppzfuYs2BuOPa9EcCzmfkCAK8C8BEi+hf1PpOVWRCEAswwcb5SIKKzlI8/B+COevt6AJcS0RYRPQXA+QC+nHUD6YjmCMIayNEbIvoQEd1HRHcoZW8mou8Q0Vfr10uUfW8gosNE9HUi+pmWbikE0RtBWAOl+zelcY2pJ8x8DwAw85eJ6AUAbiCic7DGUBsrKdZbV1kO4jEyl43CY7ScOndr/4n5mkWbyA+lK5GxhYg+DuAiVCF3RwC8CcBFRHQBqmf3WwBeAwDMfCcRXQfga6h+Fa9dY0a64WqOaeKzqcxkwS1B15rjOqaLJQJ8ehOrH6Zj9Houa63Ls+Sz4BqtunaP9Ba256EtpVaiz9ScqzHMLJjj1xto2z4vi4tUD3RJz01u6G4IofeRoze+sk6SLzA25oldFomjNpXIl+rdlOxlOzl0d+hZ6R4mov+uib1l5nuI6CIA/xmVqAmCUBgGZU9MZObLDMUfdNR/K4C3Zl20DKI5gtAxuZoz4CyYojeC0DEl+jht4xoY/SsAG0T0dGb+GgAw88NEdDEqi0+/iE3XDUu9EojHaLnMZEVRP4fG5Pr2p1hlmrKgmNyT2HfKowCWU+eqcf5A3hwjoP+pLFtkWJqjzms0zR0ylekM1WOUUqek5qzTY+Sy6tq0pKBHeoLZiub0dIHXvmfBHJbepCRfgFamb+v1fKR6jVKvF5qGO8RTlOK5cvVd1LIYHQktM81LDOmnhHqR9m8vzS0ClucTNe8T7Mx1ptGYKWbISb7Q9z6O9afCzH8FAER0BxF9BMDvovpKfxfAhQA+0kkLQ3ElX9C3fftySemk5LibQyY6xxyTQoib2VYvVFxcx7Q6MKo6K0sToZXwFj2sZQsncBDHkMIQ3MxtMTjNMXVUGroeGDWkDpBC9CenA1J60nepgREMZWsbGJ1UskOFGV5KrGMUoDmjzII5OL0xGWJCpw7YBkmplNATW73QBAqhCWBydCdXZ5r3lLLYfopPb+ZlC+OLGkIHmLVFTbSw1Y/Q3dZxJV9oeC6qrFV/CeAWVBmrnt9mowRhL9NG8oWBIZojCB3i0Zv7mflC5eUbFIGZ72XmGTPvAng/qnA5oEdZMBVEbwShQ/revwkZS58E8CiAA6jGnX9bi12/aKy3QFjShTastykeoZJW1BTvUFvWI5/HKMfq4ttfzGO08BQByxOh1fCWVYturjWl3/G3HTAMzelTKF1D2x6j1P1dJ3sZlMdokZp7M9AjrYbQVftyJ0OX1RwiOqtJbIDVLJgfI6J3oEq+sM4smA3D0Zvmd6j3cUzpuvVtvV4J2ujXhB7r05u27tO23XxO9SLpemLqpzg9Qcq7sT+jr1m0vbT2YlV9tqQpzfukDptTy/ISTKXrDRF9CMBLAdzHzM+oy94M4JcB/ENd7Y3MfGO97w0ArgAwA/CrzHyT7xohHqNbUInGPwbw3wO4jIg+GXcrgiCEUkXv2l97ANEcQeiQHL2ps2B+AcDTiOgIEV0B4HeJ6K+J6HYALwDwr4EqCyaAJgvmp7HeLJgNojeC0CGZ/ZurAVxsKH8nM19Qv5pBkZoF82IA/wcRed1SIa24gpmb+OK/B3AJEb0ipPWd0lhvgXTrravcR4rlpI0+bqrVNuW+Q+/NZUEx7fdZeUP328pckxprqwqmO0ueIgA4eMqjc0/RQdRJGIwW3TxrSt8ztnTAMDSnT3OMci23JTxGvnp9TL4AQ1lnHqNaa5TU3Ksx/26P9LIXKWfBxaysdEPNgtkwLL0BzB4jGMr033lXHurQ/SmUTM0dik1vSnqMdO1w6U2ox0jt12iLuW7uP2HwDq3OJ1r2UJda4LXfWTC9P1tFMNSyfk1KBIAJgFPg75CEJl0okdu/DTdzKG0mZIgdELn2pXZcSrmr52XLnZR9hkQLm5NtYydlMSGxKjuAY5KVLoPBaM5YBkYxeiRZ6QoNjHhJa4A6A92W3ilxG142l0LpRHNSGIzeqKG7ze9JHQTpA4YYvTGVlzCqrMv467tu7P3G6E2K0aV5jx0YLRl1lfeVTHU7SzoDAJPJbB4iZ9Yb9zpGqcZfoP9ZMLvooguCEMgQMrYIgjAeRHMEQeiKIWTBHM/AyJWu2+cl6ssE6NA6DX2x3gJ+i0rzObYs1OKbU7b/JFDn8d+nTkzUwloq9/Gy9fYgjuFAnZp7EV63qJfCXrbeDgpf8gV9WzxG5YgJbdG3bbrgq2ey1oZ6jOZlC8/0PmNq7lVrrcsjrYa2pC4RAIjmDALXWo2hGmR71l3Ppk8fcvfHELpkgG9/SH/Ft38QHiPDUiNbbu/Q1oq2bENP9pITSgd49eZ+Zr4w5nzMfG+zTUTvB3BD/fEIErJgjmdgJAgjQLLSCYLQJaI5giB0xRCyYI5nYCTpuiVdd3DZ8nyijelsPiFxWnuONpUV51WLrZp0oSozT45u6sXCIJyQsJZh4LPg6mX6tqsslJz4/hztWVfq7hitaT6nWnDVbdt8IpdVd8ljdLIuW3imGwvugceoiVxMc4xWvUPmeQBpXmrRnIFQwmNkwueF6ZvHqM39QHhfrQ2PkU9Hgj1G9qVGzH2XRR9Hj4qxzTFal97UWTAvQhVydwTAmwBcREQXoAqT+xaA1wBVFkwiarJg7iAwC+Z4Bkalki/E/tPOEYU2vv2cDkmJe/d1UvTtVHGJFp/FYGij7pxM6vet/dvzbdXN3ExMbEJUNpXsLAccWekO4ljyxEQGSVjLUEgJ3y05MErVnnUbY2Lq6HQ5MLJpTujAyJHhcjnRgmpQabRG7bysDoLUsN3mHKlZ6URzBoJPb1IHRr79e2VgFHsfbQyMioTSnTTrzWS5n2JfI21Zl9R6aijduvSmiyyYIesYFYeIfo2I7iCiO4no1w37iYj+gIgOE9HtRPSsdbRTELqGQXVEr/0lxCOaIwhmfJojxCN6IwhmhqA3nXuMiOgZqFaofQ6AEwA+TUT/FzN/Q6n2YlSxgOcDeC6qjBPPdZ8Yknwhps6oky8sLLVN6IrqJZpMq5ufp62czjCZNGkrTZbahQXlgBZKdwDH5tZb1dqbOjFRrLflaU1zQsN3QzWnRLp83/6heqlD9EUti/FON+85HqMlS689VHe+TtGWWV82sRq+u/BEL7RH1Z/mPSe0RTSnHK3rTYrHyFVmKw/ViiHpjate7H30zmO0CJ8z640rlG417b/6vmUoG7PerMNj9KMAvsjMx5h5B8D/jWqylMolAK7hii8COI2Izuq6oYLQNVX87abzJUQjmiMIFnyaI0QjeiMIFoagN+uYY3QHgLcS0eMBPArgJagWZFI5G8C3lc9H6rJ7YGPdyRdSvER9sqZ0NSE61Hpr2ufcz5WHCFjyEk3mnqJq33Q6m09CbLxEE+yspMSdYrZkyQWqeUWrVt7VFN45qXMZwE7PrSkDpB3N8c1rzIn5TyV3XpGpXo4VNvYcMYTG/JvKUqy6Tgvv6nwi3xzGVX05NtchdQkA07wj8+r0qV5q0ZzCtKM3sVExXUTHAMPp4+Rg6+OkRsAU9RitJlpQPUVAFc3iWmpkeY7R8nyiTZjmGOXMaey/3nQ+MGLmu4jo7QBuBvAIgL/C6s85aFEmIroSwJUAgCc+edFJaSgVSqfvT+1k9CWULqWjkxK+01oonXsQ1DCZ7iyFywHNas/1IKlOrrCJE/MydYCku4+3lsJaFiEseiidus5ILIwNyRBVmNY058wn5ydfKPWPvGvDTErnpGSnxWd4UT+HdlT0c+j19PWJDDq0b/+JJSMMsJzhUtUcs5HFn5VuuZOzeD+QbIwRzSlJa3pz+pPtxt+u9aYh1xCTQ5cDpBS98Rl/XQOfqVa+UraaTMqd2GXbEDZnDq/TQ+lUo4spU10sQ9CbtSRfYOYPMvOzmPknAXwPwDe0KkcQsCgTMx9i5guZ+UKcdmZ7DRaEDplh4nwJ8bSiOT8gmiOMA9GbsrSiN6eK3gjjoO96s45QOhDRE5j5PiJ6MoB/AeAntCrXA3gdEV2LakLig8riTWaGGEoXsj+GnInOvQ2lsydSALAUKjfV0nCrSRVUL1Fj6TCVNZaTiTGU7pjBi2S2/KaG0lWLn/XbmjJEOtecmHTdIftM7KXw3dB7KmnBXQmlU7QIAKazFWvtVPFcN1ZbU6iuGoKrakpquu6DeDQ5tEU0pzyt6I0pdDdFb0p4U0r3a6aIb1epxC4uYvo2zWeXjqj1VjzQlm1D2JzJQ+1O7GIK+XcvNaJ6o3VdUhPAxDIEvVnLwAjAH9XxtydRLbj0ABH9CgAw8/sA3IgqLvcwgGMAXrWmdgpC5+RaTYjoQwBeCuA+Zn5GXXY6gE8AOA/VAmg/Xz93BOBdqJ63YwB+iZm/ktWAfiKaIwgW+mKpHRGiN4Jgoe96s5aBETP/D4ay9ynbDOC1USfdQHtzjGLJibvtYo5R6LExZM0x0kKrC3qHmkVaF+878zj/pmwT20ux/02Z2cq7PMeomsD46EpZairLXWzgxG52ZparAbwbwDVK2VUAPsPMbyOiq+rPr0dK2tgB0rrmxHqpJflCPq45nKHeIRjKbF4iQ+r/rdpTpOqQaT5RyBxGVTfUeYtqIobqHAtr7fISAWvVHEGhFb1Rky+EJl3oKjImdH9onYacPk7MOWyEeoxyvdGmssDELnoyKdNcaFN/ZjkN92q67q0lb9NyWc4coyHozbo8RuWZMHDKcWBnAuxot7VD4QKR+hDtpbCWhpDBkFqmDoC0ScvAcoejQZ3IbBoEzesZBjxVxOpyooUqRG7bUGYKpVsOdVFD6Q4q2Vx017OakCEW3iVsH89zMzPz54noPK34EgAX1dsfBvA5VAOjedpYAF8kotOI6CxvWIfgX1dEL9O3XWWh5OhLjv4MIWy3+ZwyCJrXtSdVmKiapHRKdGOM2lFRB0ipnRc1ucty+O76NEfoAFVvTEaXWENMqdDdUvtdlBj85IbuhhhibGWxA6P97sQualKpxhBjNros9jUGFldiF3UawKZifNk0GGKSM+8OQG/GMzAShBHATJjttOJmfmIz2GHme4joCXV5fNpYQRBGQ4uaIwiCsMQQ9GY0AyOiXUz3n6i/8Gr0u6t++fofQvcqAZVnKQc9JGxpn8dcoaWajsL3IzPd63xf5j0D5vs2WF2B5dA4oLG6Lltim/Kld8VDFOMdUkPomn0TLWxOnRxtsvKqVhfVUwTYQl0y1jHaJWw/6nUzn0FE6roYh5j5UNIFA9PGCgbaCqXzWTZzLLN98lKH7AfCvfExoXTzfe5QOZvHGlhO/a/qh6lMnwzts+qqYXMLrVnVlxLhu4GaI6ybNtcxMpXnhN/GniOGEt7o2Pu1eZCyPNSGMiW5gh5BY1oPLSaxiynaRdcRNUSu0Ztlr/Vi35j1ZjQDI0EYB4TdmfexvJ+ZL4w88b1NiFy9wvp9dfkRBKSNFQRhrARpjv1oSfYiCEIweXrTBf1uXQQbk10cPOXYkotup96eKR6Txf7FxLFdl8fFtC/Qu6N7Rxr0hUhX9/vNHjOXFwjQXJXLk+Sc96sSce+mezUtuDo1eoy0MsMirEC4d2hRf9UTZDrWPDnalPKy/QVesUvA8VasKdcDuBzA2+r3TynlcWljhYoNrix86rPYeGBD5xiVSkrQ9RzHFKttyQQMPu+Q+jkguUvIvEY9qYLJI72FE8Yy8xwj+xzGxRIBj851ZWsp5n91wcXUOUYFNOdqSLKX9imRrrtPiaZy6TLZS5TeaPt8844sXiLXfKKcxC6uMjWxizp32pyuu3d9nGKMZmBEtIsDW8cw25piNqs69M1Xrw4STAMnFd+AQ8c3iNEHAsvHZoTPWX6UrthN0/0uH5t/76ZwONNnPYMc4B/kxOzX6/k6LmqGOr1M7aSoaxo19fQB1EGlMxMNIzu8kYg+jirRwhlEdATAm1ANiK4joisA/B2Al9fVJW1sIrSxi+kpj2K2M1kYG5bCdw1JYObbjhO3GkrXQpSk6/faaSidIbkLkDQIAlYNNK4Ml+rAZ7VsNZTOF6p7YCmUbllzTCEw6voj0WRqjiR76YjQrHSmz6WSvuyVZC+pyRfUbWPYXHjorp5tzhfyr2rMaijdthIaF5/YxZSV7sAa+zhtM5qBkSCMAgZwPPMUzJdZdr3IUDc+bawgCOOhgOYYkGQvgiCs0o7eFGU0A6MNcD2aPYHZpLLa7jSLSE2AWXOrdZbA2WwC3ZmnJm5IweUB0tNLz8sL+nxnmM7vb6lc86At7XOE3IVium89WUKD7tVRt1311BA4+/6wdYxM4XVqmm7A7I7ewvZKykvTOkZqvWgY7a1xIxSFNhhb+7eXPLGN1zU4CQzgTo7iw+Wx9nikbaG+IXjDcZ3hyYXvNzC5y7y6xzs0r7eUqGXbqUnLoS2mULrVEBh9zSKT9VcN1VU1Rw+BybfgOmtIspc+sIEqjbPJV8OzjAAAIABJREFU8+xL1+0qs5VL8gX3Pl+I3HzfaurtjSUNMnuJQkL+YxK7uPQmNLHLkod6u+4vxmbezuzjdDGncSO9eYIgFGcXlTXF9RIEQSiFT3PqZC/KK2RQdG+d5AWS7EUQhDl+vfFxNYCLtbJmTuP5AD5TfwaW5zReiWpOo5cReYx2cRDHFl4iKF4iADMsWzAbrxKw7FkqgZowQEWfFxO6z8fi3lY9PjNMjPfV9j2bPELVtt0qa6pn8zCFeodcniXTYq4mi64pTtc0OVqdH5A8ERoQj9FA2NjYxYHHPIrZbDL3vM52Fr9TfU6fOQkMYHpudY9MqHfH5rUOSegCmOdE+uYmNrjmKIZ6ptX79t2zKblLQ0zqfyBMP0yas7nifTbPA9CXCLDNDVATuFT7VsvURAvLc4zSox1a0BxJ9lKajV1snHKsekbmcxojEr+4ymIpNZ/IVC/H65NyHhfBniL74vU271DonEa1b+JaKNrkoVbnFZVI7KKWbR7fRX1wPBl/my7mNI5qYHQAx4yDIXVQpA6cFvXKfg228DjbgGn52PABkj7YM2G63+rY9u/ZNFhyJU0w1bMNlmIHQa5jYzouqqgAlZDoE6azJkI31hSh9xC4+jtPgJ3a0DLbqkPplFBdNROmKTlK6MBDx5XYBXANkuKMMK78QbYBT8gCfin3bbrniWEQNP8ckOGyevevjbZ6THi4i8nIEhqqq098VjVHnTSdHEqXqTmS7KUbaGMXm/u3MduZrmTXXRosNZgGTSZCO6newZAlIjLQKBOEzfgSMpk/9z5N2S3n28uJFAAsDYam+iBoOltJQOUL3VXLchK7LNeLS+wyL9s+hn1H6xt9rOX7stFOH6fonMbRDIwEYRTIwEgQhC7J1BxJ9iIIQjB+vVn7nMbRDIyqULpHl7wozbY/vM4egmDyyoR6dWz1fAkXQjxLNk9QQ3OfxoQLCEsykXLvoWFzav2Q1Nvqts2666pnSqereoncawGoExiX1zEyJV84mGO9BSSUbiCoXuqJpiVLobqNN8mQHMWUBCaFnOQuIXrTsKI7BhnyJYFpyLlv0/3avM/6tl8/zF4iUwhuSHidasE1hcCoiRb01enNobrHYJw0fTRjdCOa03s2JoyD9fIAjcfIt1bjSpKURO+0lYh1DcuQsf5kDpYEL661GvVQOQBLXiJf38Qc8r+qI3o90zSAg0uasboGo9rXcSV2mZcd30VqUAwAn96sfQF7Sb4gCH1Cki8IgtAl+ZOhBUEQwmhHb5o5jcDqnMZXUsXzEDincWQeoyr5gj5/xuRF0rd1fB6ZnPlCOR6nps0+a6vr3nxzk3Lu3ZZ0YXWfO+7fl6QhNsW3Gu/vWuDVNJ/IlAZTtejq8beqJSYaSdc9GFQvtcs7PZ9rZNIey6OmP4OhXp1czVnU3zHOQ3TON3J44G1JYHTU+/bdc4i+qOeJn7foX+A1NPW/bh22eaRNC7yulhnmAcyOYSvVgiuaMwgIu9icbGM2mWI2XV3EXp/XZ1pGwETIfEDAPzfRluDFNxcyBtu8xJDF6XPv05T2Xz/G5x1yzU/UvUS63pjnGO3ANFfRldhFnbOoL1h/UEkcZUrscnC7Ktt3FEAzxyiW/HTdrc9pHM3AiJSwlpUMdMpnW1idjm/wENLRyEnCYLtGSMIFwD248SVeyLl3U4fEdJxvYGMOubN3UtRzmTNJ2QVnOfnCaticK/mCOmFaDW85ODvWNCoOmWM0GAi7899D87z5kr80+JLAuAYgOaG4cQOksCxnOQYmXYts9x2S3KWq59cFUz1fRyUmw6UrBMZleKm0RM96uRoCo4bqzt8fOQlK7aiI5gyCJUOMtlbjbLIIX1XXLdSTNADhAwQX/kFSpCFmMlsJtTWh6oMv02Vb92ka/Mw/ewZBDaYMcyGhu6bsuSFGXVMonToNwLxG2uJ93sdpMtFtI10zBjCncTQDI0EYDWK9FQShS0RzBEHoip7rzWgGRhNDWEtD6NpGKmU8RukTogGzRdRngW3I8YbleYzM4SyA22K7XOZL4e1LzmCvF5oGMyb5wkrZ7BgOPHKyalQ/UlkKLbABxoFac/RwOZ+Xesny6QhB8xHqvVWJSbbgw7ccgD35S0PcPZvu1+el9nmf9Xo+C25s6v/lcJfVNUnUEBdzaMtqau75miT16vP7tpEe2iKaMwg26uUBTHqy1O9pljjCInx1qT9gSADjwpbYZb6/QDKp+kRelvTGlvilISABjLEZgYlsUqcBNOfyeaBTtcUW7aKH36p6o5YtQukW73OdaTQmJ5RuAHozmoGRIIwCBnBy3Y0QBGHPIJojCEJXDEBvRjMw2mvJF3zsteQLvvMsJ18wLcroj9M1J19YWG9PnT1clT1yMn3xM0ZeGkyhMxrNqX5R+rxGs2faNf8xhxStiU3IoOJKAmNbDqDUvQJ2nVnVHPccRr9+rFp4Q1P/q/VNCRn0SdNqfL86AVr1HjXvzRzGg0frmP+jAB6xf19ORHMGwYZhHvVM+d3q8xw3YfZGrzyHEY+lTzNy5l6bCJmD6PNAL+2PlCCzhzp2/mLa4vO6ZtjmGK1qy6rneUtJ4a3qzer86GNKv2fxPteZRieOI10zBqA3oxkYqckXGnxhLYt6cWFn4QObtFCWkPPnDG58yRdc14gJDwwLa/GFzZlFyCU+6nl0IfElZAhPvqCEuswWE6CB9WZsEbrDZ4xxhfQu6pWR4JywuZgBUsjgxhdeVwKf3sTqx/IxtlA6u0HFvI5R2bVG1JC6RmtIDW2RrHSjhsD1b+XE/DlUB0PO7Jc1oaH4oZToy7hJM7C0eZ8+Q0ypMH+9TzI1lKnastx3ydAW3RBz9DioCX0rEUo3AL0ZzcBIEEbBLpCa6VsQBCEa0RxBELpiAHozmoGRmsqywbW2iErJEA8gzquik7UKvQGblbaLe3aFw6nHxVtd4tcFCLXU+JMvaKEuSqKFIhMTB+BmFiqq0BZzwpfw8Lr4hAsuUrUnRHdCU2/HhNflEBo2p9dPnSBt2r+6jtFqmWnStGmtEXVNNFPyhXnZ0ePLWtO8i+aMGlMoneolCkk65Q9Fs+MPo1t/speGNu6zRDKp0P5KaJIoNeQuZR2jTaPe1H2bes2i/aq27BG9Gc3ASBBGwQDczIIgjAjRHEEQumIAetPawIiIPgTgpQDuY+Zn1GX/HsA/Q2U6/BsAr2Lm7xuOvRjAu1BNlfsAM7/Ndz013r/BlZo7NAlDCuuaCB2zr+17tk+O9ltq1Xo2y2+qd8iWkME1qVH1IjXWlK1ZbWlREy2o7w+ufkdBDCCVZV9Zl+ao3qFSmqNbRnMWhXaVh9RzJVow1Yvdp6Led+z8BZ/muBeQ9k+QNu03TZA2TYbWNceUfGHLFN+vJl84WgnDkgW3Sbgw8vS5fWQ9erPsobal7gYiki9EUCb5QvqcxhRvdOn7dc1LBFb7LKn9FdP8aNP8RX0+kapBpoXom3rqHCPjAq/qYq6NtjQ6scYFXrugTY/R1QDeDeAapexmAG9g5h0iejuANwB4vXoQEU0AvAfAPwVwBMAtRHQ9M3/NdbHGzQysCoS+DbQzEdoVrmL7J58/OXGBTQBKJGJwEToRWt32CYl+bj0ML3YQ5BIX24RpXXA2cWLuXm5EY18bbuaeW1N6zNXoWHP05AuhmuN77vRjwwc27Yez2Cid8CU2dCdUc0Iy0DX1/FoS1nkJSb6gGl6W1hVRB0TAsr6oAyTRnK65GmvQG5MhRh0cuJJNlUyAAgxfb0KxrZVmnhrgNurq9WwZc/XwW3+Yrj1xlJo91xWmq+qNcWrAHunjbLR1Ymb+PIDvaWX/hZmbr+SLAM4xHPocAIeZ+ZvMfALAtQAuaaudgtArGNXERNdLMCKaIwgJ+DRHMCJ6IwgJDEBv1jnH6NUAPmEoPxvAt5XPRwA813eyCXZxKh6GOjGxwWZBKZGIIXVCItCOVSXHilLi3n2r0OvbvnVG1Po275Fpv34ek4XFZ3Vpypp03JvHT2KrnjRIqmtZt6Y8iDxrSubPgoi+BeDh+kw7zHwhEZ2O6nk7D8C3APw8Mz+Qd6XBUVRzTMkXQq21vmct3WMUNnHYxxSz6JS3scse+OrFhu34rLqhHml/8gWTp3mxLzX5gjpBeh72sn1i2VPUvJe24LZv4N+LFNUbAmOzTtWtp+Y26Y6awhta/ZK4pwiUdw2EJZJoP6mNb6mR5TJX38SsJ+blAVZDckMSRx3Eo2FrpG0fW9WbR7BIlrBH9GYtAyMi+jeonGkfNe02lLHlPFcCuBIAHv/kg61kpctbxyitk1IyQ5R5X/oisTFzGLrPSrd6HlPWKFO2l0UnRhGX7Xq7CZvbxqpAqCEsJUSjXPztC5j5fuXzVQA+w8xvI6Kr6s+vNx86PtrQnMc++dTW5hil0uYcIx8l5hjF0M0cI9fAqdQcI0PnxTSfyDcwSl3gdQAx/0OjDb055cmPm+tNg6o7pkx1MGzr5C5mX2LeUSi584lCjD2h0x58fRN1ny9Md1FvNfzWFZKrhu76Fqc3rVk0n1u0rSwY7dKWEqG7A9Cb1kLpbBDR5agmLP5LZjaJwREA5yqfzwFwt+lczHyImS9k5gtPPXOrfGMFoWsYwEnPK41LAHy43v4wgH+e08wh0ZbmPObMg+UbKwhd49McIYq29Gb/maeUb6wgdM0A9KZTj1GdieX1AP5HZj5mqXYLgPOJ6CkAvgPgUgC/6Dt3MzERQLT11lUWg9ulvL7kC21bcs3eojDrrbo/xsobZoFJyEo3q628aticmolFz85is96mZqUrk+OfAfwXImIAf8jMhwA8kZnvAQBmvoeInpB9lQHQheaoyRcafOuKLOr1YzJ0iA7lWGO7uM8YTUkJxXWFtpRIvnBwdgybx6uegTPRQg/XFZHw3Yqu9SZ2HSOV0GyTDTnTBoC8qQM5ETKLOpOse41fxyjMO2TSG3/I/2pCBlfyheV1jBYe6sU0gSoqhlQdUaNjdL1R+0KxDGAdo9Y8RkT0cQBfAPA0IjpCRFegyuByKoCbieirRPS+uu6TiOhGAKgnLr4OwE0A7gJwHTPf2VY7BaFXNBlbXC/gDCK6VXldqZ3l+cz8LAAvBvBaIvrJrpq/TkRzBCEBn+aE8wJmvoCZL6w/N+G75wP4TP15NIjeCEIC5fSmNVrzGDHzZYbiD1rq3g3gJcrnGwHcGHO9CWY4FQ9brbem7RIW3BwrSUlvUUNOLHGJe/elstSP9aXOVevnzBFQ5xCtxO5un8BkZ7fers5Hx7GYIKh6h/Q5RqWTL4TF396vdD5WqJ8nMPN9RPQnqLIg3UtEZ9XeorMA3JfYwt7SteaYVqJvUOcdLcryk73YyEm6EGPJDYnRt+lIyXlGPotu7BzF5f3meq6Y//DkCwarrrommmuSc//nNepcAuCievvDAD6HEc1rXI/elEv2kvI8pkTFLPan93pzEkeVuk9Tn6PBl+wlNPmCb/5i6HqLJi+Svo7RwdkxHHik8lAvpeZW+zvNe8/0pm0P9Tqz0hWFFNFoCBGPan8/wlmqY8M7KSEPvK0j03VoS1XHHcKiHhfvmt6ZbzvFZzbDZKcuUwZD1DSh6Zgc17abfU2ZaWHFUmEtGaJBRI8BsMHMD9fbPw3gdwBcD+ByAG+r3z+VfhUBWF5wscGX8CUkpDeGvdJR0fGF6jb4Er7EhNeZMtCZErmYyvTBkprc5eDROoxF1RyTljSa8xDMmpMTvuvWnDOI6Fbl86E6PFc/i4TvtkjogtJqZjbTsxabbVKlREhuWh+n3YQLNkz36zKmVNvxg6BmX9p6i8thcxPMltZBq94DF6d/BKt6Y5tCkNpPyezjKLSWYGo0AyNBGAXNxMR0ngjgT4gIqJ7vjzHzp4noFgDX1eEefwfg5ZktFQRhDPg1x+mhrnk+M99dD35uJqL/Vqp5giCMiPw+jo1iHurRDIzU5AshabpLJ19ISa7QZo5/8752rLj+5AvhIS5qneV9q2Fx+vlCvEOTHSzCVZpmzbDsFWr26R6jo5ayktbbXWRNTGTmbwJ4pqH8uwBelH5mQUedDN2wvBI9nNsNqRbNVOvtuhO+NKTcd6gFV/0c4pH2LQEQks4bMKfmVkNg1CUA5jqkaopp4rOeKtdWlhPakjkZeq+G73aJKflC6eVJfJTwQncVurvYX7pvE9+fSdEb01IjRs+zIXS38RSpniPVUwTU4XOxiV260Zu1e6hHMzAShNHQkwmIgiDsETI0R8J3BUGIwq03a/dQj2ZgNMEuTsXDS9aBkLTdtrK8tqRbamO8SKEpKmPKUwmdrBg272h1vpB6viVL7azxCM2WvELVPmXukOod0su2tW3AP8doeBOhhcI0yRcAt6codF5j6DOZY7XNSZlrIydNd849u+Y1uiy4pnoh8wBccwfUSdErZbPZPA33UnKXEI+Rqi8PKWXN9oPK+/o0R8J3O8CU7KXr/o5fe/rTxwnd7yI0GsadfMHvHWrOkZN8weRFmidc2D6xWKg+1jvUwz5O2x7q0QyMljspq9lZQic9lw5ryZkcnUJquFypsJYGX8fEFg63eqw9LK7ars8ROghSw+ZyQulcWelyJ0KLx2gQbGCGU/EITGuI+LLSlTZMNNiNMvlrjORktWzjfkOyRNkmSqeE1+k6VnVeDOEudbhcdHIXk76Yki+0kfAlQ3MkfLcb1GQvrrC5tkJ3gXUmX0iv003yhTyjS7MvLfnC8sBILTt4tBKXre16jSLAPw0gdrAUS6bedOGhHs3ASBBGwS5QJ48RBEFoH9EcQRC6Il9vWvdQj2ZgVFlvH7ZaZd1hLd2E0rW1plGKJ6iLe3ZZbRefd+bhcPMyS1hcA6kLgTXlvjKTF0n1Dh1X9gPLFt2UydGpHiO1DUKvUdPnNvjCWfqVrrsdzfHtbzddd1z4bmi6bpt3SA3lBaqkCo1WLXmJXPpy1FFm0peHDGWiOaMnNPmC6XOpZUpKeJ5Le4xKr88IuMN0F3XcGtR18gU1dHeeYEHtw5T0GOV4qIEsvenCQz2agZEgjAZedwMEQdhTiOYIgtAVPdeb0QyMJjPGqQ8ex2wKzKYbS/tmU8VyMnGnslzsa28itO4haQP1PhvanAi92KfE2ho8QYvtZY9QVb96X/IILRq37P3Rm+DzDpkSLbiSL6hlLouuaY5RzkRoYTCoSwSELbiYl6hAJ2Uh6a7nNZa639CEEs55io56IQtE696hyc7uXL+WlgBQvUKAeQ6jLbnLOpIvCIPAlHyhIWVOY6znNtcDva4FpWPqNIQmk2rwJX0pnXxB9Rw1abjVBC+k6802lhdsBfxLjZj6Mw8a6o2Q0QyMaLfKtrEPAKZVp5vnd7eLnfkzUf14ZoY71wdUsahJAVb3mcunBfspO0vP/WIFLdO9Lvbl3TNgvm/TgAcwJEgAlkPfoG2bwuJ8+1NC6fS1jdYWStfe6mdCWSbYxSl1JkzTOmn6P+JS4SzuNsUPlqrj/EKUM8m5i/sMHSBN6q7l8vn866DpYb10HKvaZdKS0KyXMckXSq5jJJozCEzJFxp2LBpk2tYJTU6wV9ZNC02kFWN8iQ2vU9dDU5MqzLfrwdBkZ7bINqf2V0yGGFPfxTTgMZXpepNliOm/3oxmYCQI40BmQguC0CWiOYIgdEX/9WY8A6MZqvACxShAzd1Na08SFvv3QUHxLBXB5jEOMZzEeJu1v94+U52JpbyLe3aFu6l19DKT90e9hhqusuM4xle27ShLsbqUSGUp+boHg2rBbTCn0V3PSvQ271E3Ftx2UnebQ1zMywAA/qQKUeugmTRHL1O9SK5Quh2sakmoR1q11irvnOWlFs3pO2ryhQZXEoaYVN2m5zU09G0oobvL54i7X1vabpe2qMeGJl8wrYemeonUJC9ArVGmsDlX30XVGD1sLiL5wrF6+yBi6b/ejGdgJAijYBeo560IgiC0j2iOIAhd0X+9Gc/AaIZq9DvB6l1NLdsu44LvmwkZ8NqMJaGDZVO90L+Yq57PqJJz7yYPj+lzqEdI3eey1JrOafIYHbeU6VZek9VFLVMtKOpEaQB4CDhZ7zd667z025oiVEx2d3Hq0Ucwm27ME7y4kruExvwDq5bPkDS4QLk4/wl2oucFlUjRrd537JwGU8w/AGPShHk9m3eoarTfS63PJ8qZY6QmX1CTu6hJF5p9huQLD2clXxDN6TvLi9gve4psCV5cGlSC1AWlS9DlgtJWbQmYq6jWMy0ybZpDpCZ7aZIqTHa0+Y2AX1vUvolr/mJkGR9d6E28xwjou96MZ2C0i8UfT38mpjDfqenZSf1GUsLn2vhtpA6IUu47JHxOrWdKuGDab0vMUCq8ztWZcYW/HMXqwMjQmTmmdFKeiFj6H38rVNAusP8owNNdNCGpO5PV5C5qghM1Q2aDKYNkKK4Ml2oWyOXyQuGzsCdvMd1nQ+n7NWW7XHxeTXCTvA5a6VC6gusYHTsKfLc5NhrRnCGgrtXoGhCVzkZnItcAEzJwCjXM5CRk8OHLTlcq4yWwmuxlq36eydRPUQdDOWukuTLqOjLVPXx0YZsZYx9nPAMjQRgF/c/YIgjCmBDNEQShK/qvN+MZGDWhdMDCM2ILoTN9Vo/LaYMNm4GkpNfI9tfMCasLweUlsm27PEbqflt4ncnLFGLRjQl/MYXSOVaPPqZYU75b7x6jNUWoqTWHFI/0PjW5i5bgpFo+oPEsqScq90/Clv6fQnUmOnx34aHhqbkcaOd+jZ6g+QWVbZ+WNGXrCqWLDXdR1jE6Vv/P+95R4GGkIpozBDbA82Qvq2sWxafrDk1U0JCb8j8nEYPP+1MyXTdgT7Zg+6yHxannCPEOVe+epQBUHQldIy00cZTqgXasY9TozUPbwPeQSv/1ZjwDI0EYBf3P2CIIwpgQzREEoSv6rzfjGRg1HiNbcoW+eoxC97vw/RX75DFyWWpj5h35rLu2MtXya7K6qNYZ1+ToukydhPhQXf8hjNuaItTMUP0eTJ5pg/aQsr2UlCP1GfQZYDv2UpOlHLAvJRBNjNY09fWyNucYhVp1U5YDUJK7NJbbufZANGfsbGAXB2fHjAlefEsG6PtsNOeLSZ7g8gSFJo2Jwb2QdJyozDANulfTPfqWApjX83mHbN7m1PmLPo+RK123utSIso+VaBig0ppmjlE8/debcQ+MXBnoXGF2uaR0SHL0IyWpQtv37Eu0oH4OGRjp+3ydmGafq8wkLqYJjIaB0clmEPQI8FB9TBPKktdJ6X/8rVCjao7+PPmyY7rKUsgZBMUMlELa24XmmNocE7LrymoZGkq3bTimg1C6k4oxpgnZzeuoiOYMgckO49QHT2JncnKe3MWU2MWVGbMqay/5wmJ/mKiYkqmEJmfxJWdoL/nC4t70jJfVtmc9tKpxfr3RNcMX8p+TfEExupiSL3zvwcXu5n3MejOegZEgjAJG360pgiCMCdEcQRC6ov96M56BUajHqE2rbUOO9TbGcxRiEFmXx0gt83mMQsLrdMtuSihMsy/EEmOw6PLxhaX2USVsrrGcqB6jMbuZhRqTx6iEl9r3XKeG0Pn2peK6F5/OhGiY7X5jvdS2sNymzKcpoWG5Jn0pEEqnhs+pnqLmXULpRs4uQEerBC/7DIlddiZNwhP3kgGLsjiPii39/2K/exmASbD2rHoTZh4dsS0bsFwn/H5N92paCqBhJSwOyA/zbyuUTtUWfSkAQ/KFhx5cRMU0GvMwxq03/l+TIAgd0riZXS83RHQxEX2diA4T0VUtNlYQhMHj0xw/ojmCIITRf71pzWNERB8C8FIA9zHzM+qyNwP4ZQD/UFd7IzPfaDj2YgDvQmVP/AAzv817wRkqM70p4YLLiqvvL4HNMhLiDSod728zknRxzy5PkFondHK0ut80ETrWi7TtKNuuPETAwjv06PGF5aSxdzyM5bhbvSyePGsKEU0AvAfAPwVwBMAtRHQ9M38t+aQDoXPNaRaVDky+sLLtKgslxTtU0muU4pEufb8mK22DTV9CU/vHWn1N84lUj7Sa5EW34G5jYcFVrLrHtInP38XCO11mXqNoTgpr0xtgJQKGpkqCE++SActlOXiXASikNUvJW4z6sXwvHFAnBu9SAOo+3/zG5t03Z9GkI7rHqI2lAAypuVWdAZY1KJ7+602boXRXA3g3gGu08ncy8+/ZDkq+6SasxdchaSMbnaktJtoKcUnphHRxz6bQlZyOi29/bGfH0HHhet+j29VACAAeVQZDjTC0NzDKTmX5HACHmfmbAEBE1wK4BMCoOyk1V6NrzWmMMaZEC65QOldZCnstfNc3QHIlVzANaPT9zWdfCK5psOSaDK2eQw+BObooU7NAqdkugWoA1HRKyiVfEM1J4Gqsq49j6s+YEsBo+1yZI4MoMRDqQG9auU9T38W0L8SA4gulU40pO44y23qLGRkvT2qGGNXoslf6OK2F0jHz55FmxJrfNDOfANDctCDsARpriuvl5GwA31Y+H6nLRo9ojiCk4NMcL3tSc0RvBCGF/uvNOpIvvI6IXgngVgC/ycwPaPtNN/1c71l/6NnA+28t1khhb9JYmg7Wr+4JSmV5BhGpP/ZDzHyo3iZDfS7RsgHTjuac+WzgNaI5Qnmah/gH6lcMv00mCXDh1RyX3gCiOTrt6M1jng08V/RGaJcmbPGJyvvTi16h/3rT9cDovQDeguom3gLg9wG8WqsTfNNEdCWAK+uPjxDRdwHcX6apyZzRgzYA/WiHtKHiaeFV774J+LdneCrdz8wXW/YdAXCu8vkcAHeHX390iOZIG/ZaGyL0BgjQHJfeAKI5KqI3e6cNQD/a0Yc2lOzjrF1vOh0YMfO9zTYRvR/ADYZqwTddjyLnI0kiupWZLyzT2jT60Ia+tEPasGhDaF2PIIRwC4DziegpAL4D4FIAv5h5zsEimiNt2IttiKkvmlMO0Zu904a+tKPBWQ5bAAAHQklEQVQvbQitOwS96TRdNxGdpXz8OQB3GKrNb5qINlHd9PVdtE8Qhg4z7wB4HYCbANwF4DpmvnO9rVofojmC0C6iOQtEbwShXbrQmzbTdX8cwEWo4gWPAHgTgIuI6AJUbuNvAXhNXfdJqFJWvoSZd4iouekJgA/tVZEVhBTq9LArKWLHjmiOIKyHvag5ojeCsB7a1pvWBkbMfJmh+IOWuncDeInyOfWmD/mrtE4f2gD0ox3Shoo+tGH0iOasFWlDhbRhjyB6s1b60AagH+2QNhSGmPdy8hhBEARBEARBEISO5xgJgiAIgiAIgiD0kUEOjIjoIiJ6kIi+Wr9+y1LvKUT0JSL6BhF9op7oWKoN/5KIbq9ff0lEz1xDGz5ERPcRkWmCJ6jiD4jocN3OZ5W6tnadCRH9VyJaycBDRFv1fR+uv4fzWrj+05TfwleJ6CEi+nWtTvHvwvT9E9HpRHRz/fe+mYgeZzn28rrON4jo8ty2CO3RB72pz79WzemL3tTXWpvmiN4IbdMHzVm33tTn7oXmrFNv6muI5nQJMw/uhWrC4w0B9a4DcGm9/T4A/6pgG/4JgMfV2y8G8KU1tOEnATwLwB2W/S8B8Keo1k14nq2NBdrxGwA+ZvqbAPifAbyv3r4UwCda/m1MAPw9gB9q+7swff8AfhfAVfX2VQDebjjudADfrN8fV28/rs3vRV5Zf+e16019zrVqTl/0pr5WLzRH9EZebbz6oDnr1pv6fL3QnL7oTX0N0ZyWX2tvQOIfyysa9Y/jfgDT+vNPALippfY8DsB31tEGAOc5ROMPAVymfP46gLMKX/8cAJ8B8EKLaNwE4Cfq7Wn9fVCLv42fBvD/dPVd6N+/el4AZwH4uuGYywD8oa1t8urXq296U59/LZqzbr2pz9sbzRG9kVcbr75pzrr0pj7nWjWnT3pTX0M0p+XXIEPpan6CiP6KiP6UiH7MsP/xAL7PVc5zoFpU7eyW2nIFqpH6Ottg4mwA31Y+t3H9/wDgfwWw62tD/T08iOp7aYtLAXzc1Y6atv4WT2TmewCgfn/CGtsilKNPegP0U3O6+l33SXNEb4S26JPm9FFvAOnjGNtRI5qTyFAHRl9B5UZ8JoD/HcB/NtQhQ1nxFHxE9AJUovH6dbXBQavXJ6KXAriPmW9bVxu09mwC+FkA/2md7QigT20R/PRGb4Bea07r1+6T5ojeCC3SG83psd60fv0+6U3dHtGcDhjMwIiIXttMPANwCjM/AszXA9hHRGdoh9wP4DQiatZqOgfA3aXaQERPIqJ/BOADAC5h5u8aDinehkiOADhX+Vz6+s8H8LNE9C0A1wJ4IRH9R1sb6u/hsQC+V7ANKi8G8BVmvtewr+3vouFeqlc/r9/vW2NbhET6oDd6OwagOV38rvukOaI3QjH6oDkD0xtA+jjGdtSI5iQymIERM7+HmS9g5gsA7BIRAQARPQfVfXxXq88APgvgZXXR5QA+VbANUwB/DOAVzPz/WuoXb0Mk1wN4ZZ2t5HkAHmxcoCVg5jcw8znMfB4q9+6fM/P/ZGjD5fX2y+o6bVkOLoPZxdy0o7XvQrtOc7+2v/dNAH6aiB5XZ3T56bpM6Al90BtDO/quOa0/Yz3THNEboRh90JyB6Q0gfRy9HaI5JVj3JKeUF4DXAbgTwF8B+CKAf6LsuxHAk+rtHwbwZQCHUbketwq24QMAHgDw1fp16xra8HEA9wA4iWqEfgWAXwHwK/V+AvAeAH8D4K8BXNji3+Qi1BMTAfwOgJ+tt/fX9324/h5+uKXrH0T1j+OxSlmr34Xl+388qoma36jfT6/rXgjgA8qxr66/k8MAXtXW30VeRX5ba9eb+vxr1Zw+6U19vbVpjuiNvNp89UFz1q039bl7oznr1Jv6OqI5Hb2ovgFBEARBEARBEIQ9y2BC6QRBEARBEARBENpCBkaCIAiCIAiCIOx5ZGAkCIIgCIIgCMKeRwZGgiAIgiAIgiDseWRgJAiCIAiCIAjCnkcGRoIRIvo0EX2fiG5Yd1sEQRg3ojeCIHSJaI5gQwZGgo1/D+AV626EIAh7AtEbQRC6RDRHMCIDoz0OEf1jIrqdiPYT0WOI6E4iegYzfwbAw+tunyAI40H0RhCELhHNEWKZrrsBwnph5luI6HoA/w7AAQD/kZnvWHOzBEEYIaI3giB0iWiOEIsMjAQA+B0AtwA4DuBX19wWQRDGjeiNIAhdIpojBCOhdAIAnA7gFACnAti/5rYIgjBuRG8EQegS0RwhGBkYCQBwCMD/BuCjAN6+5rYIgjBuRG8EQegS0RwhGAml2+MQ0SsB7DDzx4hoAuAvieiFAH4bwP/frh3UAAjFQBRs7wjBFyrxg49+DVz4ITujYE9NXtKzqo7ufqrqmpl751bg39wb4EtuDm/1zOzeAAAAsJVXOgAAIJ4wAgAA4gkjAAAgnjACAADiCSMAACCeMAIAAOIJIwAAIJ4wAgAA4i2kRa78xsPZNgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 864x216 with 6 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12,3))\n",
"for i in range(3):\n",
" plt.subplot(1,3,i+1)\n",
" with torch.no_grad():\n",
" plot_function(lambda x: parametric_fn(x, *parametric_module.guide()))\n",
"plt.tight_layout();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Semi-parametric model\n",
"\n",
"The semi-parametric model is going to be very close to the parametric model, but will replace the independent normal distribution on the errors with a GP.\n",
"\n",
"We'll do this a little bit differently this time; there are enough parameters that they will be slightly annoying to keep track of, and we'll place everything into a single class that extends torch's `nn.Module`.\n",
"\n",
"This will duplicate some of the code above, with the advantage of being fully self-contained."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ In this section, we combine the best practice from previous sections.\n",
"+ For simplicity, I use `mean_function` to setup parametric model. Constructing `SemiParametricModel` is also fine but a bit redundant."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"pyro.clear_param_store()\n",
"\n",
"class ParametricFn(gp.Parameterized):\n",
" def __init__(self):\n",
" super().__init__()\n",
" \n",
" self.mu_a = pyro.nn.PyroParam(torch.tensor(10.0), constraint=constraints.interval(0, 20))\n",
" self.mu_b = pyro.nn.PyroParam(torch.tensor(10.0), constraint=constraints.interval(0, 20))\n",
" self.mu_c = pyro.nn.PyroParam(torch.tensor(10.0), constraint=constraints.interval(0, 20))\n",
" self.sd_a = pyro.nn.PyroParam(torch.tensor(1.0), constraint=constraints.positive)\n",
" self.sd_b = pyro.nn.PyroParam(torch.tensor(1.0), constraint=constraints.positive)\n",
" self.sd_c = pyro.nn.PyroParam(torch.tensor(1.0), constraint=constraints.positive)\n",
" self.alpha = pyro.nn.PyroSample(lambda self: dist.Normal(self.mu_a, self.sd_a)\n",
" if self.mode == \"guide\" else dist.Uniform(0, 20))\n",
" self.beta = pyro.nn.PyroSample(lambda self: dist.Normal(self.mu_b, self.sd_b)\n",
" if self.mode == \"guide\" else dist.Uniform(0, 20))\n",
" self.gamma = pyro.nn.PyroSample(lambda self: dist.Normal(self.mu_c, self.sd_c)\n",
" if self.mode == \"guide\" else dist.Uniform(0, 20))\n",
"\n",
" def forward(self, X):\n",
" return parametric_fn(X, self.alpha, self.beta, self.gamma)\n",
"\n",
"\n",
"semi_parametric = gp.models.GPRegression(X, y, kernel=gp.kernels.Matern52(input_dim=2),\n",
" mean_function=ParametricFn())\n",
"\n",
"# Set priors for GP (these are the values used in the semiparametric BOAT model, which assumes noiseless GP)\n",
"semi_parametric.kernel.lengthscale = pyro.nn.PyroSample(dist.LogNormal(0, 15).expand([2]).to_event(1))\n",
"semi_parametric.kernel.variance = pyro.nn.PyroSample(dist.Uniform(0.0, 20.0))\n",
"semi_parametric.noise = pyro.nn.PyroSample(dist.Uniform(0.0, 1.0))\n",
"\n",
"# Set guides for GP\n",
"semi_parametric.kernel.autoguide(\"lengthscale\", dist.Normal)\n",
"semi_parametric.kernel.autoguide(\"variance\", dist.Normal)\n",
"semi_parametric.autoguide(\"noise\", dist.Normal)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### It might be helpful to use different learning rates for the different sets of parameters...\n",
"\n",
"When I tried earlier without this, results looked strange."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ PyTorch optimizers support per-parameter options."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"optimizer = torch.optim.Adam([\n",
" {'params': semi_parametric.mean_function.parameters(), 'lr': 0.1},\n",
" {'params': [v for k, v in semi_parametric.named_parameters() if 'mean_function' not in k], 'lr': 0.005}])\n",
"loss_fn = pyro.infer.Trace_ELBO().differentiable_loss\n",
"losses = gp.util.train(semi_parametric, optimizer, loss_fn, num_steps=10000)\n",
"plt.semilogy(losses);"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"alpha ~ Normal(0.26, 0.61)\n",
"beta ~ Normal(0.01, 0.00)\n",
"gamma ~ Normal(0.01, 0.81)\n"
]
}
],
"source": [
"print(\"alpha ~ Normal(%0.2f, %0.2f)\" % (semi_parametric.mean_function.mu_a.item(), semi_parametric.mean_function.sd_a.item()))\n",
"print(\"beta ~ Normal(%0.2f, %0.2f)\" % (semi_parametric.mean_function.mu_b.item(), semi_parametric.mean_function.sd_b.item()))\n",
"print(\"gamma ~ Normal(%0.2f, %0.2f)\" % (semi_parametric.mean_function.mu_c.item(), semi_parametric.mean_function.sd_c.item()))"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('kernel.lengthscale_loc', tensor([ 1.0259, -1.3023])),\n",
" ('kernel.lengthscale_scale', tensor([0.2854, 1.5597])),\n",
" ('kernel.variance_loc', tensor(-0.4411)),\n",
" ('kernel.variance_scale', tensor(0.7463)),\n",
" ('mean_function.mu_a', tensor(0.2595)),\n",
" ('mean_function.mu_b', tensor(0.0094)),\n",
" ('mean_function.mu_c', tensor(0.0107)),\n",
" ('mean_function.sd_a', tensor(0.6052)),\n",
" ('mean_function.sd_b', tensor(0.0033)),\n",
" ('mean_function.sd_c', tensor(0.8145)),\n",
" ('noise_loc', tensor(2.2283)),\n",
" ('noise_scale', tensor(0.7355))]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sorted(list((k, v.data) for k, v in semi_parametric.named_pyro_params()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note:**\n",
"+ Change initial loc of autoguide:\n",
"```\n",
"semi_parametric.kernel.lengthscale_loc.data = torch.zeros(2) # value of lengthscale is 1 up to exp transform\n",
"```\n",
"+ Fix scale of autoguide:\n",
"```\n",
"semi_parametric.kernel.lengthscale_scale_unconstrained.requires_grad_(False)\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Samples of the mean function from the semi-parametric model"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x216 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x216 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x216 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"for i in range(3):\n",
" plt.figure(figsize=(8,3))\n",
" with torch.no_grad():\n",
" plt.subplot(121)\n",
" plt.title(\"GP mean\")\n",
" plot_function(lambda X: semi_parametric(X)[0])\n",
" plt.subplot(122)\n",
" plt.title(\"GP mean\")\n",
" plot_function(lambda X: semi_parametric(X)[0])\n",
" plt.tight_layout();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### As a reminder, here's the real Branin-Hoo function"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(6,4))\n",
"plot_function(branin_hoo)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"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.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment