{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Neal's funnel\n",
"\n",
"Now lets take a distribution where a Gibbs sampler is needed to get a decent result, Neal's funnel. In general Gibbs sampler is useful for hierarchical models, with each part of the hierarchy being treated as different steps."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import jax.numpy as jnp\n",
"import numpyro\n",
"import numpyro.distributions as dist\n",
"import arviz\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from numpyro.infer import MCMC, NUTS\n",
"from jax import random\n",
"\n",
"from MultiHMCGibbs import MultiHMCGibbs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The model\n",
"\n",
"We will set up 5 dimensional funnel, something that regular HMC struggles with. For this model we know what the true marginal distribution for the `y` variable will be `Normal(0, 3)`, we will use this to see how well each sampler does."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def model(dim=5):\n",
" y = numpyro.sample(\"y\", dist.Normal(0, 3))\n",
" numpyro.sample(\"x\", dist.Normal(jnp.zeros(dim - 1), jnp.exp(y / 2)))\n",
"\n",
"\n",
"x_marginal_true = jnp.linspace(-10, 10, 1000)\n",
"y_marginal_true = jnp.exp(dist.Normal(0, 3).log_prob(x_marginal_true))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def run_inference(kernel, chain_method, rng_key):\n",
" mcmc = MCMC(\n",
" kernel,\n",
" num_warmup=3000,\n",
" num_samples=5000,\n",
" num_chains=4,\n",
" chain_method=chain_method,\n",
" progress_bar=False\n",
" )\n",
" mcmc.run(rng_key)\n",
" return mcmc"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## NUTS\n",
"\n",
"We will use a large `target_accept_prob` to get rid of most divergent samples and use a large number of warmup and samples to get the `r_hat`s close to `1`."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"rng_key = random.PRNGKey(0)\n",
"hmc_key, gibbs_key = random.split(rng_key)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"divergences per chain: [ 72 24 7 185]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/coleman/anaconda3/envs/lensing/lib/python3.10/site-packages/xarray/core/concat.py:544: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version.\n",
" common_dims = tuple(pd.unique([d for v in vars for d in v.dims]))\n"
]
},
{
"data": {
"text/html": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x_model_hmc = inf_funnel_hmc.isel(chain=[0, 1, 2]).posterior.x[..., 0].data.flatten()\n",
"y_model_hmc = inf_funnel_hmc.isel(chain=[0, 1, 2]).posterior.y.data.flatten()\n",
"\n",
"plt.figure(figsize=(10, 4))\n",
"plt.subplot(121)\n",
"plt.plot(x_model_hmc, y_model_hmc, '.')\n",
"plt.xlabel('x[0]')\n",
"plt.ylabel('y')\n",
"plt.xlim(-100, 100)\n",
"plt.subplot(122)\n",
"plt.hist(y_model_hmc, bins=30, histtype='step', density=True, label='HMC')\n",
"plt.plot(x_marginal_true, y_marginal_true, color='k', label='True marginal')\n",
"plt.xlabel('y')\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see that `NUTS` is struggling with this model, the `y` marginal is still missing a bit of negative values at the bottom of the funnel."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## MultiHMCGibbs\n",
"\n",
"For the `MultiHMCGibbs` sampler we will only put a large `target_accept_prob` on the `x` values (as these are the difficult ones to draw), but keep the default value for the `y` values. To keep it on the same footing as the previous run we will use the same number of warm up and sample draws."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"divergences per chain per step:\n",
" [[ 44 0 14 1192]\n",
" [ 0 0 0 0]]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/coleman/anaconda3/envs/lensing/lib/python3.10/site-packages/xarray/core/concat.py:544: FutureWarning: unique with argument that is not not a Series, Index, ExtensionArray, or np.ndarray is deprecated and will raise in a future version.\n",
" common_dims = tuple(pd.unique([d for v in vars for d in v.dims]))\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
mean
\n",
"
sd
\n",
"
hdi_3%
\n",
"
hdi_97%
\n",
"
mcse_mean
\n",
"
mcse_sd
\n",
"
ess_bulk
\n",
"
ess_tail
\n",
"
r_hat
\n",
"
\n",
" \n",
" \n",
"
\n",
"
x[0]
\n",
"
-0.007
\n",
"
5.228
\n",
"
-6.449
\n",
"
6.068
\n",
"
0.085
\n",
"
0.091
\n",
"
6372.0
\n",
"
1006.0
\n",
"
1.01
\n",
"
\n",
"
\n",
"
x[1]
\n",
"
0.050
\n",
"
5.379
\n",
"
-6.195
\n",
"
6.524
\n",
"
0.077
\n",
"
0.074
\n",
"
8707.0
\n",
"
1184.0
\n",
"
1.01
\n",
"
\n",
"
\n",
"
x[2]
\n",
"
-0.135
\n",
"
6.341
\n",
"
-6.192
\n",
"
6.487
\n",
"
0.132
\n",
"
0.128
\n",
"
9453.0
\n",
"
1112.0
\n",
"
1.01
\n",
"
\n",
"
\n",
"
x[3]
\n",
"
-0.042
\n",
"
6.220
\n",
"
-5.783
\n",
"
7.172
\n",
"
0.094
\n",
"
0.101
\n",
"
9905.0
\n",
"
1209.0
\n",
"
1.01
\n",
"
\n",
"
\n",
"
y
\n",
"
-0.455
\n",
"
2.934
\n",
"
-5.943
\n",
"
4.847
\n",
"
0.267
\n",
"
0.189
\n",
"
123.0
\n",
"
495.0
\n",
"
1.02
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" mean sd hdi_3% hdi_97% mcse_mean mcse_sd ess_bulk ess_tail \\\n",
"x[0] -0.007 5.228 -6.449 6.068 0.085 0.091 6372.0 1006.0 \n",
"x[1] 0.050 5.379 -6.195 6.524 0.077 0.074 8707.0 1184.0 \n",
"x[2] -0.135 6.341 -6.192 6.487 0.132 0.128 9453.0 1112.0 \n",
"x[3] -0.042 6.220 -5.783 7.172 0.094 0.101 9905.0 1209.0 \n",
"y -0.455 2.934 -5.943 4.847 0.267 0.189 123.0 495.0 \n",
"\n",
" r_hat \n",
"x[0] 1.01 \n",
"x[1] 1.01 \n",
"x[2] 1.01 \n",
"x[3] 1.01 \n",
"y 1.02 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"funnel_mcmc_gibbs = run_inference(\n",
" MultiHMCGibbs(\n",
" [NUTS(model, target_accept_prob=0.995), NUTS(model)],\n",
" [['x'], ['y']]\n",
" ),\n",
" 'vectorized',\n",
" gibbs_key\n",
")\n",
"inf_funnel_gibbs = arviz.from_numpyro(funnel_mcmc_gibbs)\n",
"print(f'divergences per chain per step:\\n {inf_funnel_gibbs.sample_stats.diverging.values.sum(axis=1).T}')\n",
"display(arviz.summary(inf_funnel_gibbs))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again chain 4 has a large number of divergences, so let's remove it from the plots."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA2IAAAFzCAYAAABcurqFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADKZ0lEQVR4nOzdeVxUVf/A8c+dYXcBAZWRUHDXxDUz1FzScjeXjOxJzcw2Lc2yxF/Z4vOElZVWlrllPT0mLWq55lJqbpkLqZVrIKag4gIJyDJzf38MMzDMDAwwMCzf9+s15cyce+/3zgxwv3PO+R5FVVUVIYQQQgghhBDlRuPqAIQQQgghhBCiupFETAghhBBCCCHKmSRiQgghhBBCCFHOJBETQgghhBBCiHImiZgQQgghhBBClDNJxIQQQgghhBCinEkiJoQQQgghhBDlTBIxIYQQQgghhChnbq4OoCowGAxcuHCBWrVqoSiKq8MRQohqQ1VV/vnnHxo0aIBGI98tmsjfJSGEcB1H/zZJIuYEFy5cICQkxNVhCCFEtXXu3DluueUWV4dRYcjfJSGEcL2i/jZJIuYEtWrVAowvdu3atV0cjRBCVB+pqamEhISYfw8LI/m7JIQQruPo3yZJxJzANOyjdu3a8gdPCCFcQIbfWZK/S0II4XpF/W2SAfVCCCGEEEIIUc4kERNCCCGEEEKIciaJmBBCCCGEEEKUM5kjJoQQQgghqh1VVcnJyUGv17s6FFHJaLVa3NzcSj0/WRIxIYQQQghRrWRlZZGYmEh6erqrQxGVlI+PDzqdDg8PjxLvQxIxIYQQQghRbRgMBuLi4tBqtTRo0AAPDw+pvCocpqoqWVlZXL58mbi4OJo1a1boos2FkURMCCGEEEJUG1lZWRgMBkJCQvDx8XF1OKIS8vb2xt3dnbNnz5KVlYWXl1eJ9iPFOoQQQgghRLVT0l4MIcA5nx/5BAohqozElAz2nEkmMSXD1aGUuep0rkIIIURVJEMThSgjiSkZxCWnERZYA52vt6vDqfJifk0gatVRDCpoFIgeEU5k54auDqtMVKdzFUIIIaoqScSEKANyoVy+ElMyzK83gEGFmauO0aN53SqXBFencxVCVCLXz0H6laLb+QSAX0jZx1NC569ncC0tq9yOV6eGB8F+8ru7upJETAgnkwvlkilND2Jccpr59TbRqyrxyelV7jWvTucqhKgkrp+DBbdDtgOl4N19YNL+CpmMnb+eQd93dpCRXX7rinm7a9n6XE+Hk7GHH36Y69evs2bNGovHt2/fTu/evbl27RqxsbH07t0bPz8/EhMTLQpJ/Prrr9x+++2AsfqfiaqqLF68mKVLl/L777/j5uZG06ZNeeihh3jsscekqEkZkURMCCeTC+XiK20PYlhgDTQKFq+7VlEIDax6fzhsnasGquS5CiEqifQrxiRsxGIIbG6/XfJJWDXR2L4CJmLX0rLIyNYzL7I9TevVLPPjnb50g6kxsVxLyyqTXrFatWqxevVqRo8ebX5s6dKlNGzYkISEBIu2Y8aMYdWqVbz00kt8+OGH1K1bl99++4158+YRGhrKsGHDnB6fkERMCKerTkmBMzijB1Hn6030iHBmrjqGXlXRKgpvjGhTJRNf07nO+PYopo+YCuw8eVmGvwohXCuwOTRo7+ooSq1pvZq0CfZ1dRilNm7cOJYtW2ZOxDIyMli5ciXPPPMMs2fPNrf76quv+N///seaNWu49957zY+HhoYydOhQUlNTyz326kKqJgrhZKYLZW3u4pBVOSlwhsJ6EIsjsnNDds3ozYIHOzDvgXb0aF7XiVFWLD2a1yX/2qMqxuRVKigKIYQwGTNmDD///LO59+vbb78lNDSUjh07WrT73//+R4sWLSySMBNFUfD1rfxJaUVVqRKxnTt3MmTIEBo0aICiKFbjY1VVZdasWeh0Ory9venbty+nTp0qcr8LFiwgNDQULy8vunTpwv79+8voDER1YUoKvpx4B7tm9JaeikKYehDzK2kP4s6Tl3n6y8M8/WUs3eb8SMyvCUVvVAk5K3kVQghR+axbt46aNWta3AYMGGDVrl69egwYMIDly5cDsGzZMh555BGrdqdOnaJFixZlHbawoVIlYmlpabRr144FCxbYfP6tt97i/fffZ+HChfzyyy/UqFGDfv36cfPmTbv7jImJYdq0abzyyiscOnSIdu3a0a9fPy5dulRWpyGqERW16EbVnLN6EO0NcayKvUTOTF6FEEJULr179yY2NtbitmTJEpttH3nkEZYvX85ff/3F3r17+de//mXVJn/RDlG+KtUcsQEDBtjM+MH4IZo3bx4vvfSSuWv1888/p379+qxZs4YHHnjA5nbvvvsuEydOZPz48QAsXLiQ9evXs2zZMmbMmFE2JyKqPClfXzyRnRvSo3ld4pPTCQ30KdEwToeLpKSch6tnwL8J+AaXMnLXqFRz4qrA6y2EcJ2iyslXx/LvNWrUoGnTphaP/f333zbbDhgwgMcee4wJEyYwZMgQAgICrNo0b96c48ePl0msonCVKhErTFxcHElJSfTt29f8mK+vL126dGHv3r02E7GsrCwOHjxIVFSU+TGNRkPfvn3Zu3ev3WNlZmaSmZlpvi+TGEV+Ur6+ZHS+3qV6fRwqknLoc1g7BVQDKBoYMh86ji150C5MMpyRvJY5Z7/eQohqxZFy8sUt/17duLm5MXbsWN566y02btxos82DDz7IAw88wHfffWc1T0xVVVJTU2WeWBmpMolYUlISAPXr17d4vH79+ubnCkpOTkav19vcprBvBqKjo3nttddKGbGoqqR8vWsU2UuUcj4vKQDj/9dOhSZ9SpZEVYAko7TJa5ly9usthKh2iionX1bl309fuuG0fVWE48yePZvp06fb7A0DuP/++81l7l966SXuuece6taty9GjR3nvvfd4+umnpXx9GakyiVh5ioqKYtq0aeb7qamphIRUvPUwhGtI+XrXKbSX6OqZvKTARNXD1b+KnxhIklE0Z77eQohqrbzKydep4YG3u5apMbFlfiwTb3ctdWp4lOkxPDw8CAwMtPu8oiisWLGCRYsWsWzZMv7zn//g5uZGs2bNGDt2LP369SvT+KqzKpOIBQUFAXDx4kV0Op358YsXL9K+fXub2wQGBqLVarl48aLF4xcvXjTvzxZPT088PT1LH7SokirV/J0qyG4vkX8TY89V/uRA0YJ/4+IfRJKMojnz9RZCiHIQ7OfN1ud6FjonzdmKO8fNVAGxoF69epmLbuT/ty3Dhg2zel6j0fDEE0/wxBNPOByLKL1KVTWxMGFhYQQFBbFt2zbzY6mpqfzyyy9ERETY3MbDw4NOnTpZbGMwGNi2bZvdbYRwhJSvr4B8g43DBxWt8b6ihSHzSpY4mZKM/CTJsOTM17sSKM4yKL///jsjR44kNDQURVGYN29eofueM2cOiqIwdepU5wYthLAS7OdNm2DfcrvJ3LbqrVL1iN24cYPTp0+b78fFxREbG4u/vz8NGzZk6tSp/Pvf/6ZZs2aEhYXx8ssv06BBA4txrX369GH48OFMnjwZgGnTpjFu3Dhuu+02br/9dubNm0daWpq5iqIQJVWh5+9UVx3HGocPXv3LmDSVNCkwJRlrpxp7wso5yUhMySAuOY2wwBoV+zPmrNe7gjMtg7Jw4UK6dOnCvHnz6NevHydOnKBevXpW7dPT02ncuDGjRo3i2WefLXTfv/76K5988glt27Ytq/CFEEK4SKVKxA4cOEDv3r3N903ztMaNG8fy5ct54YUXSEtL47HHHuP69et0796dTZs24eXlZd7mzJkzJCcnm+9HRkZy+fJlZs2aRVJSEu3bt2fTpk1WBTyEEFWEb7BzEgIXJRmVbmkEZ73eFVhxl0Hp3LkznTt3Bih0mZQbN27wr3/9i8WLF/Pvf/+7bIIXQgjhMpUqEStqzKuiKLz++uu8/vrrdtvEx8dbPTZ58mRzD5kQQjisnJMMWRqh4inpMiiOmDRpEoMGDaJv375FJmKyrIoQQlQ+VWaOmBBCVHWFLY0gXKOwZVDsLZ3iiJUrV3Lo0CGio6Mdah8dHY2vr6/5JpV8hRCi4qtUPWJCVHeVZm6QKBOyNEL1cO7cOaZMmcKWLVsshtYXRpZVERXV+esZ5iqEXsk3aAqcvnyDm2oKUPyqgUJUJZKIieot5byxFLl/kwo/j6XSzQ0STidLI1Q8JV0GpTAHDx7k0qVLdOzY0fyYXq9n586dfPjhh2RmZqLVai22kWVVREV0/noGfd/ZQUa2HoBblTjWe8KUlbH8npuIebtr2fpcT0nGRLUkiZiokMql5+fQ53mL8ioaYxW8jmPL5lglYUoS3WuQeO0folallfvcIOmBq3gKXbRalLv8y6CYKvSalkEp6dzjPn36cPToUYvHxo8fT8uWLXnxxRetkjAhKqpraVlkZOuZF9mepvVq4pXsC6th/gPtuRkYzulLN5gaE8u1tCxJxES1JImYqHCc2fNjN5FIOZ+XhIHx/2unGqvgVYSesfxJIhCnb41BfcmiiWluUFldiDv6PkiyVv7KemkEeU+Lp6hlUMaOHUtwcLB5vldWVhZ//PGH+d/nz58nNjaWmjVr0rRpU2rVqkWbNm0sjlGjRg0CAgKsHheiMmharyZtgn1BqWm8X7cmNPB1cVR2XD8H6VfK73g+AeDn/GHEiqKwevVqhg0bRnx8PGFhYRw+fJj27dvbbL99+3Z69+7NtWvX8PPzc3o8wjZJxESF4syqcIUmElfP5CVhJqreWIrcgUSsrC5UE1MyiDt7lrDvX0NHXnxhmiQ0GDDkq6+jVSizuUGOvg8xvyYw49ujqIACzBlZPsMlJVEoOzIEtviKWgYlISEBjSbvZ/fChQt06NDBfH/u3LnMnTuXnj17sn379vIOX4hK7/SlG3afK9YctOvnYMHtkF2OBZDcfWDS/mIlY0lJSURHR7N+/Xr+/vtvfH19adq0KQ899BDjxo3Dx8eHxMRE6tSpU4aBC2eQRExUKIVVhSvOBXeRiYR/E+NwxPzJmKI1rgdVhLK6ULXYL/OIdltCpNt2AHTKVaLdljAzZwJ6tGjR80aPUiQhRcyNc+R9SEzJMCdhACow49ujtpNmJ87Fk0TBkjOTUimPX3KFLYNSMLkKDQ0tdCkWR/YhRLkpoofo0o1MMhP/JATLIhxQeILkDHVqeODtrmVqTKzdNsWag5Z+xZiEjVgMgc2dF6g9ySdh1UTjcR1MxP766y+6deuGn58fb7zxBuHh4Xh6enL06FEWLVpEcHAwQ4cOLfEcVVG+JBETFYqzqsIVmUj4BhvnhK2dauwJU7QwZF6RSUJZXaha7RcNM3Mm0EN7BJ1yFYBIt+300B4h3lCfUO1ldF13luxgDsyNc+R9OBB/lYKXkipwMP4ag9vley2cOBdPEgVLzk5KnfVFiBCiinCgh6he7v/TVU/GfnmGC6RYPO/trqVODQ/LjZJPAsYqircqcVw+6cHpZMvfMXovf06nFz58MdjPm63P9TRXZSyoxHPQAptDg/aOty9HTz31FG5ubhw4cIAaNWqYH2/cuDH33nuv+Uue/EMTTY4fP85TTz3FoUOHaNq0KQsWLKBnz54W+9+9ezdRUVGcPHmS9u3bs2TJEvOQ6LNnzzJ58mR27dpFVlYWoaGhvP322wwcOLDsT7yKkkRMVCjOqgrnUELXcaxxTtjVv4w9YQ701JTVharN/aIl3lAfnfaq+TGdchWdW4pDSaOVlPNw7heH5sY58j4oimLzMBYPO3kuXrVIFBzsPSxtUmqrJ03K4wshLBTRQ3T68g2mrIzl+Xta0KBBMItqWv/Oshga6BNgHIq3aiIATYH1nsAOG4dWPRmf+Tbe7vWtE7l8gv28q02hjytXrrB582beeOMNiyQsP3t/mwGmT5/OvHnzaN26Ne+++y5DhgwhLi6OgIAAizbz588nKCiImTNnMmTIEE6ePIm7uzuTJk0iKyuLnTt3UqNGDf744w9q1qzp9POsTiQRExWOM6rCOZJIGC9EPQkLvM3hY5TVhart/ULo/W9CnZrGP4TuPsb/O5g0WihQ/MOCnblxRb0PnRrVQQGLXjFFgY6N8o1JL+VcvIKO/p1i9ViVShSK0XtYmqTUXk+alMcXQthkp4fopprC72oKdZvfTotgB4pv+IUY50PlG+p46UYmqRnZFs08r58m5KcpfD66Cd6NOlWbRKsop0+fRlVVWrRoYfF4YGAgN2/eBGDSpEm8+eabNrefPHkyI0eOBODjjz9m06ZNLF26lBdeeMHc5pVXXuHuu+8G4LPPPuOWW25h9erV3H///SQkJDBy5EjCw8MBYy+cKB1JxKoJR+eRJKZkcPDsNVRV5bZQf5ddgDmjKlxhiURJh3SV1YWq3f2GO2HuU8FeqYIKmRtX2Pug8/Vmzshw8+uoKDBjQEvL9qWYi1dQYkoGb246bvX4CwNaVJ5EobDermL2Hpb0S4GietKK/UWIk+b/SQEWIaoJvxCL+VD1yBveaHahJvyUW11RkrAi7d+/H4PBwL/+9S8yMzPttouIiDD/283Njdtuu40///zTbht/f39atGhhbvPMM8/w5JNPsnnzZvr27cvIkSNp27atk8+mepFErBpwNOnIXwEPyrcKXlmxlUiUdkhXWa3jVGbrQ9nqlTJxcG6cPZGdG3I9PZs5G4+jqvDmxuP4ebvnfWZKOBfPFls9QABtg/1KFHu5SjkPv3wMez4EU43Ju1+DblPy2hSz91Dn683wDsF8e+i8+bFhHRoU+blxpCfN4S9CnDT/TwqwCCFE0Zo2bYqiKJw4ccLicVPPlLd32Satjz76KP369WP9+vVs3ryZ6Oho3nnnHZ5++ukyPW5Vpim6iXC2xJQM9pxJJjElo1yOZSvpSEzJsIjD1C7/9ZkKRH17tFziLE+FXYg6SufrTUSTAKd/c18m+zX1SlnQwH3LYerRUi1ibeqlMr2c+T9fZh3HGo8zbl2pjmfqAcrP4WGJKechbqfx/+Up5TxsfgnmtYE9H0D+GpNbZsHu9/Pa2nqfCuk9TEzJYPVhy/NZc/hCkT+vpXod87PXg1fM17iw31H22pfX708hhKhIAgICuPvuu/nwww9JS0sr9vb79u0z/zsnJ4eDBw/SqlUru22uXbvGyZMnLdqEhITwxBNPsGrVKp577jkWL15cgjMRJtIjVs6K882vM4bq2Es6Pt0Vz5Jdf5njmNA9zGZvgwGqViEEyrYgQYUZXlVwuFhur1SiwZc4tQFh9zyJrs3wEu06/zk6PE/JN9h+L5iDQ9sKGxZa6OvuxKqNDjGdz4XDsOUVsKotmc/WV6DNyLzXx1bvIRiTyAKvT0nniDlteG1x5//ZeZ+Lcx62fn8OaOFXvLiFEBXCyZMnWbduHYcOHeLy5ct4eXnRpEkT7rzzTga0a4CXqwOsoD766CO6devGbbfdxquvvkrbtm3RaDT8+uuvHD9+nE6dOtnddsGCBTRr1oxWrVrx3nvvce3aNR555BGLNq+//joBAQHUr1+f//u//yMwMNBceXHq1KkMGDCA5s2bc+3aNX766SerRE4UjyRi5ag4Q+KcNVTHVtKhAXMSZopj6a44q8ILprZVphBCrrKa51VhhlfZSTxibrQnauM5Y3zrIdozodjx5T9HBbi3fQOrz02xktpiJkm2hm8W+ro7uWqjBVuJRWFFUWxRDZaJS8FKnme2GXvTbLw+dgu8eKQCAdbHyscpw2CLM/+vkPfZ0S9G7P3+7NCrnHs5hRCl8ssvv/B///d/bNu2zebz7733Hn6+tXiuYxZT/5WOS2ry5ZbXr4jHadKkCYcPH+aNN94gKiqKv//+G09PT1q3bs3zzz/PU089ZXfbOXPmMGfOHGJjY2natCnff/89gYGBVm2mTJnCqVOnaN++PWvXrsXDw1i1Uq/XM2nSJP7++29q165N//79ee+994p9DiKPJGLlyN43vwfjr+FfM+/bfGeulWQr6ZjQPZRFP8dZtDOo8FiPMBb/HIdpnVEFiB4Z7vAxK0xvkAOcPR+ruO9Zmb1WdhKPxLp3mpMwR+KzpeA5qsCa2AsA5mSsWEltCZOk/POXinzdnVy10cxWYtGkT/GSMLCduJh6x4p4fax+ttHzhnYpumU7Her1K3VBHEfn/xX3POx8huz9/kz4UYbFCFEZZGRkMG3aNBYuXAiARqPh7rvvpmfPnjRo0ICMjAyOHTvG999/z7lz53j5J1jUayT/XbHSaq2rMlOgvH65cPcxHrcYdDodH3zwAR988IHdNvkXjc+/iPzo0aNttu/Vq5e5zeDBg222Kex4omQkEStHtr75VYBnVh62+DY/xN/HqWslFUw6AJbsirP6Bnp8tzDGdwvj0NlrqCp0Cq3j8PEqTG9QMTijMqNJaYdXWb1WDgzXs5nM2Uk84s7Gl/ozZa9YhsmHozsU6zNjijVR9SfOEESYJgkdV4tOkvK9NnHJnoWflxOrNloc31ZiMXKJA0mYaXKWWnThEhvvZaLBl7ijJwkL98+rcBikJ37xvwhVEo2Lf6s4r9evKI6sxedAMuzIFyP2egAbctGZZySEKAMJCQkMGzaMw4cPA/Dwww/z6quv0qhRI6u277//Pl998hYzZ84k7kISvXv3Zu7cuUybNq3sA7VRXr/M+QRYVJEU1YskYuWo4De/GozXTAW/zV/1VITT5zAVTDoK+wZ6UNviJSfO7MGrrEo7vKplUC3SsvTGpOrM1+YL/UQCibtjNjVuHZD3fGHD8WwmHhrCGoWiUf4o1WcqLLAGigKqjWRMBQJqehbv/fZvQoy+N1HZEzCgQYOBaPdlRBaWJBXoiQrr8wEapY7987LTa5OIP3FnkkvUI5mYcIq4nJbGxFHJXWxb1QOK9WtvpoGuk6HLE8a7jiwiXuC9jMnpRVTOoxjWpaNZ/2Pe2l8559Bpfrfc1hm9fo4qbP4fOJwMF/XFiM2eswG3ELTRem05IUTFcfr0afr06UNCQgKBgYGsXLmSPn362G2v0Wh44N7+DEp4g2f+6s3yr77nueeeIzExkbfeeqvQBYudokB5fSHKkiRi5Sz/N79X0jKZvOKwxfN6VSU9y1Dmi6o6c2he3NmzTu3Bq4xKO7xq2II9qOQmVW6riNQa8i68t2tg+x7Iff7FAS15c+NxO4mvKfF4Ji9jUlV0l38mekSvUn2mdL7ezBjQkugN1mt5lWQuYSL+RGU/iiG3l8iAhpk5E+iBPzpbG9joidJte4boAduZufFv++dVoNcm5qSeqDk/lqj31pgAp2FQXzImjm5L6KE9YiyA4tseXcGkr++r0KCDddLlSIJUoMhKVM6jGHIL3Vq853aSb9IuG18z0zBHR9f6KmlvrAPnUdolDGz93krlTZjzRLH3JYQoewkJCfTs2ZMLFy7QokULNm/eTMOGjv2+reWpsOzdV2l9W3deeOEF5s6di7e3N6+//noZRy1E+ZFEzAVM3/wmpmTY7UWJaBJQNmtK2YijVA59Ttj3r6FhnvkiEax7WyrT/LGSKunwKsCy/Hv2I7RUzlpceJPv+fxJmIlF4tukT4GqKyqsnUrk1KP0mNG7VJ+px3s0ARWiN+YlY8WdS2gSl5xmTsLyzkOxSuDNn530U+hsDHGLDEkp+rxye22MPZI/lqj31qo3Ew0zch5FyTH+W/PRH0SP6EXk1KNw9S8S3W4hLqsWYf6l+MznJpFxv/6KYavlZ8H8njcpmOjkdlt+M96YkLV9AI6sdKwgyqHPSfz+NeL09QjTXkI39BWrtiUahuzIEEYHWf3eaj8akERMiIomNTWVQYMGceHCBVq3bs2PP/5I/fr1i7UPRVGYPn06NWvW5KmnnmL27NkEBQUVWpBCiMpEEjEXKqoXxZlzmMpEbg+FLrdnYGbOBPRo0QAv9G9hjr0854+VOuErTs+BDcUdXmWrUqUeLb/qm1slYSamioV2KxVePWO919yharqw4FJ/ph7v2YSh7RuUaC5hfo4M57T67Lj1JlL7U94GuUPcHP1ZKWnJd4C4vasxqL4Wj6lorNZQ6zGjNzuT9cX/zNv77J3ZRtiuIr7sMCU65/YbEzBTVKoBfluRL+BCCqL8fZCYVd8SlWM8jibbQPTqZUTma1uqYchFDWEUQlQZer2eyMhIjh07hk6nY9OmTcVOwvJ78sknuXLlCi+//DJTpkyhbdu2dO/e3YkRC+EasqCzi0V2bsiuGb35cuId7JrRu8IXuLCQbxJ+pNt2XnBbiYIBA/DmpuPE/JpQ7MVaSyPm1wS6zfmRBxf/Qrc5PxLza0LxdnDoc2Op8M+GGP9/6HOnxwh57/mHozuAjaHuGlQ6u51Gg/3CDwPaBKHNHSdvNRyvmAsDF5cp2e3YqA6D2zUocWKn8/VmeAfLC/NhHfL2Z/Ozk/MoieSW2i3BELcSL2accp6wfS8X+p6AMak7dPZa8T/z9j575i87kol2W4IWfW7MWA/B9A2GGgEUum4Z5M0fy3dubH6JxMWjLIc/omFm9ngSE06bmzpjMXTzMV2xwLYQoly8/fbbbNq0CW9vb9auXUtISOnnXP3f//0fkZGR5OTkMGrUKBITE50QqRCuJYlYBaDz9SaiSUDF7v2yJd8Ff6Lqz5s5o1ELzGE5EH/VORduRSh1wmevEl4ZXSjqfL3xr+lhs/DFoz0a027a90T39EFrZ07yD79fZNVTETYT+ET82dNoEomqf94GbSOd0htR6mQ3n8SUDFYftnx91xy+YH7PbF/0K8SPWA/j1sHUo8VemNnUI2k3ibXn6hmrZEiD3iqP1ihwNflS0Z/5/IlIYZ+9Al927PKcwpfus9n1YE3bX9rYSsILyp+UH/oc3rsV9nxAnKG+VS+sHi3xat632CVOZPMrpy88hBCusW/fPl566SXAuIBwYQsMF4eiKCxZsoRbb72VpKQkHn30UYsS7UJURpKIiZIzTcJXtMQZgqwv4lQVjaKU/sLNjsSUDPacSTb30JQq4SusxHYZsXVRq1FgfLcw8A0mckAfds24i5cGWa9abyrqUjCBNydKxyPolvk+/8l+0JiQHYkpMqnM/3ra6rFwdu9mUe+Z3Yv+Ro0g7M4SJ5Y2e6GL6qHJTXDyJ0O7vZ5lzsAQc1IHxtdk1uZzKAV6ziw+8wUTkV8+tv/ZK5BY6ZSrRLidRNewqe048/1MAsb/t3vQ8r6pF9GUAOb2oIVpkqx6/LSKany9TccvaSJrUs5feAghyld6ejoPPfQQer2eBx54gIcfftip+69ZsyZfffUVnp6ebNiwgWXLljl1/0KUtyqViIWGhqIoitVt0qRJNtsvX77cqq2Xl1c5R13JdRwLU48Sdv8cmxfNHRvVKd2Fmx0Fe2aOnk8pXcJXxsP5bLF1URs9ItxcyGXPmWQABrXVOXRuv527xoxvLYtJLNYPJiLzfWZmjmPt/uMknouzmXBYvJ7R24iZO8mYKLx3K+yeDzhxWFqusMAaVj1KCnnVF02vj+ncNbaG45WQuReaq7D5paJ7aPIlOOZkaOgrRPZoy6qnIizOw9QrrLE1jPDvg/D9M5aJyJ4FFj3Le/StjcMvTUUtCiZWRQ3HzP2ZNPcaDv/Y8r6pF7HAlw865aqN4Y9trV7vUg2ndsEXHkKI8jN79mzOnDlDcHAwCxcuLJNS861bt2b27NkAPPvssyQklHxkhhCuVqWKdfz666/o9Xrz/WPHjnH33XczatQou9vUrl2bEydOmO+X+foUVZFvMLrwYKJHJNgsPOLMUvlgu2fmrY0neLF/S97adKJk5dmdUWLbRrGFooqH9Ghel3kPtEOTm7TaWyPsxf65JevJS2YB9hw5TpiSxM5r/szYeM7O7CANKwx9WbHtJsq2Y8xxW0Kk+05z9TzraoAKM7MfoYfmN+M6WVtmAQphbSaWeH07h4uo2Pjxy1eFv/gKK75y6HNjUpT/VVMN8P0U28Us7FT+S8vSW73uKho+cJtHgPIPofe/iS68Ye4aaAWOB4ABIp4h5udjRGU/ggENSrbKxF0pjO/uj64kFQcLFsawVSjDRtn7SLft9HA7RvwdswmNGG73vSpxIaGyWGBbCFEhHDlyhLfffhuAjz76CF9f3yK2KLlp06axZs0a9uzZw7Rp0/jmm2/K7Fiicli+fDlTp07l+vXrTttnfHw8YWFhHD58mPbt2zttv/lVqUSsbt26FvfnzJlDkyZN6Nmzp91tFEUhKCiorEOrlIpbgbCwhKtYF25FVC601zPT9hY/dpWmPHsxLnitXpsCCw0zZD4x+l6FVs6zlXD1aF7XKsmcseooqMbLd0WBFwa0AKBb9DYMKLnD4P4x98QURkVDVM4EemiPoMutnheX7Gn9eqIl3lAfnTZ3weIts9C1GUn0iHCivj2KAWN3+hsDbkF39VfAfpVJe1Uz45LTrBMYFXMFQ1OCaGqjUsyFwm28J+beoALD8iwZ4JeFcM9s66dsJDQ2qz+ip5P2NDpNCjRsmm9Ino3jKVoSWz1C1E9/mAcGqigs+jmOJbvi8j43zq44WPDLh9xFp3VdnjCuR1cWSvCFR3VY+kKIyk5VVZ588kn0ej0jR45k6NChZXo8rVbLwoUL6dChA99++y1btmzh7rvvLtNjVgRFdRa88sorvPrqq+UTTAUTGRnJwIEDXR1GsVWpRCy/rKwsvvjiC6ZNm1boB/fGjRs0atQIg8FAx44deeONN7j11lsL3XdmZiaZmZnm+6mpqU6LuzjK8gKl4MXzhO5hPNI9rMjjOJRwFdVLYe/iOVdhZc9LXfLfgRLbVonFgBAif8qb95Jo8OPA6hVE5QRYl/kO0qPLOUeiWwhRq/6wen7+6PbWa4yplv9+c+NxVNV4sQ44lIDlZzAlWcpVuPoXYYG3Wb2eGvRcoTaJqr+xHaoxOUltg4oPxtqOBq5vnsMeJc7umlOFlTsvqnx9aUrN252L1KQPifgTd/QEYQa/3HOzYe+H0OUJq8+CrZ85na+3ZY8let5wW2pMwkxJRtxO6yF5ua80Q+YRl1XL6lwLvl62zrmo3wFF/o5w4vpeDivGMctz6QshhH2nL9/gpppi/filGwBsXv8de/bswcfHh/nz5zvvwMkn7T4VHgCTH45k/tIVPP300xw5cgQPDw/nHbsCyl8pMiYmhlmzZlmM6qpZs6b536qqotfrcXOr3Jf6WVlZDr2v3t7eeHtXvi/rqtQcsfzWrFnD9evXC50o2qJFC5YtW8Z3333HF198gcFgoGvXrvz999+F7js6OhpfX1/zzRllWYurNNXrLIoy2Hm+4MXz4p/j6Bpdsip5FscrrGKagxP5S10woBRsJhYbz5Fo8AMgJqcX3TLf5+nsp20nEYsfhM+GELf4XzafJ/eCszAGtcgC5bZG+Jlp0BOquWgeErbz5OUCHTUqKhomZ0+hW+b7xOT0Mp77nhXMOOBjTvxUNETnPMiD2S/R7eY8YlavtnqvikqmCnsfS1Whz85cpJg9x40/N+syLM7Nimqwmrdk72cu5tcE3txkTMIUBV7ofQuRE563nI9lcw6iBh7dCh3H2jxXE72qEn9sr9Vr+8nOM3Qt5HeAw78jfINLVfykRBw4ZnkufSGEsO3SDeOXzlNWxjL4g11Wt6kxsXgqet6PfhWA6dOnExzshN8lPgHg7gOrJsKinnZvrwaupV4NDSdOnGDJkiV2d3f60g2OnU8x305e/IesHAM3s3LIyil8WZKKJCgoyHzz9fU1j+oKCgri+PHj1KpVi40bN9KpUyc8PT3ZtWsXDz/8MMOGDbPYz9SpU+nVq5f5vsFgIDo6mrCwMLy9vWnXrl2Rwz1DQ0P597//zdixY6lZsyaNGjXi+++/5/Lly9x7773UrFmTtm3bcuDAAfM2V65cYfTo0QQHB+Pj40N4eDhffvmlxX579erF5MmTmTp1KoGBgfTr1w+A77//nmbNmuHl5UXv3r357LPPUBTFPBRx+fLl+Pn5mffz6quv0r59e/773/8SGhqKr68vDzzwAP/884+5zaZNm+jevTt+fn4EBAQwePBgzpw5U4x3pPQqd5pciKVLlzJgwAAaNGhgt01ERAQRERHm+127dqVVq1Z88skn5omgtkRFRTFt2jTz/dTU1HJNxkqzqKojPV22Lp6hBEPDbB1Ps5dH3HJ7IgouLpvv4jlR9SfOEESYJgnd1b+sLtgKDoME2HMmuUyHLyWmZLDuyAUbiQXEqzoAi3WYCtKiJ1RJAiBMSUSDwWqB3k6hdSwWfNYo5PZ+5SnYi5RHBRRzj8x1tQbR+gfJn5YpGIh2W2p8/fu+TiL+RK36sUBip+QtUoyGmblDGQ8amtjofVPy2mWPp0fCaXThee+V7V4vCPVIBQIs30ePVHQpB+DYAQjpgs43OPe1OIpetbN2lj025iIlEkjUzpsWxUxM52bVM1Zg3pK9n7mWQbUsHldVeGt7EkPv6G29xpetIXm3GMs6m5LSGd8etZFkq/j88BxsjTf3EH+y4wzRG4+bWxT8HVCqhZcriFL1iAohnCI1I5t6wPP3tKBu89tttvnq04+ZfTYenU7H9OnTnXNgvxCYtB/SrxTeLPkkrxwdx6QNN3n99dcZN24cNWrUMD9fp4YH3u5apsbEWmwXXEvLq73rwdV0tP/oaV6/Fu5ahfR05y6t4ygfHx+n1SiYMWMGc+fOpXHjxtSpU8ehbaKjo/niiy9YuHAhzZo1Y+fOnTz00EPUrVu30Ok97733Hm+88QYvv/wy7733HmPGjKFr16488sgjvP3227z44ouMHTuW33//HUVRuHnzJp06deLFF1+kdu3arF+/njFjxtCkSRNuvz3v8/XZZ5/x5JNPsnv3bgDi4uK47777mDJlCo8++iiHDx/m+eefL/K8zpw5w5o1a1i3bh3Xrl3j/vvvZ86cOfznP/8BIC0tjWnTptG2bVtu3LjBrFmzGD58OLGxsWg05dNXVSUTsbNnz7J161ZWrVpVrO3c3d3p0KEDp0+fLrSdp6cnnp6epQmxVEp6gWKvp2vJz3HMGZk35MfWxXNxjlPo8fSDWaIfaCwY4bY9r2Kab7D54vmTrAHM0RvXJNNg4IFf3Oj6zwU65RazMDENQ8yf7CnAxDvDGO/AMMriyH+MgrSKQug9TxG3+eNCk7A3TAkQeRXqZuZMQI/W+HynjLziJpk7id/8EaFKIjsN7ZiZ8yh6NTfJ0i7ljNqARfrBBY6iMEXzLQ+4/wRAt8z3sUzC9KzxeIV2mtyeHt+GdpPu/PRoWZ/TBU8lu8h28Wp9dPkeMyUY5iIuufGz9Bh7OrxIWOPm6Bo2Q5eyrUDhDAWGvk9k1jV6eMwn3lCPUO1ldNpXgCLWDjMNfe37Kmx9zZz4xHWZjWG7jZjvWYaOo7D1Vbvzluz9zP0af83xn8UihuRFdm6Ij4eWp7+MLXBCCumqp/mLi8S6dzInXxJm67hVIYkpauiqEKL8hPh70zTYuvhGSkoKH777FgD//ve/LZKgUvMLMd6K8GhHd975PZC/zv7N/PnzmTlzpvm5YD9vtj7Xk2tpWRbbGHKyUFMvEeTrxcU0A3qDgezMTIuhfeXpxo0bTnvtXn/99WLNl8vMzOSNN95g69at5s6Jxo0bs2vXLj755JNCE7GBAwfy+OOPAzBr1iw+/vhjOnfubC6S9+KLLxIREcHFixcJCgoiODjYIoF6+umn+eGHH/jqq68sErFmzZrx1ltvme/PmDGDFi1amIvBtGjRgmPHjpkTKnsMBgPLly+nVq1aAIwZM4Zt27aZtxs5cqRF+2XLllG3bl3++OMP2rRpU/gL5yRVMhH79NNPqVevHoMGDSrWdnq9nqNHj1b4yX4lvUBxtKfLdPFsK/EozoWQ/ePl64nQpOT1PPgG80mzT4g+4kP+npYVsVdZEXsVBfISxtyL7YJzrVSwLnJQBEfm2dhPwnILVnQfCI26oVnwO4Z8yY8GPR+4f0hHzSmrXpdIt+300B4h3lDfOFTwmIY9t4QQpiSh2zoZncZ4wEjtT/TQHiVeX49QTRI65SqJqj9L9AOtEr/3DcNJz/GkrXLG6jkVrfGCPp/Cku78W/5bPya3n8zY62aLFj2hqQeAlpbn2bkhPYL0xC/+lzGx1Lel2815GPZq0Oz9h2i3p4xJeYFj5iVm/sb5cAV7UG0pOMew72vQoAP4NyYMfzQ7frT+uWlzB/j2JrHhEOLOxhPWKBRdSFiRr5NWUegcWqd4P4sF5iAW/OzdFupvs/BHqOZi7suiJ+5svM2hqRolr/S/aWmA/O2UfM9XBlZJfDkOQRZCOOaDDz7g2rVrtGrVinHjxrkkBg+twuzpT/GvyTN58803efzxxwkICDA/H+znTbCf5e+NmzdvEpeejKdWA1SeoYmOuO2224rV/vTp06Snp1slb1lZWXTo0KHQbdu2bWv+d/369QEIDw+3euzSpUsEBQWh1+t54403+Oqrrzh//jxZWVlkZmbi42P5t6ngIuAnTpygc+fOFo/lT9zsCQ0NNSdhADqdjkuXLpnvnzp1ilmzZvHLL7+QnJyMwWD8LCQkJEgiVlIGg4FPP/2UcePGWU1QHDt2LMHBwURHRwPGbw3uuOMOmjZtyvXr13n77bc5e/Ysjz76qCtCd1hJL1CK09NlGjL26e44luyMsyib7uiFUKHHQ8t6/R0MunuQuUJbYkoGc47a/0ZIBaJWHaVH5k50254G1UCc4VYM6v9ZtXV0KJYjxQDsJZQvu/2Xgdpf0P10HWrOR9dxLNED/2Hmhvi8Xi63pQzS/mL3+MbzUvhfTh8W6O9FXXMNDe5Eu/W0SE50JKPTJufdz+1Ri8p5zOJPiJq7dpiCAQWDxVBCiwt6FAi53VhoYkBLojdY97DkMRUFKWzYhMoL2pXotm2C8N5WiZIu5xw6ze8kqv4WwzcNuVUcW2oS8nrq8u0zJqeXub0GA9FuS4jM7UG1SqBNa3SZ0g/VQOKW+cSNWE+Yv3/eFwz5qz7mfp6Nn4M/cj8HfxA9QmvxObD1M/dEr8bsj7/Kk72asHD7X7mPwxs9PIzrk1HMoi+5nz2rHkS3pQDs0bcmTHuJo2m+gPXwmRcHtCz8Z7OoiYUVkLOXvhBC5HP9XJFD/zyv2x8hlJKSwrvvvgvAyy+/jFardWp4xfHAvf14c9FKjhw5wvz583n99deLvQ8fHx9u3LhRBtE5dmxnKdizptFoUAtU7M3OzhvhYjrn9evXW83vK2r0l7u7u/nfpqGVth4zJThvv/028+fPZ968eYSHh1OjRg2mTp1KVpZlj6Wzegfzx2KKxxQLwJAhQ2jUqBGLFy+mQYMGGAwG2rRpYxVPWapyidjWrVtJSEjgkUcesXouISHBYszntWvXmDhxIklJSdSpU4dOnTqxZ88eWrduXZ4hl0hJLlCK29Ol8/Vm5sDWjO8WVqILocKOB/DvnId4Yz1EeybklTMv4mLRoEL85o/QaYw/SLbmWpkUNRTL1tDJqG+PUsPTzWIYpL3y5AO1v+TOdcPcUxPZoy09snYSv+MLQjUX7VflA4skI39PU/65S4Bxrpz2EjquYLqaTlT9CdEk89o9wby8+bzVvlU0KBjQoMeQLyk0xqMhse8HxCV7EkaG1TeFRenTsh7bjl8q8KhCW81flkNNTVLOQ1oyoBBnCLJ6rwxoGZb1et5w1Vz2krYebrews2AS0+kGkb8/Tv5sw/z6rjiDRjlD9IhwU6gWHXuOzqfK/zP3373xLPgpb0LvwDZBjAk8Qei+l9H9kgz7bVf8NDEtvm2ei5fvmBY/24kb2fmDhm6Z75vXF+OnRKv9TerVhMd7NDHft7k0AFSqoYkmpa6EKoSwdv0cLLgdsgufExUCpKue6L38rZ4z9Ya1bNmS+++/v4wCdYxGo2HWrFncd999fPDBBzz//PPUrl27WPtQFMW5QysriLp163Ls2DGLx2JjY81JSuvWrfH09CQhIaHQYYjOsHv3bu69914eeughwJignTx5ssjr7hYtWrBhwwaLx3799ddSxXLlyhVOnDjB4sWLufPOOwHYtWtXqfZZElUuEbvnnnusMn+T7du3W9x/7733eO+998ohqrJRkguUkvR0leZCKLJzQ1oG1WLYgj22V2xSCy9nXpBGgVAl70LUXs8QgFZR7Q7Fsld4wwBMXnHYoofCujcE3tDmzfdKVP2J0wcRlluoQtekLbpdf9o9h0TVnwP6ZgUKe1j2NunR8p+sB1mv3mGcK5etEn1bGpG/P0lM9p3mbZXN562GoJmoaPjQfT7+pOYmhdfhvuXEXG1C1PpzGNRf0CjwQFgGYO/9tRyKqEXPM118+fH4JYtjagtUYjTb/T5snZVbg18hTHPRZuJsMVxVuYoxadPZTNo++PUGK39NsEygD3gT6N4Ob7II0xgLolgkcblJNvk+XwbV2MM6qXcTh+dT6Xy9uZR6kw3Hkiwe33Asicc930GnGHstEw1+xK35hLC6d1oNc4z5NYEZq6yLcuQ/pumWGDiSqPV1LNYXs6V7M8s1FMtkflUR6/sJISqR9CvGJGzEYghsbrfZ6cs3GPvlGRbVtPyZ/+eff8y9YbNmzXJpb5jJ8OHDadmyJcePH+fjjz/mxRdfdHVIFcJdd93F22+/zeeff05ERARffPEFx44dMw87rFWrFs8//zzPPvssBoOB7t27k5KSwu7du6ldu7ZTh5w2a9aMb775hj179lCnTh3effddLl68WGQi9vjjj/Puu+/y4osvMmHCBGJjY1m+fDlQ9Npq9tSpU4eAgAAWLVqETqcjISGBGTNmlGhfpVFly9cL+0w9Xbuj7uLLiXewa0bvMl2bJy1LX+ioKIty5gNC0Ob+TBX80VJy1+zSaa4DxoRmj741PdyOsfvhujymXYcGPWCcm/WIZgOkJlGQqaz3f9bbH45nTBCPmEtlR3ZuyK4ZvY2v11OtiXTfadxXbrn6B7NfotuKG8T8mkCiWwh7DLeSqFp/g2gub58zxW5hDyOVdWpX89BCAwozD9Zi211rmZEz0byt6XXV2HiFtYpKR+0ZIrR/GpOwu18lMaQ/URvPWSQjK//ywPYYeZVeHEKb+5qaetXaeV1kzsh8Zefz97a1jcy7SN89H7a8nG8hNBWd5hrRHf8xv0/56dESf+d7cN9yePZ3wvo9lbtYtaX8SZiJAS0Tsqcb34fM9/k0u5+NJM46yTeo8MGP1qVqC0ta9sfb7uU8kNMUyPeZyJpJt4/+sCgbb16k2sYPhAa4kpZpUZ7dkWIq9nqzHV3ioajlLIDCl50QQlRegc2hQXu7t5uB4Vwg0GqzZcuWce3aNZo1a+by3jATjUZjvpB+9913yciQpS4A+vXrx8svv8wLL7xA586d+eeffxg71nK0xuzZs3n55ZeJjo6mVatW9O/fn/Xr1xMWFmZnryXz0ksv0bFjR/r160evXr0ICgqyKq1vS1hYGN988w2rVq2ibdu2fPzxx/zf/xmnpZS0eJ5Go2HlypUcPHiQNm3a8Oyzz5qLgZQnRbXXfSQclpqaiq+vLykpKcXuCq8OElMy6DbnR7sXlFpFYdVTEaT9vpGwfS+DaiBe1RF6z1MQPpKD8ddQFOhoGi546HNiVq8mKvuR3LlDKtE9vYj8ZSSJqj+fZvdjsWFQbtVFmHBnGI+09TYvpNztoz+KvLg1+fLBJkS0bWn9xOonSYzdZB4yZpK/d0rBwETNesa7/wDAQUMzns5+2oEFmO0XxCg478vkQ/f3+SqnBzvVduYoRrb05p1mv5O4ZR5x+vqEaS/yae1JLLpkfT6DlT2sU7tan7/7bEI1F4k31MdHySQNb8Im/g9dbQ8Sj/9C/Lq3zQVEjAFqYcIWuH4Wvhlv+/TGreO30wkM21bbcg6borBrRl7Z98SUDP6z+iDrjlsvImqvF9BEg7H6oeUi1Vj0iNmjKDAntzfUViGX385d494Fe6y2+85zFvW4avWZyH9ee84k8+Bi6zmDpndbxXK+mCM/O2+MaGP3i5TElAzLYcUFerUcWjA55bwx+cq/LpuiNa6TVgF6xirK798FCxbw9ttvk5SURLt27fjggw/sTib//fffmTVrFgcPHuTs2bO89957TJ061aJNdHQ0q1at4vjx43h7e9O1a1fefPNNWrRo4VA8FeV1ERXUhVjjWlyP7TAmXXYcO5/C4A92se7p7rTJrZqYk5NDs2bNiI+P5+OPP+aJJ54on5htKXAe2dnZNGvWjLNnz/Lhhx8yadIkm5vdvHmTuLg4dMEhJKTm0KxeTbw9qtwgsSrtP//5DwsXLuTcuXMui8H0OQoLC8PLy8viOUd/B8unTpS5gkP7lNyraBXjheSwDg0Y/tEeDKovGuYZCzK4bYdtz0B4bwa3s7zYS2wyiqicAHNfiQGFmTsz6eEZCBhYkpuEGZ8zluhf/LOBKO2XaBQVg/qQQ3Fr0BOqXKRgFUBSzsORlcQZWtoYYpf/3xoWGYawOHMwpkWS7TMmX/YSLVMbe88dN4SwS21L3iW9wprjaTQ/vY83c+YbE9ZsA4abts9zuNsu1mVHYJkAqvgomeiUq+xU2xKVnVs0Y8HvRLsvoYfmN1SCCoSoh6V9sDvZT9GAf2Pa3X0nczyPMHPjudw1wowJBRjXgzt6PoU3Nx63m4CMvaMRn+07a+d1MvaQPda9MUt3xVkUtAHMn0N7FBV6NK/LJzvOMGfjcavkqF5tL3o0C2TnqbziKSM7BtOu6RTe+Haf1WfC1OMLcDUty7qaYe5/TCEVnKNmb56lAiwa25E+rQq8B/lYDCsuUFEysc8HxmGPRcyNs7c4ttVcwGosJiaGadOmsXDhQrp06cK8efPo168fJ06coF69elbt09PTady4MaNGjeLZZ5+1uc8dO3YwadIkOnfuTE5ODjNnzuSee+7hjz/+qJLzWETlsXr1auLj4wkMDLTqWXE1d3d3nn/+eZ5++mnmz5/Pk08+WW7rQYmy9dFHH9G5c2cCAgLYvXs3b7/9NpMnT3Z1WKUmiZgoF7YWYI5PTsfHQ5ObhBnbWSyyy1WbF3u210iC+Dtmo+5ZYGfInybf4sb2e5zyqLzoFoOuYd46FubekfRT6FQDYZoku4VCLPekOHA8BQ0GFrvPZWL281b7VNCjYn8M/of6eyk40liPljk5o/MlpbbjfFS7AW+ybMSokI63jaIZCjOyJ6Dk7lPBwAy3L3ncbX3uCee9ORYLcytXofs08/sZ2aMtPdo149DZaxhUlQvXbxba+5NfSEDhc500QNsQX1Y9FUF6lsGi0EyP5nX5YNspVuy3/S2aAfjgx1Os+CXveVOScj09mzc3HTevWTcoXMfwjg3w9nDjN49GLNYHWO1Po8CR89f515J95u1Mn0KtojCheyiLfo6z2Cb/cN0ezesyqXcTqyGUKvDo5wfNvXeFSjmfl4SBseLo5o8xqDMtmtmcG2djcWyruYDV3LvvvsvEiRMZP97YC7xw4ULWr1/PsmXLbM456Ny5s7kUs705CZs2bbK4v3z5curVq8fBgwfp0aOHk89ACMeoqso777wDwFNPPeXUan/O8vDDD/PSSy9x6tQpNm3aVOGXJBKOOXXqFP/+97+5evUqDRs25LnnniMqKsrVYZWaJGKi3BQs+mEaqmWVVKHloL4pg90PWl/spZwnLP2U7UIEEcPh1gg0doceKgX+b0mDiiE3IXrRbSVD+w9gT25lwZ2/nTLPrdIoEO3Wm0jtT7mFQh4tMhlzhAENcQYdL2q/5C39A+jRokHPo9oNDNL+wvCs1ws5jmktlPzDJAvrXTO10TPe7YfcPVgnlUe6fYiqTcCw1bq4hprv39E5D5Kq+jDd/WtzG5ul5xv3stjPzpOX7VbVtMfe+l1552RMUvIXXYloYpkgrfzV/lAGRcEiCTPRq6q5h4zcY6w/msiGY4nGBEuxPVzygc4NLXr3TD1sHzzQgU6hdQBjr23Bbdf+dp4jf183J362qA4u02CrVytMueBYQQ/fYGMFyLVT7S54XZ1lZWVx8OBBiwsCjUZD37592bt3r9OOk5JiHKLr72899xSMi7JmZmaa76empjrt2EKY7Nmzh19++QVPT0+7w/5crWbNmkyYMIF3332X+fPnSyJWRVT2Anv2SH+tcClTdbeCnsl5hphbP7a82MstGKD79l6itYvQ5l665i9EoAsJI3pEeJH9TwVpFYXVk7rx5YNNWD28Jlc6TaHrujo8uPgXukVvY8aGs5ZDuHIe5Te1KSHKJRa7z7VZVKL4jAsnz9GPZohmDx+6zWO35xRmun9JO81fvOj2JYqNIhd5CiZLip241Hz/0vB9TgQ65Rovts2gYCrx1vYL1KhVG02R56ewQD+cT3IGA7ZLz8/MmUCi2y3mLQpbKNse03vdLqQO0SPCzZ8djQKTezfhwS4h5mWnIa8nqzgFMOyOqsQ60VLJS2TsFeDo2jTAZpGQgJqe5uTJ1iFX7D9HdCHDM03yD320y9SrlY9Ok5JbHKfogh50HGucEzZunfH/dsryV0fJycno9XrzwqUm9evXJynJulhQSRgMBqZOnUq3bt3sLjIaHR2Nr6+v+RYSEuKUYwuR3/z58wEYM2aMzWG3FcXkyZPRaDRs3ryZP/+0X8VYCFeTREy4lGkOTMEPogENMw/WyruALjC0KtJtO7s8n+ZLj/+wa9BVi6FZkZ0bsmZS10KTMUXJ+/CbL+5rp5Nw/m+Gr0ln0S+X8y7mUax6lvSqwrDM13kw+yUmZk9nhHaXubqgBj09lNh8lQHzpwYF5e9fMS2crGGN4U4m5zzDTr1x1fqYnF68mTO60OGJNs6Se/ySbCRvisW/o/UP8knOQBroGlCwt1CvKqSrXrzotrKQc8gTnTOaRAJtrhemR8uha3nVjeLOni0iych7bXqFaCwqfCamZHD60g1z8qOqUMvbnS/t9GTlT1RsJf+ODB59qncThxL8/J+r6JHhdGpUx+p4+Xue4pLTHNirZaz29gV2qiCaerWU3M9Pbq9WZI+2edVAi6qe6hsMYXdKT5gLTJo0iWPHjrFy5Uq7baKiokhJSTHfXDmBXVRNSUlJrF69GoCnn37axdEULiwsjKFDhwLw/vvvuzgaIeyToYnC5SI7N6SGpxuTVxy2eNxivoqNoVU65apx3lFuUY/8F4jtQuowZ2RekYP8VelMiZfFgthnvibxvdeIujnPwWGGqnlNJwMKawx3ssrjZdJVT/NCzp9kD2KO/kG7az+Z9jNIs4/1hggbzxkXMG6pSSjx8McfrgfhyPy0OTmj4YfrVm01GPC5eZHw8HZw2JE0ROFg/+8IUS7DautemkkrDnMjM4dI7XZqfDcfeM1OfPnn8SlsP2cg4vx1IpoEELPzCDM2nCtQGAXezDds0OIcFCwSFet14WzP08r/GrzYNoOhdzTio5+sS93nZ6oAWnBeWsHj5e95CgusUWQVyPz7f2FAC97aeAK9qqJR4IUBLcz7KrQKYsex0KSPcd6lf2Pzz4ssmFw6gYGBaLVaLl68aPH4xYsXCQqyX0jFUZMnT2bdunXs3LmTW265xW47T0/PEpdxFtXb+esZXEvLsvnc6Us3zP9eunQpOTk5dO3albZt25ZXeCU2ZcoU1qxZw+eff86cOXPw9fW1aqM69JtXCNucUXheEjFRIZh6DezOVylQMMCiCISdoh7mAiFnzxKqJHHJrQG/JrvRObQO7UKMc3PMJb3XTiFOb10F0UTJ7RczoLU5l8rYc+RJhPZPc3xv6kcXkYQBaNho6ELB+V0mBrR8nXNnKeagObad7blkKgY0DN/kxotusWho5VAcio8/aTWCAOsy7QAzVx2lh+drJOibYD9JtH78zY3HuSNzHzMKlL03sde79uKAllaJRmTnhvQI0hOfEEdowzCoHcSSXXEFyt3r+cD9QzpqTqE7lcKes23tJnoG1XLYZEEFi9UUnCs5Z2Q4M761XuQ5P4tS9SrMyR22+ObG4/h5u9OjeV2LoZ42qyD6BkuPlpN5eHjQqVMntm3bZl4Px2AwsG3btlJV9FJVlaeffprVq1ezfft2p6/nIwTApRuZ9P14BxnZ9oe9e7trqe2lZdGiRQCuLVdfDD179uTWW2/l999/Z8WKFTz55JPm59zd3QG4mZEBeLgoQlHZpacbv3A2fZ5KQhIxUSHY6qWwmK9iGlr1/RRicnpYFoFwX0aknQpuujNfo1s7hZjsfNsU7CnI7W2zVwVRg8qLbl8SrCSDqhKiSbYqnKFVVEI1ed+I2xqaZ48BDe04wW80xzoBUfnC0I/CKz06UgWyJEw9fhrezHmA25Tj7FdbFXosBbiljjcJV9PtFtPQqxCvr4tSzJANKmzb/iMqIxzeJuoOD4aGadhzJtliLTAOfY5u7RR0uaXcGTKf6BG98j5/uYtUD9LmJpMqhCkXbX5ZYKsHzJbCep5MidrB+GvsOZPMyv3nMJDXA9Y22M+8/8SUDN7clNf7Z0q45o9ub6OaqI0qiMLppk2bxrhx47jtttu4/fbbmTdvHmlpaeYqimPHjiU4OJjo6GjAWODjjz/+MP/7/PnzxMbGUrNmTZo2NS4MPmnSJFasWMF3331HrVq1zPPNfH198faW91M4R2pGNhnZeuZFtqdpvZo229Sp4UHs7h9JSEjA39+f++67r5yjLBlFUXj00Ud59tlnWbRoEU888QSKaU6sVoufnx+XL1/G4Fmbmze1KIaSX0yL6kVVVdLT07l06RJ+fn5otcWZNmJJEjFRYRTWawBAx7Ek1r2TqAW/Y8iXJMzMmUAP/NEV3GFuT1eiwc+ycIQKUd8epWVQLWPvRW5vm46rRLstYWbOBIuKhQGk8mbOaHOp9onajbzYNoO3jtbMu2jXLs1b1BiKKG1vnTgdoanVY0b5Kz3aS7jKIgmzZEDLfrW1jWfyYlKAAeFBDPtoj92CFyY+SiahyimHKjuaaBUI5JrDMWvQw4FP6bZvtEUC3iNIT9yahYQpfgDE6YMI+/41Ip/tQ48ZvY09qKsGoSNvnTAULbqGTYkeobf6ssBWD1hJ6Hy9GdzOm8HtGvB0n2Z2fw5sL99gXJjPoSqIwukiIyO5fPkys2bNIikpifbt27Np0yZzAY+EhASLtYwuXLhAhw4dzPfnzp3L3Llz6dmzJ9u3bwfg448/BqBXr14Wx/r00095+OGHy/R8RPXTtF5N84LNtjye+3l8+OGHK9UXAWPGjGHGjBnExsZy8OBBbrvtNvNzQUFBXEy9yYWkiyg3U/Fwk7IJonj8/PxKPQRdEjFRoRQ1XyUuq5Y5CTPRq4rtb/1ze7ps9U4ZgGELdjNnYEMi2wVAxCTY8yGRbtvpoT1CvKE+oZqLXFL9GJb1ujlZUNGwSD8I5YjKjDbXaXviA0JNa2TlMg2bfNHtS97KMZahz0tYbCdTqkUbexT6cIBtdCqiXXkyJWEqXRoHsOGoY1Xi0lVPdJqrzHFbQlTOBAxFFCHRKPBCLx2pP9fE0R5AQ8F11FSYsepo7mLi/2euKKmiQck2MOPHP3l8eF90bVtCziskfv8acfp6hGkvoRvyCvgGE9mZwr8scJLCfg5MxUYKJlydQusU3qssytTkyZPtDkU0JVcmoaGhRc4tcMbcAyGc4ezZs2zYsAGAxx9/3MXRFE9AQAAjR45kxYoVLF682CIRUxQFt5r+TPvvn3w1sTNh9Wu5MFJR2bi7u5eqJ8xEEjFRqdi7CC34rX9iSgZx/9QjTA2w2zulojBzQzw9tg1Dp1zBdHGvU66i014lJqcXM3Ietdljo6Iw51gt9nhaJmEF1856UrOGOkoaYZpE4gxB/Ftvr+x30cmFBgPb6FhkO1dQUdj3V95rWBQfTTZgrH7ZUpPANn1H3tfbH3JoUCH6p0QgstAoLI+vWr13+a9t8z+noiH6l0zwP8PjPZsQo+9FVKax7LwmB6L14eYju7q4RWHDeIvsVRZCiGL69NNPUVWVu+66i+bNm7s6nGKbOHEiK1asYMWKFbzzzjvUrGk5BPNmjorGzQMvLy8XRSiqM0nERKVS5FwyClSOYz7RbktyF1627nkxLh7dBH+lvrHwR25SZVoHq7BhcyoaDhmamecR2Vo7a4FhOKCg0Rt4UfulzYTQ/vA8NbcPzbgemLH/pjRDJ0o6l8zR7Rzf97DM15jjvhRUQ6kXxDYm5raKnRT/XN/ceJw7GvsXXfTCxYoq/lFR4hRCVG4Gg4HPPvsMgAkTJrg4mpLp2bMnzZo149SpU6xcuZJHH33U1SEJYSYDYkWlE9m5od21jwouEmyeQ6Y9wmqPV6wWOFYw8HTOMzyY/RLdMt8nJqcX4HixjfzDh2xvkzeX7S39AzypXQMWMRgYp/kB28XLFVRU/u22NPd+aX9cSzrUqaQ9cPbXT1NRmJH9KC/mPFbqJGzC7XVx1q8yA/Br/DW7RS8qEp2vNxFNAiTpEkKUmZ9//pn4+Hhq1aplrgpa2ZiKdgAsWbLExdEIYUkSMVEpFFyk1tZFaGJKBuuOXLC+iEZLvKE+7TR/McdtiXnhZWNPVN5izQY0vJjzKOv0Xaih3ERTIGkrmFQoGOikPW2+bxoCaY8eLR/ph2H5Y6fhM0M/7Cc7Go7oQ+30mBmgkOPZ2lf5KnyZZGfMgFn9VFcG39YMxWpvJd97WKBPoQswCyFEdbF8+XLAWJDGx6fy/g4cN24cWq2WX375hRMnTrg6HCHMJBETFV7Mrwl0m/MjDy7+hW5zfiTm1wS7bf6z/rjVc1r0uaXlFSLdtvOCdmW+4YAFEwUNk7OnMDzrdborR4yV9zBW7OuonCLvAl9lhOZni/lhOsVYddGU6FknA9ZzloyPFv5j+JV6l83HK95MsfI1qVcTjif9w/CP9lis16ZRYGAbHVpzfXzrpEwBHuwSYnO/Ph7uRI8IN2+vUeCR7qFOjl4IISq2Gzdu8PXXXwPGRKZCSz4JF2Lt3urrE7mndw8AvvjiC5eFKURBMkdMVGhWQw1tzNcp2CY/raLwxoBQdCGfg7sPvy2ayBz96CKTHwMadqrtUTDwmHYtg7T7GZb1GvnLya8xdOf5O4LR7XsF08W+qfhE/kqLRs6fn1X4OZTV2mIVRytdbZ5ZedhyEWbF2EvWLqQOn+w8w5yNx1FV62qVKrDyl3N2C79ENAmgR/O6fLo7jsU741j8cxxLd8VZrj8nhBCVwPnrGVxLy7J4zCv5Bk2Bc1cz7G63atUq0tLSaNKkCd26dSvjKEvIJwDcfWDVxCKbjqmjsBFjIvbaa69ZLCkhhKtIIiYqNHtrJuUvV2+rDcDLER4M7NgUXUgYYOw1m5H1ukXvSVFUNCzVD+Qf1dsq8dGj5ZBfH+rcUZewfS8bS+WrOq4YatpIkgpbB8z6qJbrhznSrqCijlO5EzWtooCNBaMNKqRnGYyLHm88nq9KovW5GoDHujdm6a44m4VfLqXeZPHPcVYLJ1ekoh1CCFGY89cz6PvODjKy9RaP36rEsd4T5m4+gbd7U+rU8LDa1lSkY9y4ceaFkCscvxCYtB/SrxTeLvkk92Y/Sq2aNYiPj2f37t3ceeed5ROjEIWQRExUaI6Uq7fZBj0DDz2G7vA1uPs1Ets8RtSqo3aSsMLX+NKjZaXB1vBAlclrzqLii8K83EeMZeutKyHaqupnj6N/8Erzh7Esqyc6R8H3NL8X+regU6M6dj8b9pLz/LSKwvjuoYzvHppXfZCrELeTmHN+zNhwzmpQY8EvAYQQoiK7lpZFRraeeZHtaVovr2y7V7IvrIb5D7THu1Engv0sf6edPXuWn376CYCxY+0tu1JB+IUYb0XwcVe4b1BfPo35jv/+97+SiIkKQfplRYVmKldvmq9jq1y9VRv0vOG2NHf+lgpbZhG3/b+FXJgX3vuksVtePq9EhIrGougHuf+yPIYzylO4cpHX8kvCFGBC9zC7z7e9xa/Qz4YpObfcp8E8508DTMid92Uu/HLma5jXhsTl44jacNbmKy1FO4QQlVHTejVpE+xrvjWta0zKmtataZWEgXH4nqqq9O7dm0aNGpV3uGVmzMhBAHz11VfcvHnTxdEIIT1iohJwZJFac5tjewndPMGiiAZA2OE30SjvF9lLUpAGAy+6fcmbOaMtyqzbX/vLSEWT2yZvC+ckUfaSIXu9VZVvCKICrJnUlXq1vViSb2hgfrtOXyaiSYDdz0beenNH0at5yXkP7RE+zenHEv0QFv0cxxLTvK/mWlg7xTi81M7SBRoFqy8BhBCiKlq5ciUADz30kIsjca6eEZ0ICQnh3LlzrF27llZd73F1SKKakx4xUSk4smaSztebiDYt0CnXrJ8jmegeXla9JNaMl/0KMDg8iNWjAnncbb1FNUQtema4fVloqXrbvWhlmRDZS/QqVxIGMKJjMO1C6gDQMqimzTYLfjrNuiMXSEzJQOfrbR6OmJiSYV7qoGVQLV69O5hntN+yyuMVIt22A7BEP8j8zpnmfSUmnALV+KitZQg0GIuASKEOIURVd+zYMY4dO4a7uzsjRoxwdThOpdFo+Ne//gXAf//7XxdHI4T0iImqxjcY7n4NtsyyfFzREtm1JT26+vNBzHpW/OVFwSRFg54X3WK40mQYi0/4sO5oEuuPwpyWs4mMf5ke2iPEG+oTqrmITrmKH2nMzJmAHq15oWgVDVr09FN+ZYPaxeoYZavyJV22rD58niD1EgsOZxfSSmHyisNoFBjeIZjVh89jUPNeAcuUdCQf6Iczx20JIZpkq94uvaoSrwahUzSgGszLEJjeW9OQR1NyKIQQVVlMTAwAAwYMwM/Pz7XBlIExY8YwZ84cNm7cyIvXrL+4FaI8VakesVdffRVFUSxuLVu2LHSbr7/+mpYtW+Ll5UV4eDgbNmwop2hFmek2Be6eDUrux1vRwpB54BuMztebwX16YStpeb9vDYY+/m8Wn/DJN/cLZhxvQiKB6JSrRGj/NA97jHTbzi6vZ/lwWCM+uDeMNf1z+NLjP6zyeIVN6u0FjmFrweHiLMZcfRhUWHA4q+iGuW2/PXTePORUxXa/oIqGqJzHqDH6U9uLNTdqBEPmGz8rQKT7z+wanMqXE+9g14ze0hMmhKgWVFU1D0t84IEHXBxN2WjdujXh4eHk5OTw4w/rXB2OqOaqXI/YrbfeytatW8333dzsn+KePXsYPXo00dHRDB48mBUrVjBs2DAOHTpEmzZtyiNcUVa6PQNtRsLVv8C/sbGnLJetKosA5z1CUa962EyZDrb/N4N/mwRqvhLAioadjaYQ9d1ZDCpoFA+iO00h5Mj7NuYYWSZl/TT78ecfVhp6o6J1wglXNc7v3TMA6R4BRI/wYuaqY9Yl6zuOhSZ9zJ8ZnW8wOqdHIYQQZez6OXM5d6/kG9yqxBmrJCr5hnonn7S56aFDhzh9+jTe3t4MGTKkPKJ1icjISI4ePcqmtavhjmmcvnTDZrs6NTxsFjMRwlmqXCLm5uZGUFCQQ23nz59P//79mT59OgCzZ89my5YtfPjhhyxcuLAswxTlwTfYIgEz0fl682L/lkRvPG7x+FsbT/Dq0NY2d6U07gm9jxov0t194I81JO7+H1HHwyznGx2sxar75qJ8nVxIMQ+FHwxdTFvRRfmdX9TWVJWhhSVT9kVFNGCxWLPN4i92PjNCCFEpXD8HC26H7HQAmgLrPYHVNtq6+xgXRM7nyy+/BGDIkCHUrGl7jm5VcP/99/PSSy/xy64dhHV6jKkxsTbbebtr2fpcT0nGRJmpconYqVOnaNCgAV5eXkRERBAdHU3DhraHFe3du5dp06ZZPNavXz/WrFlT6DEyMzPJzMw0309NTS113KJ8hd/ia/WYXlWpo9ywqoioYKBjnUzwDTNepKech70fEmdoaXO+0fqT/xQjEk21T8LCOcVQ7V7+ox9DSV6HgW2C+OH3i+hVFSW3ZknBXk0FiB4ZblFVUaofCiGqnPQrxiRsxGIIbM7pyzeYsjKW+Q+0N5esN/MJsFh/y2AwmOeHVdVhiSbNmjWjQ4cOHD58mEdDLjNoVH+rNqcv3WBqTCzX0rIkERNlpkolYl26dGH58uW0aNGCxMREXnvtNe68806OHTtGrVq1rNonJSVRv359i8fq169PUlJSoceJjo7mtddec2rsonzZWyi6U41k5rgtISpnAga0aNAT7bYUXc7zQO66VlfPgGowV9fLn4xpFFj8W3ahpe2tVd8kDFSO0oxj+iaU9HUYExHKy0Nam3u4AOKT0/Hx0PD3tQxUFTqF1pHESwhRfQQ2hwbtuamm8Luaws3AcGhg/QVkfnv27OHvv/+mdu3aDBgwoJwCdZ3777+fw4cPs2XdGl6cOtnV4YhqqkoV6xgwYACjRo2ibdu29OvXjw0bNnD9+nW++uorpx4nKiqKlJQU8+3cuXNO3b8oe3YXA27YjEj3nez2nMKX7rPZ7TmFSPedkHbZ2BMG4N8EFI25up65rL1iXITYlUsuVz7G19+YuBb/lTMtsJx/eQPTv9uF1GFQ2wYMbtdAkjAhhCiCqUjH8OHD8fLycnE0Ze/+++8H4KeffuLixYsujkZUV1WqR6wgPz8/mjdvzunTp20+HxQUZPXDd/HixSLnmHl6euLp6em0OIVr2F0oesh8dGunGqsjKooxP/hmvLEK45D5xqIOQ+bD2qlEum2nh9sx4u+YTWjEcACW7oorYuHoyrfIcvko3mtiUWhDCCFEien1er755hug6g9LNGncuDG33XYbBw4cYNWqVTz55JOuDklUQ1WqR6ygGzducObMGXQ627XPIiIi2LZtm8VjW7ZsISIiojzCExWAzYWiO46FqUfhvuW5nTSm2ugGWDvV2DNmajNuHbpndxLR/0Fzb0z+nraCqYWCgd7KIUrS+yPyTLmrqZSVF0IIJ9m9ezcXL17Ez8+PPn36uDqcchMZGQng9JFTQjiqSvWIPf/88wwZMoRGjRpx4cIFXnnlFbRaLaNHjwZg7NixBAcHEx0dDcCUKVPo2bMn77zzDoMGDWLlypUcOHCARYsWufI0REXgGwxXA7BKmFS9sXKiqbqejQp7BXvaAA7GX0PJuMotG8YwPOt1itf7Iz1oBTUPqlVoT1hiSgZxyWmEBdaQHjMhhCjCqlWrABg6dCju7u4ujqb8jBo1iunTp7Njxw4SExPtfnEvRFmpUj1if//9N6NHj6ZFixbcf//9BAQEsG/fPurWrQtAQkICiYmJ5vZdu3ZlxYoVLFq0iHbt2vHNN9+wZs0aWUNMGF2INf8zUfVnj741iQQa1yUrIDElgz1nkklMyQCwmrPUKbQOdU59yzm1ro01xooiSVhBt9Sxn1zF/JpAtzk/8uDiX+g250difk0ox8iEEKJyUVXVnIiNHDnSxdGUr0aNGnHHHXdYvAZClKcq1SNmmmhqz/bt260eGzVqFKNGjSqjiESllXIetr4CQExOL6JyHsWABk22SvRJPZGd85rG/JpA1KqjuYs6Q/SIcIshczG/JhD17REM3IZCRxRUVEmuSiU9y2Dz8cSUDPN7Ablru606Ro/mdaVnTAghbDhw4ADnzp2jRo0a3H333a4Op9yNHDmSffv2sXr1aiZNmuTqcEQ1U6V6xIRwmtwS9YmqvzkJAzCgMHPVMXPPl70Lf6vnHaoOKPPGHKFRMA/5LCguOc2qUIpeVYlPTi+HyIQQovIx9QQNGjQIb+/q94XV8OHGQlvbt2/n6tWrLo5GVDeSiAlhS26J+jhDkM1Fm00X9kVd+Nt63n4yJr1kjnhxQEu7vVum9eHyM5W4F0IIYUlVVb799lsARowY4eJoXKNJkyaEh4ej1+tZu3atq8MR1YwkYkLY4hsMQ+YTpr2EBsthcPkv7Iu68A8LrIGmQNKloKf6Jl2l6/V78PYQHu/RxO7zdteHk2GJQghh5ffff+fUqVN4enoycOBAV4fjMqZesdWrV7s4ElHdSCImhD0dx6J7difRPX3Q5uZNBS/si7rw1/l6Ez2wYd6iz+gZrfxY/udSIah4cZOSDs3UKPB0n2ZFHiWyc0N2zejNlxPvkBL3QghRCNOwxHvuuYdatWq5OBrXMfUG/vDDD6Slpbk4GlGdVKliHUI4nW8wkQOC6dE1w3rh51x2F4Y2Pd+jLT00R4j/4UNCNRe5pPqxIqsv1a9XTOEmXtg+bwNhJBFHA7tbqyrsPHnZocTKVK1SCCGEfdV9WKJJ27ZtCQsLIy4ujk2bNlW76pHCdaRHTAgH2Fz4uTjPd3+IiCGPolOukqbaS0aqA+vzVjDwtttC4gkqdEsVy0IoQgghSu706dMcOXIErVbL0KFDXR2OSymKIsMThUtIIiZEeWkxAFAI0yRZzTurvhUTVVQ0vJDzRG4Rk8JJBURRUS1YsIDQ0FC8vLzo0qUL+/fvt9v2999/Z+TIkYSGhqIoCvPmzSv1PoUoLtOwxN69e+Pv7+/iaFzPlIitW7eOrKwsF0cjqgtJxIQoL77BMPR9dJrrRLstMc8bU4DejTxzi3hUN/bL+itY959JBURREcXExDBt2jReeeUVDh06RLt27ejXrx+XLl2y2T49PZ3GjRszZ84cgoJs9wQXd59CFFd1XcTZnoiICOrXr09KSorFurOnL93g2PkUm7fz12WEhigdmSMmRHnqOBaa9CHy6l/0cLuF+KzaxnllV39l7dK3eTpniqsjdAKVkg29VFDQo6JFg0r0yLaAcTiiXlWlAqKosN59910mTpzI+PHjAVi4cCHr169n2bJlzJgxw6p9586d6dzZuCq8redLsk8hiiMxMZFffvkFgHvvvdfF0VQMWq2We++9l0WLFrFq1Spevv1OvN21TI2JtbuNt7uWrc/1JNhP/i6JkpFETIjy5hsMvsHoAJ35wSbc5nYGTY7Bat2yysfRJMwyYVNQAW3uMwrXM7J5vEeTQguhCOFqWVlZHDx4kKioKPNjGo2Gvn37snfv3nLbZ2ZmJpmZmeb7qampJTq2qB42btwIGL8U0Ol0RbSuPoYPH86iRYv47rvv+Oijj9j6XE+updkepnj60g2mxsRyLS1LEjFRYpX9ik+IqsE3GN3QV5ig3ejqSMpFH+UAUW4rzMMzNegxzhczUoHoDcf5ZMeZIguhCOFKycnJ6PV66tevb/F4/fr1SUpKKrd9RkdH4+vra76FhISU6Niieli3bh0AgwcPdnEkFctdd91F7dq1SUpKYu/evQT7edMm2NfmrWm9mq4OV1QBkogJUVF0HMsjT0x3dRTlQOUZ9zU87raeXZ5T+NJ9Nu+7f2izWMebG49LlUQhHBAVFUVKSor5du7cOVeHJCqozMxMNm/eDEgiVpCHhweDBg0C4Pvvv3dxNKI6kERMiApEFxLGY3eGuTqMMqaQrnoCoFOuEqH9k/NqILYqRxpAqiSKCi0wMBCtVsvFixctHr948aLdQhxlsU9PT09q165tcRPClp07d5KWloZOp6NDhw6uDqfCMZXyl0RMlAdJxISoYMZ3D0Op0suMqRxRG5vvJar+vJkzGltzy6RKoqjoPDw86NSpE9u2bTM/ZjAY2LZtGxERERVmn0KYmIYlDho0CKVq/7Epkf79++Pm5sbx48c5ffq0q8MRVZwkYkJUMDpfb+aMCK/CyZjCnJzR/GZoDIqGuDvfs1mgRANSJVFUCtOmTWPx4sV89tln/Pnnnzz55JOkpaWZKx6OHTvWovBGVlYWsbGxxMbGkpWVxfnz54mNjbW46Ctqn0KUhKqqrF27FpBhifb4+flx5513AphfKyHKilRNFKKCSUzJIET/N2tabOXo6bO8lPMIJSsHX3GpaBiW9TpzbkunR+d+aLb9iCHfyESNAquf6kq7kDquC1IIB0VGRnL58mVmzZpFUlIS7du3Z9OmTeZiGwkJCWg0eV82XLhwwWJI2Ny5c5k7dy49e/Y0r19U1D6FKInjx48TFxeHh4cHffr0cXU4FdbQoUP56aefWLt2Lc8++6yrwxFVmCRiQlQgMb8mEPXtEQwoaLiLRzXrqWpJmImKhpkHa7HrbogeEW61XpgkYaIymTx5MpMnT7b5XP7FYQFCQ0NRVes5kcXZpxAlsX79egB69+5NzZpS9c+eIUOG8Oyzz/Lzzz9z/fp1/Pz8XB2SqKIkEROigkhMySBq1VEMuYmXAQ1LDANRMNisKFgV6FWV+OR0Ijs3lPXChBCijEnZesc0adKEVq1a8eeff7Jp0yYeeOABV4ckqihJxISoIOKS0yyG5wEY0PKYdi2L9YOqQDJmuYAzWBbj0Pl6SwImhBBl5Nq1a+zatQvAXKK92kk+WXQbnwDwC2HIkCH8+eeffP/995KIiTIjiZgQFURYYA00ChbJmBY9491+YLzbD2zTd2B+zjAu40/lHK6ooOT29xnQoFWkGIcQQpSXzZs3o9frad26NWFhVX2ZlAJ8AsDdB1ZNLLqtuw9M2s+QIUN466232LhxI9nZ2bi7u5d9nKLakURMiApC5+ttnCv17W/o0aBFzxtuS9EpV4nJ6cXLOeMrfa+YioYP3N8noNs4QiOGSxImhBDlpFoPS/QLgUn7If1K4e2STxqTtfQrREREEBAQwJUrV9i9eze9evUql1BF9SKJmBAViHmu1J+HCT2/Ft3R7SSq/kTlPFrpkzAArQKdHluILqSafRsrhBAupNfr2bBhA1CNhyX6hRhvDtJqtQwaNIjPP/+ctWvXSiImykTlv7IToorR+XoTcUdXdH0nG9fZMgTZXGer8jCOtTRWQwyXJEwIIcrZkUO/cvXqVfz8/Ojataurw6k0hgwZAsD333/vUKVTIYqrMl/dCVG1+QbDkPmEaS+hweDqaEpMQeGxOxuza0ZvIjs3dHU4QghR7ezcthmAAQMG4OYmg6Ecdc899+Du7s7p06c5ceKEq8MRVVCVSsSio6Pp3LkztWrVol69egwbNqzIH5zly5ejKIrFzcvLq5wiFqIIHceie3Yn0T19Ku0Pqwos3XXG1WEIIUS1tWPrJqCazg8rhdq1a5uHJK5du9a1wYgqqbJe29m0Y8cOJk2axL59+9iyZQvZ2dncc889pKWlFbpd7dq1SUxMNN/Onj1bThEL4QDfYCIH9GF31F08dmdjNOaCiZVnmIReVYiXnyshhCh3OamXOHX8DzQaDf3793d1OJXO0KFDAUnERNmoUv3TmzZtsri/fPly6tWrx8GDB+nRo4fd7RRFISgoqKzDE6JUdL7ezBzUikGBidy7Oo3K9T2KgVDlItDS1YEIIUS1knHmAABdu3bF39/fxdFUPkOGDOHpp59m9+7dXLlyhYCAAFeHJKqQKpWIFZSSkgJQ5C+eGzdu0KhRIwwGAx07duSNN97g1ltvtds+MzOTzMxM8/3U1FTnBCyEA9K8GwCVcKifn8wPE0KIErt+zrHy6wVknN4PyLDEkmrUqBHh4eEcPXqUjRs38tBDD7k6JFGFVNlEzGAwMHXqVLp160abNm3stmvRogXLli2jbdu2pKSkMHfuXLp27crvv//OLbfcYnOb6OhoXnvttbIKXYhChTVqhIbTuUsjVzQGbPfUaYjPqo2uvMMRQoiq4Po5WHA7ZKcX3dbdx7iAMZCRkc7NhCNANS5b7wSDBw/m6NGjrF+/XhIx4VRVNhGbNGkSx44dY9euXYW2i4iIICIiwny/a9eutGrVik8++YTZs2fb3CYqKopp06aZ76emphIS4vjaFEKUhs7Xm+iRbZnx7dEKNEtMpT2nOEJTm/UdtYpCaKBPuUclhBBVQvoVYxI2YjEENi+8rU+Aeb2s/bt3ouZk0eCWkEJH+ojCDRo0iOjoaDZt2kROTo5UnhROUyU/SZMnT2bdunXs3LnTbq+WPe7u7nTo0IHTp0/bbePp6Ymnp2dpwxSixHo0r4uiQMVZ1kQhlmZgo5fOuH5YG3S+3uUflhBCVCWBzaFBe4eb79j6AwA9+vRHUSriKIrKoUuXLtSpU4dr166xb98+unfv7uqQRBVRmWb7F0lVVSZPnszq1av58ccfCQsr/sKxer2eo0ePotPJICpRccUlp2GoMEmYifUf+ZcHtZL1w4QQwgVUVc2XiN3j4mgqNzc3N3PFyfXr17s4GlGVVKlEbNKkSXzxxResWLGCWrVqkZSURFJSEhkZGeY2Y8eOJSoqynz/9ddfZ/Pmzfz1118cOnSIhx56iLNnz/Loo4+64hSEcEgND62rQ7DBMjPUKgoD2+qkJ0wIIVzgt99+41LSBRR3T27veqerw6n0THPsJBETzlSlErGPP/6YlJQUevXqhU6nM99iYmLMbRISEkhMTDTfv3btGhMnTqRVq1YMHDiQ1NRU9uzZQ+vWrV1xCkI4JC1L7+oQLCgYGKnZiRZjXFoFGY4ohBAuZEoYvBq1x9PLy8XRVH79+xuHdx49epRz5865OhxRRVSpOWKqAxNmtm/fbnH/vffe47333iujiIQoG2GBNdAoVJjhibPdPuUht208r35NvKE+ofe/iS5chiMKIURZO389g2tpWVaPf7XqOwC8m3Qu75CqpICAAO644w727t3Lhg0b6Db4AVeHJKqAKpWICVFd6Hy9iR4RTtS3R21WKSxPCgb6aA8b41KuonNLgYZNXRyVEEJUfeevZ9D3nR1kZFuOktCnp/D3IeNCznVadKFODQ9XhFflDBo0iL1797J+/XpJxIRTSCImRCUV2bkhNTzdmLzisMtiUDAwx20JOuVa7gNaGDIPfINdFpMQQlQX19KyyMjWMy+yPU3r1TQ//v03X/J/qLRq05Ytr40k2E+GiTvDoEGDeOmll9i2bRuZN2+6OhxRBUgiJkQl1qlRHZcNUWzNGZZ6vodOuQqKBkZ+CiG3SxImhBDlrGm9mrQJ9jXff333jwDcN/xeScKcqF27djRo0IALFy5wYN9uQJYyEqVTpYp1CFHd6Hy9Gd4hf+JTXhmZyu3ak8YkDEA1QI1AScKEEMLFsrKy+OEHY9l6U6U/4RyKojBw4EAAdm77wcXRiKpAEjEhKrHElAxWHz6f75HyWrBT4XP9PSSq/rl3teDfuJyOLYQQwp5du3aRmppK3bp16dxZCnU4mym53fnjZlRV5fSlGxw7n2Lzdv56RhF7E9WdDE0UohJz5cLOBrR8mt2PmZ5fybwwIYSoIExl6wcNGoRGI9+3O1vfvn1xd3fn77PxhP2TxNSYWLttvd21bH2upwwPFXZJIiZEJebqMvaLDQNp26oznZqMQueaEIQQQuSzbt06QIYllpWaNWvSs2dPtm7dypjgK4x6eJTNdqcv3WBqTCzX0rIkERN2yVclQlRipjL2WsU4JFEDKOU2TwxUtEw+FES3OT8S82tCuR1XCCGEtVOnTnHy5Enc3Ny45557XB1OlWVKcnf9uJk2wb42b/mrWAphjyRiQlRykZ0bsmtGb76ceAe7/1WDOW6LKb+iHUYGFWauOkZiioyHF0IIVzENS+zZsye1a9d2cTRVl3me2M6dpKamujgaUZlJIiZEFaDz9SaiSQC61N+4rtYo46PZTvL0qkp8cnoZH1sIIYQ9MiyxfDRr1oxmzZqRk5PD1q1bXR2OqMQkEROiqkg5T+KW95mjH03ZVk9UGKHsQIPB4lGtohAa6FOGxxWi4lqwYAGhoaF4eXnRpUsX9u/fX2j7r7/+mpYtW+Ll5UV4eDgbNmyweP7GjRtMnjyZW265BW9vb1q3bs3ChQvL8hREJZeamsqOHTsAGDx4sIujqfpMZexNvZBClIQkYkJUFVfPEKevh1rmP9Yq49y3EO22FG1uvqdVFN4Y0Qadr0xIFtVPTEwM06ZN45VXXuHQoUO0a9eOfv36cenSJZvt9+zZw+jRo5kwYQKHDx9m2LBhDBs2jGPHjpnbTJs2jU2bNvHFF1/w559/MnXqVCZPnsz3339fXqclKpnNmzeTk5ND8+bNadasmavDqfJMvY4bNmzAYDAU0VoI2yQRE6Kq8G9CmPaSVU+Vs3VR/qCd5i8i3X5i14M1+XLiHeya0ZvIzg3L9LhCVFTvvvsuEydOZPz48eaeKx8fH5YtW2az/fz58+nfvz/Tp0+nVatWzJ49m44dO/Lhhx+a2+zZs4dx48bRq1cvQkNDeeyxx2jXrl2RPW2i+spftl6UvR49elCjRg2SkpKIjY11dTiikpJETIiqwjcY3dBXiHZbgoK+zA4z1i13PLyiRdewqXFumvSEiWoqKyuLgwcP0rdvX/NjGo2Gvn37snfvXpvb7N2716I9QL9+/Szad+3ale+//57z58+jqio//fQTJ0+elEp4wiaDwWBOxGRYYvnw9PTk7rvvBmR4oig5ScSEqEo6jiVy+ke8FrSvTHavYKCj5pTxTt9XZBFnUe0lJyej1+upX7++xeP169cnKSnJ5jZJSUlFtv/ggw9o3bo1t9xyCx4eHvTv358FCxbQo0cPm/vMzMwkNTXV4iaqhvPXMzh9+QYApy/f4Nj5FPPt9CXj48diD3H58mVq165N9+7dXRlutSLzxERpyYLOQlQ1vsHcPf5lZkVvw7lFO1TmuC1Bp1w13m3Q0Yn7FkLk98EHH7Bv3z6+//57GjVqxM6dO5k0aRINGjSw6k0DiI6O5rXXXnNBpKIsnb+eQd93dtA45zTrPWHKylh+V1Ms2ni7a9n/s3GkQr9+/fDw8HBFqFVL8smi2/gEmBOx/fv3c/nyZerWrVvGgYmqRhIxIYRDZmuXEum23XhH0YJ/Y5fGI0RFEBgYiFar5eLFixaPX7x4kaCgIJvbBAUFFdo+IyODmTNnsnr1avN8n7Zt2xIbG8vcuXNtJmJRUVFMmzbNfD81NZWQkJBSnZtwvWtpWWRk63m+XwvYAfMfaM/NwHCLNnVqeDDkrpmAzA8rNZ8AcPeBVROLbuvuQ/Ck/bRv357Y2Fg2bdrEmDFjyj5GUaUUOxEbN24cEyZMsDs8QgjhenFnz+Ls3rB0JXcemKKFIfNkWKIQgIeHB506dWLbtm0MGzYMMM7X2bZtG5MnT7a5TUREBNu2bWPq1Knmx7Zs2UJERAQA2dnZZGdno9FYzh7QarV2q7N5enri6elZ+hMSFVKIv/H3b9O6NaGBr8Vz58+f5/DhwyiKwoABA1wRXtXhFwKT9kP6lcLbJZ80JmvpVxg4cCCxsbGsX79eEjFRbMVOxFJSUujbty+NGjVi/PjxjBs3juBguSAToiIJy/gDBXcnlrJXiM55gKFDRqFrebskYULkM23aNMaNG8dtt93G7bffzrx580hLS2P8+PEAjB07luDgYKKjowGYMmUKPXv25J133mHQoEGsXLmSAwcOsGjRIgBq165Nz549mT59Ot7e3jRq1IgdO3bw+eef8+6777rsPEXFZJqf1KVLF+rVq+fiaKoAvxDjzUGDBg3ijTfe4IcffiAnJwc3NxlsJhxX7Ku0NWvWcP78eZ588kliYmIIDQ1lwIABfPPNN2RnZ5dFjEKIYtLVgDluS8Cppey1xAf2kCRMiAIiIyOZO3cus2bNshimZCrIkZCQQGJiorl9165dWbFiBYsWLaJdu3Z88803rFmzhjZt2pjbrFy5ks6dO/Ovf/2L1q1bM2fOHP7zn//wxBNPlPv5iYpNyta7VpcuXQgICOD69evs2bPH1eGISqZEaXvdunWZNm0a06ZN49ChQ3z66aeMGTOGmjVr8tBDD/HUU0/JYoJCuFJIFyLdxqMhh+k5T+KcYYoqoYE+TtiPEFXP5MmT7Q5F3L59u9Vjo0aNYtSoUXb3FxQUxKeffuqs8EQVlZGRwdatxkIdUrbeNbRaLf379+d///sfGzZskKk7olhKNW4pMTGRLVu2sGXLFrRaLQMHDuTo0aO0bt2a9957z1kxCiGKyzcY7n6dYOUqzpor9lgrg6wXJoQQFcj27dtJT08nODiYdu3auTqcakvK2IuSKnYilp2dzbfffsvgwYNp1KgRX3/9NVOnTuXChQt89tlnbN26la+++orXX3+9LOIVQjiq2xTCej6Ec4Ynqgy6vaUT9iOEEMJZ8g9LVBRnFmgSxdG/f380Gg3Hjh0jISHB1eGISqTYiZhOp2PixIk0atSI/fv3c+DAAZ544glq165tbtO7d2/8/PycGacQogR0fSfRvI4zJg4rpHsEOGE/QgghnEFVVdatWwfIsERX8/f3N1c93bBhg4ujEZVJsROx9957jwsXLrBgwQLat29vs42fnx9xcXGlja3EFixYQGhoKF5eXnTp0oX9+/cX2v7rr7+mZcuWeHl5ER4eLj9EokoZ0rlJqfehkflhQghRofz++++cPXsWLy8v+vTp4+pwqj1TsRRTciyEI4qdiI0ZMwYvL6+yiMUpYmJimDZtGq+88gqHDh2iXbt29OvXj0uXLtlsv2fPHkaPHs2ECRM4fPgww4YNY9iwYRw7dqycIxeibNzXKQRQS7EHlZ6B/8j8MCGEqEBMF/y9e/fGx0e+KHM1UyK2bds20tPTXRyNqCyctchQhfHuu+8yceJExo8fT+vWrVm4cCE+Pj4sW7bMZvv58+fTv39/pk+fTqtWrZg9ezYdO3bkww8/LOfIhSgbOl9vQt2vl2IPCtuTa5GYkuGskIQQQpSSaX6YDEusGMLDwwkJCeHmzZv89NNPrg5HVBJVKhHLysri4MGD9O3b1/yYRqOhb9++7N271+Y2e/futWgP0K9fP7vtATIzM0lNTbW4CVFRJaZkEJ/tV6p9qCjE713tnICEEEKUypUrV8xrVsn6YRWDoijmpFiGJwpHValELDk5Gb1eb15E06R+/fokJSXZ3CYpKalY7QGio6Px9fU130JCHF+BXYjyFpecRmlL2GvQE7rvZUg575yghBBClNimTZswGAyEh4fTqFEjV4cjcuVPxFS1NFMCRHVRpRKx8hIVFUVKSor5du7cOVeHJIRdYR7/oClVCXuVaLel6EiGq385LS4hhBAlk79svag4evfujbe3N3///Tcn/5RaA6JoVSoRCwwMRKvVcvHiRYvHL168SFBQkM1tgoKCitUewNPTk9q1a1vchKiodDnniHZbQkkLdnzoNp9It+2gaMG/sVNjE0IIUTw5OTls3LgRkPlhFY23t7d5usuOrT+4OBpRGVSpRMzDw4NOnTqxbds282MGg4Ft27aZ13coKCIiwqI9wJYtW+y2F6LS8W9CpNt2fCnJXEaVEE2yMQkbMg98g50dnRBCiGLYvXs3169fx9/fnzvuuMPV4YgCTMmxJGLCEc5Y6bVCmTZtGuPGjeO2227j9ttvZ968eaSlpTF+/HgAxo4dS3BwMNHR0QBMmTKFnj178s477zBo0CBWrlzJgQMHWLRokStPQwinSlT9SaFWCbZUONdwGO1GPSpJmBBCVACmQhADBw5Eq9W6OBpRkGm46NHDBwjuet21wYgKr0r1iAFERkYyd+5cZs2aRfv27YmNjWXTpk3mghwJCQkkJiaa23ft2pUVK1awaNEi2rVrxzfffMOaNWto06aNq05BCOe6eoY4QxAl/XHfm9NKkjAhhKgg1q5dC8CQIUNcHImwJTg4mA4dOqCqKhl/HXR1OKKCq3I9YgCTJ09m8uTJNp/bvn271WOjRo1i1KhRZRyVEC7i34Qw7SXINlCSZGxFfA0mp2TIgs5CCOFip/46y4kTJ3Bzc6Nfv36uDkfYMXjwYA4fPkzGmf2uDkVUcFWuR0wIUYBvMLq7p9CHQyXaXAUOnb3m3JiEEEIU27qtPwPQo0cPfH19XRyNsMc0Tywj7hDZWVkujkZUZJKICVEdNGiPv+YfSlo5UZZDEUII1zMlYjIssWK77bbb8A+si5qVwcH9e10djqjAJBETohpIdAvha0NPSrKwswJ0Cq3j9JiEEEI4LuWmys5fjCMbpGx9xabRaOjR5x4Admzd5OJoREUmiZgQ1UBcVi1K9uOuMmdkuMwPE0IIF/vhTA45OTm0bNmSpk2bujocUYSefYxz+HZs2YQqw0qEHZKICVENhAXWKEFfmMrSjueI7NywDCISQghRHGtP5gDSG1ZZRPToDRo3zp2N4+TJk64OR1RQkogJUQ3ofL0Z3aq4RVL19DHI2HYhhHC1nJwcNpwyJmIyP6xyqFGzFl4Nw4G8td+EKEgSMSGqiafvag4YirGFhkTv5mUVjhBCCAfFHv2Dqxkqdfxq07VrV1eHIxzk3aQzIImYsE8SMSGqCV1IGMN8/ijGFhoOptYss3iEEEI45scduwEY0Lsbbm5VcgnYKsmUiP3888/s+eMsx86nWNzOX89wcYTC1eSnWYhqpFM9WBPveHsl7WKZxSKEEMIxP+3cA8CQu3u4OBLhqDo1PKhd7xYuB4SQfeUc90Z9RI1Wlu+ft7uWrc/1JNhPCmJVV5KICVGduNcoRmMDHUODyiwUIYQQRcu+nsTZv+LRKtCvpwxLrCyC/bzZ+lxPXk4ezqcL3+cOt3iin55pfv70pRtMjYnlWlqWJGLVmAxNFKIa8dPedLitlmx0EfeVYTRCCCGKknF6PwB3NtJSx6+2i6MRxRHs583Do0cCsGf7VloF1aRNsC9tgn1pWk+G/gtJxISoVm4L9QccW88kjETwDS7bgIQQQhTKlIgNbiaDmCqjrl274ufnx9WrV9m3b5+rwxEVjCRiQlQjug79gByH2oZyEVLOl21AQggh7LrxTyo3zx0DYEgLScQqnOSTcCG20JvbjUQGDBgAwNq1a10Vqaig5KdaiOrENxgffiYd9yKbuisGOLcffIeXQ2BCCCEK2rPjJzDkENYohOYBKa4OR5j4BIC7D6yaWHRbdx+G9nmJL7/8ku+++445c+aUfXyi0pBETIjqJOU8KooDDVU6ak4Cnco6IiGEEHbs2LoRgN49ugIbXRuMyOMXApP2Q/qVwtsln4RVExnQrS3u7u4cP36cEydO0KJFi/KJU1R4MjRRiOrk6hky8HSgocINtQaE3F7mIQlRFSxYsIDQ0FC8vLzo0qUL+/fvL7T9119/TcuWLfHy8iI8PJwNGzZYtfnzzz8ZOnQovr6+1KhRg86dO5OQkFBWpyAqmJycHHZs/QGAu3p2c3E0wopfCDRoX/gtsDkAvrVr0bt3bwC+++47V0QrKihJxISoTtxroDhYrCPB/w4p1iGEA2JiYpg2bRqvvPIKhw4dol27dvTr149Lly7ZbL9nzx5Gjx7NhAkTOHz4MMOGDWPYsGEcO3bM3ObMmTN0796dli1bsn37do4cOcLLL7+Ml5dXeZ2WcLFdu3aRcv0aGu/adGof7upwRCkNGzYMgDVr1rg0DlGxSCImRHWSnYYWvUNNk1XfMg5GiKrh3XffZeLEiYwfP57WrVuzcOFCfHx8WLZsmc328+fPp3///kyfPp1WrVoxe/ZsOnbsyIcffmhu83//938MHDiQt956iw4dOtCkSROGDh1KvXr1yuu0RHm5fs5mkYfVXywCoEHT1tS4Ee+6+IRTDB06FIB9+/aRlJTk4mhERSGJmBDViX8THPuxVxkaIBUThShKVlYWBw8epG/fvubHNBoNffv2Ze/evTa32bt3r0V7gH79+pnbGwwG1q9fT/PmzenXrx/16tWjS5cuhX6TnpmZSWpqqsVNVALXz8GC22FRT4ub+kkP1nyzEoAFt/5GyE9TjMUhfAJcHLAoqeDgYDp37oyqqlI9UZhJIiZEdeIbTC3SHGioMipELuSEKEpycjJ6vZ769etbPF6/fn2733onJSUV2v7SpUvcuHGDOXPm0L9/fzZv3szw4cMZMWIEO3bssLnP6OhofH19zbeQkBAnnJ0oc+lXIDsdRiyGx3aYb7HdFpGQouLt5cVHwf/m9PD1xuIQfvK+VmYyPFEUJImYENVJynmCuO5AQ4XENMfmkgkhnMtgMABw77338uyzz9K+fXtmzJjB4MGDWbhwoc1toqKiSElJMd/OnTtXniGL0gpsblHkYc3uPwHo2qsvx91acDMwXJKwKsCUiG3dupW0G/+4NhhRIUgiJkR1cvUMN/FwoKFCvHuzMg9HiMouMDAQrVbLxYsXLR6/ePEiQUFBNrcJCgoqtH1gYCBubm60bt3aok2rVq3sVk309PSkdu3aFjdReZl6TO7qP8i1gQinatWqFU2bNiUrK4vd2390dTiiApBETIhq5LebQcThSCVEldC23cs8HiEqOw8PDzp16sS2bdvMjxkMBrZt20ZERITNbSIiIizaA2zZssXc3sPDg86dO3PixAmLNidPnqRRo0ZOPgNR0fz1118cOXIErVZLjz79XB2OcCJFUcy9Yj/+sN61wYgKQRIxIaqR/clacHBBZ11IWFmHI0SVMG3aNBYvXsxnn33Gn3/+yZNPPklaWhrjx48HYOzYsURFRZnbT5kyhU2bNvHOO+9w/PhxXn31VQ4cOMDkyZPNbaZPn05MTAyLFy/m9OnTfPjhh6xdu5annnqq3M9PlC/TOlM9evTAr46/i6MRzmZKxHb++AOqPse1wQiXqzKJWHx8PBMmTCAsLAxvb2+aNGnCK6+8QlZWVqHb9erVC0VRLG5PPPFEOUUtRPm6PdQfHFpHTOaHCeGoyMhI5s6dy6xZs2jfvj2xsbFs2rTJXJAjISGBxMREc/uuXbuyYsUKFi1aRLt27fjmm29Ys2YNbdq0MbcZPnw4Cxcu5K233iI8PJwlS5bw7bff0r279FRXdaZhiaYLdlG13HHHHdSrV49/UlK4ee5Y0RuIKs3N1QE4y/HjxzEYDHzyySc0bdqUY8eOMXHiRNLS0pg7d26h206cOJHXX3/dfN/Hx6eswxXCJdqF1KG9zxVi0wNdHYoQVcrkyZMterTy2759u9Vjo0aNYtSoUYXu85FHHuGRRx5xRniikrh8+TK7du0CjImY1K6terRaLUOGDGHp0qVknNoH2P69IaqHKtMj1r9/fz799FPuueceGjduzNChQ3n++edZtWpVkdv6+PgQFBRkvskkZ1GVvVZ3Ow71eKXIOmJCCFGe1q5di8FgoGPHjjRs2NDV4YgyYurtTD/1C6oqI1CqsyqTiNmSkpKCv3/R46v/97//ERgYSJs2bYiKiiI9Pb3Q9rJwpqjM0nxCcGie2NW/yjwWIYQQeWRYYvXQp08fvH1qoP/nMn8e+83V4QgXqrKJ2OnTp/nggw94/PHHC2334IMP8sUXX/DTTz8RFRXFf//7Xx566KFCt5GFM0VlFtZlMEX3iOnBv3F5hCOEEAK4ceMGmzdvBiQRq+q8vb3p3qsPANs2rXNxNMKVKnwiNmPGDKtiGgVvx48ft9jm/Pnz9O/fn1GjRjFx4sRC9//YY4/Rr18/wsPD+de//sXnn3/O6tWrOXPmjN1tZOFMUZnpdMGAoYhWWvB1pMy9EEIIZ/jhhx/IzMykcePGFoVbRNV0V//BAGzdsNbFkQhXqvDFOp577jkefvjhQts0bpz3zf2FCxfo3bs3Xbt2ZdGiRcU+XpcuXQBjj1qTJk1stvH09MTT07PY+xaiQrhq/0sGIYQQrvHNN98AxoqZiuLIMiOiMut1d3/QuvHXqRP8/vvv3Hrrra4OSbhAhU/E6tatS926dR1qe/78eXr37k2nTp349NNP0WiK3+EXGxsLgE6nK/a2QlQK/k2Ag0U0KnzZByGEEM6TkXGTdeuMQ9SKqqYpqoaatWrjHdaRjNP7+WjZFzw5bYZVmzo1PAj283ZBdKK8VPhEzFHnz5+nV69eNGrUiLlz53L58mXzc0FBQeY2ffr04fPPP+f222/nzJkzrFixgoEDBxIQEMCRI0d49tln6dGjB23btnXVqQhRtnyDKSoR8yxy6KIQQghn+WHHXm7cuEFISAi33367q8MR5aBODQ/8Wt9Jxun9LP78S9a7W68R6O2uZetzPSUZq8KqTCK2ZcsWTp8+zenTp7nlllssnjOVBs3OzubEiRPmqogeHh5s3bqVefPmkZaWRkhICCNHjuSll14q9/iFKDcOlKVXZEFnIYQoN9+s3wrAfffdJ8MSq4lgP2+2vv8c7Ta+T3byWd4fUI/GTZubnz996QZTY2K5lpYliVgVVmUSsYcffrjIuWShoaEW6zWEhISwY8eOMo5MiArGoTli2jIPQwghBNzMUfl+s/FaRIYlVi+tG+m45+672bBhA0d+/oGhPTu7OiRRzip81UQhhJP52y5Ck19tCl9LTwghhHNsOZPDPzfSCA4ONhcME9XHfffdB+QVaxHViyRiQlQ3DpSlb+5xtRwCEUII8c2fOQCMHDmyREXGROV277334ubmxm+//capU6dcHY4oZ/ITL4SwkqQGuDoEIYSo8jIzs/jueDYgwxKrK39/f/r0MS7uLL1i1Y8kYkIIK4nZMjFYCCHK2rZdv5CSCbr6gXTt2tXV4QgXkeGJ1ZckYkIIK009r7s6BCGEqPK+XmesljhyYB8ZlliNDRs2DK1Wy6FDh/jrr79cHY4oR/JTL4QoQOUh32OuDkIIIaq0rKws1vzwEwD3Derr4miEKwUGBtK7d29AesWqG0nEhBAFKPytvaXoZkIIIUrsxx9/5HrKP9SvodD99g6uDke4mGl44tdff+3iSER5kkRMCGGlrl9NV4cghBBV2sqVKwEY2coNrVbWbqzuhg8fjlar5cCBA5w+fdrV4YhyIomYEKIAlfA27VwdhBBCVFkZGRmsWrUKgAfD3V0cjagI6tWrR9++xiGqX375pYujEeXFzdUBCCHKnydZZGKvMqJC+j/XyzMcIYSoVtavX88///xDw+AgIkLSXB2OKGvJJ4tu4xPA6NGj+eGHH1ixYgXDxj9d9nEJl5NETIhqKLvQZ1VCr/4MDCifYIQQoiq6fg7Sr9h86stPPwZg9D1d0Cg/lWdUojz5BIC7D6yaWHRbdx+Gj9nG456eHD9+nBN/HC37+ITLSSImRDVkwKOQZ1V0YbeWWyxCCFHlXD8HC26H7HTrp26qrP/hHwAe9NwK7rWMF+yi6vELgUn77SbkZsknYdVEartlMXjwYL799ls2rP4GfO8pnziFy0giJkQ1pCULvd2hiSpk3yzXeIQQokpJv2JMwkYshsDmFk+tjvmOTP2rtG7emPCXvoEagcYLdlE1+YUU6/198MEHjYnYd9/iOUaWNajqJBETohpyR4++sAZpF8srFCGEqLoCm0OD9hYPfbnxBQAeHPsISrCUrReWBg4cSO3atbmYeJ76f/8B9HB1SKIMSdVEIaohlSJKJTfrVz6BCCFENZKUlMS2bdsAGD16tIujERWRl5cXI0aMACDtjx0ujkaUNUnEhKiGArheeINbOpVLHEIIUZ189dVXGAwGunTpQuPGjV0djqigHnzwQQDST+wmO7vw8lqicpNETIhqSC+jkoUQotyZ1ocyXWgLYUvv3r3xD6yLISOVvTulqmZVJomYENXQVWq6OgQhhKhWzpw5w759+9BoNNx///2uDkdUYG5ubvQfMhyAdau+cnE0oizJ1+JCVENe5BSxlpgQQghn+uyzzwC4++67CQoKcnE0oqIbMvIBVny6iG2b1rL3zwRq1fa1alOnhgfBfvYqIIvKQBIxIaqhh9228kHOMECx8Wyh9RSFEEIUk8Fg4PPPPwfg4Ycfdm0wolLo3rULHoEhZCWfY/Czb1OrfX+rNt7uWrY+11OSsUpMhiYKUQ011F51dQhCVCkLFiwgNDQULy8vunTpwv79+wtt//XXX9OyZUu8vLwIDw9nw4YNdts+8cQTKIrCvHnznBy1KC87duzg7Nmz+Pr6cu+997o6HFEJ3FLHh+cnPw5Ao6sHWPd0d4vbvMj2ZGTruZaW5eJIRWlIIiZENbQp5zZs94YBRZW2F0JYiImJYdq0abzyyiscOnSIdu3a0a9fPy5dumSz/Z49exg9ejQTJkzg8OHDDBs2jGHDhnHs2DGrtqtXr2bfvn00aNCgrE9DlCHTsMTIyEi8vaX3Qjhm0sTxaDQaDv+6D8/0S7QJ9jXfmtaTud5VgSRiQlRD/WueAVRXhyFElfDuu+8yceJExo8fT+vWrVm4cCE+Pj4sW7bMZvv58+fTv39/pk+fTqtWrZg9ezYdO3bkww8/tGh3/vx5nn76af73v//h7u5eHqciysCNGzf45ptvABg3bpyLoxGVSYMGDejXz7iupymZF1WLJGJCVEPdA264OgQhqoSsrCwOHjxI3759zY9pNBr69u3L3r17bW6zd+9ei/YA/fr1s2hvMBgYM2YM06dP59Zbby0yjszMTFJTUy1uomL49ttvSUtLo1mzZkRERLg6HFHJmOYUfv755xgMBtcGI5yuSiVioaGhKIpicZszZ06h29y8eZNJkyYREBBAzZo1GTlyJBcvXiyniIVwjThDXWwPTVQBGW8uhKOSk5PR6/XUr1/f4vH69euTlJRkc5ukpKQi27/55pu4ubnxzDPPOBRHdHQ0vr6+5ltISEgxz0SUleXLlwPG3jBFsf69e/56BsfOp9i8nb4kX5pVd0OHDsXPz49z587x00+yplhVU+WqJr7++utMnDjRfL9WrVqFtn/22WdZv349X3/9Nb6+vkyePJkRI0awe/fusg5VCJcJu3EY6If1dzEK4FH+AQkhzA4ePMj8+fM5dOiQzQt3W6Kiopg2bZr5fmpqqiRjFUD8uQts374dRVEYM2aM1fPnr2fQ950dZGTbr1br7a6lTg35vVxdeXl58cADD7Bw4UKWL19Onz59XB2ScKIql4jVqlXL4fU5UlJSWLp0KStWrOCuu+4C4NNPP6VVq1bs27ePO+64oyxDFcJldGoydbjGNfyx7BlTacR5V4UlRKUTGBiIVqu1Gklx8eJFu3+LgoKCCm3/888/c+nSJRo2bGh+Xq/X89xzzzFv3jzi4+Ot9unp6Ymnp2cpz0Y422dfrwXgrrvusng/Ta6lZZGRrWdeZHu7xRdkrSjx8MMPs3DhQr799lsWLFhA7dq1XR2ScJIqNTQRYM6cOQQEBNChQwfefvttcnJy7LY9ePAg2dnZFmP1W7ZsScOGDe2O7QcZiy+qAG8/Dns9jXEooqloh/HfO7xmuC4uISoZDw8POnXqxLZt28yPGQwGtm3bZnc+UEREhEV7gC1btpjbjxkzhiNHjhAbG2u+NWjQgOnTp/PDDz+U3ckIp9IbVJZ+uQaA8ePHF9q2ab2aFhXx8t8kCRO33347LVu2JCMjg5iYGFeHI5yoSiVizzzzDCtXruSnn37i8ccf54033uCFF16w2z4pKQkPDw/8/PwsHi9sbD/IWHxRBTTsCkC810M04hygpxHniPd6yLVxCVEJTZs2jcWLF/PZZ5/x559/8uSTT5KWlma++B47dixRUVHm9lOmTGHTpk288847HD9+nFdffZUDBw4wefJkAAICAmjTpo3Fzd3dnaCgIFq0aOGScxTF98OZHM5dSMLf35+RI0e6OhxRiSmKwoQJEwBYtGiRi6MRzlThE7EZM2ZYFeAoeDt+/Dhg/GPYq1cv2rZtyxNPPME777zDBx98QGZmplNjioqKIiUlxXw7d+6cU/cvRJkLyqvCtsNrBvFeY6QnTIgSioyMZO7cucyaNYv27dsTGxvLpk2bzAU5EhISSExMNLfv2rUrK1asYNGiRbRr145vvvmGNWvW0KZNG1edgigDnxzMBoxFOry8vFwcjajsHn74YTw8PDhw4ACHDh1ydTjCSSr8HLHnnnvOXLrTnsaNG9t8vEuXLuTk5BAfH2/zW8SgoCCysrK4fv26Ra9YYWP7QcbiCyGEsDR58mRzj1ZB27dvt3rs/9u787goq/bx459hBxGQfQkXxH0jNREtl0cKzUySR83MfXk0Nc0l03KrzH1JozQzyV+a5ZN7ZSluFbih5IbkjqJALoCK7Of3B4/zdWRAVJhhud6v1/2SOfe5Z645Aodr7rN0796d7t27F/n59c0LE6VX/LUktv2dNzXiwQXEhHhSzs7OhISE8N1337F8+XJGTZ1r7JBEMSj1iZiLiwsuLi5PdG10dDQmJia4urrqPd+sWTPMzc0JDw/XDhuIjY0lLi5O9voQ5ZuNo7EjEEKIcuvrdZvIVdCmZVPq1atn7HBEOfGf//yH7777jrVr1zJw7BRjhyOKQalPxIoqMjKSAwcO0L59eypXrkxkZCTvvPMOb775JlWqVAEgPj6eDh06sHr1alq0aIG9vT2DBg1i7NixODo6Ymdnx6hRowgICJAVE0X55u1v7AiEEKJcysnJ4avvNgIwtLfMDRPFp02bNtSpU4fY2Fh+2vRfoJaxQxJPqdTPESsqS0tL1q1bR9u2bWnQoAEzZ87knXfe0ZnUmJWVRWxsLGlpadqyRYsW8corrxASEkKbNm1wd3dnw4YNxngLQhiOvZexIxBCiHLpt99+Iy4+AUdrDSEvy55PovhoNBqGDh0KwH+/XYVS6hFXiNKu3NwRa9q0Kfv37y+0TvXq1fN901pZWREaGkpoaGhJhieEEEKICmD58uUA9GtijpWVzCcXxatfv35MnjyZmBPHcG96BnjB2CGJp1Bu7ogJIR5DimzaLIQQxS0uLo6tW/M2cR7S1NzI0YjyyMnJiX//+98A3D76i5GjEU+r3NwRE0I8hpvnjB2BEEKUTcmXIe2G3lOfz/2U3NxcOvg3pJ5LnIEDExXFsGHDWLNmDWkxe0m+dRO87I0dknhCkogJURE51jR2BEIIUfYkX4bQFpCVlu9UWpZixdd3AHi7xjkwtwcbJ0NHKCqA1q1bU69hY2JOHOO/a8J4ftYMY4cknpAMTRSiIpLFOoQQ4vGl3chLwrqtgKF7dY61VcZw856iRlUvOs/9HUYcBAdvY0csyiGNRkPvQcMA+C7sK7KysowckXhSkogJIYQQQjwO59rg6ac9lEcTlqzeBMDI0WMx9W4mSZgoUZ1eDcHExoGkhKuy2ncZJomYEEIIIcRT2Lt3L8ePH8fGxoaBAwcaOxxRAVhYWlL52U4AfPrpp0aORjwpScSEEEIIIZ7CkiVLgLylxR0cHIwbjKgwKvu9jJm5OZGRkRw6dMjY4YgnIImYEEIIIcQTOnfuHJs3bwZg5MiRRo5GVCSmtlV4/qVXAZgxaz4n4lN0jvjke0aOUDyKrJoohBBCCPGEFi5cSG5uLh07dqR+/frGDkdUEFUqWWBtbspp5xeAH/lp849Ee7yMWWVnbR1rc1N2jmuLl4O18QIVhZJETAghhBDiCSQlJfH1118DMHHiRCNHIyoSLwdrdo5ry627AfQ7/T1HDkTyYk4U40Z9BMDZpDuM+T6aW3czJRErxWRoohBCCCHEE1i6dCnp6ek899xztG3b1tjhiArGy8Gahl72fDT1AwD+u2YVXja5NPSyx9fV1sjRiaKQREwIIYQQ4jHduXOH0NBQIO9umEajMXJEoqLq1KkTjRs31vmeFGWDJGJCCCGEEI/pq6++4tatW9SqVYvg4GBjhyMqMI1Gw3vvvQfkLWWflpZm5IhEUUkiJoQQQgjxGLKysli4cCEA48ePx9TU1MgRiYque/fu+Pj4cP36dVauXGnscEQRSSImhBBCCPEYVv93G5cvX8bNzY2+ffsaOxwhMDMzY8KECQDMnz+frKwsI0ckikJWTTSQ3NxcMjMzjR1GuWNubi6fRAohhDCYzBzFx59+BcC7776LlZWVkSMS5cb1vx9dx8YJHLz1nurfvz/Tp08nLi6ObT+uA2oUb3yi2EkiZgCZmZlcuHCB3NxcY4dSLjk4OODu7i4TpYUQQpS41X9lcfHyVdzc3Bg2bJixwxHlgY0TmNvAhiGPrmtuAyMO6k3GrKysmDBhAuPHj2fZ4rmYvb6kBIIVxUkSsRKmlOLatWuYmpri7e2NiYmMBi0uSinS0tJISkoCwMPDw8gRCSGEKM8yM7P4eF8GkLdSoo2NjZEjEuWCg3decpV2o/B61//OS9bSbhR4V2z48OHMnz+fq1cu43h8J9C++OMVxUYSsRKWnZ1NWloanp6e8gu7BFhb521SmJSUhKurqwxTFEIIUWK+Wb+VSykKd1dnuRsmipeDd4HJ1eOwsbFh0qRJjB49mpSI78lInwLYP318okTI7ZkSlpOTA4CFhYWRIym/7ie4MjFVCCFEScnMzGTmkry5Ye+NGKD9IFCI0mbo0KG4unuSc/s6/137jbHDEYWQRMxAZP5SyZG2FUII8dSSL8PV6AKPFfOncenKNTxsNQzt3c2YkQpRKCsrK4a+PQ6Arz5byL1794wckSiIDE0UQgghRMWWfBlCW0CW/o1wUzMUM5bcAWBK+8pYO3kZMjohHlu31/swa/ZsriclsnTpUt59911jhyT0kERMCCGEEBVb2o28JKzbCnCune/0/Hmf80/aCmr7VGPwyl3FMpdHiJJkbmGBw/O9ufHzYmbOnMnAgQNxdnY2dljiITI0UejVv39/goOD85Xv2bMHjUZDcnKy9usqVaqQnp6uU+/QoUNoNJp8wwaVUnz55Zf4+/tja2uLg4MDzZs3Z/HixaSl6f8kUgghhDAI59rg6adzXNO4seDLNQDMmrcQcxcfY0YoRJFVavgv6jZoRGpqKjNmzDB2OEKPcpOI3U8K9B2HDh0q8Lp27drlq19aV0K6lnKPiHPXuZZSusb6Vq5cmY0bN+qUrVy5kqpVq+ar26dPH8aMGUPXrl3ZvXs30dHRTJkyhc2bN/Pbb78ZKmQhhBCiSKZPn05aWhoBAQG89tprxg5HiCLTaEwYP/VjAJYtW0ZsbKyRIxIPKzeJWKtWrbh27ZrOMXjwYGrUqEHz5s0LvXbIkCE6182dO9dAURfd94fiaD17F2+sOEDr2bv4/lCcsUPS6tevH19//bX28b1791i3bh39+vXTqffDDz+wZs0avvvuOyZPnsxzzz1H9erV6dq1K7t27aJ9e9nrQghRNoWGhlK9enWsrKzw9/fn4MGDhdZfv349devWxcrKikaNGvHzzz9rz2VlZTFx4kQaNWpEpUqV8PT0pG/fvly9erWk34Z4yLFjx/jqq7yVEufNmyeLQ4kyx791Wzp37kx2djYTJ040djjiIeUmEbOwsMDd3V17ODk5sXnzZgYMGPDIX5w2NjY619rZ2Rko6qK5lnKPSRuOk6vyHucqmLzhRKm5M9anTx9+//134uLyksMff/yR6tWr07RpU516a9asoU6dOnTt2jXfc2g0GuztZZ8LIUTZ8/333zN27FimTZvGkSNHaNKkCUFBQdrN5h8WERFBr169GDRoEEePHiU4OJjg4GBOnDgBQFpaGkeOHGHKlCkcOXKEDRs2EBsby6uvvmrIt1XhKaUYNWoUubm5/Pvf/6Z169bGDkmIJzJv3jxMTU3ZvHkze/bsMXY44gHlJhF72JYtW7hx4wYDBgx4ZN01a9bg7OxMw4YNmTRp0iPnKmVkZJCamqpzlKQL1+9qk7D7cpTi4vWSnVO1bds2bG1tdY5OnTrlq+fq6kqnTp0ICwsD4Ouvv2bgwIH56p05c4Y6deqUaMxCCGFoCxcuZMiQIQwYMID69euzbNkybGxsdEYKPOjTTz+lY8eOTJgwgXr16vHRRx/RtGlTPvvsMwDs7e3ZsWMHPXr0oE6dOrRs2ZLPPvuMqKgo7QdeouStW7eOffv2YW1tzYIFC574eeKT73EiPkXvcTbpTjFGLIR+9erVY+jQoQCMGjVK9l0tRcrtqokrV64kKCiIZ555ptB6b7zxBtWqVcPT05Njx44xceJEYmNj2bBhQ4HXzJo1y6CTHms4V8JEg04yZqrRUN3ZpkRft3379nzxxRc6ZQcOHODNN9/MV3fgwIGMHj2aN998k8jISNavX8/vv/+uU0cple86IYQoyzIzM4mKimLSpEnaMhMTEwIDA4mMjNR7TWRkJGPHjtUpCwoKYtOmTQW+TkpKChqNBgcHB73nMzIyyMjI0D4u6Q8Iy7s7d+4wfvx4ACZPnqx3znNRxCffI3DBXu5l5RRYx9rclCqVLJ7o+YV4lPvJ/htvTWDd9z9w4sQJJn04h/7DRlGlkgVeDrIxuTGV+kTsvffeY86cOYXWiYmJoW7dutrHV65c4ddff+WHH3545PPf/4QAoFGjRnh4eNChQwfOnTtHzZo19V4zadIknU40NTUVb++SW8rWw96aWd0aMXnDCXKUwlSj4ZNuDfGwL9kfnkqVKuHr66tTduXKFb11O3XqxNChQxk0aBBdunTByckpX53atWtz+vTpEolVCCGM4fr16+Tk5ODm5qZT7ubmVuDvu4SEBL31ExIS9NZPT09n4sSJ9OrVq8Ch84b+gLC8+/jjj7l69So+Pj7ahOxJ3Lqbyb2sHBb39MPX1VZvHfljWDy2638/sopzTiWszU0Z8320tszE/0345VMWzpnJuhvPUNnJnZ3j2sr3nxGV+kRs3Lhx9O/fv9A6Pj66S8muWrUKJyenJxpP7+/vD8DZs2cLTMQsLS2xtLR87Od+Gj2fq0qb2i5cvJ5GdWebEk/CHpeZmRl9+/Zl7ty5/PLLL3rrvPHGG7z++uts3rw53zwxpRSpqakyT0wIIR6QlZVFjx49UErlG6HwIEN/QFie/fXXX9qhiIsWLcLKyuqpn9PX1ZaGXtK/iadk4wTmNrBhyCOrupvbsHvIPq6bumrLcnNb0T/kAEcP7afq3+u52vwtbt3NlETMiEp9Iubi4oKLi0uR6yulWLVqFX379sXc3PyxXy86OhoADw+Px762pHnYW5e6BOxBH330ERMmTNB7NwygR48ebNy4kV69evHBBx/w0ksv4eLiwvHjx1m0aBGjRo3Su3eZKCkmQG4B5UKIonB2dsbU1JTExESd8sTERNzd3fVe4+7uXqT695OwS5cusWvXrkIXkjLGB4TlUXZ2NoMGDSM7O5tu3brJAimidHHwhhEH8zYgL8z1v2HDENzN7uLuqfsBQNhXy2natCmR4T/j4tAceL7k4hWPVO7+4tq1axcXLlxg8ODB+c7Fx8dTt25d7bLC586d46OPPiIqKoqLFy+yZcsW+vbtS5s2bWjcuLGhQy/zLCwscHZ2LnCVSo1Gw9q1a1m4cCGbNm2ibdu2NG7cmOnTp9O1a1eCgoIMHHFFV9CPv6lBoxCiLLOwsKBZs2aEh4dry3JzcwkPDycgIEDvNQEBATr1AXbs2KFT/34SdubMGXbu3FngB1yieC3+ai1RUVE4ODhoF08RolRx8M636Xi+w7l2gZc3btxYe/f85q+fkZKcXMIBi8KU+jtij2vlypW0atVKZ87YfVlZWcTGxmpXRbSwsGDnzp0sXryYu3fv4u3tTUhICB988IGhwy517q+A+LB27dppF9148Gt9goOD8503MTFh2LBhpXbTbAEgi6oI8TjGjh1Lv379aN68OS1atND2KfdX7e3bty9eXl7MmjULgNGjR9O2bVsWLFhA586dWbduHYcPH+bLL78E8vqqf//73xw5coRt27aRk5OjnT/m6OiIhYUs7FASzt7MZcqKzwFYsGBBqRwZI0RxmDFjBut/3MjF82eZO2MSm39Ya+yQKqxyl4itXVvwN1P16tV1EgNvb2/27t1riLCEKH00Sn/OpZFETIjH0bNnT/755x+mTp1KQkICfn5+bN++XbsgR1xcHCYm/3cHulWrVqxdu5YPPviAyZMnU6tWLTZt2kTDhg2BvNEbW7ZsAcDPz0/ntXbv3k27du0M8r7KjeTLjxzKlZN4mgGb75GenkOHDh2KtPWNEGWVtbU1Hy0MpU9wR7as/46ffupN586djR1WhVTuEjEhRBGpApZTLqhcCFGgkSNHMnLkSL3n9G2g2r17d7p37663/sMfGoqnkHwZQltAVuH7bs7el8EfcTlUrmzLihUrChxiL0R54dfcH7vngkk9tJEhQ4Zw/PhxGQJtBJKICSGEEKJ8SruRl4R1W1HgvJlD0SeZPrM/AJ99FkqNGjUMGKAQxmP/wps43jzBxXNnGDhwIJs2bZIPIQys3C3WIYQoIssCllIuqFwIIcoq59p6FzW4Y+dL7zEzyM7OpkePHvTp08e4cQphQCbmlswN/QoLCwu2bNlCaGiosUOqcCQRE6KisixgKWxJxIQQFYBSiuHDh3PmzBmeeeYZli1bJncDRIVTr2ET5s2bB+Tt3Xt/GydhGJKICVFRFTR5Pe26YeMQQggj+Pzzz/n2228xNTVlzZo1VKlSxdghCWEUo0aNokuXLmRmZtKjRw9SUlKMHVKFIXPEhKioLCpBtp4J7BaVDB+LEEIYUEREBGPGjAFg7ty5tGnTxrgBCVESrv9d4Cmr63dooLlA/EVXoDYTZi7mUNRRzpw5w6shPVny9Vqc7azxcrA2XLwVkCRiQlRUpuYFlMseRUKI8ishIYHu3buTnZ1N9+7deeedd4wdkhDFy8YJzG1gw5ACq/gCP1lC2m+WBGbM4yrO8OJ4NGveZV/4r7R5fTieHQawc1xbScZKkCRiQlRUBa2OLctmCyHKqbt37/LKK69w9epV6taty8qVK2VemCh/HLxhxMFH7p93M+4EjttHsLpXTdKdGwHPs7WpNZNH/4fUyB+wcKnBrbsBkoiVIJkjJp6aRqNh06ZNAFy8eBGNRlPoZM89e/ag0WhITk42SHyiAAUs5VxguRBClGE5OTm88cYbREVF4ezszNatW6lcubKxwxKiZDh4610p9MHDsWreJvK+LrY09LKnoZc9k94eytixYwG4/tNCog5EGCX8ikISMVGohIQERo8eja+vL1ZWVri5udG6dWu++OIL0tLy5hddu3aNTp06GTlS8dg8mxRQ7mfQMIQQoqQppRg3bhxbtmzB0tKSzZs34+vra+ywhCiV5syZQ7uXOkFOFqMG9uLUqVPGDqnckqGJZUlKPNw8B441wd6rxF/u/PnztG7dGgcHBz755BMaNWqEpaUlx48f58svv8TLy4tXX30Vd3f3Eo9FlICcTP3luRmGjUMIIUrYR4u/5NNPlwGwevVqWrVqZeSIhCi9zMzMmBu6khfa/ovbV0/TsWNHIiIieOaZZ4wdWrkjd8TKiiOrYXFD+KZL3r9HVpf4S7711luYmZlx+PBhevToQb169fDx8aFr16789NNPdOnSBdAdmnjf6dOnadWqFVZWVjRs2JC9e/fme/4///yTxo0bY2VlRcuWLTlx4oT23KVLl+jSpQtVqlShUqVKNGjQgJ9//rlE32+Fc++m/vK0W4aNQwghStC8PzOYNj8vCVu0aBE9evQwckRClH7W1ja4/HsqXtVrcvnyZZ5v047wwzGciE/RHvHJ94wdZpkniVhZkBIPW0eDys17rHJh65i88hJy48YNfvvtN0aMGEGlSvqXMy9sgvOECRMYN24cR48eJSAggC5dunDjxo18dRYsWMChQ4dwcXGhS5cuZGVlATBixAgyMjLYt28fx48fZ86cOdja2hbfGxRwO1F/+Z0CyoUQooz5bNU63t2Zd5d/5syZ2iXrhRCFq1LJAlu7KtDpfUzt3bh04RwdXwqk4yebeWXpH7yy9A8CF+yVZOwpSSJWFtw8939J2H0qB26eL7GXPHv2LEop6tSpo1Pu7OyMra0ttra2TJw4scDrR44cSUhICPXq1eOLL77A3t6elStX6tSZNm0aL774Io0aNeKbb74hMTGRjRs3AhAXF0fr1q1p1KgRPj4+vPLKK7LPS3Fzrae/3KWuYeMQQognkXwZrkYXeMye/DajPpgDwORRg5g8ebLRQhWirPFysGbnuLZsf78bP23/Dc9nvMm+dRXz7R/xVUh1Fvf0415WDrfuFjDNQRSJzBErCxxrgsZENxnTmIKjj8FDOXjwILm5ufTu3ZuMjILnEgUEBGi/NjMzo3nz5sTExBRYx9HRkTp16mjrvP322wwfPpzffvuNwMBAQkJCaNy4cTG/mwou4UQB5ScNG4cQQjyu5MsQ2gKy8m9Kr5TivZ0ZzI3I+wNxcttKfDxjqqEjFKLM83LI29C5oVdj/vx9H23btuXi+bMM6NaRz1b/19jhlQtyR6wssPeCLp/mJV+Q92+XxSW6YIevry8ajYbY2Fidch8fH3x9fbG2Ltk9JQYPHsz58+fp06cPx48fp3nz5ixdurREX7PCybpbQHn+P2yEEKJUSbuR97uq2woYuld7ZPTbwcDT7bVJ2Lwp7zBzUwyaKlWNHLAQZVv16tXZt28fdevW5cqVK/R9rSPpV2Q1xacliVhZ0bQvjDkO/bbl/du0b4m+nJOTEy+++CKfffYZd+8W8Ad7Ifbv36/9Ojs7m6ioKOrVq1dgnVu3bvH333/r1PH29mbYsGFs2LCBcePGsWLFiid4J6JAzw0uoHygYeMQQogn5VxbuyfSP+ZeBPYdR9gPWzAxMeHLL79k/IcL8/ZTEkI8tWrVqvHHH3/QsmVLUlOSSVz3Plv++52xwyrTZGhiWWLvZZBl6+/7/PPPad26Nc2bN2f69Ok0btwYExMTDh06xOnTp2nWrFmB14aGhlKrVi3q1avHokWLuHXrFgMH6v6B/+GHH+Lk5ISbmxvvv/8+zs7OBAcHAzBmzBg6depE7dq1uXXrFrt3786XyImn9Gxv2DEV0q7/X5mNc165EEIYS/LlvDtehbn+t87Dv/76i+DgYC5evIidnR3ff/89HTt2LMEghShHHvp50svGCRy8cXJyIjw8nFe6dWf3rz/z/pjhJF04zbx58zA3Ny/5WMsZScREgWrWrMnRo0f55JNPmDRpEleuXMHS0pL69eszfvx43nrrrQKvnT17NrNnzyY6OhpfX1+2bNmCs7NzvjqjR4/mzJkz+Pn5sXXrViwsLADIyclhxIgRXLlyBTs7Ozp27MiiRYtK9P1WOCnx+f/YSbuRV27AhF8IIbQKmfuVj7kNytqRLz7/nLFjx5KRkYGPjw/btm2TD+6EKAobJzC3gQ1DHl3X3AZGHAQHb2xsbFi84lvavD6ClIjv+PTTT/l9/0FmL/kSD6//uwNdpZIFXg4lO5WlrJNETBTKw8ODpUuXFjo/Syml/bp69erax7169dJbv127dto6r7zyit46Mh/MAC4fANRDhQouHwT714wRkRCiontw7pdz7UKrXr+nYdiQsfz4449AXn8SFhaGk5OTISIVouxz8M5LropyB3rDkLx6/xvq61TZCo9/9cXCzYfrPy3kyIFIgtq0xOmlt6hUvy0A1uam7BzXVpKxQkgiJoQQQojS5f7cLz2UUqxfv56RI0fyzz//YG5uzpw5cxgzZkyh+1sKIfRw8C76PMoHhjB6AXv7VCH1XkcuDWzEuMkf8tfxU1zfOo/nTC7QY9QHTN9xhVt3MyURK4QkYkJUVN7+gAadu2IaDXi3MFZEQghRqEuXLjFmzBg2bdoEQIMGDQgLC6N58+bGDUyI8qyAIYyu/zt8gUNdFR9XseDj3zP5ZfN/+WPPDsxbvklubitjRFxmSCImREVl7wWvLoGto/P2qNOY5G2TIPPDhBClzO3bt5k9ezYLFy4kPT0dMzMz3n//fSZPnqydWyyEKCFFGMJoDszo/jedlw5k2H5vjp44Db+G8uar+/ns04W0adPGcPGWIZKICVGRNe0LNTvAzfN5G4RLEiaEKEXS0tJYsWIFs2bNIjExEcibZ7xkyRIaNWpk5OiEqECKOISxhZcpB3/6f3ywaidzP/mQ49FRtG3blk6dOjFr1iyaNGligGDLjjKzj9jMmTNp1aoVNjY2ODg46K0TFxdH586dsbGxwdXVlQkTJpCdnV3o8968eZPevXtjZ2eHg4MDgwYN4s6dO8Ue/4MLWojiJW37lOy9oMYLkoQJIUqN1Nt3mD9/PjVq1GDMmDEkJibi6+vLxo0b2bVrlyRhQpRiZmZmvDl4OJ5DltOjz0BMTU355Zdf8PPzo3PnzuzZs0f+dvufMpOIZWZm0r17d4YPH673fE5ODp07dyYzM5OIiAi++eYbwsLCmDp1aqHP27t3b06ePMmOHTvYtm0b+/btY+jQocUWt6mpqTZ+UTLS0vKWOZb9K4QQomw7cfosb/10D69mQUyYMIGkpCSqV6/OsmXLOHnyJMHBwbIghxBlhJmtI1NmLSQmJoaePXui0Wj4+eefad++Pf7+/qxevVr7N1xFVWaGJs6YMQOAsLAwved/++03Tp06xc6dO3Fzc8PPz4+PPvqIiRMnMn36dL1jyGNiYti+fTuHDh3STvRdunQpL7/8MvPnz8fT0/Op4zYzM8PGxka7spOJSZnJfUs9pRRpaWkkJSXh4OCgTXqFEEKUQgVs1PzPjZus37qTtZt+4c9D0f8rzaJu3bq8++67vPnmm/JBmxBl1NmkO/i6uvLBguX0GfEuq1eEsvmHtRw6dIh+/foxatQoevXqRb9+/fD3969wfyeXmUTsUSIjI2nUqBFubm7asqCgIIYPH87Jkyd59tln9V7j4OCgs9pSYGAgJiYmHDhwgNdee/q9lDQaDR4eHly4cIFLly499fOJ/BwcHHB3dzd2GEIIIQry0EbNcSm5bD+bzYaYLHaezyHnf6OUTDUQXN+Stz4Jo32XnnL3S4iy6PrfuFpl0Mz8Eit+uKB7zutZnh/qy9/Rh0k4HkFqcgLLly9n+fLluLp70qFjZwI7daGpfytc7G3K/dL35SYRS0hI0EnCAO3jhISEAq9xdXXVKTMzM8PR0bHAawAyMjLIyMjQPk5NTS00NgsLC2rVqiXDE0uAubm53AkTQohS7mb8efafSmGXWQd+2X+KU3+f1znfvEl9enXtyOtdg/D0qVf0fY2EEKXHA8vcuwI/mgL6/kSzhJwXrRna5m1Onk/g8rH9JJ45RlLCVb4LW8F3YSsws7TCuWotXu/akTYdX8O3Tr18H8xUqWRR5hM1oyZi7733HnPmzCm0TkxMDHXr1jVQREUza9Ys7VDJojIxMcHKyqqEIhJCCCFKh9u3b3Py5EmOHTvGwYMHiYiIICYm5n9ntwF5fWLLli15+eWX6dGjB7Vq1TJewEKI4lGEZe4BSLuO6fd9WGk2B2oDtSE924Kd503YEJPN5thsbt5LJ+HMcRbPP87i+fMwsbLFwr0WFh61sHT3xcLdF1tHd8LHtyvTyZhRE7Fx48bRv3//Quv4+PgU6bnc3d05ePCgTtn9pW4LGrbm7u5OUlKSTll2djY3b94sdKjbpEmTGDt2rPZxamoq3t7y6Z0QQlRUoaGhzJs3j4SEBJo0acLSpUtp0aLgzdHXr1/PlClTuHjxIrVq1WLOnDm8/PLL2vNKKaZNm8aKFStITk6mdevWfPHFF6UmYUlPT+fSpUucP3+eCyePcOHc38Seu8jx02e5ePmq3mtqO5nQOrALHbu9QWBgII6OjgaOWghR4oq4zP3DCZsV8Mr/jpycHI6eOM3WbVuJ3P5ffr9qRnr6HdIvHiX94lHtNRpzK17aWpemjRtSt25dateuTbVq1fD29sbNza1MzDczaiLm4uKCi4tLsTxXQEAAM2fOJCkpSTvccMeOHdjZ2VG/fv0Cr0lOTiYqKopmzZoBsGvXLnJzc/H39y/wtSwtLbG0tCyWuIUQQpRt33//PWPHjmXZsmX4+/uzePFigoKCiI2NzTf8HSAiIoJevXoxa9YsXnnlFdauXUtwcDBHjhyhYcOGAMydO5clS5bwzTffUKNGDaZMmUJQUBCnTp0yyOiKw4cPc/r0aRITE0lMTCQhISHf14XxsNXQyM2Epu6mtK5qSstnTHG2t4URS2XYoRCi0ITNFGju3YzmTRqAyy9kdvmC4//AoeiTHD52ikPRJzl15jzZWemcOhbNqWPR+Z7DzNwcL69nqF6tKh4eHri4uODq6oqrqysuLi60b9+eu1hy627B04YMMfRRo8rIQv5xcXHcvHmTLVu2MG/ePH7//XcAfH19sbW1JScnBz8/Pzw9PZk7dy4JCQn06dOHwYMH88knnwBw8OBB+vbtS3h4OF5eeXsmderUicTERJYtW0ZWVhYDBgygefPmrF27tsixpaamYm9vT0pKCnZ2dsX/5oUQQuhVGn7/+vv789xzz/HZZ58BkJubi7e3N6NGjeK9997LV79nz57cvXuXbdu2actatmyJn58fy5YtQymFp6cn48aNY/z48QCkpKTg5uZGWFgYr7/++iNjetp2CQkJYcOGDYXWqVSpEj5VPamRewGf516iZt1GNKrrS8M6vjg5OuS/wMapwiVhJ+JTeGXpH2wb9TwNveyNHY4QZctDi/w8KDNHce5mLqev5xJzPZcT12HnDTdup6aSficFHpHerNy8m3mH0rmXlVNgHWtzU3aOa/tEyVhRfweXmcU6pk6dyjfffKN9fH8VxN27d9OuXTtMTU3Ztm0bw4cPJyAggEqVKtGvXz8+/PBD7TVpaWnExsaSlZWlLVuzZg0jR46kQ4cOmJiYEBISwpIlSx4rtvu57KMW7RBCCFG87v/eNdZnipmZmURFRTFp0iRtmYmJCYGBgURGRuq9JjIyUmd4O+St8rtp0yYALly4QEJCAoGBgdrz9vb2+Pv7ExkZqTcRe3gRqZSUFODJ+6X69etz/fp13NzcdD5Jvn94enri7OyMJuE4hL0M/SeBR2Pt9QW+agXrJ+/cTiU3I407t1NJTZUVIIV4LCb20Ccc7t3Ue9ribibV72Xhm36Lt3a/jUnOLQCycipx7bYi/nYul1MV/9zN5Xqa4p80ReJdDX/efYYpP52hkr0jn7/+LI42+bfHOP/PXd7bcJzLCdepbPL4H6IUuW9S4qmdO3dOAXLIIYccchjpOHfunFF+/8fHxytARURE6JRPmDBBtWjRQu815ubmau3atTploaGhytXVVSml1J9//qkAdfXqVZ063bt3Vz169ND7nNOmTTP6/4Eccsghhxy6x+XLlwvtQ8rMHbHS7P6E47i4OOzt7Y0czaPdX1zk8uXLZWIopcRbsiTekiXxlqyUlBSqVq1a4Rd+eHgRqdzcXG7evImTk9MT7cVV1r4PSgtptycj7fb4pM2ejKHaTSnF7du38fT0LLSeJGLF4P6qLPb29mXqh8HOzk7iLUESb8mSeEtWWYvXWKtjOTs7Y2pqmm/xisTExEJX7C2s/v1/ExMT8fDw0Knj5+en9zn1LSLl4ODwOG9Fr7L2fVBaSLs9GWm3xydt9mQM0W5FuTlT+td1FEIIIUopCwsLmjVrRnh4uLYsNzeX8PBwAgIC9F4TEBCgUx/yVvm9X79GjRq4u7vr1ElNTeXAgQMFPqcQQoiyR+6ICSGEEE9h7Nix9OvXj+bNm9OiRQsWL17M3bt3GTBgAAB9+/bFy8uLWbNmATB69Gjatm3LggUL6Ny5M+vWrePw4cN8+eWXAGg0GsaMGcPHH39MrVq1tMvXe3p6EhwcbKy3KYQQophJIlYMLC0tmTZtWpnZW0ziLVkSb8mSeEuWxPv4evbsyT///MPUqVNJSEjAz8+P7du34+bmBuTNH35w6GSrVq1Yu3YtH3zwAZMnT6ZWrVps2rRJu4cYwLvvvsvdu3cZOnQoycnJPP/882zfvt0ge4hB6WjXskja7clIuz0+abMnU9rarczsIyaEEEIIIYQQ5YXMERNCCCGEEEIIA5NETAghhBBCCCEMTBIxIYQQQgghhDAwScSEEEIIIYQQwsAkEXsMM2fOpFWrVtjY2BS4UWZcXBydO3fGxsYGV1dXJkyYQHZ2tk6dPXv20LRpUywtLfH19SUsLKzkg//f62o0Gr3HoUOHALh48aLe8/v37zdIjA+rXr16vlhmz56tU+fYsWO88MILWFlZ4e3tzdy5c40S68WLFxk0aBA1atTA2tqamjVrMm3aNDIzM3XqlKb2DQ0NpXr16lhZWeHv78/BgweNEsfDZs2axXPPPUflypVxdXUlODiY2NhYnTrt2rXL147Dhg0zSrzTp0/PF0vdunW159PT0xkxYgROTk7Y2toSEhKSb0NfQ9L3c6XRaBgxYgRg/Lbdt28fXbp0wdPTE41Gw6ZNm3TOK6WYOnUqHh4eWFtbExgYyJkzZ3Tq3Lx5k969e2NnZ4eDgwODBg3izp07BnsPZVlx9XUVXVH6L1F6+6HS6lH9jchTHP2IIUgi9hgyMzPp3r07w4cP13s+JyeHzp07k5mZSUREBN988w1hYWFMnTpVW+fChQt07tyZ9u3bEx0dzZgxYxg8eDC//vpricffqlUrrl27pnMMHjyYGjVq0Lx5c526O3fu1KnXrFmzEo+vIB9++KFOLKNGjdKeS01N5aWXXqJatWpERUUxb948pk+frt2Px5BOnz5Nbm4uy5cv5+TJkyxatIhly5YxefLkfHVLQ/t+//33jB07lmnTpnHkyBGaNGlCUFAQSUlJBo/lYXv37mXEiBHs37+fHTt2kJWVxUsvvcTdu3d16g0ZMkSnHY2VhAM0aNBAJ5Y//vhDe+6dd95h69atrF+/nr1793L16lW6detmtFgPHTqkE+uOHTsA6N69u7aOMdv27t27NGnShNDQUL3n586dy5IlS1i2bBkHDhygUqVKBAUFkZ6erq3Tu3dvTp48yY4dO9i2bRv79u1j6NChhnoLZVpx9HUiT2H9lyjd/VBpVlh/I/IURz9iEEo8tlWrVil7e/t85T///LMyMTFRCQkJ2rIvvvhC2dnZqYyMDKWUUu+++65q0KCBznU9e/ZUQUFBJRqzPpmZmcrFxUV9+OGH2rILFy4oQB09etTg8ehTrVo1tWjRogLPf/7556pKlSra9lVKqYkTJ6o6deoYILpHmzt3rqpRo4b2cWlq3xYtWqgRI0ZoH+fk5ChPT081a9YsI0alX1JSkgLU3r17tWVt27ZVo0ePNl5QD5g2bZpq0qSJ3nPJycnK3NxcrV+/XlsWExOjABUZGWmgCAs3evRoVbNmTZWbm6uUKl1tC6iNGzdqH+fm5ip3d3c1b948bVlycrKytLRU3333nVJKqVOnTilAHTp0SFvnl19+URqNRsXHxxss9rLuafo68ej+S5Stfqi0KKy/Efo9ST9iKHJHrBhFRkbSqFEj7SaeAEFBQaSmpnLy5EltncDAQJ3rgoKCiIyMNGisAFu2bOHGjRsMGDAg37lXX30VV1dXnn/+ebZs2WLw2B40e/ZsnJycePbZZ5k3b57O8JfIyEjatGmDhYWFtiwoKIjY2Fhu3bpljHB1pKSk4OjomK/c2O2bmZlJVFSUzveiiYkJgYGBRvlefJSUlBSAfG25Zs0anJ2dadiwIZMmTSItLc0Y4QFw5swZPD098fHxoXfv3sTFxQEQFRVFVlaWTlvXrVuXqlWrloq2zszM5Ntvv2XgwIFoNBpteWlq2wdduHCBhIQEnfa0t7fH399f256RkZE4ODjo3OkPDAzExMSEAwcOGDzm8qYofZ3IU1j/VdGVtX6oNCmovxFFU5R+xFDMDPpq5VxCQoJOxwRoHyckJBRaJzU1lXv37mFtbW2YYIGVK1cSFBTEM888oy2ztbVlwYIFtG7dGhMTE3788UeCg4PZtGkTr776qsFiu+/tt9+madOmODo6EhERwaRJk7h27RoLFy4E8tqzRo0aOtc82OZVqlQxeMz3nT17lqVLlzJ//nxtWWlp3+vXr5OTk6P3e/H06dMGi6MocnNzGTNmDK1bt6Zhw4ba8jfeeINq1arh6enJsWPHmDhxIrGxsWzYsMHgMfr7+xMWFkadOnW4du0aM2bM4IUXXuDEiRMkJCRgYWGRb66Nm5ub9veCMW3atInk5GT69++vLStNbfuw+22m73v3wd+zrq6uOufNzMxwdHQsFW1e1hWlrxOP7r8qurLUD5UmhfU3lStXNnZ4ZUJR+hFDqfCJ2HvvvcecOXMKrRMTE1OqJ0I+yXu4cuUKv/76Kz/88INOPWdnZ8aOHat9/Nxzz3H16lXmzZtXbInC48T7YCyNGzfGwsKC//znP8yaNQtLS8tiiedRnqR94+Pj6dixI927d2fIkCHackO0b3kzYsQITpw4kW8M/IPzfRo1aoSHhwcdOnTg3Llz1KxZ06AxdurUSft148aN8ff3p1q1avzwww8G/XDlSaxcuZJOnTrh6empLStNbSuKR3no60qDstZ/ifKnsP5m0KBBRoxMPIkKn4iNGzdO55NgfXx8fIr0XO7u7vlW+7m/Mpq7u7v234dXS0tMTMTOzu6J/2B7kvewatUqnJycivTHv7+/v3Yyf3F4mjb39/cnOzubixcvUqdOnQLbE/6vzQ0d79WrV2nfvj2tWrUq0qIhxd2+ReHs7IypqanetiuudisOI0eO1C608OCdW338/f2BvDuRxk4WHBwcqF27NmfPnuXFF18kMzOT5ORknbtipaGtL126xM6dOx95p6s0te39NktMTMTDw0NbnpiYiJ+fn7bOw5P9s7OzuXnzptHb3FgM3deVV8XZf1V0ZaUfKu0e7G9E0RSlHzGUCp+Iubi44OLiUizPFRAQwMyZM0lKStIOi9mxYwd2dnbUr19fW+fnn3/WuW7Hjh0EBAQ88es+7ntQSrFq1Sr69u2Lubn5I+tHR0frfKM+radp8+joaExMTLTtGxAQwPvvv09WVpb2vezYsYM6deoU27DEx4k3Pj6e9u3b06xZM1atWoWJyaOnYRZ3+xaFhYUFzZo1Izw8nODgYCBvCGB4eDgjR440aCz6KKUYNWoUGzduZM+ePfmGn+oTHR0NYPC21OfOnTucO3eOPn360KxZM8zNzQkPDyckJASA2NhY4uLinurnvjisWrUKV1dXOnfuXGi90tS2NWrUwN3dnfDwcG2HmZqayoEDB7Sr/AUEBJCcnExUVJR2RdJdu3aRm5urTSorGkP3deVVcfZfFV1p74fKigf7G1E0RelHDMagS4OUcZcuXVJHjx5VM2bMULa2turo0aPq6NGj6vbt20oppbKzs1XDhg3VSy+9pKKjo9X27duVi4uLmjRpkvY5zp8/r2xsbNSECRNUTEyMCg0NVaampmr79u0Gex87d+5UgIqJicl3LiwsTK1du1bFxMSomJgYNXPmTGViYqK+/vprg8V3X0REhFq0aJGKjo5W586dU99++61ycXFRffv21dZJTk5Wbm5uqk+fPurEiRNq3bp1ysbGRi1fvtzg8V65ckX5+vqqDh06qCtXrqhr165pj/tKU/uuW7dOWVpaqrCwMHXq1Ck1dOhQ5eDgoLMSmrEMHz5c2dvbqz179ui0Y1pamlJKqbNnz6oPP/xQHT58WF24cEFt3rxZ+fj4qDZt2hgl3nHjxqk9e/aoCxcuqD///FMFBgYqZ2dnlZSUpJRSatiwYapq1apq165d6vDhwyogIEAFBAQYJdb7cnJyVNWqVdXEiRN1yktD296+fVv7+xVQCxcuVEePHlWXLl1SSik1e/Zs5eDgoDZv3qyOHTumunbtqmrUqKHu3bunfY6OHTuqZ599Vh04cED98ccfqlatWqpXr14Gew9lWXH0dRVdUfovUbr7odLqUf2NyFMc/YghSCL2GPr166eAfMfu3bu1dS5evKg6deqkrK2tlbOzsxo3bpzKysrSeZ7du3crPz8/ZWFhoXx8fNSqVasM+j569eqlWrVqpfdcWFiYqlevnrKxsVF2dnaqRYsWOstuG1JUVJTy9/dX9vb2ysrKStWrV0998sknKj09XafeX3/9pZ5//nllaWmpvLy81OzZs40S76pVq/R+fzz4eUdpal+llFq6dKmqWrWqsrCwUC1atFD79+83WiwPKqgd7/+sxMXFqTZt2ihHR0dlaWmpfH191YQJE1RKSopR4u3Zs6fy8PBQFhYWysvLS/Xs2VOdPXtWe/7evXvqrbfeUlWqVFE2Njbqtdde00nQjeHXX39VgIqNjdUpLw1tu3v3br3///369VNK5S09PGXKFOXm5qYsLS1Vhw4d8r2PGzduqF69eilbW1tlZ2enBgwYoE0kROGKq6+ryIraf4nS2w+VVo/qb0Se4uhHDEGjlFIle89NCCGEEEIIIcSDZB8xIYQQQgghhDAwScSEEEIIIYQQwsAkERNCCCGEEEIIA5NETAghhBBCCCEMTBIxIYQQQgghhDAwScSEEEIIIYQQwsAkERNCCCGEEEIIA5NETIgKZPr06Wg0GjQaDYsXLy7ydRcvXtRe5+fnV2LxCSGEEEJUFJKICVHBNGjQgGvXrjF06FBtWXp6OiNGjMDJyQlbW1tCQkJITEzUnvf29ubatWuMGzfOGCELIYQQQpQ7kogJUcGYmZnh7u6OjY2Ntuydd95h69atrF+/nr1793L16lW6deumPW9qaoq7uzu2trbGCFkIIYQQotyRREyIcuSff/7B3d2dTz75RFsWERGBhYUF4eHheq9JSUlh5cqVLFy4kH/96180a9aMVatWERERwf79+w0VuhBCiApu9erVODk5kZGRoVMeHBxMnz59jBSVECVHEjEhyhEXFxe+/vprpk+fzuHDh7l9+zZ9+vRh5MiRdOjQQe81UVFRZGVlERgYqC2rW7cuVatWJTIy0lChCyGEqOC6d+9OTk4OW7Zs0ZYlJSXx008/MXDgQCNGJkTJkERMiHLm5ZdfZsiQIfTu3Zthw4ZRqVIlZs2aVWD9hIQELCwscHBw0Cl3c3MjISGhhKMVQggh8lhbW/PGG2+watUqbdm3335L1apVadeunfECE6KESCImRDk0f/58srOzWb9+PWvWrMHS0tLYIQkhhBCPNGTIEH777Tfi4+MBCAsLo3///mg0GiNHJkTxk0RMiHLo3LlzXL16ldzcXC5evFhoXXd3dzIzM0lOTtYpT0xMxN3dveSCFEIIIR7y7LPP0qRJE1avXk1UVBQnT56kf//+xg5LiBJhZuwAhBDFKzMzkzfffJOePXtSp04dBg8ezPHjx3F1ddVbv1mzZpibmxMeHk5ISAgAsbGxxMXFERAQYMjQhRBCCAYPHszixYuJj48nMDAQb29vY4ckRImQO2JClDPvv/8+KSkpLFmyhIkTJ1K7du1CJznb29szaNAgxo4dy+7du4mKimLAgAEEBATQsmVLA0YuhBBCwBtvvMGVK1dYsWKFLNIhyjW5IyZEObJnzx4WL17M7t27sbOzA+D//b//R5MmTfjiiy8KvG7RokWYmJgQEhJCRkYGQUFBfP7554YKWwghhNCyt7cnJCSEn376ieDgYGOHI0SJkURMiHKkXbt2ZGVl6ZRVr16dlJQUAKZPn673OisrK0JDQwkNDS3pEIUQQohHio+Pp3fv3rLYlCjXZGiiEBXM8ePHsbW1faw7XnFxcdja2upsFC2EEEIUt1u3brFx40b27NnDiBEjjB2OECVKo5RSxg5CCGEYN2/e5ObNm0De5s/29vZFui47O1u7+qKlpaVMnBZCCFEiqlevzq1bt5gyZQrjx483djhClChJxIQQQgghhBDCwGRoohBCCCGEEEIYmCRiQgghhBBCCGFgkogJIYQQQgghhIFJIiaEEEIIIYQQBiaJmBBCCCGEEEIYmCRiQgghhBBCCGFgkogJIYQQQgghhIFJIiaEEEIIIYQQBiaJmBBCCCGEEEIY2P8HvB4GlLLHe3YAAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x_model_gibbs = inf_funnel_gibbs.isel(chain=[0, 1, 2]).posterior.x[..., 0].data.flatten()\n",
"y_model_gibbs = inf_funnel_gibbs.isel(chain=[0, 1, 2]).posterior.y.data.flatten()\n",
"\n",
"plt.figure(figsize=(10, 4))\n",
"plt.subplot(121)\n",
"plt.plot(x_model_hmc, y_model_hmc, '.', label='HMC', zorder=2)\n",
"plt.plot(x_model_gibbs, y_model_gibbs, '.', label='Gibbs', zorder=1)\n",
"plt.xlabel('x[0]')\n",
"plt.ylabel('y')\n",
"plt.legend()\n",
"plt.xlim(-100, 100)\n",
"plt.subplot(122)\n",
"plt.hist(y_model_hmc, bins=30, histtype='step', label='HMC', density=True)\n",
"plt.hist(y_model_gibbs, bins=30, histtype='step', label='Gibbs', density=True)\n",
"plt.plot(x_marginal_true, y_marginal_true, color='k', label='True marginal')\n",
"plt.xlabel('y')\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see that with the same set up `MultiHMCGibbs` was able to reach deeper into the funnel and pull out the negative `y` values missed by `NUTS`.\n",
"\n",
"Note: Even if I did not remove chain 4 from both samples the results would be much the same. Under this parameterization this model is hard for both samplers to draw from, `MultiHMCGibbs` just does a better job with the same set up."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Other notes\n",
"\n",
"- You can use as many `inner_kernels` as you want\n",
"- The order the kernels are stepped in is set by the order of the parameter list (in the example above `x` septs first, followed by `y`)\n",
"- The order matters! Typically you want to step the parameters closest to the likelihood first and the hyper-parameters second. But for some models this might not be so clear, so some experimentation could be needed."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "lensing",
"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.10.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}