Skip to content

Instantly share code, notes, and snippets.

@luiarthur
Last active July 16, 2020 01:42
Show Gist options
  • Save luiarthur/7a1dfa6a980d11a00862152a371a5cf3 to your computer and use it in GitHub Desktop.
Save luiarthur/7a1dfa6a980d11a00862152a371a5cf3 to your computer and use it in GitHub Desktop.
Example of how to fit a full GP model in Turing.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Last updated: 2020-07-15T18:13:34.025\n"
]
}
],
"source": [
"import Dates\n",
"println(\"Last updated: \", Dates.now())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# GP Turing Example\n",
"\n",
"This notebook demonstrates how to (write out and) fit a GP model in Turing."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m environment at `~/repo/TuringBnpBenchmarks/Project.toml`\n"
]
}
],
"source": [
"# Load environment\n",
"import Pkg; Pkg.activate(\"../../\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Import Libraries\n",
"using Turing\n",
"using Turing: Variational\n",
"using Distributions\n",
"using Distances\n",
"using PyPlot\n",
"using StatsFuns\n",
"import Random\n",
"using Flux\n",
"import LinearAlgebra"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"make_extractor (generic function with 2 methods)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function quantiles(X, q; dims, drop=false)\n",
" Q = mapslices(x -> quantile(x, q), X, dims=dims)\n",
" out = drop ? dropdims(Q, dims=dims) : Q\n",
" return out\n",
"end\n",
"\n",
"# To extract parameters from ADVI model.\n",
"function make_extractor(m, q, nsamples=1000)\n",
" qsamples = rand(q, nsamples)\n",
" _, sym2range = Variational.bijector(m; sym_to_ranges = Val(true));\n",
" return sym -> qsamples[collect(sym2range[sym][1]), :]\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"DynamicPPL.ModelGen{var\"###generator#421\",(:y, :X, :m, :s, :cov_fn),(:m, :s, :cov_fn),Tuple{Int64,Int64,typeof(exp_cov_fn)}}(##generator#421, (m = 0, s = 1, cov_fn = exp_cov_fn))"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Squared-exponential covariance function\n",
"sqexp_cov_fn(D, phi, eps=1e-3) = exp.(-D^2 / phi) + LinearAlgebra.I * eps\n",
"\n",
"# Exponential covariance function\n",
"exp_cov_fn(D, phi) = exp.(-D / phi)\n",
"\n",
"@model function GP(y, X, m=0, s=1, cov_fn=exp_cov_fn)\n",
" # Dimensions of predictors .\n",
" N, P = size(X)\n",
" \n",
" # Distance matrix.\n",
" D = pairwise(Distances.Euclidean(), X, dims=1)\n",
" \n",
" # Priors.\n",
" mu ~ Normal(m, s)\n",
" sig2 ~ LogNormal(0, 1)\n",
" phi ~ LogNormal(0, 1)\n",
" \n",
" # Realized covariance function\n",
" K = cov_fn(D, phi)\n",
" \n",
" # Sampling Distribution.\n",
" # The latent variables have been marginalized out here,\n",
" # so there's only one layer. Note that when N is large,\n",
" # this model will be really slow. There are several ways to speed up.\n",
" # 1. Use a low-rank approximation (e.g. predictive process).\n",
" # This can scale to potentially N=50000. Haven't tried it myself, but I \n",
" # believe this shuold be doable in Turing.\n",
" # 2. GP for Big Data: https://arxiv.org/abs/1309.6835\n",
" y ~ MvNormal(mu * ones(N), K + sig2 * LinearAlgebra.I(N))\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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HkSu5Ofn69RTT9Vhh/lu9UwSr88P/P4a/f76JP+/Rl6f93nxNfouYRcAAPgby0YAAMBTCF4AAICnELwAAABPIXgBAACeQvAi6c0339RZZ52lwYMHq6ioSFOmTNFf//rXXA8ro5566ilNmDBBffr00eGHH65Zs2blekiOaG5u1pgxYxQKhbR169ZcDycjdu7cqUsvvVSlpaXq06ePRo0apaVLl+rQoUO5HlqP3HXXXRo5cqQKCws1YcIEbd68OddDyojly5fry1/+svr3768hQ4Zo1qxZ2r59e66H5Zif/OQnCoVCuuKKK3I9lIzatWuXLrjgAg0aNEh9+vTR8ccfr7///e+5HlZGtLa26rrrrut0Trnxxhst7SnkFgQvkr7xjW/o008/1caNG7VlyxadeOKJ+sY3vqFIJJLroWXEn/70J/3nf/6nLrnkEr366qt6/vnn9Z3vfCfXw3LE1VdfrWHDhuV6GBm1bds2xWIx3XPPPXrjjTd02223acWKFbrmmmtyPbS0Pfroo1q4cKGWLl2q6upqnXjiiZo+fbref//9XA+tx5599lnNnz9fL774otavX6+WlhZ9/etfV1NTU66HlnEvv/yy7rnnHp1wwgm5HkpGffTRR5o8ebJ69eqlv/zlL6qtrdXPf/5zHX744bkeWkbccsstuvvuu3XnnXfqH//4h2655RbdeuutuuOOO3I9NOuMgPvggw8MScamTZvaH4tGo4YkY/369TkcWWa0tLQYw4cPN+69995cD8Vx69atM0aPHm288cYbhiTjlVdeyfWQHHPrrbcapaWluR5G2saPH2/Mnz+//fPW1lZj2LBhxvLly3M4Kme8//77hiTj2WefzfVQMmr//v3Gsccea6xfv9746le/alx++eW5HlLGLFq0yJgyZUquh+GYmTNnGt/97nc7PXbOOecYs2fPztGI7Av8zMugQYP0xS9+UQ8++KCampr06aef6p577tGQIUM0bty4XA+vx6qrq7Vr1y7l5eXppJNOUklJiU4//XTV1NTkemgZtWfPHs2ZM0e///3v1bdv31wPx3GNjY0aOHBgroeRlkOHDmnLli2qqKhofywvL08VFRWqqqrK4cic0djYKEme/XslMn/+fM2cObPT39EvnnzySZ188sn61re+pSFDhuikk07Sb3/721wPK2NOOeUUbdiwQW+++aYk6dVXX9Vzzz2n008/Pccjs8477fQcEgqF9PTTT2vWrFnq37+/8vLyNGTIEFVWVvpiivCdd96RJN1www36xS9+oZEjR+rnP/+5Tj31VL355pu+OKEahqGLL75Yc+fO1cknn6ydO3fmekiOevvtt3XHHXfoZz/7Wa6HkpYPP/xQra2tGjp0aKfHhw4dqm3btuVoVM6IxWK64oorNHnyZJWXl+d6OBnzyCOPqLq6Wi+//HKuh+KId955R3fffbcWLlyoa665Ri+//LL+67/+S71799ZFF12U6+H12OLFixWNRjV69Gjl5+ertbVVN998s2bPnp3roVnm25mXxYsXKxQKJf3Ytm2bDMPQ/PnzNWTIEP3tb3/T5s2bNWvWLJ155pmqr6/P9ctIyOrri8VikqQf/vCHOvfcczVu3Djdf//9CoVC+uMf/5jjV5Gc1dd4xx13aP/+/VqyZEmuh2yL1dfX0a5duzRjxgx961vf0pw5c3I0clg1f/581dTU6JFHHsn1UDLmvffe0+WXX66HHnpIhYWFuR6OI2KxmMaOHasf//jHOumkk3TZZZdpzpw5WrFiRa6HlhF/+MMf9NBDD2n16tWqrq7WAw88oJ/97Gd64IEHcj00y3y7PcAHH3ygvXv3Jj3m6KOP1t/+9jd9/etf10cffdRpO/Bjjz1Wl156qRYvXuz0UNNi9fU9//zzmjp1qv72t79pypQp7V+bMGGCKioqdPPNNzs91LRZfY3/8R//obVr1yoUCrU/3traqvz8fM2ePdu1/yGtvr7evXtLknbv3q1TTz1VEydO1MqVK5WX5817j0OHDqlv3776n//5n05VbxdddJH27dunNWvW5HB0mbNgwQKtWbNGmzZtUmlpaa6HkzFPPPGEzj77bOXn57c/1traqlAopLy8PDU3N3f6mhcdddRRmjZtmu699972x+6++27ddNNN2rVrVw5HlhkjRozQ4sWLNX/+/PbHbrrpJq1atcozs5++XTY64ogjdMQRR6Q87sCBA5LU7UKQl5fXPmvhRlZf37hx41RQUKDt27e3By8tLS3auXOnjjrqKKeH2SNWX+OvfvUr3XTTTe2f7969W9OnT9ejjz6qCRMmODnEHrH6+qS2GZevfe1r7TNnXg1cJKl3794aN26cNmzY0B68xGIxbdiwQQsWLMjx6HrOMAz94Ac/0OOPP65nnnnGV4GLJJ122ml6/fXXOz12ySWXaPTo0Vq0aJHnAxdJmjx5crfy9jfffNP150yrDhw40O0ckp+f7+prXjc5TRd2gQ8++MAYNGiQcc455xhbt241tm/fbvz3f/+30atXL2Pr1q25Hl5GXH755cbw4cON//3f/zW2bdtmXHrppcaQIUOMhoaGXA/NEXV1db6qNvrXv/5lHHPMMcZpp51m/Otf/zLq6+vbP7zqkUceMQoKCoyVK1catbW1xmWXXWYMGDDAiEQiuR5aj82bN88oLi42nnnmmU5/qwMHDuR6aI7xW7XR5s2bjcMOO8y4+eabjbfeest46KGHjL59+xqrVq3K9dAy4qKLLjKGDx9u/PnPfzbq6uqMxx57zBg8eLBx9dVX53polgU+eDEMw3j55ZeNr3/968bAgQON/v37GxMnTjTWrVuX62FlzKFDh4yrrrrKGDJkiNG/f3+jCrELQQAAANNJREFUoqLCqKmpyfWwHOO34OX+++83JMX98LI77rjD+PznP2/07t3bGD9+vPHiiy/mekgZkehvdf/99+d6aI7xW/BiGIaxdu1ao7y83CgoKDBGjx5t/OY3v8n1kDImGo0al19+ufH5z3/eKCwsNI4++mjjhz/8odHc3JzroVnm25wXAADgT95dOAcAAIFE8AIAADyF4AUAAHgKwQsAAPAUghcAAOApBC8AAMBTCF4AAICnELwAAABPIXgBAACeQvACAAA8heAFAAB4CsELAADwlP8PzHDhMB+RJu8AAAAASUVORK5CYII=",
"text/plain": [
"Figure(PyObject <Figure size 640x480 with 1 Axes>)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"PyObject <matplotlib.collections.PathCollection object at 0x7ffaf07afe10>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Generate some non-linear data\n",
"N = 150\n",
"X = randn(N, 1) * 3\n",
"y = sin.(vec(X)) + randn(N) * 0.1\n",
"plt.scatter(vec(X), y)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\u001b[32m[ADVI] Optimizing...: 100%|█████████████████████████████████████████| Time: 0:00:19\u001b[39m\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 19.621075 seconds (1.77 M allocations: 14.936 GiB, 5.47% gc time)\n"
]
}
],
"source": [
"# Fit via ADVI. You can also use HMC.\n",
"Random.seed!(0)\n",
"m = GP(y, X)\n",
"q0 = Variational.meanfield(m) # initialize variational distribution (optional)\n",
"advi = ADVI(1, 2000) # num_elbo_samples, max_iters\n",
"@time q = vi(m, advi, q0, optimizer=Flux.ADAM(1e-1));"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"# Fit via HMC.\n",
"# Random.seed!(0)\n",
"# chain = sample(GP(y, X), HMC(0.01, 100), 200)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"# Get posterior samples\n",
"extract_gp = make_extractor(m, q)\n",
"mu = vec(extract_gp(:mu))\n",
"sig2 = vec(extract_gp(:sig2))\n",
"phi = vec(extract_gp(:phi));\n",
"\n",
"# For HMC:\n",
"# mu = group(chain, :mu).value.data[:, :, 1]\n",
"# sig2 = group(chain, :sig2).value.data[:, :, 1]\n",
"# phi = group(chain, :phi).value.data[:, :, 1];"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"make_gp_predict_fn (generic function with 1 method)"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# This funciton returns a function for predicting at new points given parameter values.\n",
"function make_gp_predict_fn(Xnew, y, X, cov_fn)\n",
" N = size(X, 1)\n",
" M = size(Xnew, 1)\n",
" Q = N + M\n",
" Z = [Xnew; X]\n",
" D = pairwise(Euclidean(), Z, dims=1)\n",
" \n",
" return (mu, sig2, phi) -> let\n",
" K = cov_fn(D, phi)\n",
" Koo_inv = inv(K[(M+1):end, (M+1):end])\n",
" Knn = K[1:M, 1:M]\n",
" Kno = K[1:M, (M+1):end]\n",
" C = Kno * Koo_inv\n",
" m = C * (y .- mu) .+ mu\n",
" S = Matrix(LinearAlgebra.Hermitian(Knn - C * Kno'))\n",
" mvn = MvNormal(m, S + sig2 * LinearAlgebra.I)\n",
" rand(mvn)\n",
" end\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"# Make predictions at new locations.\n",
"Xnew = sort(randn(N, 1) * 4, dims=1)\n",
"gp_predict = make_gp_predict_fn(Xnew, y, X, exp_cov_fn)\n",
"ynew = [gp_predict(mu[m], sig2[m], phi[m]) for m in 1:length(mu)]\n",
"ynew = hcat(ynew...);"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAj4AAAGzCAYAAAAv9B03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOydd3hUVd7Hv9NnMsmkV1JNIAkgvUggFAUBEVEUENcC7tpW14Lvusu6q6K7+mJbXXdBd33WuvqCiwUB6V16L6GTAqmTOiUzkynn/ePMTKYmk95+n+fJk5k7t5w7c+693/NrR8AYYyAIgiAIgugDCLu6AQRBEARBEJ0FCR+CIAiCIPoMJHwIgiAIgugzkPAhCIIgCKLPQMKHIAiCIIg+AwkfgiAIgiD6DCR8CIIgCILoM5DwIQiCIAiiz0DChyAIgiCIPgMJH6JHU1BQAIFAgE8//bSrm9Ip+DrfV155BQKBoN2OsXPnTggEAuzcubPd9tmRLFq0CKmpqQGvGxwc3LEN6uME2kcFAgGeeuqpZvf36aefQiAQoKCgoF3a19P6d1to73tDb4GETzchPz8fTz31FAYMGICgoCAEBQVh4MCBePLJJ3Hq1Cm3dR2d2fHnWPePf/wjNBpNk8dx3JQcfyKRCMnJybjrrrtw4sSJDjm3FStW9Blh0pPorb9LfX09XnnllQ57sP39739HdnY2ZDIZ+vXrhyVLlkCv17ut43mduf793//9n9u633//PbKyshAaGorZs2ejpKTE65h33HEHHn300Q45HyJwSkpK8Morr3TYvZLoHMRd3QACWLduHRYsWACxWIxf/OIXGDp0KIRCIc6fP49vv/0WK1euRH5+PlJSUty2W7lyJYKDg6HT6bB582b85S9/wfbt2/Hzzz83q/IXLlyI2267DVarFefOncPKlSvx008/4cCBAxg2bFi7nt+KFSsQFRWFRYsWtet+ASAlJQUGgwESiaTd991T+OMf/4jf//73Ld7O3+8yceJEGAwGSKXSdmphx/Kvf/0LNpvN+b6+vh7Lli0DAEyePLldj/W73/0Ob775Ju655x4888wzyMvLwwcffICzZ89i06ZNXus7rjNXxo0b53x99epVLFiwAAsWLMC4cePw3nvvYfHixW772rRpE3bv3o1Lly6167l0Jq3tox1BW/p3SUkJli1bhtTU1Ha/TxKdBwmfLubKlSu49957kZKSgm3btiE+Pt7t8+XLl2PFihUQCr2Nc/fccw+ioqIAAI8//jjuvvtufPvttzhw4IDbzdUXI0aMwP333+98P378eNxxxx1YuXIlPvroo3Y4s47FYrHAZrNBKpVCLpe32371ej2USmW77c8BYwxGoxEKhaLd9y0WiyEWt9+lLBQK2/U77Wg6S/SWlpbi3XffxQMPPIDPP//cuXzAgAH4zW9+gx9//BGzZ89228bzOvNk8+bNSExMxGeffQaBQIDs7GzcfPPNMBqNkMvlsFgseO655/DSSy8hOjq6w84N6Fl9tC10x/7dUfcdwjfk6upi3nzzTej1enzyySdeogfgN4ynn34aSUlJze7r5ptvBsDdZi3F17bffPMNRo4cCYVCgaioKNx///0oLi52266srAyLFy9GYmIiZDIZ4uPjMWfOHKc/PjU1FWfPnsWuXbucpn7XUXhtbS2effZZJCUlQSaTISMjA8uXL3cbwTvcBm+//Tbee+89pKenQyaTIS8vz2+Mz/bt25GbmwulUomwsDDMmTMH586dc1vH4TLMy8vDfffdh/DwcEyYMMHvd+SINdi9ezcee+wxREZGQqVS4cEHH0RNTY3buqmpqbj99tuxadMmjBo1CgqFwikoAzlnx3qLFi1CaGgowsLC8NBDD6G2ttarXf78+F9++SXGjBmDoKAghIeHY+LEidi8eXOzv4tnDMRTTz2F4OBg1NfXex1j4cKFiIuLg9VqdS776aefnN99SEgIZs2ahbNnz/r9Xh3nKhKJ8Le//c25rLKyEkKhEJGRkWCMOZc/8cQTiIuLc753jfEpKChwCoRly5Y5z+2VV15xO15xcTHuvPNOBAcHIzo6Gv/zP//jdg6+2L9/PywWC+6991635Y73ni4sB3q9Hg0NDT4/MxgMCAsLc/5+ERERYIzBYDAA4G41q9WK3/zmN022zRdN/f5A9+ijAPCf//wHmZmZkMvlGDlyJHbv3h3Q+bWmnwG+Y3wmT56MwYMHIy8vD1OmTEFQUBD69euHN99802270aNHAwAWL17s7Fuu956DBw9ixowZCA0NRVBQECZNmoSff/7Z53fhed95++23IRAIUFhY6NXmpUuXQiqVOu8ze/bswbx585CcnAyZTIakpCQ899xzzn5DNA0Jny5m3bp1yMjIwNixY9u8rytXrgAAIiMj27ztp59+ivnz50MkEuGNN97AI488gm+//RYTJkxwu7Hdfffd+O6777B48WKsWLECTz/9NLRaLYqKigAA7733HhITE5GVlYUvvvgCX3zxBV588UUA3CUxadIkfPnll3jwwQfxt7/9DePHj8fSpUuxZMkSrzZ+8skn+OCDD/Doo4/inXfeQUREhM9z2bp1K6ZPn46Kigq88sorWLJkCfbt24fx48f7DJCcN28e6uvr8frrr+ORRx5p9rt66qmncO7cObzyyit48MEH8Z///Ad33nmn28MZAC5cuICFCxdi2rRpeP/99zFs2LCAz5kxhjlz5uCLL77A/fffjz//+c+4fv06HnrooWbbB/CH/gMPPACJRIJXX30Vy5YtQ1JSErZv3w6g6d/FkwULFkCv12P9+vVuy+vr6/Hjjz/innvugUgkAgB88cUXmDVrFoKDg7F8+XL86U9/Ql5eHiZMmNBkcGpYWBgGDx7s9tDbu3cvBAIBqqurkZeX51y+Z88e5Obm+txPdHQ0Vq5cCQC46667nOc2d+5c5zpWqxXTp09HZGQk3n77bUyaNAnvvPMO/vnPfzbxjQImkwkAvCwiQUFBAICjR496bbNs2TIEBwdDLpdj9OjRbsIDAEaPHo3jx4/j66+/Rn5+Pv7yl78gIyMD4eHhUKvVWLZsGd59990WW7Wa+/0ddGUfBYBdu3bh2Wefxf33349XX30VVVVVmDFjBs6cOdPkdq3tZ01RU1ODGTNmYOjQoXjnnXeQlZWF3/3ud/jpp58AANnZ2Xj11VcBAI8++qizb02cOBEAH2xNnDgRGo0GL7/8Ml5//XXU1tbi5ptvxqFDh7yO53nfmT9/PgQCAVavXu217urVq3HrrbciPDwcAB+U1tfX44knnsAHH3yA6dOn44MPPsCDDz7YqnPvczCiy6irq2MA2J133un1WU1NDVOr1c6/+vp652cvv/wyA8AuXLjA1Go1y8/PZx999BGTyWQsNjaW6fV6v8fMz89nANiyZcuYWq1mZWVlbOfOnWz48OEMAFuzZg1raGhgMTExbPDgwcxgMDi3XbduHQPAXnrpJWcbAbC33nqryfMcNGgQmzRpktfy1157jSmVSnbx4kW35b///e+ZSCRiRUVFbm1WqVSsoqLC5/l88sknzmXDhg1jMTExrKqqyrns5MmTTCgUsgcffNDre1y4cGGT7XfwySefMABs5MiRrKGhwbn8zTffZADYDz/84FyWkpLCALCNGze26py///57BoC9+eabznUsFgvLzc31Ol/HeTi4dOkSEwqF7K677mJWq9XtODabzfna3++yY8cOBoDt2LHDuU2/fv3Y3Xff7bbe6tWrGQC2e/duxhhjWq2WhYWFsUceecRtvbKyMhYaGuq13JMnn3ySxcbGOt8vWbKETZw4kcXExLCVK1cyxhirqqpiAoGAvf/++871HnroIZaSkuJ8r1arGQD28ssvex3joYceYgDYq6++6rZ8+PDhbOTIkU227+jRowwAe+2119yWb9y4kQFgwcHBzmWFhYXs1ltvZStXrmRr165l7733HktOTmZCoZCtW7fObfunn36aAWAAWEREBNu+fTtjjLFHHnmEzZgxo8k2+SLQ378r+yhjzHnOR44ccS4rLCxkcrmc3XXXXc5ljusuPz+fMdb2fubZvxljbNKkSQwA+/zzz53LTCYTi4uLc+v3hw8f9jo3xvj32r9/fzZ9+nS377i+vp6lpaWxadOmeX0Xvu4748aN8+qHhw4d8mqb6/PAwRtvvMEEAgErLCz0OhbhDll8uhBHBpav9NrJkycjOjra+fePf/zDa53MzExER0cjLS0Njz32GDIyMrB+/XrnCLQpXn75ZURHRyMuLg6TJ0/GlStXsHz5csydOxdHjhxBRUUFfv3rX7v5wmfNmoWsrCznyF+hUEAqlWLnzp1erp5A+Oabb5Cbm4vw8HBUVlY6/6ZOnQqr1epl8r777rubjXMoLS3FiRMnsGjRIjeL0JAhQzBt2jRs2LDBa5vHH3+8Re1+9NFH3UbgTzzxBMRisde+09LSMH36dLdlgZ7zhg0bIBaL8cQTTzi3FYlEAbk8vv/+e9hsNrz00ktesWGtSW0VCASYN28eNmzYAJ1O51y+atUq9OvXz+ke3LJlC2pra7Fw4UK3cxOJRBg7dix27NjR5HFyc3NRXl6OCxcuAOCWnYkTJyI3Nxd79uwBwK1AjDG/Fp9A8fzNc3NzcfXq1Sa3GTFiBMaOHYvly5fjk08+QUFBAX766Sc89thjkEgkbm6G5ORkbNq0CY8//jhmz56NZ555BsePH0d0dDSef/55t/2+//77KCwsxMGDB1FYWIgpU6bgxIkT+Pzzz/HXv/4VdXV1uP/++9GvXz9MnjzZy2XrSUt+/67qow7GjRuHkSNHun1vc+bMwaZNm/y6Htvaz/wRHBzsFo8llUoxZsyYZvsFAJw4cQKXLl3Cfffdh6qqKmeb9Ho9brnlFuzevdvLTejrvrNgwQIcPXrUaYEH+HUmk8kwZ84c5zJXq6Ner0dlZSVycnLAGMPx48dbdN59ke4RbdZHCQkJAQC3h4mDjz76CFqtFuXl5X6DI9esWQOVSgWJRILExESkp6cHfOxHH30U8+bNg1AoRFhYGAYNGgSZTAYATh9zZmam13ZZWVnYu3cvAEAmk2H58uV4/vnnERsbi5tuugm33347HnzwQbcYDH9cunQJp06d8itmKioq3N6npaU1u8+m2p6dnY1NmzZ5BRIGsl9X+vfv7/Y+ODgY8fHxXiZ2X/sN9JwLCwsRHx/vJYp9nZcnV65cgVAoxMCBA5tdN1AWLFiA9957D2vXrsV9990HnU6HDRs24LHHHnM+TB1ZR454MU9UKlWTx3CImT179iAxMRHHjx/Hn//8Z0RHR+Ptt992fqZSqTB06NBWn4tcLvf6/sPDwwMS72vWrMGCBQvw8MMPA+AP+iVLlmDXrl1OweaPiIgILF68GP/7v/+L69evIzEx0flZcnIykpOTne+ffvppPP7448jKysL999+Pa9eu4YcffsBnn32G2bNn4/z5836DhVvy+3dVH3XgeS0BPFi8vr4earXa532krf3MH4mJiV7CMDw83KuciC8cbWrKzVdXV+d0VQG+v/t58+ZhyZIlWLVqFf7whz+AMYZvvvkGM2fOdDuvoqIivPTSS1i7dq1Xv62rq2u2vX0dEj5dSGhoKOLj4336sx0xP035qydOnOjM6mop/fv3x9SpU1u1rSvPPvssZs+eje+//x6bNm3Cn/70J7zxxhvYvn07hg8f3uS2NpsN06ZNwwsvvODz8wEDBri974hsk87eb0vPubtw0003ITU1FatXr8Z9992HH3/8EQaDAQsWLHCu4xjRfvHFFz4fWM1l9SQkJCAtLQ27d+9GamoqGGMYN24coqOj8cwzz6CwsBB79uxBTk6OzyzHQHHEI7WGfv36Ye/evbh06RLKysrQv39/xMXFISEhIaDfzpGkUF1d7SZ8XFm1ahXOnTuHtWvXwmq1YvXq1di8eTNGjRqFQYMG4V//+hcOHDjQZCB+oPTEPtrWfuYPf/2CecTuNdWmt956y2+au6dA9PXdJyQkIDc3F6tXr8Yf/vAHHDhwAEVFRVi+fLlzHavVimnTpqG6uhq/+93vkJWVBaVSieLiYixatMjLskR4Q8Kni5k1axY+/vhjHDp0CGPGjOnq5gCAs17QhQsXvEZVFy5c8KonlJ6ejueffx7PP/88Ll26hGHDhuGdd97Bl19+CcC/eyU9PR06na5dBJivtnty/vx5REVFtTlt9NKlS5gyZYrzvU6nQ2lpqVe9Fl8Ees6O8gY6nc7thtmcVcFxDJvNhry8vCZrjbTU7TV//ny8//770Gg0WLVqFVJTU3HTTTe5HRcAYmJiWv2b5ubmYvfu3UhLS8OwYcMQEhKCoUOHIjQ0FBs3bsSxY8ecNXr80RmVavv37++0VuTl5aG0tDSgOlUOt4k/a0p9fT1++9vf4rXXXkNYWBjKy8thNpuRkJAAgD8sw8PDvbIrXQn0929q+47uow581Sa6ePEigoKC/H5H7dHPWktT9zKAW5va2qYFCxbg17/+NS5cuIBVq1YhKCjIrUzC6dOncfHiRXz22Wduwcxbtmxp03H7EhTj08W88MILCAoKwsMPP4zy8nKvzwMZbbQ3o0aNQkxMDD788ENnJgvA00fPnTuHWbNmAeA3aaPR6LZteno6QkJC3LZTKpU+U1znz5+P/fv3+yz8VltbC4vF0uK2x8fHY9iwYfjss8/cjnnmzBls3rw5IHHSHP/85z9hNpud71euXAmLxYKZM2c2u22g53zbbbfBYrE4M5QAPtL74IMPmj3GnXfeCaFQiFdffdVr9Ofan/z9Lv5YsGABTCYTPvvsM2zcuBHz5893+3z69OlQqVR4/fXX3b4fB2q1utlj5ObmoqCgAKtWrXK6voRCIXJycvDuu+/CbDY3G9/jiHFrybm1FpvN5ryGXWM2fJ1rcXEx/v3vf2PIkCE+S1cAvG5XeHi4M7swMjISYrEY58+fB8BT/P25gBwE+vv7ozP6qIP9+/fj2LFjzvcOl96tt97q1wLTHv2stTgGTZ59a+TIkUhPT8fbb7/tM3ShJW26++67IRKJ8PXXX+Obb77B7bff7jZYc3wvrr8lYwzvv/9+i86lL0MWny6mf//++Oqrr7Bw4UJkZmY6KzczxpCfn4+vvvoKQqHQr1m8I5BIJFi+fDkWL16MSZMmYeHChSgvL8f777+P1NRUPPfccwD4yOyWW27B/PnzMXDgQIjFYnz33XcoLy93q3UycuRIrFy5En/+85+RkZGBmJgY3Hzzzfjtb3+LtWvX4vbbb8eiRYswcuRI6PV6nD59Gv/9739RUFDQKlfeW2+9hZkzZ2LcuHH45S9/CYPBgA8++AChoaFe9VxaQ0NDg/O8L1y4gBUrVmDChAm44447mt020HOePXs2xo8fj9///vcoKCjAwIED8e233wbkv8/IyMCLL76I1157Dbm5uZg7dy5kMhkOHz6MhIQEvPHGGwD8/y7+GDFihHPfJpPJzc0F8NHuypUr8cADD2DEiBG49957ER0djaKiIqxfvx7jx4/H3//+9ybb7hA1Fy5cwOuvv+5cPnHiRPz000+QyWTOWir+UCgUGDhwIFatWoUBAwYgIiICgwcPxuDBg5vcLhCeeeYZGI1GDBs2DGazGV999RUOHTqEzz77zC1G54UXXsCVK1dwyy23ICEhAQUFBfjoo4+g1+v9PqCKiorw1ltvYf369c6Hm1gsxpw5c/Dss8+iqKgI3333HRISEposUBro7++PzuijDgYPHozp06fj6aefhkwmw4oVKwCgSatee/Sz1pKeno6wsDB8+OGHCAkJgVKpxNixY5GWloaPP/4YM2fOxKBBg7B48WL069cPxcXF2LFjB1QqFX788ceAjhETE4MpU6bg3XffhVar9brOsrKykJ6ejv/5n/9BcXExVCoV1qxZ06oEkz5LF2WTER5cvnyZPfHEEywjI4PJ5XKmUChYVlYWe/zxx9mJEyfc1nWkKKrV6hYfx5H+3VwKOmOMrVq1ig0fPpzJZDIWERHBfvGLX7Dr1687P6+srGRPPvkky8rKYkqlkoWGhrKxY8ey1atXu+2nrKyMzZo1i4WEhDAAbinUWq2WLV26lGVkZDCpVMqioqJYTk4Oe/vtt50p40212Vc6O2OMbd26lY0fP54pFAqmUqnY7NmzWV5ents6Lf0eHWm1u3btYo8++igLDw9nwcHB7Be/+IVb6jxjPFV41qxZPvcTyDkzxlO3H3jgAaZSqVhoaCh74IEH2PHjxwNKFWaMsX//+9/O3y88PJxNmjSJbdmyxfm5v9/FV7qvgxdffJEBYBkZGX6/px07drDp06ez0NBQJpfLWXp6Olu0aJFb2nJTxMTEMACsvLzcuWzv3r0MAMvNzfVa3zOdnTHG9u3bx0aOHMmkUqlbavtDDz3ElEql1z4CTfv95JNP2NChQ5lSqWQhISHslltucaafu/LVV1+xiRMnsujoaCYWi1lUVBS766672NGjR/3ue968eWzu3Lley8vLy9ns2bNZSEgIGzFiRMDfY3O/f1f3UQDsySefZF9++SXr378/k8lkbPjw4V79zjOd3UFr+5m/dPZBgwZ5reurb/3www9s4MCBTCwWe53n8ePH2dy5c1lkZCSTyWQsJSWFzZ8/n23bts3ru2jqvvOvf/2LAWAhISFuJUUc5OXlsalTp7Lg4GAWFRXFHnnkEXby5MmA7w19HQFjXeBLIYgeyKefforFixfj8OHDGDVqVFc3hyAIgmgFFONDEARBEESfgYQPQRAEQRB9BhI+BEEQBEH0GSjGhyAIgiCIPgNZfAiCIAiC6DOQ8CEIgiAIos/Q6woY2mw2lJSUICQkpFNK1xMEQRAE0XYYY9BqtUhISGjTfHzN0euET0lJiXMiQIIgCIIgehbXrl3r0NkKep3wCQkJAcC/OJVK1cWtIQiCIAgiEDQaDZKSkpzP8Y6i1wkfh3tLpVKR8CEIgiCIHkZHh6lQcDNBEARBEH0GEj4EQRAEQfQZSPgQBEEQBNFnIOFDEARBEESfgYQPQRAEQRB9BhI+BEEQBEH0GUj4EARBEATRZyDhQxAEQRBEn4GED0EQBEEQfQYSPgRBEARB9BlI+BAEQRAE0Wcg4UMQBEEQRJ+BhA9BEARBEH0GEj4EQRAEQQSOwQBcv97VrWg1JHwIgiAIggic4mKgsLCrW9FqxF3dAIIgCIIgeggNDdzaIxB0dUtaTYdafHbv3o3Zs2cjISEBAoEA33//fZPr79y5EwKBwOuvrKysI5tJEARBEEQgVFYCVVVd3Yo20aHCR6/XY+jQofjHP/7Rou0uXLiA0tJS519MTEwHtZAgCIIgiIBgDLh2DTCZurolbaJDXV0zZ87EzJkzW7xdTEwMwsLCAlrXZDLB5PIjaDSaFh+PIAiCIIhmqKkB1GogwOdzd6VbBjcPGzYM8fHxmDZtGn7++ecm133jjTcQGhrq/EtKSuqkVhIEQRBEH6KsDLBYAJmsq1vSJrqV8ImPj8eHH36INWvWYM2aNUhKSsLkyZNx7Ngxv9ssXboUdXV1zr9r1651YosJgiAIog9QX8+zuXq4tQfoZlldmZmZyMzMdL7PycnBlStX8Ne//hVffPGFz21kMhlkPVx9EgRBEES3Rq0GtFogORmoq+vq1rSJbmXx8cWYMWNw+fLlrm4GQRAEQfRNLBagqAhQKnt0GruDbi98Tpw4gfj4+K5uBkEQBEH0TaqqgOrqXuHmAjrY1aXT6dysNfn5+Thx4gQiIiKQnJyMpUuXori4GJ9//jkA4L333kNaWhoGDRoEo9GIjz/+GNu3b8fmzZs7spkEQRAEQfijuJhbesTdKjqm1XToWRw5cgRTpkxxvl+yZAkA4KGHHsKnn36K0tJSFBUVOT9vaGjA888/j+LiYgQFBWHIkCHYunWr2z4IgiAIgugk6uqA8nIgIqKrW9JuCBhjrKsb0Z5oNBqEhoairq4OKpWqq5tDEARBED2XixeBs2d5ULOD2lpu/Zk0qV0P1VnP724f40MQBEEQRBdgMvFKzb3MiEDChyAIgiAIb9RqQKMh4UMQBEEQRC/HZuPWHpkMEPYuqdC7zoYgCIIgiLZTXc1nYg8P7+qWtDskfAiCIAiCcKe0lFt9pNKubkm7Q8KHIAiCIIhG9HqgpKTXFCz0hIQPQRAEQfQWbLa276O8nIuf4OC276sb0jvKMBIEQRBEb8diARoaALO58b/ZzNPODQYuVkwmIDUVSEtr3THMZh7U3EtFD0DChyAIgiC6HxYLnyOrqooLGoOBixKLpfG/A8d0EmIx/6yoCEhKat0UE5WVvEBhL54jk4QPQRAEQXQ3Ll4ELl3ir6VSLmIkEp5eLpEAIpHvmdItFqCsjGdlxcS07JiM8Xm5RCL+10sh4UMQBNEaKip48GcvzHohugE1NYBcDkRFtWw7sZgLotLSlgsfx7xcvTCF3RUKbiYIgmgpBQXAkSPA1atd3RKiN2KxAEYjt+60htBQbvXR61u2XVkZd5XJ5a07bg+BhA9BEERLMBq5C8Ji4QKotrarW0T0NkwmLkAkktZtHxzMRU9lZeDbGI3A9eu9bnoKX5DwIXoP5eXAmTNAfX1Xt4TozTgyaaKieMBpVVVXt4jobdTXc/HTFjeqUsmzswJNb6+oALRaEj4E0WNgDMjPB06dAk6f5jcNgugINJrGh1JQEH9gMNbVrSJ6Ew4x3ZY5skJDeYBzdXXz61qtPBNMofAdMN3LIOFD9A70eu5ySEjgWQlnzvBROUG0NxUV3AUhEPBRdV0dF0OVlSSAiLZjNvOqyW2toyOR8P5YUdH8ug6B1EsrNXtCwofoHdTVcbdDcDAXPwUFwLlzfCRDEO2FwQCo1UBICH8vl/NlZ84AJ09yVwFBtIXaWt6P2qOAoErFRZTR2PR6xcX8f2tjinoYJHyI3oFa3ZjGKZEAcXHA5cvAhQvtU8KdIAD+UKqv55YegPe3oCA+WtZqeTVdgmgLDjdXa4oPehISwvtlU0HOWi3P5uoj1h6AhA/RGzCZ+IXtGIUDfCQeHc2LgF29Si4Ion1Qq3nchWscRFQUtzICFFtGtA2Lhdffaa/pIgQCnhJ//br/eyBffxwAACAASURBVGB5ubuY7wOQ8CF6PrW1gE7nfeEGBfFCXHl5QGFh17SN6D2YTO5uLl+QxYdoCzU1PF6sPefJCgvjViRfZRcaGnhQcx/I5HKFhA/R86mq4iMbXxkQwcFcEJ092+jHJojW0FzshVDI430IorW0p5vLgUzGBY6vIOfKSi60SPgQRA/CYuGm2qZGSGFhPO7n7FkeBE0QraEpgQ3w9HadrnPbRPQe2tvN5YpKxQd+rhZJxnidH8e8X30IEj5Ez0aj4Q+b5m4WkZHcj52fT/E+RMtxTPzYVD+TSHgfo/5FtIaamvbL5vJEpeL3StdimzU13HXby+fl8gUJH6Jno9fzh1IgpuHoaO7PDqSuBUG4otXyvtbUQ0ks5jVYKM6HaA1VVVw0t6eby4FQyPdbUtK4rLSU3ztbOx9YD4aED9Gz0ekCr24ql3OT7tWr/IIniEDR6ZoX2FIpFz0kfIiW0pFuLgdhYXzQp9Fwy2RJSZ9KYXeFhA/Rs6mpadlMwlFR3GVBgc5ES6iubr64m0TCH2CU0k60lI50czlQKHghQ7Wa/3X08boxJHyInovJxN0PLRE+YjG/2C9fpslMicCwWLgbQqFoej2BgLsq/Fl8TCaa0JTwTUe6uVxRKnlNn6Ii/roPzMvlCxI+RM/FYOAPk5YIH4AH89XVUW0fIjB0uiYLvNlsNpSUlODS5csor6iAzd/0AFeu8KktyCJEuNIZbi4HoaG8LEMfmpfLFx0sLwmiA6mv58GkPkZJNpsNZWVl0NfXQxkUhLi4OAgdsUACAc/yKijgU1v0wawGogVotbyfebi6bDYbjh8/jjNnzsBkFzMhGg0arlzBmEWLkJ2d3bhyTQ0X2vX1vHZKv36deQZEd8ZRHyo2tuOPJRY39uOOti51Y/rumRM9D5uN3yActXhMJp+m2vz8fOzbtw96vd65TKlUIicnB2lpaXxBcDC/4Vy9CgwfHniANNH3qKnxekjk5+dj9+7dTsHjwCoSwVRTg9WrV2P+/Plc/NhsvJ81NHDrZHExn+Kij7oZCA+qqngf6Swh0hkCq5tDwofo3jQ0cKFTW8uDkjUa7uKKiuIxFx6pmPn5+diyZYvXbvR6PbZs2YJp06Y1ip/oaO7vTkgA4uM742yInobVyh9MQUHORb76WIhGA5HVCoNCAYnZDDCGjRs3IjMzE8Lyct7PYmL4A06t5v2ZLI0EwIV1c/FjRLtCwofontTW8gA8tZrHWDDWOPdWaCgParZa3YSPzWbDvn37mtztvn37kJKSwt1eMhk3+16+zF1fUmlHnxXR03DE90REAPDdx6IrKjD7xx9hEwqxav58CGw2CK1WaDQaFF25gtTyct7PHP3LbOZpxSR8CIuF38vo3tOpkH2f6H40NPAg0MuXuTsgPh5ISuLiRCbjNwmTySuwuayszM295Qu9Xo+ysrLGBVFRXFxdv95RZ0P0ZLRa3h/tDybPPhak1+PWzZshtlohNZshNxohsr8GAOPly1zkREU17jMkhPc3CnImjEa3/hUorgH1JSUlsNlsHdTA3glZfIjux7Vr/GGRmOh7DhmRiLsMPG4Y+gDT093WE4m4BenqVe6K6KN1LQg/1Na69UHXviOyWHDr5s1QuiyTm0ywisUIqauDVSRCaFUVF+6u/Vil4sKHgpyJVgifgGIYiSYhiw/RvdBouKUnLKzpifMcNVNcAkSVLnEYTeG1XmgoP25+fmtaTPRWHPE9Lmnsjr4jMxoxfdMmxKjVMMpkqA0NBQAoDAYYFAqotFokaTSIVSh4/3JFKOQPumvXaF6vvo7RyPtAgMkVjvgyT8u2I4Yxn+5hAUHCh+g+2Gy81onB4P2w8CQ6mltoXIiLi4PST60VB0qlEnFxce4LBQLuiigu5gKIIAAee6HTuQWexsXFQSaV4tbNm5FYXAyLSIQt06ahKjISABc+ZqkU0oYGDAwPhzA21nf2Vng4F1W1tZ11NkR3xGAIOLsv0BhGcns1DwkfovtQXs4Dmj0EjU9kMq/ChUKhEDk5OU1ulpOT01jPxxWlkgexqtUtaTHRm3HE97gE0AuFQuQAiC8rg0Ukwg9z5qA0IQH1dktQkN3tpVGpkDBokP9sHZmMBzmXl3f0WRDdFUeQe4CThLYqhpHwCQkfontgMgEXL3IXQBtmC05LS8O0adO8LD9KpdI9ld0XcnljjSCCqK316YLI2LoVAHB20CBU2YOWDXaB4xA+CpUKsTfc4HO3jsDUK1VVKD16FDaDoSNaT3R3iotblN3XqhhGwicdGty8e/duvPXWWzh69ChKS0vx3Xff4c4772xym507d2LJkiU4e/YskpKS8Mc//hGLFi3qyGYS3YHCQm76T0pq867S0tKQkpLiv3KzP6RSPsr3iB0i+gAmE3D2LDBwIBfANhsPPlYq3aqAh1++jKjz58EEApwcOtS5uUP4KOwixtOy6NhHQUEBLl++DKM9tkNVVwftxYuYcO+97pWeid5NfT1364eEBFy4sNUxjIQXHSp89Ho9hg4diocffhhz585tdv38/HzMmjULjz/+OP7zn/9g27Zt+NWvfoX4+HhMnz69I5tKdCWOCsoREe1WQVkoFCIhIaFlG0kk3PxsNlNdjb6GVsuFd10dFz46HaDXo6CmBj9v2AC9Xg+Z0Yi716wBAOgmT0buHXc4s2scri6lyeRlWfSVhQMAEAhgFYuB4mKsXrUK8xcsIPHTVygo4H0tOTngTRwxjE25u3zGMBJedKjwmTlzJmbOnBnw+h9++CHS0tLwzjvvAACys7Oxd+9e/PWvfyXh01txBDSbTDxgubVYrcBf/sLThEeNAsaMAQYPdo6mmpy7y4FEwgNaTSYSPn0NvZ5P3FhTw0v663S4duUKNp85wz9nDJN37kSwXo/a0FB8m5qKKQAWLlyIsrIyWM6eBTZuRARjiPQQPb4qiTswyuUIqq+H3GhsrPRM06f0bmpquPCJjGyRZdkRw+ivP8mMRkxnDMLXXgPmzwdIRPulW9Xx2b9/P6ZOneq2bPr06Xj22Wf9bmMymdzmy9FQVk7PorS0sZx/W/j2W2DtWv762DHgn//klZ5HjEBVejoO2GwolsudNxqfdS+kUm7tMZm4CZroO9TW8iq65eVA//6wFRfj6IkTTuE8+MwZpBQVwSISYevUqbBIJM4q4AkJCc71BNXVXMwLhQFl4VjFYohsNkjMZl7puagIqampHX22RFfhmLfNbG5VzTBHDKPDgihpaEBqQQEyCwoQX1QEgSOja8MG4IkngAceaLosSB+lWwmfsrIyxHpMoBYbGwuNRgODwQCFjwyJN954A8uWLeusJhLtidEIXLrEXQttsbAYjcDHH/PX2dm88OHhw/xhtncvIvfuxSwAZbGx2HDbbbBIJL7n7nLUBqKKun0Lq5Vbe8LDuYurqAgVp06hyv6xyGLBqCNHAAAHbroJ1fbUdUcGTUJCgnNKC1it3IURHh5QFg4AMAAiqxUAoNVq2/vsiO6E67xtrSQtPh4pUVEw7d8P2dGjENqrhAMAsrJ4P96/H/j734F9+4BXXwXI/eVGtxI+rWHp0qVYsmSJ871Go0FSOwTIEp1Afj6Pq2iBn9sn33zD99OvH/DJJ3z0bbPBdvEiTnz0EaIKCpBQUoK48nJM2rUL2265xWn5cZu7ywEJn75FfX1j7Si1GqiogFGn4/E3ABJKSiA1m6FTKpE3cKDbps4MGrGYF92sreV9MTw84OwaJhRC3NAAAAghS2PvpaGBF2eVSls+0DObuZjZvBnYtQtCgwFOM0BqKjB9OnDrrUBKCh+8rV0LvP02t34vXAgsXQrcemtgLv8+QLcSPnFxcSj3qGtRXl4OlUrl09oDADKZDLI2pD8TXUR1NRc+UVFtC2iurwc++4y//uUvGzMkhEKUqVQ4kp0NZGcjtqwMt69bh/SrV1EZFYWTw4YB8Bi1A3x7na4NJ0b0OPR6/lCSy7m7q7oasrg4IC8PAJBcVAQAKEpO9orJcMugiYxsFD4ZGQFn11hFIsgaGqBSqZDc1kEA0X1pzTQlZ84A330HbN/OA/AdJCRwoXPrrUD//u79UiAA5swBRowA/vQnvo8//AHajRuxYfBg1FkszlX76lQX3UrqjRs3Dtu2bXNbtmXLFowbN66LWkR0CFYrH/lYLG2fG2vVKv6wSU4GbrvN7SPXEXd5XBz22Ysbjj58GP1cJiV1G5lLJCR8+hquv7fVCtTUIPaGG3gtKMaQUlgIAChMSXHbzJFB46jLU28fnNkqKwG4VxIXm824af9+t37nwCYUQmw2Y3B2dp8cffcJdDoe26NSBR5zc+AA8PDDwA8/cNETGcmtN598wpc99RQwYID/AOmkJB4C8KtfgQkECNm9GzO/+AKxLgUO++pUFx16lel0Opw4cQInTpwAwDMcTpw4gSL7CGrp0qV48MEHnes//vjjuHr1Kl544QWcP38eK1aswOrVq/Hcc891ZDOJzqakhBfvaqWf21kA7tQp2BzWnkce8aqH4TniPpedjfOZmRAyhlu2bUOIPRDeaDA0znIsFnO3hz3mgui92Gw2FBQU4NLBgyirreWl/lNTgfR0ZwZNZFUVgvV6WEQilHiUR8jJyUFhYSG+/vprrFu3DsVGIwDg+NatOHr0KK5cvYqsrCwAwNCTJzHk9Gncsm0bpB6uVKtIBJHNhkN79uDcuXOdcu5EJ5Ofz8VLWFhg65eWAi++yIOhx48HPvyQByw//zxw442BZ4OJxbA9+ii2zJsHTUgIVFotZv/4I2Zu2IDsvDwE2WPQ+tpUFx3q6jpy5AimTJnifO+IxXnooYfw6aeforS01CmCAB6xvn79ejz33HN4//33kZiYiI8//phS2XsT9fW8QrNSya0rLcS1JsqIo0eRrtOhLiIC1f37w9NY61X3QiDAz+PHI6K6GjFqNaZt2YK1c+Zg//79zm1UUilybrwRyePG8awwoldy7tw5bNy4EbrqaqQUFsImFEJy6pSb2T8tLQ1h9j56PTHRGfPjcA8AcEstdtTyEdfV4eDRo87loVYrhpw+DYDP3j7k1CkcGT3a+blVJILcYIDYaqWU9t5IVRWfisde5btZGhqA3/2OB8lnZwNvvtmmavZlZWUoCAtD8d13Y/zPP2PApUtIun4dSdevI3fvXlRER6MgNRWVGRmIGTOmTxRv7VDhM3nyZLAmZh/+9NNPfW5z/PjxDmwV0aXk57e4cFfjpo01UaT2BwgAHB4+HFe3b8c0kcjNV+2r7oVVLMaWadNw13ffIaqqCrm7d2PHlCnOi11rNGLvjh0YOXQoMseObcuZEt0JxpzZNOeuXsXq1asBAHKzGWKzGfrgYDT4yPQLt9fxCZs9G1MmTHAGhALA119/7XYIz2krHGQfOgSJ2QxzUBAk9fW48fRpnB00CAa7UGJCIQSMQWSxUEp7b8Nq5XXKbLbAB1LvvMPjy1QqYPnyNokeoNGVb5ZKsXPKFBwfPhypBQVIKSxEbHk5YtRqxKjVPBM2ORmYNAmYPJlblnqpAO+dZ0V0TyoreeGu6OgWjyo8a6IMOXUKUrMZVRERuGqfE8mXudbX3F364GBsmzoVNoEA/S9fxo320TjQ+BDauWlTnzL99no0GuD8ediuXMHGjRudiyUNDRAyBuZyg3f2o8pKPo0FgLDbb0f/jAwkJCRAKBR6paqLzWbY7PtQuMy9pdTpMNAeJL1z6lRUREdDYrFgmN3970AAQGwPOqWU9l5EZSV3WwVanHXdOmDNGn5/fO01HsTcRjxd/nVhYTg5bBjWzpmDL++/H7tzc1GUlAQmFnPL1Bdf8ESRmTN5Udi9e3tdpmu3yuoiejEWCw9oto98/KVV+lvu+qBR1NdjsH0kfmTUKKeI8srQsuM5d5fRYMD+/fuxf9w4jN+3D2MPHkRlVBRKXbarr62lkXdvoqoKqKlBxfXrMJeVOUffMpMJzEOEO/vRoUN8wcCBXm4K14B4RX09RFarM7g5qrISk3buxMUBA5Bx+TLEVitK4uORHxuLhtGjMWvDBgzMy8OpIUOgtwf3M4EAEns9Fkpp70VUVPD/gbj1L10C3niDv/7Vr3hsTzvQ1FQXhqAgnM/OxrVRo7DwjjsgOHgQ2LmTi52qKp5R9t13gEIB5ORwS1A7tasrIeFDdA7Xr/ORT0KCz7mLlEol0tPTceXKFa/lOTk5sFitiKiqQva5c+h/6RKkZjPUUVFemTb+aqe4zt116fJlAHx27Wi1GgMuXcLUrVvx7dy5zgeRyGKhkXdvwWbjAfWhoTCUlyO8qgpGmQxMKISivh4WH5NE6uvrgT17+JvcXK/PXUfRErMZFTExCLJnh8lNJmRevIj40lIE25cdHj0aEAhQecMNKE5IQL+SEow8ehS7J00CwON8pPZaPoEUPSR6ACYTL1ioUjW/rlYL/Pa3fJucHJ6s0U40N9UFYJ9UNyQEmDqV/5nNvAbQzp3Arl1cwG3bxv9EImDIEH5d5OS0KlazqyFXF9Hx6HTc2hMSgvxr17Blyxavm7ter8epU6e8lhvr6lDwj38g/sUXcc+aNRiUlwep2Yza0FDsnjix6boqfnCuIxBgT24uKiMjoTAaMWnXLgCATSSCpKEBKpGIPzSJnk1dHS95oFJBlpiIEK0WKo0GYrMZEosFZh83bpNGA9uBAwAA24QJXp87U9XtMYwmmQz1Lu5UAFBptRAyhqKkJJTb44IGDh7MRRCAARcvIrS2FgAXPhKzGbDZsH79enKz9gaqq/m9z0fJDkdm6qXLl1Fy/TrYyy/zwWF8PK+03M6xNb5c/gAfWHpOqguAi5mxY3mQ9fr1wOef89T6G27gcUvHj/NSIgHOLN/d6JmtJnoOjPH6FRoNbImJ2LdhQ0CbqerqkH3uHDIvXIDc7l+2CYXIT03FuexsnlrsKXoCnJnY1fRrFYuxY8oUzPvvfxFXVgYwBptQiAiJBEklJbySb79+QHp6n8h26JVUVvIRrFSKuMREiMPDEVFdzeNqzGZnULIDgUCAa99+i8EmE3RKJX44ehQ5crnPwPltGzfCKhLBIhZDr1SiQSKB1HUKAcApdORyOeJiY3E8NhaFyclIKSrCqCNHsG3qVKfwEVutMBgM2LNnDybZrUFED6WiggsYDxHjafEeeuIEEg4dAhOLIVi+PPCU9xbi6fIPuHKzQMDdvQMHAr/+NXDtGrBxIw+67qH3RLL4EB2LWg0UFgIxMSgrLw/IjJ9++TIWrFqFoadOQW4yQRscjMOjRuH0//4vtk2dipJ+/XxecDk5OQGlATseWg5qw8JgEwggtloRVF8Pq0iEm0aMgLC2lqeWnj3Lz4HoeVit3M1lH3ULhUKMnDoVUpMJQTodhIx59SXGmFu1Zn19vc8ib2lpaZiamwtpSAgsYjEsYjF2TJ6MDTNn4rq9Ou+VG25AlT0+yGg0Yvv27QC4GGIA0q9eRWRlJa/lY7VCZA9wPnjwIFl9ejIGA3dzhYa6LXZkpjrug/2uX8fow4cBAHvGjUO+nxkK2guHy981UL/FJCUB8+YBc+e2fwM7CRI+RMdhNnMXl1AIKBQBzV0kaWjAuP37IQBwvV8/bJw+Hf937704PmIEgpKTW2aubQJX0y8TCqGzPxhjGhoweepUpEREcDNuRAQP7CsooKKGPRGtlv+5BAynpaVhzOzZiDUYYHJJFRY4BJCfas2+sgZT4+ORM2UKbHbhUx0ZietJSTg2YgQup6fjwE03ua1vslsvqyMjcTkjAwCvJM6EQghtNojtfaxBq3WrcUb0MKqr+VQoLvcqz8zU+JISTN+0CULGcGHAAJzPyupzhQS7CnJ1ER3HtWtAWRmfLR2Bxd8MOXUKQQYD6lQqbJwxAzaX8u7KoCAkJCS0zlzrA1fTr3j/fuD0aUzNzoawf38u2OztRnAwUFPDb2SBBCoS3Qetlgtwlzie/Px87D92DPVBQc40drFYDIvd2uKvWrPPrMGGBujtcQ42kQgCe8xPWXw8yuLjm2za0ZEjkX7lCpKvXUOUWg2TVAqRxQJxQwNiKiqgLy7mlaSJnkd5Oe9zLtZEzxIIYw4dgthqRWFyMvZOmAAIBH4zU4n2hSw+RMeg1XLxEBrqnJvGde4iXwTp9Rh68iQA4ODYse6ixyV+p13MtXYc+wrq35+/Lynhlp6srMagRJmMu7xoDq+eR3W1WwCmq6vBtXaPxWXixgx71p9rtWYHXlZLiwVB9qlXbIHOwWRHExrKJz4FEF9aCggEEJvNkDY0QGYyIYQmX+6Z6PXcxe8xSHLtO8FaLWIrKsAA7J440a2fBWIZJ9oGCR+i/WGMVyvV690C9TxjazwZdeQIxFYrymJjUeAx0g00fqfVJCXx//5ieYRCnhlE9BwsFl6LxG5p9HQ1+EKp02GQvWjhuexs789drZYWCyAQICE9HSqVylnAsCXU2q+PYJ3OOUu70GaDUiBAYqBF74juRXU1n5rHw8Lt2nduuHoVAFAaH++s4O1rPaJjIOFDtD/l5bwCqI9JSP2lVfYzGJB58SIA8LgIu4m4NfE7rcIhtPwJn6Agnh3UxBQsRDdDp+MPIHtf83Q1+GLEsWMQW60ojYvDNYcYtuOVNVhRAcTFQRgbixkzZrRK+GjtsUchWi3P7GpogMhmQ3ZKCoRqdYv3R3QxjPF6ZVKpV9C8q8U7/coVAMCV9HS3dQLNTCXaBsX4EO1LQwOvQCoWA3K5z1V8pVXGv/EGBIyB3XILxvzyl22O32kK1+rQCnsbLQIBUgGwwkIIbDbvOhpBQXzaA73eZ10OohviEd/TlAth+LFjiKyqQmpBAQDuavV8cLlZHS0WXuMpLQ0QiZCdnQ3h3Lk48+GHENhsbm60pnAE1QfrdLAJhRBbLAgRCpGVmcmtVX7qwBDdFJ2OW3w8srmARov3wf/+F9GVlbAJBMj3GNB1uGWbAEDCh2hvior4SNhjtOyJayVlHDgA7N8PiMUQ/OY3HRrY56tqNAAIbDY8LBRCZDLh2qFDSPLIxoFMxquq0oOo5+AR3+PPhRClVmP0kSPO9wUpKaiIjXVbZ/Dgwe5WR52Ox3BERDgXZQ4aBFVuLtbv349A7YKeFh+pyYSbx4yBUKHg1qqaGupvPQmHm8uPmzItLQ2hdkFd3K8fjPb0dUeF+g63bBMASPgQ7UldHY/tiYhwBjQ3i9UK/O1v/PW8eY2ZVB2A6+zunjChEHWhoYioqcGZdetgiY11vwk5Rv8aDUCm6O6PPb7HJpejrKTEad2Ty+UwGo1uq2afOwcAKIuNRVlcHE7feKPX7rzmbNPpgMxM98q1YjFiExIQrFBAY59+ojkcFh9ZQwPEFguGDhqEtORk/gAViXhWZDODCKKb4HBzNVOLJ8IusoPvugtTxo/vMMs24R8SPkT7YLPxLC6j0WtCxyb56Sfg4kU+qv3lLzuueQ0NOL55M3en+bnB1ISHI6KmBmG1tdi3bx9SUlLcb0YKBY/z6d+/x1Ys7TPodCg6fx4/X7gArYvQEXtkaUkaGpzxFodHj3abqNaBUqlEXGQkkJ/P3WaOgP3ISPcVxWIIJRLcNGoUNjcTRO3AIpHAIJdDYTQi2mrFwKwsPhgQi7l7tYlpD4huhkbj183lJD+f3yfFYoTfdRfCqTxGl0ASk2gf1GqguNividcnRiOwYgV//fDDHVaqHVYr1CdPQtPQAJVGw2N4fODIsAmrrXXW03AjKIjHjRgMHdNOot24dOwY9u3a5SZ6APe0dYAHmTrmfiv1U3cnJycHQo2Gz6OUksKFiELhVpwOALfQiERITUz0GcDvD4e7a1RCAoQyGXeVOISPXs/dXUT3p6aG39P8xDYCADZv5v9vuolqgnUhJHyI9qGwkAcEt6T2yFdf8Xig+HhgwYKOaZfNBhQXQxscjPK4OGhUKoT4ET+uwgfwEQwrl3PRQ/V8ujU2mw0HNmwIqK5O1vnzAHjqusDDEujMKExN5WIkKQkYOpTPSJ2Z6f2AEwq5RchqRVpaGhYuXIhx48Y5P5aaTAipq/PKDHS4u2JttsZimQ5kMu4+Ibo3NhufZLQpsctYo/CZNq1z2kX4hFxdRNsxmbiZ12VagGaprgY++4y/fvLJlgmmQGGMz9MUFQVJZiaMV66gPDYWDIBKo4FWpXJze3kKH69gWMe6Wq3PVH2ie1B09SqsajVsLtWaI6qqEFRfj+su8TKRlZWIUathFQqhmDcPi8ePR0VFhXdGoWPKi6go7uIMD+d/vpDJ+PrgAfxyl3gPucEAQ1AQlHo99C6uK4fFByUl/DhWa6M1QKXi18rhw3ySyACtSEQnU1fH/1yC3b24dIkPEKVSoCsnoHVYPXvozOrtAVl8iLZTX88tIU2ZeD3517+4GT87G7j11o5pV2kp97cPGYKkrCyoVCpYJRJUxMWhLiwMKo0GQpf5txzCR2E0IkIo9F1PQybjcT5Et0VfXg6p2QyzXfgIbDbMWr8et/30E26wx/MAjUHN+WlpOHThAq5du+a7InhtLbdKBlJYTibjwkWjAcrKnOJZ0tAAs1SKOnsfk7gEPzssPk7LTlhYo8iWy/nAoqbGKaiIbkh1NS/lIZX6X8eRWDF+fNfFbDU08JCEPm5FJOFDtB29no8iAh1BFBQA337LXz/zjHfNnPagooLHYQwZAoSGQigUYsaMGQAAq1iMipgY1ISFIVirdYofq1gMrf2GlCmToayszHvCQEc9H4/YEaL7oBIIILRana6ufsXFUNh/r9w9e6DU6SA2m51TUzgqNPucILKhgcfuNDPvlhO5vFH4mEzOonUKgwEalQp1YWGoioiAor7e6W41O5IBSkths9lQUlKCS5cvo6SkBDZHG2pq+H+i+2G1cjHR3d1cFgu3KiYm8nuuR7xbX6Lv2rqI9kOjaZl4+eADfrPIzQVGjWrdMZsy11ZV8fYMGeJmes7Ozsb8+fOxceNGaDQaqO3uLOPQQQAAIABJREFUqvDaWuiCg2EVi1EbFoYQnQ41x45hv8HgXV9DoeAWAJ2uZRYuotMwlZa6xfek5ec7X8saGjB5505czsjwCmr2OUFkbS3P3vLn2vJEImmM4RGJIBQIMH7ECOwtL3e6tOrCw6EwGhGs1UIbGoqMiROBtWthLS7G/339tVuNKaVSidzsbCSHhlJsWXeltpa7uZpK7Dh3josjuZzf9zobm41beRITgUGDuJVeqw28X/cySPgQbYMxbuYNUATYjh6FcNcuMKEQ6nvvRZTN1rr6FeXlvCpvYmKj+LFY+E3IYgGGD/cZh5OdnY3MzEwUFRVBq9VCKZVCcukS1AcP4nhJCWrDwpB0/XpjgLNejy1btjROmyES8ZuITteytH2iU7A1NOD41q1ubi6H8NkzYQJuOnAA/UpKEG4PIC5ITXUrTeAW0M4Yt+wNHhy4sBeLuaiXSp2j6lSVCra5c/FDYSFMWi1sIhGqoqIQIRJh+ujRSMzIAACItFo01NS4uUv0ej02HjmCGaNGIVmjacM3Q3QYVVX8N3eJKfPC4ebKzW22zk+HUFrKBfzgwdwyFRcHnD9PwocgWoXRyF1dAVzM+VeuIOSllxAF4FxmJvaePAnl5cutq1hqs/GL1zGKqanhoxiFgl/cTVR/FgqFbgXpbGlp2LFrF4J1Oq8AZwdudX2kUn6z8yxqR3Q518+dg7muDmZ7bE1CSQnkJhMMcjnOZ2WBCQSYuGcPguwlCTQeKcVuAe1aLY/FaInAdYhwhYI/DO3HuWHiRDwTGekU3CEhIUgGIDxxAjaRCGaZDDKTCcE6HWp8BMgeOH4ciampELpMwUF0AywWfg9qKmbHZutaN1dFBRc7N97Y6I6LjOSC32oNvNhsL4JifIi2UV/ffO0K8KrJVz/6CFHl5WiQSHB05EgAjRaVfBd3RLPYbPyiTUzkgaD2mY4xbBgwdiyQnNyiUygqKUGJWAyrSIRae/ExT+HjVtcnKIhblszmFh2H6Hjqy8vd4nsc1p6C1FQwoRDns7JQ6NI/dC4PLK8JIuvqgH79WjZCF4v5g0Sh4P/Vam55jIx0Cu4bb7wRqampECYnA6mpqDxzxhlbFqzTIaWgANl5eW671TQ0oOLaNaoh1d2oqeH9pKmM1tOnuYVaqeSlEDqTmhp+r7zxRvc6aWFhXKz10YB5Ej5E29DruRBpYtRgs9lwYPdujD58GABwcuhQGDwyZHwGlvrDZOLZM9HR3LozYAAXPCkpPIurhVWVtVotbEIhbEKh0wIQotVC7CFsnG6QoKBGHznRrQixWBrjexhzTjp69YYb+DKBALsmTUK9QgGbQIAaF1O/2wSRjqBmjzm7mkUs5n+RkY2vk5N9u8qEQmDAAOjEYtTbrweVRoPpmzcjd+9ehFdXO1e1CYUwarUUVN/dqKzkLtGmEjscbq6JEzs3LlCn4/epQYO83f4SCe/bfTRujIQP0TZqa50XvVdGil3IlJWVIfXwYai0WuiDgnzOheSzUrInNhu/kGtrufCRy7kbYtiwNlVBDQkJgU0oBBMI0CCVQqdUQgBg6MmTbus53SBiMTdx99GbRrfFYkG8VAqJfWQbrVYjyGBAg0SCEhfXpykoCGvuvhtr7r4b+uDgxkKFru7W6mret1oaA+GouKxS8f4ZGdl00GtQEGTx8dDb+1aUS6kElWtMj0AAhaOAJtE9MJubd3NZrcDWrfx1R5Xt8IXRyK09Awf6n//Q0S8DHXD2IijGh2g9Nhu/uBQKn7OeOzKibHV1GHHsGADgyKhRsPiJUfCqlGwy8Ru90chH4EIhf5iEhnIXRDulwScnJyM4LAw2oRACAPvHjcO0rVsx9ORJnB00CEaFwtsNIpHwc2+hW43oQLRaCI1GjJo4EVt27EDStWsA+CzYroUqb775ZigUCu9ChS77AQDccEPL+5hEwl0aQUG8nwYHNxuTE5+RgWq7izXepb6Kq/BRKpWIjo0lK2N3wlFbqalSBydOcKtQSAifpqIzMJu5ay0zk/dhfxbwsDDeV/X6lhWf7QWQ8CFaj8EAGAwoqKzElj17vD52xO/MuXoVsoYGVEVE4OKAAX535xZY6rD+KBQ8UDk8nF+kSiVf1o6ThAqFQky/7TbsP3MGYqsV+WlpqIiORoxajYF5eTg2cqS7G8TRLkc2Rx8MDuyWaLWA2Yy0/v0xTSxGyNq1AIAiuziVy+UYP3480tPT/e/DUSxwyJCWu7n4QfgDJzS06ckqXRDK5YgfMgQ4dAgqF2ETWVXlfJ2TkwOhQsFLRxDdg4oK/r+p69/h5po8ueOD0g2GxqzW1FTeD5sS7o5wgcJCEj4EETB6PWz19fj56FG/q4RoNIjasQMAcHDsWL8zo7tZVEwmbk0aNYr7pjtBWGRnZ0M+YwaObdsGo0CA0zfeiFu2b8fgvDxELVmCVM+sM9eZswN8wBEdTHW18+GSFh4OVl4OALhuN/UbjUYcOHAAQqHQfxahWs0fGi3NMnSlpZPtSqWIGjjQa3FEdbV7HSlHzEZzFYKJjsdk4laVplzsFguwbRt/PX16x7TDYuFiWKvlojsujg8Uo6MDKygbHc1njGesXQeT3R0SPkTrqa+HWq32dlG5MObQIYisVmiys93mSfLEzaJSVcUv4Li4Tr0Y07KykKJUoowx6LVaWE6fhlytRmpeHh89uSKV8geQVkvCpztgsfB+Y7caVqxdixjGUBUR4TYvllddJk8Y49bFjqgm7g+p1GfNqci6Oiy85x4+YzvAH2x1dfxBRzWkuhaHm6tfP//rHD/O1wsN9V+oVa/nA7uWBD0zxrdzZJ6GhfHJc6OjueWmJffM8HB+zej1XTeNRhdAwc1E66mpQX0TZc+jKyqQfvUqGICaRYswbdo0KD3KunsFlprN/MJOSen8EYhMBqHVyudrysyE+Be/4Mv/8x/fAYBCYePNh+hatFpuDVEqYbPZoLO7GK75EdtNZhF2pugBuPAJDfWa8kBgsUBoj1MCwEfwjDW6gYmuo7yc95Om+srOnfz/pEn+rS+VldxlFkjQutnMLZJFRTzuMTWVxw2NHw+kp3PrU0vvmQoFF9F9LHaMLD5E67BagdpayP2Z9RnDTQcOAAAuDhiAkOxsJCQkICUlBWVlZf4DS6uq+Oi3K0a0Uqm7wLnzTj6ZakEBsG8fMGGC+/qO6SuIrkerdc4XV3b9OuLt9Xv8CR+f01MA/MHR2TFbUikglYLFxkLgqEnl4OJFwF7ZGQAXSCUlPGg1kElTifbHYOBipSk3F2ONwmfyZN/rGI38HhIfz2uRxcf7dmFqNPxPIOBT8GRn8/tjU3ODtYSYGB7n04fcXWTxIVqHfUb22JQULysOAKQUFiK+rAwWkQhnJ050xu8IhULfM2AD/MFlsXBrT2ePugHvoOngYGDuXP569Wrv9aVS7uunQoZdj0t8j+XsWSiMRjRIJChzzcTzoLi42Nvqw1jnCx+JBAUlJSi1T5YLABX2VONae+0rJ8HBPNZHre7MFhKu1NTw36Ap19CFC9wqJJcDY8b4XsfhXho0iMeUlZbyAaUrGg0XWv37c8tOTg6/P7aX6AEa3V19qFQCCR+idej1gMkEoVyOHI9qpAKbDWMPHgQAnBoyBMOnTw9sPq7qau6n9hHv0CkolfzhaTI1Lps1CwDAjh5FSWGhe40iiYTH+biuT3Q+ZrNbfE/Y2bMAvNPYPTl+/Di+/vprXjXcYuEuJMY6XXSfu3ABW/fuRbHdymmSSp0FF7XHj7tXNRcIeD+9ds37IUl0DmVl/Nr3sI641jHTrlvHF44b5z9+x2Dg9zuJhFtx4uO5+HFMcgtwS2ZiIq/HExnZMX1TqeTipw9lDJKri2gdOh2/8AUCpKWlYdq0ac46PtnnziGsrg5GheL/2Xvz4Dbu8/7/vYsbC4DgIZIiRZDUaeqwJMuyJUY+Yku2nMrNNZGruE3rX+tMOz9/p607nW8900k7zR+e6ZGkR75f95hMkzpOrLhJ+quaMKHlSzLlS5IjWaasiyQoUeABggSwuHf398ezCyxAACQlAiSAz2sGQwpcUiC4+9n353nez/Og4Y/+aG5FVD4kiUK/d965fOXhdjtFfWIxKvUEgHXrIDmdMIRCeP+738W4GkEQBAG9e/ag22Ih8cNYPrRqJ1UwO8+fB1A4zaVHFEW8+otf4OC2bei49166udxGM8zFIssy+vr6YDWZcHnjRlzZsAEJszndw6fR78eP3347MycOIDPr+Hhmo8AoH6JI0bac8u/cPmZf6O+HE8Dk5s3I+xdSFHpoVgGrlbrQnzlDwmr1avq6LJfnb9zaCly/Xvr/Z4XAIj6MWyNninR3dzeOHDmCxx96CHvUG4/5f/0vdG3ZsvCf19S0fNEegAyIdXVZId+h4WF4GxsBZDeXE0UR/cePY9TrZRGf5SYYTPt7Rs6dg/LRRwAWJnw4WYYzGMRbQ0OQt20jP00Zxwp4vV4Eg0EkTSZwsoyQy4W41YpAfT0UAPZoFMrUFM6ePZv5Js3kPDZWttfJUNGGIetSTUNDQ+jv70+LHmcwiCa/HzLH4WehUP45hNp8Q72AcjpJ/JhMFMHUhj+Xo2q0vj6z6asBmPBhLJ5kkm42OcMbeZ7H6l/8AsZgEMn2dly9886s0RUF0UZRdHUt/+TphoZ0BEeWZQwMDKTHHeiFj8bZM2cg11BufEXi9wNmM4aGhnDlxRfBKwqm6+uzytjzoYmeoMuFIUGAV2tIV0ZCajWNZDBAnzhJmUyYVW94DdPTOH36dPYN1O2myAAbm1Jebt6kDZ+a5tLWCD2dIyMAAF9rK+JWa/4KQq1bcq5BvbGRxE8iQcK2sbE8JnaHo6bSXUz4MBaPNpE9d2q1zwf5xRcBAK9t2YLX33oLx44dy/goChEI0EV3K51ylxq7nfLoikLVZ6KIm2pL+lafD1zOAibGYhi7enU5XikDoBtEIADZZsPAwEB6TMVCoj2CKCLocmGipQWSyZQWIeXEqe74pTzp3emGBgCZDs5ZN1CHg26eyyDWapZwmES2LhWqrRF6tMG4w11dAArMIYzFKLqdr4qqvZ08P42NxcdhLCUcR+kuFvFZOr797W+jq6sLVqsV9957L957772Cx/77v/87OI7LeljLOdGWMT+iSDecnOhM6G/+BnwyiZutrRjp7NQdTk3j8oofRaEFpatrZXSjFYR0tZbWmHG6oQExiwWmVCpriCRAN6wou/ksH6EQEA7DFwxCDIexRvUp5BU+etMoAF6WERUESOp57FyGtv0ejwculwuSwQCF47KEtV9NsTaoU9rn3EAdDjI5F+mlxVhCpqdp06eLwOQ2b7XEYmhV/0ZZa6D+OO08LOYlW7uWjNG57RZKSX19plK1yim58Hn55Zfx7LPP4i/+4i9w5swZbN++HY8++igmitwsXC4Xbt68mX6MqKFDxgohFJpTXSBfvAjHm28CAN7ZsyfvTiZvyHd2lnLYRcqOy4rNRsbmeDwzO4zj0mXRbTm+CslggIPna3LC8YogGARkGWI8jqapqfQ09twydl6S4A4E4AiFsgSQrJ6nLpcLnmUYOMvzPA4ePAjJYIDE8+B151FuxAfIuYHW1VEfKd3XGSVC81TlRLmFnDSUx+sFr3YMD+mETdZxkchcf08uHLf4Lsy3i9NJ51QNNDMsufD5xje+gaeffhpPPfUUNm/ejBdeeAF2ux3f+c53Cn4Px3FobW1NP1pWQgqEkcHvn2MATfzd34EDcGXdOkwWMCjP2bEqCgmfrq6yGkqLYjDQAhCPo7W1Nd2jqJDPx+p0oqW+viZ2SSuSyUnAYoFgt6fTXGNtbZBzUke2aBTBujrE1YopTpahAJBVAX/w4MGFtVwoAT09Pdj30EOQdcLHGo3Crwmf6Wnwaun6TCCQ8c0ZjXRjZCbn0hMKUcQnJ0qjXyOAuWkuIGcOIUDCp65u5TWg5HlKrRUZQVQtlPRKTyQSOH36NPbv35/5D3ke+/fvx6lTpwp+XzgcRmdnJzo6OvDZz34WF9S+HPmIx+MIBoNZD0YJicUoNaXf+YTDsKpVJ+/v3l3027N2rMEgLSTlymMvlLo6IJEAz/PpHkWFfD737NsHPpViwmc5iMUo4qHeWDpVAZCb5uJkGbwkIb56NcKbNiHkdMIZDIJTFAh1dTh8+DB6enqW4zdIs+/Tn4bV6QQvyzCkUrCLImSeR1TdEGz++GMA1HsoyzdXX0+l7TWwS19WpqfpGs/ZoOnXCEMqlU616oVP1hxCgM7bldqGoKGBLAxV3pS1pMJnamoKkiTNidi0tLTMNXupbNq0Cd/5znfwX//1X3jxxRchyzJ6e3txvUCPgeeffx51dXXpR8cCTI2M2yAcpnJv/QJw5Qp9SRCywrv5yAr5zs4CHs/K2/nY7el0iNajKN7RgbjZDHMyiUa/PzNjbMMG8lgw4VN+tK62djv4cBir1GicNydlZY9EIDoceOiJJ/D//u//jQN/+qe46/BhPPD44/jqH/zBsoseAOANBux+4AEYJAmcokAyGsEBOHPXXQCAuz/4AHW68Shp39z4OO3QVR8QowTIct40l4a2Rqzz+2FKpRAWBPgbG+fOIdR+FseVtVfUonC5KOJd5QGEFdfAcO/evdi7d2/63729vejp6cE///M/4+tf//qc45977jk8++yz6X8Hg0EmfkqJKNLFq08lXL4MAJidpwdPVsg3FCIjcTnNewtFG10hSYDBgO7ubnR2diIxMAC8/z4edrvhPHIkexfHhE/5Uf094HnIp06BVxREWlshNTWlq1M4WYbDbMY9v/Vb2LB1KwCga+NG6tczNUU73BVC95YtMPr9OHXhApKxGDhFwcebN2PttWtY7fPhQH8/fvq5zyGlKyoYGBhA5wMPgGcRn9IRDGYqTwvQ3d2NLvXz1L59OPT443PnEAIkUm224v6e5cRgoDX5wgWqKqtSSip8mpqaYDAYMD4+nvX8+Ph4ds6zCCaTCTt37sQVNaqQi8VigUXrsssoPTmNCwGkhY+wfXvRb80K+QYCwKZNxefdLBc2G0W0Eon0Lo/neVg/9Sng/fdRd+VKtrmb45jwKTeKQqXcdjuuXr0K5cUXsR7A5eZmxGIxWK1WbNiwAV319WhpaQGfM1YFPL+8zTLzYbejo60N7Rs2YHxiAhNDQ3h3dBSv7t+PL/z4x2gIBPDAm2/iuM46IIoiJoJBtAYCNTVksqz4/bQWFLvPSBK4EycAAO5f/3W4C23oIhESFCvF05iPhga6PtSmoNVISVNdZrMZu3btwvHjx9PPybKM48ePZ0V1iiFJEs6fP4/VK80HUotIEoXUcy9aVZS6774bBw4cmDO0dE7IV/MIrVlTjle9eGw2SnflmvzUtAPOns2ek2QyMY9FuYlEgFAI7124gOOvvoo21VSq+XtisRjOnz+P1MwM+NbW5W+MuRDUDQUvy1jt8aBO3RRE7Xb0HzgAmeOw7to11OektcKSlOmtxVhaJInSXPOl4z/6iNZGhwPYtavwcSvZ36NRV0cprype00ou55599ln89m//Nu6++27cc889+Na3vgVRFPHUU08BAL7yla+gvb0dzz//PADgr/7qr7Bnzx6sX78eMzMz+Ju/+RuMjIzg937v90r9Uhnzofl79OkBWU4LH2zYkE4L+Xw+iJEIBLt9bsg3EADWrVu5eW6Oo2jAxYvZz2/cSOm5cJiiXHfcQc9rwoftuMtHKATvJ5/gw4sX0ej3wx6NImk0ZpexKwrOfPAB2j//+cro1KqJM3WnbdN5SiZaWjDa0YFOrxfdQ0MI6K5Bu9tNEUctjcJYOmZnyUA/n1h54w36uG9f4SiJJFEkZaWmuTSMRmov8sknRdN7lUzJhc8TTzyByclJfO1rX4PP58OOHTvQ19eXNjx7vd6sm2IgEMDTTz8Nn8+H+vp67Nq1CwMDA9i8eXOpXypjPrTGhfpU19gYLbgmE6A27OJ5Hm2FQr3RKH3/Svdh1dVlBglqYsZoBLZvBwYGgNOnM8LHbKb3JZlcGU0YawA5EMC7770HCEK6jP1Ge3tWGbs5kcCsJGE0FEJnoR+0kjCbyWORSAAGA1atWgWLxYK4mkYd6u5Gp9eLruFhnFGjChaLBa3t7cCNG1kz5hhLxNQUCZZiEUNFAdQeZnjggcLHaTO+VuqGT4/m71F9jtVGWRJ4zzzzDJ555pm8X3tDU8oq3/zmN/HNb36zDK+KsWiCwTmNC9PRnu7uheWD/X4SSNpU4pWKw0EpvdwS1l27SPicOQM8+SQ9ZzZTFCgWY8KnHCgKfvXqq4ipgrTQmApzIoGgy4WgOnttxWM20zUUidBHgyGrdcJIZydkjkOT3w9nMJhdQclxbG7XUpNK0WyunNT9HIaHAa+XxFExC4coUiSlEtYIt5vWwHC4PENSy0xFRIAZKwBFydu4UJ/mmpdYjBb0lR7tASinb7PN3UVr+fuzZzPdmrW+F8zgXBbkYBBXzp5FwmyGOR5Hi1o8kSV8FAW8LCMiCMsyiuKWMJszkQVBwMTMDJK68y9utab7SWmN8uLxOLUGsVpZSftSMzNDj/kiNFq0Z/fu4sUaiQTQ1LR0r6+UmEw0O7FKfT5M+DAWRr7GhUC6omtBwmd6mnY8K6iEuCA8T68zV/jccQe9B8FgRvRpqTBmLi0LNy5ehBSJQDIasfrmTfCKgpm6OoR1AseYSiFpMoFvaFiWURS3hNFINxyjEbDbEUkkYNCb6JFpjNetm3snaiMQIhG6uTKWhqkp2vDNF8nWshbF0lypVKYrfKWg+ZqqcBwPEz6MhaGlcgoJn/Xri39/IkGLiMdTOQbgurq5AyCNRmDHDvr8zJnM8xzHhE+ZiNy8CUU9h5rVmX+5s7ks8ThiVisOfO5zyzaKYtFwHF1fRiNgs8HmcmXN7gIywqdlfBw2tepQsNtJ+MRiNTFuoCwkk+RfnE+oTE1RRRcA3H9/4eM0f08lCR+3m15zzvT5aqBCVgTGsqM1Lsxtva76K+aN+Pj9FO2ppKZYgkC/b86uO13Wfvp05jmjkXksyoEkwRWPI6mmhLQ013hOd3hDKoW2u+7Cli1byv4Sb4u6OrrhWK1oWbsWjpzUsuhwYLy5GRwo3ZVuCmo00s2aCZ+lIRCgNM98QkVLc23dWrzyS+vfUwltFTQsFvqdqrCLMxM+jIUxPT3XlHf1KkVxGhqKC5pkksRDZ+dcc/RKRhDy+3w04XPmTCYMbLHQAqGb/M0oAeEwWgQBJrcbnCxj1eQkAGBC14zQkErBYLfjsSNHlutV3jobN5JB1uEA73Bgd56moPp0V3d3N3w+Hw0t5biq3J0vC2okcd6KpoVUcwEU8a6EFH8uzc20xlXZulZBdyHGspFK0Q7oVtNcfj9dQJVi7NOwWmnHl5vC2ryZhM7sLHDtGj1nMpG5mRmcS0soBD6ZRPemTWiYnoYplULcbEZA12/EnEjg7v37wVdiNQrHZTYYVis62tvnNAUdUhuBto2N4dLp0+mhpd7xcTLjMm6PeJwGv84X7RFF4P336fMHHyx8XDJJ60Mlpbk03G4q9KgyQc2ED2N+RJFu/rndSxdS0ZVK0aOzszL7QTQ0zBU+JhP18wEyPh+7nSJDXi/g87GeKqXC78fozZs4d+5cOs010dyc5RuzKwqkVasqx0tWCFUAdXd3Y8+ePemng3V1mK6vB68o6BwZAUCjK147dQojH30015fGWBwLTXOdOkWixuMBdNPY5yCKtD5UovCx2WjDWmXVXUz4MOYnHKZQbW5+eiERn+lpSoOttLlIC8XtJsGWm+fWp7sASuEJAg33O3UK+Pjj8r7OWiCVgjw1hXfOnweAbOGjwksS4rKM/3ztNQwODi7Ly1wyzGaA4yBLEt55552sL2lRH62sHQAkgwFnBgYgM6/Z7TE+TqJ5vrS8vpqrmMiOREg8VOrcq+ZmEnhVlO5iwocxP/kaFyrK/BEfSaJoSVdXZV/0PT20C9Rf+Dt30sdz5zLP1dfT7q+hgQQfq/JaWkIhTA4PY0aNaOQzNpsTCcQtFsQtFvT19ZH3pVJRGxr6btyAmJNq0IRPx+gojMkkAEAyGhELhXBd25AwFk8sRv6e+dKkqRRw8iR9Pp+/J5WqTH+PRn19JqJdJTDhwyiO1rgw198zOUkeF56nrs35CATogs+puKkoOI6q0ez2bP/O5s30u09M0A5Rj5YTr8JqiGUlGEQ0FILC87BGo3Cp4Xd9xMecSCDkcEDheQSDQXi93uV6tbePKnwiec6j6YYGBJ1OGCUp3blaIzI1Va5XWH1MT9O1W6wRIUAVneEwrW/bthU+ThvxU4lpLg1BIPFTResZEz6M4kSjtBAUMjZ3dpLRNxdZpu/r7q6sEs582O108etLhW22TIpP6+OhwfMkmAKB8r3GWsDvh0W9IWnRnun6eiTU84+TZSgch5juXA1VsjdBFT62fNFSjsub7pINBjhz2y8wFs74OKW25/OHadVc991X3Luoiaj5hNRKp7W1qppjMuHDKI7WuDB3VMV8/p6ZmcqP9mhwHOXoc3ukaDu9XOEDkDCamKiqvPiykkgA09OQVVGTz99jTiQQN5sR052r05U8xsFgACwWcAXMylpZe+fICHhV7FhcLqy226uy227JiUTomp1vRIV+KGmxai6AhM+qVZVZ2KGnvj7TJLMKYMKHURxRpAu90HDSfP4eRaEqgELRoEqkrm7uzUQTPqrZVpZljI2N4fKVK7g5MwNZq4Zj3D7j40A4jEhOx+Zcf4/ocEDR3WTeeOONyjY5CwLiBczK4y0tiNhsMCeTaBsbAwDEAFy/cqWq/BhlY3o602G5GJ98Quej1UrzuQqhKPTQtVqoWByOqkp3VajjlFE2pqfzp6qKzeianSWhoA5UrAocDko9xOMZMbd1K30cHMTQ5csYeO+9jAlVUdAiSehxubCxt3d5XnO1oCjUIdxkguDotaKqAAAgAElEQVR0ZjUuTAsfNbIWzW25AKCvrw+bNm2qnNEVegQBdu36UxRY4nHELRaKQnIcRjs6sOnSJTRPTOB6RwcikoS3X3sNsS1bsPFTn1re115p+HzpSrqiaNVce/fOjYTriUYp8jtfBKkS0LyON28u9ytZEipwJWCUjWSSUla5N5NEAtB8BbnCR1FI+HR2Fl8UKg1BmFvZ4PHQohaP4+zRo9mVNxyHaDiMn/3oR5UdcVgJaEbxujq0traiPRJJNy6ccbsBULQnaTJlpbk0KtrkbLGgsbERHMfBlEzCFo3CojPZT6vVQg1aSo/jwCkK3qr0irZyEw7T3K2FiJSFdmsWRdoA5hHjFUl9fWbzV+Ew4cMojChmdi16hoepVN3hmOvh0Rp/tbWV7WWWBYOB+hHpfT48D0WdBaWlXvTIBgMs0Wjll1UvN8EgnYdWK3iexz3q+ahvXGhOJCAKAqQCbRMq1uRsNsPv90NRoz1hQYBJLV8HkO5YXa8z0ssGAxJTU5Ur9paDmRk6x+YTKTduULTbYAD27St+bCxG/p5Kb6Sp4XSSkKvUa0kHEz6MwoTD1IMiN9Wl9/fkXtSBAEVCqmWXo6e+fk5X3JBuWnYuSZMJtlgMwZkZdhO6HQKBTKUcgCbVzxJYs4a+rijgJQmRIuecs1LLic1mRKNRGJNJ8JKEpMWSNjIDGeFTNzubfj5lNMIaiyFUJX6MsjAxMXcWYT60aM+OHdTctBCpFJ2vxY6pNHie7AtVMAiXCR9GYYLB/LuVQhVd4TClhKot2qPhcFAjRp34ua7eePJFfFJGI4ypFEzJZOVGHJYbSaKbkr4cWG0aufXLX8ZnPvMZCDyPZE41lx6XywWPx1OOV7v0mEywNDbCPTODpMmEsCAgZTTCoJ6DoiAgYTKBVxTUzc4CoA7OplQKroXcyBkU6ZmaWljJub5bczG0MvZq8PfoaWigjXCFl7Yz4cPIj6LQYpBvF12oomt6GujoqOxmXcVwOOj9UHc8sizjrJrvrgsGYcmp4JIMBhhSKZiTycqNOCw3wSDdRLRKm+lpSjdwHPg778SaNWtw365diFssSBW40R88eLAyjc0AYDKhZe1amAUBMZsNYYcDCbMZZu3Gw3FzfD4poxEusxkdjY3L9aori5mZhVVzzcwAH35Iny9E+DQ1VX4Ps1xcLlrfK3wjV6GrAaPkRCL0yPX3APkrurQOpdUa7QFoEauvTwufs2fPQjQYMKO2t58T9eE4cABcPF+5EYflxu/PTrdqI0K6u9M7dE9zMz79+c/DlbO7drlcOHz4MHp6esr5ipcWqxW8xYI79+2D6HAAPA9RENJjKoC5Ph+F57Fz+3bwVWBCLQtTU+kquaKcPEktLTZsANrbix+bSpEnsNowGGiNr/BBuKycnZEfrQdNU1P284EALRQAsG5d5vlEgsq8q9Hbo6ehAfB6IcsyPlIbF463tMA9O4vmiQmM5ggcyWDA1ra2yo04LDcTE9niW+2ZhDvvzDynKFi3fTv+8LHH4PV6EQqF4HQ64fF4Kv995zhg61Z4ZBmP7dqFn504kenroyjgeD6vwfnMhx8iuW4d1mk+KEZ+Egk6xxYSkV1o08JYjNbCaktzaTQ0VHwnaiZ8GPnRFtfcXZCW5lqzJlvkaMKn2kK7uTgcAMfBd+MG4uqOeqK5GZsuXSpocO5uaqLWANX+3iw1yST5L/RNMDXhozWPlCQ6R+128DyPLtVsXlVYLMDOndhkNGLDXXdh9NIlyG++CavbDRHAJ+qsLr3wCSWTeP3HP0Zi7drKjniVmpkZWuvm6zkWiwGnTtHnC0lzOZ0VLw4KUldX8aKuwrdDjJLh9+evcijUuDCZTIuCqsbpBOx2RHWjELSxCc0TEzDnpBcMgoAWl6sqKiHKTixGPUO08zCVAi5coM+1iE88Tv2i8qVkqwm1TJ/neXTecQe6d+xAi8OBt99+O+3xcQWDadNzymiEOZnE//zkJ6yVQjGmp8nPON9Iiffeo/OxpQXYtKn4sdEo0Nw8t9t9tWA0UjPDCqZK/zKM2yKRIFNpvrTVJ5/Qx9yKLk34VDsWC+B0IqFW0ADURC7gdsOcTOLed9/NOnzN2rVUZqxvbshYGPE4nVea8Ll8mZ5zOqlBJkA3I5utupplLoSWFkyMjiIejyNqsyFmsYBXFLhnZgBkKgpTwSCGdUNMGTpSKerWPM+6JcsyxJ//HAAQvvtuyMXm78ly9YypKEZTU0VHfZjwYcxFFAsbmzVzqTauQUNRaufms2oV9L+pwvM4cd99AICeixfR4vOlv7amvZ2iYBVeBbEsxGJ0XmlRRO3c27Yts5uOx6lXSrVHGnNxuTA+NQVOlgGOy2tw5mUZpmSSCZ9CzM7SBq+Iv2doaAg//P73wZ84AQB4A8APfvADDA0N5f+GSIQ2jBUsChZEU1O2z67CYMKHMRdRpN1Qbhdcv59mJnHc3JNeUapnIOl8OJ2w2+1Zk9d9q1fjohoCv+/EiXQzOUEQSBD6/cvyUiuaaDRb0OT6ewA6T9WquprC6YRktabL2vMZnBUgq8szI4dAgDxiBbp9Dw0Nob+/H8LQEGyxGOJmM26uXg1RFNHf359f/ITDZP6thU1gBU+cZ8KHMZeZmfwn9a9+RR/Xrs3eJWnlxrUifBwOrPJ4UJfjgXr33nsRtVrREAhgy4ULsFqtaG5upkUwHGaT2hdLMJh9U1KFj7x1K8bGxnD58mWMj49DrpXzTo/JhFU9PWlhM2dmFwBJ7eBclYbv20WWKc1VoApVlmUMDAwAALrUiJnX44Gi8+0MDAzM9U8lEjSmgrGiYcKHkY0sU3QiX5pLEz7bt2c/n0iQ8KmFXQ4A2GzgnU7szXkf4lYrztx1FwCgc2QEsVgML7/8MoZ8PhI9zOC8cBSFxKImavx+4MYNKByHHw0O4tixY3irvx/9J07g//z7v9fkINj2bdtgVYVhvohPymiEU1HQxUra5xIMUqqrQJrL5/PR0GFFSQuf4RwBKYoifLq0drpys9rTXFUAEz6MbCKRwsP6igkfi2Vhs26qAY4DVq2Cp7kZBw4coHSWypjawLFpagpQFAqLv/YaRr1eZnBeDPF4dkWXGu0JuN2YVSuXjKkUUkYjpqNRHD16tObED+924669e2FIpdLCxxUKpZsbpoxG3OHxgGeCey7BYGbdyoOovmfumRnUBYOQeB7X8whIUf/eah3GmfBZ8TDhw8hGa1yYuyDEYsDFi/R5PuEjCNVbvpkPlwuQZXR3d+OJJ56AVY12zbjdSBkMMCeTcOmGRJ4+exaybjfOmId4HEgkIBuNGBsbw7TaPG68pSV9iDGVQtxsTqcf+vr6aqp0e3B0FO9+/DHMiQRiNhui6jmoVXbJBgM+uXABlz/4YDlf5spkaqroRk1QN35atOdGezuSeY4X9BvEcJjK2CvY+1Ir1NCdirEgtOqj3CqZjz/OtGHPbdeeSNTeLsfhIHEYi2FiYgIx1b+j8Hzab7FqcjJ9eDCZxPjgYJYhmlGEWAyjw8P4wSuv4NixY4i//z6AbOFjkCTEdCnZYDAIr9db9pe6HAwODuLoK69gQlFgVCNg2nmnT3dJBgPeO3aspgThvCQS1L+nyGyuaDQKjuMKprkAKlxo1frZKArZBNS/AWNlw4QPIxu/P3/4V5/myhVFilL9DeRyEQR6RKPZ4W4Ak6q5sUkb7QFKO8Smp5nPZ4FcPn8eJ0+ehCiK4GQ5LSL1wkcBkMrphh2qgbYBsiyjr68PABDXrjtFSae79AbnpMmE1PQ0vFevlv11rli0wbcFjM1DQ0M4fvw4bOEwmtXzbkTrG6Wjt7c3MxJF6ydVaxvACoUJH0aGRIIiPovx92jUWmUNz1P0KxLJDncDmFLnm+UKH7vBwITPApBlGQP9/WmBvf7KFRglCTGLBbNq6TovSZB5Hskc4eNcyMylCsfr9SKoplHjFgtSRiNMyWReg7NkMIBXFIRZmjXD7CxFZ/KkpPTVXJ0jIwCA8eZmRHXXOMdxePjhh9Hd3Z35xnCY2ipU+6zCKoEJH0aGcJhuzLnVWbKcaR6XK3y0fj+1UtGlx+0GJAmtra1ZBmdN+KyanEyntgSHA6uampjBeQF4vV4k/X6k1Iqlreow2Cvr16fFkEGSIBmNSOrK3V0uFzw5Q2KrEX1UK2UyIWa1wpRM5k11yTwPgyRBqLWNSTEmJwtGqNPVXMgIn9w0l6IosOV+vzamotYaaVYoTPgwMohi/oZew8MUHrZYgDvuyP6aVnlTiwur202l7fE4ent7009PNzSkDc516miL3t5e8BYLNU1jFCUUCMCUTEIyGOAMBrFqagoyx6VbBQBkbE6YzZB15+rBgwcrfxr7AsiNakVtNhgkKR3xcYbDMKmNDRWOAyfL4FgjQyISoYhPgciMlrY2JRJov3EDQP40V1Z6W5IoAlyLjTQrlOpfJRgLZ2YmfxdTLc21devcr2uzlGpR+AgCiZ9gEN3d3enSdoXn01GfjtlZHDhwgMLiVmumWyyDkKQ5YtBlNlNEx2DA2mvXAFCbAL2R2ZhKpauYXC4XDh8+XDNTyD0eD1w6L4lkNAKKgoTFAlG9oaejPhwHDkBUN1uupgkGC7frQKZKq2N0FAZZxkxdHWbc7oLHAaANo8PB/D0VRP5e3YzaQ5ap0mExjQsBivi0tNRmiJfjgNWrgZs3AQDd3d3o7OyEz+eDZXQU+PnPsc1ohE+SMDY2htb6evCzs7RQskWSmJmhNglbt6Z3zB3NzXCazYgYDFinmnKvrV2b9W0Wsxn7P/tZ2DZsgMfjqYlIjwbP8zh48CCOHj0KAOmUoGZwFiIR1AcCmFCN4AoARy1uTPIxM0PXbYH1Sktba9VcI52dc47NquYC6Hpes6Z2+phVAbWzWjCKU2ww6Ycf0sd8wqdWprIXor4+XdYO0E2pra0NyQ0bAACR99/H66+9hmPHjuEHP/4xRq9dYz4fPZJEPVWuXSPxDYBPJHDXjh0QRBFNfj9kjsOQzkjKyTJ233MPenbtQldXV02JHo2enh4cPnwYTqcTKYMBssEAXpbzGpztdjva2RgFOr8mJopWoPI8j97du9ExOgogfxl7VjUXQGtgY+NSv1pGCSnLivHtb38bXV1dsFqtuPfee/Hee+8VPf5HP/oR7rjjDlitVmzbtg0/+9nPyvEyaxtRpOhN7s7Q7weuX88/mBSozVJ2PU4niR+d4XRoaAivjY8DABr9fpqgDWpxf3JgAFe0CBqDbkaSBHi9gPqeIRpFh8eD/Wqn3OmGBsTVtJYgCDhw//3oWL++ts87kPj5oz/6I3zq4YchGQwwSFLemV07d+8Gz+bEUfFGOFy0fw8AdE9Pw5JIIGq3Y6K5Of28IAiZtLWG5nFk/p6KouSprpdffhnPPvssXnjhBdx777341re+hUcffRSffPIJDXDMYWBgAEeOHMHzzz+PQ4cO4aWXXsLnPvc5nDlzBlu3bi31yy1OKkWD7drbqy+1Ew7Tx9zfq9BgUg2Oq82KLg0t3TU2BtTXQ+Z5DAwMQHS5EDebYUkk0DA9Db/q+ZEMBrzX14e1jzxSk5GKOWhlxSYTRX1aWkhEmkxoUX0p9jvvxKcfegiC3Y7W1lbwMzMk0Gv5vFPheR73798Pj8+HD06ezIr4CIKA3t5eeJxO8rXUOsEgCZX5zhu1S7j1wAH82q//OkS1ZUVra+vcazYcpoh3LUe9K5CSr7zf+MY38PTTT+Opp57C5s2b8cILL8But+M73/lO3uP//u//HgcPHsSf/umfoqenB1//+tdx11134Z/+6Z9K/VLnRxSBkRHKE1cbU1P5F4Ri/p5kkszOte4fWLUKaGsDbtzAxOAglcNyXLqRYfPERPrQlNFIDeWuXFmuV7uy0DoKu1yZCfZaBeHlywAA+/bt2LB+Pdra2ujGE4+TqbzaNh+3Qde2bfjCr/0a7j1yBAAgRCI4cugQRSeMRnpfa71r+PT0/OMkFAV46y0AAPfgg2hra8s+93KJRIDW1toa11MFlPSvlUgkcPr0aezfvz/zH/I89u/fj1OnTuX9nlOnTmUdDwCPPvpowePj8TiCwWDWo6TMzmZC8tVCPE677MUam2ttKnshBAG4+25g7VrE/P70DUYTPvrRFUmTCcZkEqLuuZpGEz4mE51Ps7OZ9IEmDlW/VJpUiqUWcnE6wcsyVq9fT1EzAPzQEH3NaKT3rJZL2lMp2tzNk+bCxYu0vttswO7dxY+VZRLfeaq+GCubkgqfqakpSJKEFl2beQBoaWmBz+fL+z0+n29Rxz///POoq6tLPzo6OpbmxRdCloEbN9Jm1qogHKZQeK7wKTaYFKi9qezFMJmAjRthaWyESb3BaP4AvfBReB7GVAr1U1PM5AxkhI/RSF6f2Vk6r2QZUA2mWcJHi1rUuL9nDhZL5r1Zt44+amMqjEYSPbUsfLQxFfOlpN54gz7u2TP/hk4rBmEVmhVHxcfnnnvuOczOzqYfo9piWUpmZmj3UC1ojQtzw8DaYNKmprmDSQG6QTkcLOWgYbejZft2NKhhby3iUx8IwKi76ZjcbrSKInXDrnXvhSxnbtiKQudiMkkpZUWhahn94EfNgM9GA2RjtdJ1KMsZ4aP2QGIRH1BEW0vNF0P19+DBB+f/maKYbmLKqCxKKnyamppgMBgwnpMaGh8fz+6DoKO1tXVRx1ssFrhcrqxHyTGZqNKpWiYeBwL0O+VSbDApUJtT2eeBb2vDXTt3gpNlRAQBot0OXlHQ6Penj9nx6KPg168no/y5c9UVPVwskpQ5t7TIBMel/T1z0lyxGN3k2c0mGy3ymkhQIQKQLXwkib5Wq0xOzu9FvH6d0qsGA7Bv3/w/Mx6nMRWMiqOkwsdsNmPXrl04fvx4+jlZlnH8+HHs3bs37/fs3bs363gA6O/vL3j8slBfTxGfajA5S9KtNS7UqHV/Ty4NDejYtg2P3nMPBEHIMjhbrdbMcEODIW2IxoULtWs81Qsfs5lSXTZbYeETj5PYns+kWmtYrXOFT+5E9lqN+MRitLmbL82lRXt27pzfQ6ZFj5jXrCIpearr2Wefxb/+67/iu9/9LgYHB/EHf/AHEEURTz31FADgK1/5Cp577rn08X/4h3+Ivr4+/N3f/R0uXryIv/zLv8QHH3yAZ555ptQvdeGYzZnS9konEsnv7yk2mBTI3KhrvaIrF4MB6OiAp6kJe/bsQaCtDQD5fGKxGN555x0M6U2njY20KNfqTSmVylTE8Dzk6WncnJlBVD335PXrs49PJJiZNB9GI13DeuEzPZ3ZnClK7Z5joVDh5qx6NOHzwAPz/0xRJKN0vhYfjBVPyYXPE088gb/927/F1772NezYsQMffvgh+vr60gZmr9eLm2rLf4C6Yr700kv4l3/5F2zfvh2vvPIKfvrTny5/D59c6uqod0ulezTC4fyNC7XBpFYrsGnT3O9LpVhFVyEcDoxev47jr76KMbWvimZwFkUR/f392eInmazdNIQu4jM0M4P/PHEC/338OHg1TfPzy5cz75UG8/fkx+Wi88hmy3jytKiP1gagFpmdJeFXLEo4M5PpUL8Q4RMOU5prPs8QY0VSlr/aM888UzBi84bmotfxpS99CV/60pdK/KpuE6eTus1OTQGlriQrJeFwfv+Otghs2ZL/4q7lqezzIFut+ODcORhkOT2stC4YhCUWS3cgHhgYQGdnJ3iTqSaFjyzL8Hq9SA4OwhmLQRTFdIpbEEVYEgnIHIebFgtu9PdTx9w1a0hsM+GTH4cjMwB37VpKo167BuzaRdewNlE8kSDPS2tr9acMFWXeMRUAgBMnKMq9cSOloOf7mbKcbbpnVBRMrt4qHEcX0+go7a4qtYHV1NSt+Xu0qeyslH0O3slJzCYSMAKIW62YdblQFwyiaWoKN9QxDKIowufzoa2tjRbRGkpDDA4Ooq+vD8FgEG3Xr8MaiyGm66/iVtMzs3V1kNUb88DAADoffxy8xcKMzYXQb0LWrqWbub6kXYtOj45Sm4qenkxarFqJRChyvVB/z0KiPbEYK2OvcCr0br1CcLtplpVuIGBFEYtR/nuxHZuBjMmUlbLPIRSJIGGxwKDuvvN1cAYAUduBA5mdepUzODiIo0ePphuN8mplpKIzd7vUrwV1NxZRFDHh9dINjInt/FitFMFJpfKXtMfjJLDHxmjNqrZGrPkIBjOVgIWIxQCtQe5C/T0u1/zNEBkrFiZ8bgezmW5YOo9SRSGK+Y3N8w0mBWhxZfNp8uJ0OhGzWmFIpQDk7+AMAIKWsuE4ej+rHFmW0dfXl/UcL8tQcsSzPuKjJzYzw4zNxdBK2pPJ7MouRcn08vH5yPTc3k6iQC++q5FAgK6vYhu0X/yCRGF7e34/Yy7RKPl72KavYmHC53Zxu0n4VOICEg5nhkTq0aI969YVrlpQFGZsLoDH44G1vh6cGsXI18FZEIRMbypFqYmIj9frzR4poyjgFGWO8NEiPnrhY41GYTcamdguhlbSHo8DXV2Ufp+dJaGj9fK5eZNu2NrgUnUQbFUiy+RlKhaZURTg5Zfp8y9+cX4xo5nxmQCvaJjwuV0cDkoXVWIn55mZ+RsX5kNR2FT2IvA8jwceewwyz4OTZfgbGyFzHIRIBHZ1TEVvb29m6CHH1YS5ORQKZf3bkErhvhMnsF7r2aNSp96M9cKnnuPQtGYNMzYXg+fp/Ukm6dpU/WS4epU2N5JEERBtwCvHVW6afiGEQrS5K3bO/OpXwKVLFC377Gfn/5mRCAkp5u+paJjwuV04ji4sr7eydu2307iQTWWfl007d+JT+/fDZTYjZTIhoJa1dwSDVKHU3Z052GCoiVJjZ070sG1sDOuuXcM9778PTvX6cLI8J+LDSxK279kD3uVixub5qKvLnEv6Ds48T6kurf8MQB8nJytr3VoMwWBmnmAhtGjPY48trBlhOEwjfJjPrKJhwmcpcLtJRFTS7kkU8zf1mm8wKUCLidnMIj7FsFjQ2dODLx06hEOHDsGovpf3NzZmix6AhE8NRHw8Hk/WSBmrOqrDlEqljd/OcBi8oiBlMEAUBAiCgAP79sGzcSNFV9k5Vxy7PTNKR+/zMRjo2tZHKgSBbuQ5kbiqYXo6f0RbY3ISeO01+vzw4YX9zGSSmo4yKhomfJYCk4nSP5Vkcg6H6SLO3Q3pB5MW6meh7aKKLSoMoKEBfCKBtrY21O3ZAwDgPv547nE8XxPCh+d5HDx4MP1vs+53XnP9OgDgflUUSm1tOPT44zhy5Ag6m5tpN75zJzOUzofFknmPcqe0r11L43Y0tBEXet9VtZBMkv2gWJrrP/+Tol07d1L/nvnQepexNFfFw4TPUuF2U5mo6uFY8YRC+W8i8w0mBWixdDrZTWg+HI7M7nvLFvo4ODh3LpfRSO9pDczr6unpweHDh+FyuWDRpfc6fD4cOHAAbWo/I8v69WhrayMfVCJBzeJYl9z5sVppQ5JMZoTP0BCdW/l6jZnNlelPnI9gMDutl0siAfz4x/T5E08s7GeKIl3TbExFxcNWkqVCEKgMfGqqMvo7+P231r8HoEWVXfzzY7dn+qqsX0+78VCIGsh5PJnjNOOpJNXEzb2npwebNm3CzNQUcOwYAGDV+DiaV60irxyQeX80MVgJ19RKQIvEJhJkbuY4OucCgfydhh0OWgvyja2pZILB4tfT8eOUCmtuBh58cGE/MxKhLv2V2qyWkYb9BZcKjqPFuRJMztEoLYZ5BpMq6nBIb2MjxsbGIGsRCz2KwqprFoLdTuIyFqMFWAunX7iQfRzPA5IEOZnE8PAwzp8/j+Hh4fzvfZXA8zwadKlSTpKAs2dJFAKZMTDaDZkJn4VhsdAjkaBzT0tXj4zkP95my3Q3riYmJ4sLuaNH6eMXvrCwzYai0EOfKmRULNW/vSwnbjc1CPP7aSexUhFFuhnn7ACvnzyJNcEgkkYjfjE0BGVkBIIgoLe3N2PI1bqgsojP/FitJH60EPnmzcD58+SjeuwxyLIMn8+HyMwMIjdv4o3TpxHQ+V5cLhcOHjyInp6eZfwlSkiuqfbdd+dGfLTzjQnthcFxdK5pXZk7O2lm1/AweVlyMRjohj4zA6iNNiueaJR+n0Ji+ZNP6Do0mUj4LAStEIT5e6oCFvFZSrSdw0o3OYfDc3L+Q0NDuPaTnwCgTsOK+rU508S1PhZsB74wGhro5g1A3rwZABA9fRqnT5/GSy+9hGPHjuGNN9/E+Q8/hJiz6w4Ggzh69CgGBwfL/rLLgvb7rl5NH99+O3Pt6IWP283SC4vB5crMfuvspI+FIj4A3dDHx6vHY6Z1pC4klrXB2Pv2LXzQaDhM5yFrp1AVsNVkqdGiPuHwcr+SwgQCWRVZsixjYGAArT4fAMCndRTWMTAwQKmXSISiWexGtDCcTkCWMTQ0hGPq3CTT1as48/77iKjdvmWeB68o6blVufT19VVn2ksTPvv2Uffm0VFAliHbbJC1lEIisbD+KowMNlvGVK8Jn+HhwsdrTVhX8pq1GLRu1IXWqBMn6OP99y/8Z8bjQEvL7b0uxoqB3b2WGoeDUhs5c5lWDKkUCR/dzsXn80EURbSo4fF8wkebJg5ZZjeixWC3Y3RsDK/+4hfwmc1ImEwwShLu/uADtN24gfrpaXDq6IZCwicYDMKrpYCqCTXVNW02Y1qXGp622/GDH/4QQ9qATZbmWhwWC930FYVGVwDFIz6aD60afD6KAkxMFI7MTE5SnzKOA3p7F/YzUymK5rM0V9XAhE8p0EzOK3HwZJ7BpGIkAlskgrpgEAqA8QI7m0ggQIskm5e0YGSrFe+dOwdjKgVwHCLqTXznhx/i0P/8D770yit4/L//G5wsQyiy484d91DxaF2EAQwODcGrpbsA3GhvhyiKeP3nP4d3aordcBaLVtKeSGSEz40bxXtFGQxU5VTpaA0ZC61RbyqbIesAACAASURBVL9NH7dsWXgjwnCYjamoMpjwKQVuN5nr/P7lfiVzEcVM52UVwW5PR3umGxqQLNCO3QHQgsL8PQvGOzGB2WSShA+Ayxs2pL8WUAcdto6Po252Fs5wGOYCoytyxz1UPIkEFDXVlzSZMKZrlnlJrX4zJxJ4+6OPIFdTmXU50E9pb2yk61WWAbVJZF608RUrcbO2GEKhjCE+H1qaa9++hf9MUSTjdw20mqgV2F+yFBiNFEq9eXPl5YUnJ+fkvltbWzGrirRC0R5BENDsctECwPw9CyYUDiNqtcIWjQIAzt15J/yNjbi+Zg1kgwG/duwY2sfGYEqlYEom4QgGMZ1TXeNyueDR9/2pVJJJ8ko4HEA8jmQwCDOAlNGIsbY2DHV1QRQEBFTDqTGVwjgA7+gourTIBWN+tHEykQi9152dVEk4MpIZY5GLw0EpomBw4Ybflcj0dOH1KR6nykEAuO++hf9MSars94QxByZ8SoVmcg6FVk7pdyRC1RtqpEGD53l0q6mUfP4eAOjduxe8ojB/zyJxOp1IWCzg1IoZyWiEVzOcAoir0QxrLIa4xYK6YBBBtxspnfn84MGDmUnulcj165nUi88H7N49J+Kj8Dz6H3kk/S2cLEPhOMSt1upL85UDpzNj8tWEj87grLVSECMRCHY7WltbwadSlS18JIk2doXSXKdPUzSouXlhIyqATPSIrXtVBRM+pUIQqIvzxMTKET5TU5SvzlnY5EgEFrVcfSYnspDu47N6NS2KK+V3qRA8Hg+sDQ1QfD4yXuaM+YipIXlN+LhmZ+EIhTDT0FA9fXxGRzP9ZYJBivwkEjCoaZVUnhSCKZlE0mRC3GyuvjRfOXA6C5a0Dw0NYWBgAKJuvI4gCLhv40Z4AoGML6jSCIUoLdXUlP/r+jTXQsfthMPk7WHp/aqCCZ9S4nDQbrezc/nzw7JMBkebLeuiHxoawpWjR3EglYJot2PKbIbVasWGDRvQ2dlJO0GeJ78S8/csGp7n8elDh/D+pUswplJZkRwgE/GxxOOwCwJ6Nm7E7oYGGPbtg2f9+sqO9GgoCgmeeJwesRjkSASc6mdK5hl2a5AkxM1mOBoaqiPNV26s1kxfHlXIJC5dwgcDA/joo4/mHC6KIt4YGMD9dju6duyozDl8mqjONzxZUYCTJ+nzxfh7IhGaeVaJ7wejIFWwqq5g6uqodHwlDAGcnaX8ty5kOzQ0hP7+ftSpIfDxlhaA4xCLxXD+/HnE4/HMjTcaJX8PWwAWzR07duC+Rx6BK8c0LggCmtavBwCsbWrCl7/8ZWx/4AGsq69Hl81W+aJHKy3meTL7R6NAIoFL587h+//6r0ipEYd8ER9jKoW4xVL5ab7lQitpl2VcV99fZXgYH50/DyhK3gpCyWDABwMDkNWGmxXH1FRW0YYsyxgbG8PlK1cw8c475Lm0WIB77lnYz5Mkeg9ZmqvqYBGfUmI0Upno2BhQwDtTNiYmyGOhRhi0poUACjYuHBgYQGdnJ3iOo5sYWwBuDY5D144d8Lhc8PF8tq/if/4HeOUV2JPJjCnTZqO0xOrVyx8pvB0iEfKVpFK0Ew8EMDo5iWNvvQXX7Gy60i1fxMdutWL3F76A9ZWe5lsurFbAYsHwpUs4/vHH+H8AWBIJbDt/Hj2Dg3DPzqJ//34M6czOksGAeCiE0StX0Llt2/K99lshkaCNnRqRzk3nbf/wQzQDiGzeDHuhiq9ctC71rIy96qjgVbVCcLvJUBwMLt8FlExSmkv3/2tNC6EoBRsXak0L2xoaSDAxr8WtU1cHXlHQpivb1p4HQBERjfp6MgFPTmbGOVQikkTnniwDzc2QnU6c6e+HyeGAOZGAQW3YqI/4WCwWPPzww2hLpcBX2s13JWGxQDYa8f7bb0MyGhFyOuEKhbD3nXfSh3zq7bezhI/M8zBIEsSV2IZjPoJB8vesXp2OZOvxqA1ATwsC1gwNZWYPFkP9eVU1tZ4BgKW6So/dTiH+iYnlew1+/5zqMlGtqKkPBGBJJJA0GuHP09BLjEQyQzaZv+fWsdspTZjbnVkVo8rsbDosPzYxAZnnKepTyaMqZJk8Paqp2zc1BTEWgyUahU1NpygAJF0qKx6Pg5ck8FZr4V4sjPkxGuELBhFTK+Le2bMHIx4PrnV3Y1ztkm2NxWDSNzXkOCgAnAX6eK1oZmdp3AnHpSPZGpZYLL2583o8mfE785FIFDZKMyoaFvEpBy5XxuScz3hXanw+uukaDOmnBLWDsLYgTDQ3pweT6hE04ebxMH/P7WC30408Hs9up6+2FkhMTeHYsWPpp50WC/Zt2oSOdesqdmq2nExiYnQUYioFwWqFaDCkowp2VXjHzWbUBYOYbmhIn3/R2VlgzRomfG6TMMgkDgDD3d0Y1kU5vnT0KOpnZuDxenFV9ZkBAAcgpo8+VgqTk4DNlolk6+gYHQWvKPA3NEBURwr5fL650Vc9WpNXlt6vSljEpxy4XJTKWA6Tczict3dPa2srBEFI+3vyNS4UBAGtLS3M37MU2GyZmUg6htUxAZZ4HJxuFxqKx3Hi5Elce+utipyaPTg4iH/5v/8Xr/X14cSJE/jFL3+JU6dOpQeyWtSGjnGrFUmjMX2DBgDBaMx0H2bcMvbm5oLz34bVSq+unOGlksGAd199tbKG4kYiFPGx29ORbD1amsurqw7Md1wWWpSbpferEiZ8yoHBQCbVGzfKfxPz++kizklT8TyP3t7eooNJe3t7wSeTdMNmC8DtwXHk3dEJn6tXr+LV999P/9ucM0sparfjV319kCtshtLg4CCOHj0KMRiEQZLAKQoUtVpQMhhgkCQI6o0narMhaTKljc6CIKDZ7SahzSKMt0VbdzfsBYZ1asKnY3Q03U8JIOGTDATgLTbUdKURDFJU2m5PR7I1OFlGx+gogGzhk3vcHESRGh2yisKqhP1Vy0V9faYlfLnQevcUuMi7Xa68g0kFQcCBAwfIAKiJJubvuX3q6tKzkIaGhnD8+HHIHIe4Gtmw5kSDJKMR8VAIN3XiaKUjyzL6+voA0E2Hz5k6L/M8eFmGoKYjwg4HUiZTOuLT29sLXpKY0F4CeLsdO3fvzookakyuWoWwIMCcTKJtbCz9vGQwwJhKIVxJYnt2lkQyx6Uj2RqtPh8siQRiFgsmVG+TIAhoLVZlqyj0qK8v9StnLBNM+JQLzd+hRljKgjYotVCa6le/oo/r1+PRL3wBn37oIRw6dAhHjhzJVD1Eo7TzYbvv20c1OMuSlGXA1I+tyCVqsyExPEzm9ArA6/UiqIp7Xr2B8JIERT1/ZJ6HMZWCS011hR0OpAwGOCyWjNgGmL9nKbBa0bFuHQ7cf3+WGAAAcBxG1I7O3WrXdoCEDy9JmFFT4CseWaY1VY1saZFsDX2aS/OQ9fb2Fu8NFYnQz2Nl7FULEz7lRDM556Q0SsbEBJUUF/JKqMKH274dbW1t2LB+Pdra2jKLgrbzYQvA0mC3AxYLxr3eLANmVF20HXmayiXNZtgB6gVVAejnanGKMifio6jCp0UVQm07duDXHn8cjx86RKJHaxpXIEXDWARWKyAI6GppwZEjR3Do0CFs2bIl/eUhVWR2joyko0KywQBelvHR6dNzfT7RKDUBXEmes3CYHjph193djQMHDkAQhCzhkxXJLoYo0mZxvnQYo2JhwqecuFyU6iqHyTmRoDRXsZSBFvHZvj3/1+Nx5u9ZSmw2wGZDJBDIevqm2qtHW6T1CIKAVevX07wrNUqyktHP1eJkGZyiZBmXAWC2rg4G9Rpo3rIFbWvWgDebKQ0Yj5OxmUV8bh+Oo7l80Sh4nkdrayuGdWbmm6tXI2axwKYr9waosisaCMCrPx9FETh7FjhzhqpEVwqhUGad0tHd3Y0j992H+pkZKAYDtvzu72ZHsosRiwF5ij0Y1QMTPuWE56mc/fr10u+a/P7iTRNjMeDiRfp8x478x7D+PUsLzwNuNxy6tgJAxnTZMTo6x4/R29sL3u2mv+VKuuEUwOPxwKWec5rg4VUBpMeslUw3N9P5ZbHQOal1F2dN45YGlyu91uSWeis8nz739NVdnDrSIqT5fEIhEj3j4yROP/6YhPhKqPzy+7PadOjh1XQyt3MnVm/cuLDRJ6kU/TxWxVrVMOFTbtxu6jkxO1va/2dsjERWoYv9wgW6yFetKtwdmM3nWnrq6rDK7c7yXATcbsQsFljjcTSrjS45jsPDDz9MO1RtsrnXS6mgFQzP89i6dSt9LkmIWa2IW61I6NKtWkovaTJBdjjSkTDE4+SvqK9n1TRLhd1O72UqlbeEO6usXRVIMs/DIYpwJxIkuD/8kATGmjVAezsJnjNnSPwsJ6kURc8Lbcz009gXilbMwaLcVQ1bXcqN1Uq72lKanEMhElfFdi36NFc+YaP5e9jOZ2mx28mAuXcv/VtRIIhiuqpOS3c99NBDWLduXeb7XC76u5azKvAWkGU5Pf3bIMuQeZ6axunOMZf6OwSdTkxOTdEO2+Ui4ZNMsm65S4kgkKiMxfKWcF9fswYpgwGuUAgNaoQn7HDAaTKhXVEo0jM9DbS1kYDS0mdmM/l9lpNQKBOVzkUUgdOn6fP77lv4zwyHabO3HI1mGWWDCZ/lQDM5x+Ol+fl+P+2ci5nz5vP3xGLM31MKVINzd1sbDhw4AJfVipTJhDE16tZ1/ToOHDiQLXoAWoi1HfgKJquqS5IgiCK2nTsHYzKZPsapGqCDLheisVhG+ITDrJpmqbFYSBjEYnNKvQEgZTLh+po1ADLVXQrPY9sjj4AfG6PIdHv73AicINDX5msEWEqCQRLK+Qb5vvsuRYQ6Oqhj/kJJpYA8o3sY1QUTPstBKU3OkkQh6GK+HFkGzp2jzwsJn0iEFkxW2bC0aKMrYjF0t7Xh8EMP4cHHHkPbZz8LhedRPzUF+HwYGxubW1VjtZa3HcItoK/qMsgydpw9i73vvINDunEcWsQn5HTCZrXSTdVqpehiZ2f+HTzj1mloAGKxOaXeGlp1V9fwMCxqW4GuO+6gKE9bW/6IsDbKptQp+2JMThb2gt1KmisWY8K7RmDCZzngeQoVj44uvck5EKBHsRTV0BCFia1WYOPG/Mcwf09p4HlaWH0+IBAA39qK1p4e8C4XJtWoz40f/hDHjh3DD37wAwzpeqxAEKg30wqu7kpXdckyOFnGatWQ3Tw5iSMvvQTPyEg64hNyudDY1EQRH7cb6OkBNm1i59xS43Sm1xl9qbeG1+OBzHFonJ7Gbz30UKbyyWwu/LdQGwYip0KxbMTj9H/nE8myDLz9NgBgavNmGvybbyORSzhM7xUT3lUPG1K6XNTXU0pqZmZpO4ROTdEiVyxHraW5tm7NHyZWFFo8mL+nNLS10Y65tRVwu3Hll7/E+ydOYG17O5pv3IDH68XHW7ZAFEX09/dneo/Y7bTYB4Mrts+NVtUVDgTQOTwMqy6d6wyHcfcHH6QrvIIOB/yBAFoMBhLhCyk1Ziweu52u82QSMJnQ3d2Nzs5OqvKKRCDY7eAuXABOnwb/5pvAb/7mwn6uw0ERyI0b868jpSQYpKh0vjVqcBCYnkbSbMZPh4chqyZsQRDQ29tbuKQ9GgXWrmXCuwYoacRnenoaTz75JFwuF9xuN373d38X4TxN2vQ8+OCD4Dgu6/H7v//7pXyZy4PFQp6NpSxRVpT0lOKiLMTfY7Mxf0+pWL2aohv19ZAVBW+ePAkOmbL2trGxLE/MwMAA7VY1c+ly7bIXAM/zOHjwIEzxOD791lvp5xOqEG+Yns5KdUXicVbBVWp0BmcNnuezmpZymgH47NnF/dxweHm6is/O0nqXp5Q98N//DQAYbW+HrPu6tpHIiqJqyDJdW2yzVxOUdMV58sknceHCBfT39+PYsWN466238NWvfnXe73v66adx8+bN9OOv//qvS/kyl4+6OmoymGdUwS0RicxvagbmFz5apQTz95Qcr9eLWVGEAiBQX4+g0wmjJGXNTxJFET5NINvttMteCT1UCtDT04MHcs6tNx58EBGbDbyiwJRKQQEQsdths9sL9mFhLBEmE21iiqVI16+nj/lEQbGfm0qV3+ejKNSVPs8GT5ZlyKrgHilgak5vJPTMztKax4RPTVAy4TM4OIi+vj7827/9G+69917s27cP//iP/4gf/vCHGJun/b7dbkdra2v64apWs5lmcr5dw2okAoyM0G4tHC7e9dbvp4oyjgPuvDP/MczfUzZCoVB6hhA4Lh316cyZjp3uwbKcu+wFMjg4iKs5g1VTRiMmV61K/1sUBFicTjSvXs2ETzloaCheRbp2LX28cWNxI3UslvIb7iMRWjfzFHBMXLiAxokJKABGOzryfnvWRgKg9yUcBtatY40za4SSCZ9Tp07B7Xbj7rvvTj+3f/9+8DyPd999t+j3fv/730dTUxO2bt2K5557DpEiJZPxeBzBYDDrUTFwHF28w8Ppqd0LRpIorXX+PHDyJPWsEEUqPS0mWHSDSfOa+DSzNdv5lAWn0wmZ56H9xTTh4/F6s4zv6R4sWop0OatpijA4OIijR49CyalYlAyGLOETdLmgJJMYvXGj/P6QWkQQaM0oFF1etSpzTJ7RKQVxOMinWM6y9mAw024jB07t1jzR3IxYkZR/eiOhKCTcuroA9dpjVD8lEz4+nw/Nzc1ZzxmNRjQ0NGSr7Ry+/OUv48UXX8Trr7+O5557Dv/xH/+B3yxitnv++edRV1eXfnQUUPkrFrebPBuTkws7XovunDpFj2vX6Gbo8VDjt/kab7H+PSsKj8cDweWi6eWKgpurVyNpNEKIRNDo9wPIREDTmM3lmfe2UBIJQJYhyzL6+voAALactEqu8Ak5nUjGYnj9xAkMXrpU1pdbk9TVkane58ufJuW4jLlcN75iXpajrD0QyFSV5eBS1zfvPCImvZGYmKBo2MaNzGtWQyz6L/1nf/Znc8zHuY+L2gyoW+CrX/0qHn30UWzbtg1PPvkkvve97+EnP/kJrl69mvf45557DrOzs+nH6HK3UV8sRiOJFa+3sG9DkuhGp4/uhMM052jNGtp1LTQt9eGH9JH5e1YEPM/j4Ucfhcxx4GUZktGIG+3tADJdnCVJwog+9SUI1E23VA0wF4Oi0Dnl9WY1L7TlRAAkgwFTuo7MIacTvNrZue+Xv5y/1Jhxe9jtwM6dNHxTm7mVM/5EUYWP/4MPFlb+DWQESLmEuCzTJjFfn7JYDFa1P1kx4SMIAm0kwmE6f++4g613NcaiY8x/8id/gt/5nd8peszatWvR2tqKCXXukEYqlcL09HT27nUe7r33XgDAlStX5nazBWCxWGCp9LxsQwPtPKans9v1RyJ0kY+O0tcUhSJEDQ235r/RDyYtJHyiUQr7Mn9P2di0eTNsDzyAt371K0QkCSOdnegaGYHH68XZu+5CPB6fW9Z+8ybtsnOiqmUnFiOxHI0ipEvX2vMIn6jdjrAgwCGKCLpc4GUZcbMZwWAQXq8XXercKEaJsFrpJv/ee8DVq3SNq328hoaGEJiZwV0AZs6cwfGGhnT5d27pe2tra/bAT6eT1i+1XL6khEIkWPK1ADl9GlwshlRDA/xFui/39vaCl2XyO27Zwiax1yCLFj6rVq3CKl3IuhB79+7FzMwMTp8+jV27dgEAXnvtNciynBYzC+FDNUKxutAgzWrAbKadzPXrdEEHAnRju3mTLnK7nW5wt7uoXLhAu7xCg0mZv2d5MBiwpqsLRnW3qpkymycmYItEEFV3owMDA+js7ARvMNDfaiUIH81o7fHAqXkqZDlvqgsAzt15JzZcvozra9bAlEggqQ4vDa1gs3ZV0dREYufSJRKtsoyhkRH09/ejQ42iuGdmAGTKvy0WC+K66KLdbsenPvWpTD8cQSDhU0iQLCXBIKVW8212T54EABgffBAHHnkEAwMDWdPos/r4TExQHy3N1M2oKUrmKuzp6cHBgwfx9NNP44UXXkAymcQzzzyD3/iN30BbWxsA4MaNG3j44Yfxve99D/fccw+uXr2Kl156CZ/5zGfQ2NiIc+fO4Y//+I9x//33485CFUjVQkMDCR1RpJ2INiDU41m66MuZM/Sx0GBS1r9neTAaMT41hZgoAhYLIoKAyaYmrJqaQsfoKC5t2gQgU43S2tqKiWAQ4sAADAYDPF1d2TvwUiNJwNgYeUZmZ+mcTaXg6e6Gy+VCxO+HJScNpwmfj7Ztw0fbtgEATIkEUqqx2cnOufLR1UVidWoKcjiMAdUQPON2AwDqZmfByXK62jCe87eMRCLZEUijkVJn0Wjphc/0dP4NoKKkhQ/uuy9vk8asSFU0CmzezIaR1iglLaf4/ve/j2eeeQYPP/wweJ7HF7/4RfzDP/xD+uvJZBKffPJJumrLbDbj1Vdfxbe+9S2IooiOjg588YtfxJ//+Z+X8mWuDOx22s2EQksT3cnHq6/SxzzzegDQDUwQWL673BgMiMRi6Y7GAHkUVk1NweP1poUPAIyMjOD1119HbHYWllgMoxcvwtrcjIMHD6Knp6c8r3d2Frh8mXbe16+nq4W05oX/33e/W1D46OHU510uFzysoqZ8GI3k9zlzBpNnz6ajImGHAymDAUZJgjMUQnCeyO9bb71FEUieJ2NwqSu7kknyEuVbn65epY2jxQLs3g0g06RxDloBR6lFGmPFUlLh09DQgJdeeqng17u6uqDoFvuOjg68+eabpXxJK5tFeJ8WzbVrtDgYjcCDD+Y/Jhqlyg7m7ykvHAeb202+A5WRzk7sOnMGa65fBy9J6Q6058+fpwOMRhhTKVjUdg5Hjx7F4cOHyyN+wuFMh/CZmfQQTIAivYbPfAbmn/4061tyhQ8vSZB4HpLRiEMHD5Y3YsUgmpsRDQYpWsJxUHgeM243mvx+1AcC8wqfeDyOsbExrFmzhjZqpa7sCgZpc5bPk6NFe3bvLt7HDKDNZX09i2zXMGy1qRX6++nj3r35pw9rArRam0WucFp7euDSRfmmmpoQsdlgTibRqrZ/4HIEqWwwZFVP9fX1lac6KhCg82Vqim54ZnNWf5iNHg86c7xHDzzySNZgTF6WYXW58LknnihfpIqRjdsNa0MDjDpTekCNgmg+n/m4efMmfWKxkDDJqRRbUkIh+vn5+j4tZhp7NEoeR7bBq1lY57BaQFGAX/6SPj9wIP8xzN+zrPB1dbhrxw78/MIFekLt4nzHJ5+gc2QEY+3tWdFRAEiYzbBHIuBTKchGY3mqo1Ip8qCtWkU3kMZG+phK0cNoBEQRnGZufuop4POfx7q2NnSvW5f2XDhSKbS0toKvdu/eSkYQ0LxxI9wnT0IrRtd8PvWLnQdntZLwiUZLN918YiK/qXnm/2fvzOObqNM//pmkuZqjF6UHvdJSaOUWECguiIItLgorC4LuKivrirLrfaE/xXNxFXXR9dpVwQM82PVAVBRKAaWAUC1yVgotLb2A0qZN2jRNZn5/fDNpkiZpC03bpM/79cqr6eQ7k+90pjPPPMfnqWdSH0DHho/ZzAx1CnP1a8jj0x84doyJHsrlwJQpnseYTMzoofye3kGjQWJaGmZcdpnDMyJqkaSUl2P4sGHtVmmVySBvbXXJp/F7dZTRyHI51Gr21CyTtSW3ip6DxsY2D9DQoSwJGq6NMeOioiDRaEg0rjfhOEji4zHenmwO+Pb4hLS2uqiJA07VtqKiuK9+YBdCczMzcDzp9+TnAzwPYfBgVPI8jhUXe9chEsNc5Nnu15DHpz8ghrkmT/b+NGY2U35Pb6JWA0ol9CoVkhcuRHV1NZpqayHk5UFrMCBNJsNBt1UEiQQcz0PR0oJm+w3B79VRjY3t9VqkUhaCEEXxmpraboDezjeLhbyLfYHwcCSmpeHKAQOwc98+h+ETIYYz7deDuMpK5GzahPLERGyxe40VCkVb8rBdedxvhk9jIzuvPHlq7GGuQ5GRyN+40bHYpXxdpKmJaRnRda5fQ49bQQzP86isqIDl66/Z79Onex4oCG3l80TvEBLCLurNzQ7PyOARI8DZe91FFxW55MiItMrlUNsVaP1eHSXm9bjnWISEMIOntRV8UxOqy8vRaldw5lUq1gKhosJ1HZ4n72JfQKsFwsKQEhWFhQsX4jcLFoAPCYHMakW23RMUVl+P3371FWRWK1JLShx5ZVOmTHFNSpdImEfQH4geKHcPodUKm70cv9hNm0zUISoRO86bzcwzRWGufg8ZPkFKSUkJPvzwQ+xeswbymhq0hoTgk6qqtouAM83NlN/TF4iMbN8Z256zIPnhB2R5kCFolcmgaGmBzGJBjr+ro86cYeXrkZGuy+0en18PH8Ybq1Yhb9Mm2OyGz1fbt+PUyZOePQGBrrgeDEgkLGTZ1MQM7qQkSOxqzslGI7InTsTM776DxCnENbSiok3DxxmFos1A6U4EgeX3eGg6yhcWQmoyoVmpdOkF50x+fj4Le1GYi7BDhk8QUlJSgs2bN8NkMiHN3uOsLCkJDRaL6xOQSFMTM3p8dDMmegC1mt2InHMTxGTNwkLoBwzAjBkzXDw/1pAQ6ORyzMvO9m91lNXK5BAkEo/lwuXl5fjy00/RXFcHjucha20FADQ1N2PXrl0oc27Ey/Ms1ECGT98gIqItTwtgwn4A8MsvSH7tNejq62GNjkbdrFkAgPEmU3ujB2DnhcnU/T3kTCZmtHgImzZ9+y0ApnYueDH6ReFPNDWxfDMKc/V7KMcnyOB53qHECkFA6okTAIATTtLsjtYH4oXCbGbS7XRB6F00GnbzMJvbwkAJCSz3qqQE2LUL+iuvRGJiIo4cOQKDwYCwsDBkhoUhxN0L4w2nvI0uceoUE4izN1AV4XkelZWV+HHfPkgiIyERBEhtNkjtxpuyuRktSiW+//VXLExIgERMepbL2YvofcLCmBdE9IiIhs8nnzhCkiGvvIIIuRzYuBFcQQEb6+4hVirZ6HEumwAAIABJREFU8ubm7jVqGxrY/4SH9izyPXsAMN0rXzSJelMU5iJAhk/QUV1d7VBiHXj6NLRGIywymUu3YvEJKD4+vi2/h9y/vY9Sybw+JpNr/stvfsMMn2++QUl6erseREclEoyvr0dKZqZnjROR6mrmdXGq4ukUJhPz9uh0LtsvKSlxzEXb0gIJz0NusTh0YXiOg0WhgMBxqOY4VJnNGNTYyPZTLiePT19BKmWigEVFroYPzzMP39//DgwezJalpjIx1J07gZwc1+04t66wl8V3C+fOea7+Ky+HvLISPMfhVEKCz01oeJ5ECwkHFOoKMkxOgnZimOtkcjJsbjdExzjK7+k7cBxrIukkBggAuOYaAIDwww/4fsMGF6MHABosFuzcsgVFP//se/stLcz4seffdJrSUqbK63Qzcw6ninMXlaTFzuxGtZr14rKrAn9ZUIDyoqK2JpPUJ6nvIHoMbTbmYbRfD/g770RlaqqjRFwQ5TC2bfO+re5sXWGzMWPdU3WgXa35dEKCo9mtJ9RqNQZqNEwZn+QTCJDHJ+hQi54CQYDenstzwkMHYsc4yu/pW+h0rjk+AJCSAiEjA9zRo0gpLcVRt1weW0gIpDYbtn39NdLHjvWe4Gy1sqfnM2c67+E7e5YZPtHRjhCZSzjVDi+RQG6xQGq1QmM3hhp1OvD2knsBQK1EgryCAlxhsWDQlVd27vuJniE8nBkXRiMLfb30Ek4fPIjNggCTU4l4YksLZgJMO8diaR+ulMm6N8G5sZF5HAcMaP+ZvYxdNm2az01MHjcOEqWyfVI+0W8h8zfIiI2NhVqtRmx1NTQmE1rkcpQnJrqMUavViBX7gjU3u9zUiF5GrWY3E7fqrsZLLgEAR86WJ8znzqGsrMz7tltamPFz6lRbIqsvbDYW4rLZXEJvzuFUEV4igdRqhby1FRq7iGKDVgteKoUAQOA4WOVyGHQ6FP7yCytzJ/oOcjnLobEfu5KwMHze1OTiQQaAco0GRrWaPTDt3dt+O6KCc3e1TmloaK8bBTBj6KefAABRs2e3S/oH2HVuxowZSImKastjIgiQxyfokEgkyMrKclQ7lKakOBpcimRlZTGvAPXn6nvYhQzR3OzyNH3u4ouhe+89xFdWQmE2o8WtssomlULZ3OxbuVkUDayvZ20nPDV7dKaykr3cOlw73wyHFBVhcHExdkyZAqXZjGaVCjr7HBq1Wtbt22p1GNYmjQa1DQ2oLC9Hgr1smugjREYCxcUePXoOOA4nk5Mx7PBhCNu2gZs82fVz5wRnZ0OkrIwZVh01EHXn7FnPSfB79jDjPSkJSE6GHkBycrKjJYo6NBSxsbHsOldWBqSnU5iLcEBnQhCiT0rCULtgnHOYS3wCcpSiUn5P3yMkhN2A3HRvziqVOBsVBYkgIKW0tN1q1pAQKFpaoPZ1Y2lpYbk1HMcqtDxhtbL2JgcPAkePMk+PW36YGCbleB4Td+9GQkUFYqurUR8eDrNKhTB7l+5GrRa8/WYj2A2fFqUSRo0Ghq7eAAn/o1YDMhmqy8vbefScKbX3guPz8tp7duRydp45n7+1teycKi7u2nwsFhaa9dSmwkNTUueWKPHx8czoaWlhc6IwF+EEeXyCkZ9/RojBAEGnw6i//AWDLRbXJyARyu/pm0REsLwaOyUlJfjpp5/Ap6ZiQG0tUk+cQFFGhssq1pAQKMzmtuagnmhpYRU84eEsydlTSfLp00BBAQstqFSsCakbzc3N4DgO8ZWVUNo1W0KbmpiOiiBAZ0+eNmq1ECQS2CQSOOTvOA5nYmKgdiuLJ/oAoaGASoXm06d9DquKi4NFJoO8vp4ZyM6NZkUdqrNn2+QZjh9n51tXk9kbGlhIy02RGTzPqsoAVvHoi8ZGCnMR7SDDJxixd2LnLr8c8b5aGDQ3k35PX8RJyJAHHGGHE6mpuGTvXgyqqGgX7rJJpZDabDCfO+d5m2IvLYmEbf/sWdZGQqtlORQtLayarLGRnQ9u4S2RkpIS5ObmAmirGgQAtd1DoDaZEGKzwSaRoEmlgsBxzOvjdI75vbUGcX7I5YBGA3UHISFeKkVZUhIGHz8ObN/uavgAzGAuKmIhJp2OGTAtLcyI8ZQQ7Q2DgRk5bqF6HD7c5gkaPdr3NkwmCnMR7aCzIdiwWoGtW9l7ezNBj4hCdvQk1PcQn5Sbm10SiRvCwryHu+yGRVhDAzNy3LHZ2Eu8ieh07Aaydy9QWMjCWqdOsRuFB6E4wLWai+N5lzmIho9zmAscxwwfqdQR6gLg/9YaxPkTGYmBOp3HvnDOVA8dyt54KmuPjmaGs0IB1NUxYyc9nVWMdUVK4cwZz95oexk7Jk707UUSZRNItJBwg64+wca+fSx5NSICGDvW+7jmZnZzpfyevodSyYyf5uZ2VTUl9vwsvYeeaxKNBrFSqWcdFbFzupivExEBJCcDiYnslZDAdE4GDPCagOpshA2qqHCEuQA4tHtEw8cQFuYwrsU8H5VKhfnz5/u3tQZxYWg0kHCcx75wziRcdx07l06edAnLOpBI2Dk8cCALVYWEMO+N/fzokKYmNtZTI1sxv6ejMFdDAwtzUfNlwg0yfIINe5gLV1zhW8WX8nv6LhzHcmvM5ja9JTtisnrCqVNQuAkdGmUyVJSUeO6VJBo+7mGDLuBJHPOMXV/F3eNjCAuD6OOxSSTgBAHXXnstGT19Hbucgn7QIFxxxRVQuhnBjhLxYcMAu8SCTzFDZ1QqllTvKw9NpKGBjXM3fE6fZmE0jgM6MM7Q1MSMLvIuEm7QGRFMtLYCeXnsva8wF8AuKgMHUn5PX8UuZBgbG+ty8zGEh6PW3hMr+eRJl1VsPI8ffvgBxw4ebL89H4aP2G9LVOflvWiwiEaY1Gp1hLkO2NtfhDY1AYLg6vEBS7oWE5wpvBUAhIYCSiVOHj2K3bt3w+xkXCuVSkycOLGtKlRUcd6+vXPb1miAmhrgyJGOxxoM7Nrkfn0Sk5qHD/ddqWWxsDAYVXMRHqArUTCxZw9LTo2K8p30J3bHpjBX38X+5C2xWjHZTStF9Pp4FDPkOHy/ZYur8dLaygxdsfeSEyUlJfjwww+xceNG5G3dio0bN+LDDz9EiYdQmiiOqS8pgcJiQaNG45iLlOehNJtdDB8BQLNSiZrYWFjlcp8l0kQfISQEJ+rq8MOWLe2Ol9lsRm5ubtu5MXUq+3ngAEuW7wiVip3XYtKyNywW5tnx5I32UMbuEQpzET4gwyeYsIsWYvp03yENs5nye/o6ajW78Dc3Iy0tDclO3afFPJ9BFRWQu4W1eIkELWfPtik4t7aCLyxE5Z49KD150sWj067flh2TyYTNmze3M35EccyMo0cBAEVDh4KXStFkv0FpjEZHKbsY6hKTmwFAS+dbn4fneWwrLITEU4K8nfz8fHYORUczzwvQea+PVsuuP+55aGYzK3k/eJAZN2fOtL8+mc3Ajz+y9x3l9zQ1sQRr8jISHqBy9mChsbGtmmvmTN9jm5pYKMVT4iDRNwgJYQnIlZXgtVpUV1c7PqqPiMC5iAhE1tUh+eRJHHNSQOYlEuaNaWwEeB7Hv/kGhz/9FPVWK5QtLag7fBhqtRoTJ07E7t27fU4hPz8fycnJLiEqvVQKVFVBADN8AKApNBShzc2IqamBRBBglUphUquhbWhg2j6gEvZAoaysDOfMZvjqdW4ymVBdXY34+HjgssuYsbJ9OzB3bsdfoFC0lbaLjUfPngX272+TUtBqWbK9+8NbQQEzfmJiWJWYNyjMRXQAmcPBAM8Djz/OLih6PTBsmO/xYn8uom8TEQFYLKisrESLm2fHW7jLJpVCarVCq1SieMsW/PjhhzgjkUBpNkNi9/SYTCbk5uZ2GHoSb3AubNjAfmZlYdqCBZh2+eVQ2z1Q8ZWVANrye8Bx4O05GlTCHhg0NjbCKpOxnCwfXh9HorsY7tq7l5WrdwTHsWo/Z49PZSVbd9AgZvCEhXn2WItl7JMn+85NpDAX0QF0JQoG3nqLPXHJZMBjj/m+KIixddLv6ftoNIBEgip7+xFnnKu7ZE4NTW1SKUKlUiTYbDiwfj1aFApYZTI0hIW1GSRdwNTU1Jb8fPQobF98AQDg5sxBfHw8QqRSnLIbZXH2NhgNOh04QYDAcdCGhVEJewCh1WphDQkBbxfE9Iaj2jAlhfXLam0Fdu3q3JfI5UzfB2APYTU1zEjxZRgLQufL2Kmai+gAOjMCnW3bgH//m71/6CHAXmXjFerPFTjYG5ZK3Dq1AyzcVRceDqmbkKBNKgWsVpz+8UcYzWZYFAoALASWfPIkQruYYNxgMDiSn0+89x6kdXVoDg1FSUKCI0fIYFfiFXV96sPDwQkCElNSsGTpUjJ6AoikpCSow8OZx8c9AVkQENLaCrVajdjYWLaM41i4C+h8WbtSybTGbDamwGw0toW9vCG2vVAogPHjvY8TO7lTmIvwARk+gczx48zDAwDz5wOzZ3e8TnMz8/aQfk/fxy5kGBce7vFjj+EujgNvseB0WRmanXK4UkpLccXWrZgslgN3AoVCgYKCAkdIbLi9TP7XwYOxeds27NixAwBgclP5FT0+pWVlOHrsWKe/j+h9JBIJcq66CraQkHaGj9pkgqaxEVmTJrmGLcVw186dzPDoCHvSPkwmFuaSyzuW1RC9PePH++7wTmEuohOQ4ROoNDQA993H3LpjxwL33NO59Si/J3DgOGDAAMSGhUFh99w44y3cZQgLQ6tdWFBEY8+/iK+sZGGDLhJfUYFBlZWwSSQ4ZM8hE/OOmtyS5A1hYeymyXHYtHmzV10gom+SmZmJaVddBbWTgSGx2aBRKjHxiiugT3BLfR4+nEloGI2o/e67DvWgoFAwA6mmhiU2d8ZIEfN7OipjF5uaXoBQJxH8UFVXIGKzAQ8/DJSXs3/yZ5/1rdLsvB7Hse7cRGCg1UICYMqUKdi8ebPLR3UREagPC0O4wYDkkydRLFa6cBzi4uLw66+/Orw1CruRorBYEFFXh7rISJfqLudEZ7VajYyMDBQUFLAFgoBx+/YBAI5mZMDoFiY9Ex0Nq1SKEHtOiGj4WKVSNLa0oKysDCkpKd38hyH8SWpmJlKkUlRLpTA1NUHX0IDoYcMgMRpZc1tRxBAApFI0jB4NXW4uqj/+GDvtxolSqUR6ejqSk5MRGxvbPrndYHAIqfI8z1qiNDVBHRrqOr6+nmkFAb4Nn9ZWdh2kMBfRAWT4BCL/+hewezd7clq5svNN+MQSUkpsDhzEFgKRkZgxYwZ27NjRVuHFcTiRmoqLf/4ZqSdOOAwftVqN+Ph4ZGVlOYwlhVNVWExNDeoiI5GVlQW9Xg+9Xt/upnPcKXyWWF6O2JoaWKVS/DxmTLspmlUqbJ86FdPy8lAZH49mlQpqkwlGtRrgOFZaTwQWSiUkACtZN5tZMvLgwayZ7enTLkNLSkpwVCbDTADJJ09ip73qymw248CBAzhw4ADUarXjfAPAwlv19YBajZKSEuTn57czvh3j8/NZUcaQIayfnDcaGti1jcJcRAdQqCvQ2LQJeP999n75ckDsktwZTCbmkrYnoxIBgEbDciKamqDX6/HHP/4RqfYQF+Aa7uLsoYWsrCxIJBLo9XrMmDEDarUaSqfWAwlnz2LGjBmOm5BEIkF8fDzSBw9GfHw8JBJJW9WOIGD83r0AgEPDhqHJQ9dutdGIk8nJeOfmm/H1b38LcBykNhta7KESEi4MQJy7np89y0rNo6PZw5aT54bneeTn56MyPh6tISHQmEwY4EHFuZ0oploNnD2LknPnOhbR7Kxas8nE5klhLqIDyPDpCo8+Cvz003nlSHQLR48CTz3F3t90E3DllV1b32Jh3beJwEEqZR49u+EikUgwffp0RwPJc5GRaJHLEWKzYVBzs4tBAwB6vR4LFy7EIKenYH1jo8sYT726nNtTDKithUUmw/5Ro1ymJpfLwfE85BYLtI2NDoVmABAA2EJCSLgwUBENn6Ym9j4lxZFz5lwYUV1dDZPJBFtICMoTEwHApcrQHYfqs0YDPikJ+Xaj2hu7vv8eglgmT2EuopugUFdn+fFH4JVX2Pv33gP++EcgO9v1ycifnDvHkplbWlhX4ttv79r6YpsKCnMFHhERgNvNJC0tzRGisu7eDcWBA8hJSIDEOffCjkQicZSaAwB36hRQWwtERfkMM0y85BJErFkDADg4fDjMbpWAU6dOxZmyMvxaUAC5czWPIIADa1A6i4QLAxOZjBk6Z84wlWQxnK7RtIkQclybkCGA0pQUpJaUIKW0FPu8lJw7qz5X19Z2KKKpPXECnNHI8hJ9CbM2NlKYi+g0dEXqLPHxwJIlzHg4fpwpJV9zDfDuu+yfzp9YrUyjp7qaiYU980zX3bkmE9Pu6Ugvg+h72IUM3Rs7iiEqtf0mIzl82Ps27D20HOfN/v0d9uqqWL0akXV1aJHL8cvIkY7P1Wq1w7N0yfDhmHzllZA5VwDxPBRaLa6ZN480fAIVmYx5UNRqwKlPHNTqtrYTcBIyBFCWlASe4xBZVwedvVmtJ0RjyeTer8sDSWLPucmTfV/zTCZ2jaYwF9EJyOPTWRISWPXU1Kks5vzJJ+xp6JVXgLffBubMARYuZFVW3c0LL7AQm1rN3p9PzkRTE3NX09N34GEXMkRjo+cnWrFR5KFD3rchGj6jRgE//QShsBD5dqVlT3A8j1H2Xl77R41yCCECwMSJE9tCZWYz9BkZSNZqUS2TwdTUBA2AmPBwSNxCY0QAIZOxcy4uztVLHBrKQl12D7IYEjWZTLAoFKiMj0dCRQXGFhSgOjYWAsehYtAgNDptQzSW1J3oFZh88iR740utubWVGTwU5iI6Cd0Fu4pGA9x4I+tZtHw5kJrKjIp165jx88gjLBenu/j8c2D9evb+ySddy0g7i11ThcrYAxSVit1wTp925Pq4IBo+JSUu/ZIcuTu//gpB9ErabyCt+/Z5DDOE2ENWQ379FWENDWhWKnFQ3L6d3bt3t2m08DwQEuKSIB0XGQmJSkVJ9IGMQsE8KO4yBBIJC3s1N9t/lSArK8vx8Um7dyi9uBi/+eEHTPn+e/z2q68ciffOqs+i0eQNncGAcIMBglQKTJzofa5imIuub0QnIY/P+SKXA1dfDcyaxXrUfPABywP69lv2GjcO+MMfOm6o54sDB4B//IO9v/XWNoXUrtLUxG6cFP8OXNRqVrFSX9++pDcykt2kKiuBw4eBSy5xyd2Rt7Qg3Z6Qf0qvRwIA2fHjkF56KWx2/Sep1YpJu3bhoiNHXDZdOHo0rG55bI48jYED2ZO2TueS9wGLBRg40G9/CqIHkEgAb2HK8HDASe5ArB7Mz8/H0YwMhBkMUDU3Q8LzGFRRAV1jI+IrK1GRkOCoOBRx0YtyQwxzcRdf7DtEbzKxcByFuYhOQobPhcJxLNk4K4t5etauBb77Dti3j71SU5kBlJPTtSfgM2eA++9nbtxp04DFi89/jkYjc1l7UP8lAoSRI4GqKqCggAlRul/khw1jhs/BgyiJjnYROxQ1fFpDQvD1oUO4OTwcIfX1iD5zBg06HYYdOoTMI0dcEqABoDYyEocvusjjdExNTeypPzSU3QhDQlgumkzGzlkfT/JEgKNWt+Wc2Y0YvV4PnueRm5uL/MmTHUMn//ADhh0+jKFFRYi66ipHiNRTUr3rV6gxRvRe+qrmslrZHKKiumffiH6B30JdzzzzDLKyshAaGorwTrogBUHAY489hri4OKhUKkyfPh3HAqnXT0YGKzf/4gtm7KjV7MnoySeZd2j1aqZW2hEtLczoOXuWGU6PP35huTlUxh74hIQwT09EhOdzyF7xIhw8iPz8fJePRMOnRaEAOA6V9nNh6g8/4Pp16zCmsBDKlhY0aLUouPhirP/97/HujTfif3PnOjxC7qhDQ5knUadj57lo+ADM80O94IIXMefMKezK8zx223PCnCkePBgAMKiiAseLi8HzvNekepGxY8di4dVXQyV6H30ZPmJvLgpzEV3Ab4aPxWLBvHnzcNttt3V6neeeew4vv/wy3njjDezZswdqtRrZ2dkwe8pr6MvExgJ33QV89RVw553M7V9bC7z6KguNrVzJZN89IQgsifrgQXZTefHFC3t6tliYp4nCXIGPTAYkJnquIrTn4fC//AKTU54PAETU1QGwGz4AKuyGT1hdHSSCgMq4OHx75ZX4+LrrUDBuHOoiI5n4oJcQrSNPw2JhT9piBZDN1uYFIO9i8KJUsmuSPc8HaNPzcac2KgoWmQwqsxna48dRWVnpYpgrzGb8duNGDBdbUgA4evQoSxuwWlkVq3NVmTuiN5vCXEQX8Fuo64knngAArLHrgHSEIAj45z//if/7v//DbHuX8ffeew8xMTH4/PPPsWDBAn9N1X9oNEzvZ8ECYPNmlgf066/ARx+xqrDLLwcWLWKeIpGPPwa+/JLdPP7+d1ZNdiEYjWwepJ4bHAwcyG464nEVyciAoFBAWl+PyHPncC4qChKbDVO3b0d6cTGANsPnWHo6LqqtRdiQIaiYMgXb3G5aCoWirS2GB7KysiARjSKNhhk9osentbWtIogITjiO5ZXV1joWeStNt8pkKEtKwuDjxzGoogJVVVUu51pKaSkGVVZiUGUlmlUqHB88GCaTCebNmxEKdBzmkkopzEV0mT6T41NSUoLq6mpMnz7dsSwsLAwTJkzArl27vBo+LS0tLhfpBrFsty8hkwFXXQXMnMmeZD74gCVEb9kCbN0KzJ8P3HYbcOQI8NJLbJ077vBdydBZmpqYl4DK2IMDjYYlMp844WL4lFRVQTZoEBJOnEDyyZMwqdWYsXkz4p1K1gW7sWJWqfDxtGkYO3YsdGFhmGpve9JsNjt6dZ08edJ3/6Tm5rYnf45j7+vrmRdIoSCPT7ATHu6iK+WrNL1i0CCH4VPu9lnkuXOO91O3b0d9eDhqo6IgFxWdfZWxi/IO5M0mukifMXyqq6sBADExMS7LY2JiHJ95YsWKFQ7vUp+H44AJE9jr2DHgnXeYJ+ijj4C8PBYzt9mYgXTDDRf+fTzPQmedbWJKBAZxcUzJ2R7GFHMmhiYkIOHECQwuLkb6sWMINxhgkckcqspqt1CEczWNaNTEx8cDYMmqycnJ3jtmNze3ldkD7L3Yo0mr7TlFc6J30Ona8nzc9HzcqbSfUwPPnIEtPBw/O30WZfcaNSuVUJnNyP72W/xw6aUIaWgAr1JBMno0AHju3m40ssozL3loBOGNLrkBHnroIXAc5/N1tDs1bDrBsmXLYDAYHK/ycvdnij5KejqwYgXrtD5oEFBTw5JWMzOZFpD96dxTH6VOI5axU5uK4CIykjWMrKtzNIkEmHKuACCivh7hBgMaNRp8MXs2NmVnwyKTYa+XNgKAhyaS8Ny81EFzMwsxiCEvlaot1EXq4MGPWs2Os93QcdfzcaZRp0ODVgsJzyOupqZNu0cQHIbPlunTUR8WBo3JhOlbtgAASuLiUHLqFEpKSvDhhx9i48aNyNu6FRs3bsRHH3yA8ooKCnMR50WXTOV7770XixYt8jnGuXN0VxBFrWpqahDnpH5cU1OD0Xar3xMKhQKKQHarT5zI8npWr2b5Pw8+6MiP8NVHSd8ZIUOTqV1TQSIIkEhY7ldVFaorKx3nR3NoKGpiYhBbU4MzAwZgU04OmkNDURcZiTWLFkFpNkNnMKDBR2ggPz8fycnJHffX4nnXvDG5nHkXW1spn6w/wHEs3+zIEYfx4azn437N4saNA/LyICkoQNY112Dz5s1Qm0xQWCzgOQ41MTH4Njsbcz7/HAqLBQAz5Mt27PCYb2atq0Pu3r2YMGUKMqlilegiXTJ8oqOjER0d7ZeJ6PV6xMbGIjc312HoNDQ0YM+ePV2qDAtIlEqW4+OEGL5wR3wyd+/C7RGzGXALHRJBQnQ0EBaG5uPHXRZvnzoVCadOoWjoUFfhQY6D1GZjCrqi0KAHnJtI+kQQXPN4xO/iOMrv6S+IBrTT+eQ1RBoVxcL5e/dCf+edmDFjBkrefRcAUB8eDl4qhSE8HFsvvxw5mzaBl0hQnpjoNclebrEw437LFgwdNowa4RJdwm/B0bKyMpw7dw5lZWWw2WwoLCwEAAwePBgauys8IyMDK1aswO9+9ztwHIe77roLTz/9NNLT06HX6/Hoo48iPj4ec+bM8dc0+yTO4QtvdPhk3trKnsIpzBWcKBRAYiI0v/7qstgQHg6DF00TCc/DJpVCwvPgfZT/dtg8UhRQ9Gb4UEVX/0CnY95kUcjSjhgidWHcOPazqAg4fRp6vR5a+zq1TuGq8qQkbJw1CwLHwezFU83xPASOQ3NoKJobGlBWVoYU99YaBOEDvxk+jz32GN61W/QAMGbMGABAXl4eLrvsMgBAUVERDE5ibA888ABMJhP+8pe/oL6+Hpdeeik2bdoEZT+7kHrTxHCmwydzk4nF4MnwCV5iYhCdlISwgwdhsCcw+4ITBLTKZJDabD4Nnw6bRzY0sBues+ETHs6Srk0mMnz6CyoVC2s2NroYPh4ZMAAYMwb4+Wfg66+BRYugtmuZ1brl6VR14G1UtLSgRaGA2X6eNXrStSIIH/jNP7hmzRoIgtDuJRo9ANPucc4Z4jgOTz75JKqrq2E2m7FlyxYMGTLEX1Pss3T4xN2ZcUYji8GTsFfwotNBEh+PLC9tJUTEHDgBgC0kBFKbzetY5yaSHjEa2RN+RobrzU4mAy6+mL060XWbCALEPJ9OXq8wcyb7mZcHAFDaC1HcDZ+OkFssaNRoWPNSAOecSuIJojNQHWAfpMMn7o7GCQKVsfcX4uORmJCAGZGRyP/xR4+J8GLOheX4cZyTy3Fk506vm3NvIukCzzPRuhEjPAtrymTUOqC/odO169vllSlTmCjroUPAqVPg7IbPuchIr6u4i2k6h7lEtm3bhoEDByLTW1NVgnB4XfM7AAAgAElEQVSDDJ8+iC9NDBGfT+aixgoJewU/UVFAZCT0cjmSFy70qrsTHx8P2GxISUxEtM2GHSUlXa8WrK9nxnRSktfkaKKfodWya01TU8cyBgMGsJ5yhw4Ba9awh7OoKFw6e7bX6lUALkUecovFJcwlsmnTJgwdOpSSnIlOQYZPH0TUxPBU1SXi88ncaGQ3KAo5BD9SKTNECgog4biOq7EkEiQmJmLhxInexQk9IQgsl2P0aKraItpQqViF4alTndNv+s1vmOGzcSP73V7I4kssc+zYsQ6xTbnFgrNRUY4wl0gDJTkTXYDM4z6KqImhdmtQqlarOy5lpzL2/kVkJLsB+eivBUFgP0NDAY6DBPAuTugJg4F5EJ00tggCADsneN6lW7tXpkxhP61W9jM9HYBvsUyd3XPN2cVbzV4e6CjJmegs5PHpw3TYNsATYuM+CnP1H0JDmRfG3j7AI2IOhlrNxlosna++EgRm+IwcSWKYRHsGDGBex8pKJqMREeHd+5OeDsTGAmIbIrvh4wsxl1FusaBFLm8X5hLRknAm0UnI49PH8dk2wBNi124qY+8/SCQsqdjXEzfPM4NYrWZJyHZ13E7R2MhyOToKoxH9k5AQFgLNygLS0th5WFPjeSzHuTYe7UTVrpjzKLdYYNRqPUox6HQ6JCUlne8eEP0MMnyCDaORxdypcV//IiyMPW17QxQdlMuZ8dMVw6eujj3RU84Y4Q2OY56eESOYF8fX+SWGu2QyoBM5ORKJBFkTJgCASzWXMzk5OZTYTHQaujsGE2Lc3E9tRYg+TGhoWx6PJ8RQl1TKvIGnT3duu0YjM5TI20N0FrFvm7cS90suARYsAJKTO/2Aph8wANyVV+KL2lo0OVV/6XQ65OTkUCk70SXI8Akm6upYois17et/hIayG47Fwn66I4a6pFI21p4o2iHnzgFDh1LjUaLzhIWxa1BZGfvpnu8jlQL33de1bTY2ImXiRPxt6FCUlZWhsbERWq0WSUlJ5OkhugwZPsECzzP9nmHDKMzVHwkNZcnKZrNnw8dqbfP4dDapWWw/MWhQ986VCG60WubVKS0Fjh9nOWIeqgF5nkd1dTWa6uuhEQQMzMz0bMTYbCyUFhUFiURCJevEBUN3yGBBFJejMvb+SUgIe7I+d85zYjvPs5wKiYQZM1IpM4bcjeTWVhamCAlh20pLowpBousoFMxTGBEB7NvXruKwpKTEIVoYajJBZrGA37cPE6dMaS/VISbXkxI90U2QjzAYEMXlkpI8P+0T/YPISM9JpUYj896I54ZC0RYWc6ahgZUkV1WxnxqN59YUBNFZoqNZxaHR6FhUUlKCzZs3O5SaJTyP5tBQWOvqsHnzZpSUlLhuw2hkJfAyWU/OnAhiyOMTDDQ0sKd8X80lieDHPcHZZGJeG6WSGTmid0ehaNPyEdc5c4Z5hZKS2M/Bg5lx1Bk1XoLwBsex65K9vJ3neeTn57sMkfA8LHI5dAYDmkNDkZ+fj+TkZBb2EhvqUt4i0Y2Q4RMMGAzARRdRuXF/R6lkN5r6evaULJezUFVMDLB/f9tNRCJhoYOaGhbuqq5mBs7w4ewGI4bFCKI70OnYeSkITIzVrQehAKBVJoM1JARSqxUmkwnV1dWs/UpjIzs3KcxFdCNk+AQ6RiMzeKjcmNBo2NO10cj0UZKT27qlh4W5lhZrtUBJCcu9iI9nhrOYG+RBII4gzhuJxNHB3dTU5HFIs0oFeUsLQpubYdJo2sYZjUwXiAxxohshwyfQqatjT/VUbkwoFMCECW1ihc6MGeMaBlOpmIcoOZmp51LjUcJfiIaPIDjaT4hwPA9wHGwhITDqdNA1NraNozAX4SfI8AlkzGb2JEQJqIQznjw27k/MUVHAxRczDxHpoBD+RCpl55jV6mg/4ZzYbJNKYZNI0KxSwSKXI0wuR2xsLMtd1GjavJYE0U3QFS+Qqa1lYQq6MBBdRQyPktFD+Bu1mr3MZtZ+IivL8ZGE58FzHGxSKVrlcjSFhiJr2DCW2CxWc1GlKtHN0FUvUBFLkRMSWOIgQRBEX0QiYTlm9ia6er0eM2bMgFqtdnh8eKkUOp0Ol19/PRJjY9va71CYi/ADFOoKVM6dAwYOZCELgiCIvkxYGFNytqPX65GcnIzThw+jMSQEssmTWfsJiwX4/vu2SkOq5iL8AHl8AhGrlb2SkylUQRBE38dDE12JRILYqCikjxiBlJQUFt5SKpn8gtHIflKYi/ADdNcMROrqmKeHurATBBEIqFSe1cJtNpb/40xMDPNm0/WN8BNk+AQaYjPS5GRqRkoQRGAgyifY83wcCEL7isPISKZDFRnZY9Mj+hdk+AQa1IyUIIhAQyZjOTstLe0/cw9nyWQkWkj4FTJ8AglqRkoQRKASHu5q+NjFC+laRvQ0ZPgEEmIz0ri43p4JQRBE19BoXBOcW1uZV4c8O0QPQ4ZPIFFfDyQmsng5QRBEIBEaylScRY0eq5XlKZLHh+hhyPAJFIxGVv1AzUgJgghE1Gpm/BiN7Hfy+BC9BBk+gUJdHTN6qBkpQRCBiFzOPNYNDex3q5V5r0mLjOhh6IwLBKgZKUEQwUBUVFu4SzR8CKKHIcMnEKBmpARBBANhYcxrbTQywyc0tLdnRPRDyPDp61AzUoIggoWQkLaWFIJAic1Er0CGT1/n3Dl2oaBmpARBBAORkczoIcOH6CXI8OnLiHHwpCRKACQIIjgID2cVXhIJGT5Er0B3074MNSMlCCLYUCrZdS0khErZiV6BDJ++Cs8DTU3UjJQgiOBj4ECm5EweH6IXoDtqX6W+nsXCqRkpQRDBRlQUS3Amw4foBcjj0xehZqQEQQQzKhWQkUG5i0Sv4Lez7plnnkFWVhZCQ0MR3kn9mUWLFoHjOJdXTk6Ov6bYd6FmpARBEAThF/wW6rJYLJg3bx4mTZqEt99+u9Pr5eTkYPXq1Y7fFQqFP6bXt6mvB4YNI1VTguhGeJ6HRdTFIgiiV5DL5ZD0sqfPb4bPE088AQBYs2ZNl9ZTKBSIjY31w4wCBGpGShDdjsViQUlJCXie7+2pEES/RiKRQK/XQ96LaRx9Lrl527ZtGDhwICIiInD55Zfj6aefRpQP8b6Wlha0tLQ4fm8QG+AFKnV1QFoaNSMliG5CEARUVVVBKpUiMTGx1582CaK/wvM8KisrUVVVhaSkJHC91I2gTxk+OTk5uPbaa6HX63H8+HE8/PDDmDlzJnbt2gWpVOpxnRUrVji8SwEPNSMliG7HarWiqakJ8fHxCKXeUATRq0RHR6OyshJWqxWyXtJx6tKjz0MPPdQu+dj9dfTo0fOezIIFC3DNNddgxIgRmDNnDjZu3Ii9e/di27ZtXtdZtmwZDAaD41VeXn7e39+r2GzA2bPUjJQguhmbzQYAvepaJwiCIf4fiv+XvUGXPD733nsvFi1a5HNMamrqhcyn3bYGDBiA4uJiXHHFFR7HKBSKwE6Abmpiycw8zwye5GRqRkoQfqC33OoEQbTRF/4Pu2T4REdHI7oH2yecOnUKtbW1iAvWsu76eqC5GRg0iHl6oqJIwp0gCIIg/IjfsvzKyspQWFiIsrIy2Gw2FBYWorCwEEaj0TEmIyMDn332GQDAaDTi/vvvx+7du1FaWorc3FzMnj0bgwcPRnZ2tr+m2XtYrYDBAFx0EXDxxUBsLBk9BEEEJI8//jhGjx7d29O4YEpLS8FxHAoLCwGwYhuO41BfX3/e2+yObRDdi98Mn8ceewxjxozB8uXLYTQaMWbMGIwZMwb79u1zjCkqKoLBYAAASKVS/PLLL7jmmmswZMgQLF68GGPHjsX3338f2KEsb9TUMC9PUlJvz4QgiD6Is6CrXC7H4MGD8eSTT8JqtV7wtrv7ZnzfffchNze3W7bVl8jKykJVVRXCwsI6Nf6yyy7DXXfddUHbIPyP36q61qxZ06GGjyAIjvcqlQrffvutv6bTtzAamXdnyBBqQEoQhFdEQdeWlhZ8/fXXWLp0KWQyGZYtW9bbUwPAruE2mw0ajQYajeaCttXa2tptVT7dtS25XH7BunLdsQ2ieyFBi57GZgNqa4HUVNaElCAIwguioGtycjJuu+02TJ8+HRs2bAAA1NXV4cYbb0RERARCQ0Mxc+ZMHDt2zLHuyZMncfXVVyMiIgJqtRrDhg3D119/jdLSUkybNg0AEBERAY7jHEUrPM9jxYoV0Ov1UKlUGDVqFP773/86til6ir755huMHTsWCoUCP/zwQ7tQF8/zePLJJ5GQkACFQoHRo0dj06ZNjs/FkNLHH3+MqVOnQqlUYu3atR7/BhzH4fXXX8fMmTOhUqmQmprqMidf23rrrbeQmZkJpVKJjIwMvPbaay7b/vHHHzFmzBgolUqMGzcOP//8s8vnnjxjO3fuxGWXXYbQ0FBEREQgOzsbdXV1WLRoEbZv345Vq1Y5PHWlpaUu22hoaIBKpcI333zj8j2fffYZtFotmpqaAADl5eWYP38+wsPDERkZidmzZ6O0tNTj38d5nt9++y3GjBkDlUqFyy+/HKdPn8Y333yDzMxM6HQ6XH/99Y7v6MzxttlsWLx4sePzoUOHYtWqVS7fvWjRIsyZMwcrV65EXFwcoqKisHTpUrS2tnqdb29D7oae5swZIDoaSEnp7ZkQRP9EEFg1ZW8QGnpBVZsqlQq1tbUA2A3n2LFj2LBhA3Q6HR588EFcddVVOHz4MGQyGZYuXQqLxYIdO3ZArVbj8OHD0Gg0SExMxP/+9z/MnTsXRUVF0Ol0UNnb46xYsQIffPAB3njjDaSnp2PHjh34wx/+gOjoaEydOtUxj4ceeggrV65EamoqIiIi2kmOrFq1Ci+88ALefPNNjBkzBu+88w6uueYaHDp0COnp6S7beeGFFxzGhzceffRRPPvss1i1ahXef/99LFiwAAcOHEBmZqbXba1duxaPPfYY/vWvf2HMmDH4+eefccstt0CtVuOmm26C0WjErFmzMGPGDHzwwQcoKSnBnXfe6fPvX1hYiCuuuAI333wzVq1ahZCQEOTl5cFms2HVqlX49ddfMXz4cDz55JMAWEGQs8Gi0+kwa9YsrFu3DjNnznQsX7t2LebMmYPQ0FC0trYiOzsbkyZNwvfff4+QkBA8/fTTyMnJwS+//OJTluHxxx/Hv/71L4SGhmL+/PmYP38+FAoF1q1bB6PRiN/97nd45ZVX8OCDD3bqePM8j4SEBKxfvx5RUVHIz8/HX/7yF8TFxWH+/PmO783Ly0NcXBzy8vJQXFyM6667DqNHj8Ytt9zi8+/ZawhBhsFgEAAIBoOh+zdeXy8IX34pCLt3C8K+fV1/ff+9IGzYIAjV1d0/N4IgPNLc3CwcPnxYaG5uZguMRkFg5k/Pv4zGTs/7pptuEmbPni0IgiDwPC9s3rxZUCgUwn333Sf8+uuvAgBh586djvFnz54VVCqV8MknnwiCIAgjRowQHn/8cY/bzsvLEwAIdXV1jmVms1kIDQ0V8vPzXcYuXrxYWLhwoct6n3/+ucuY5cuXC6NGjXL8Hh8fLzzzzDMuY8aPHy/cfvvtgiAIQklJiQBA+Oc//9nh3wGAsGTJEpdlEyZMEG677Taf20pLSxPWrVvnsuypp54SJk2aJAiCILz55ptCVFRU23khCMLrr78uABB+/vlnl/0V/04LFy4UJk+e7HWuU6dOFe68806XZe7b+OyzzwSNRiOYTCZBENg9S6lUCt98840gCILw/vvvC0OHDhV4nndso6WlRVCpVMK3337r8XvF79iyZYtj2YoVKwQAwvHjxx3Lbr31ViE7O1sQhM4db08sXbpUmDt3ruP3m266SUhOThasVqtj2bx584TrrrvO4/rt/h+d8Ov92wny+PQUggCcPg2kpwMDB/b2bAiCCAA2btwIjUaD1tZW8DyP66+/Ho8//jhyc3MREhKCCRMmOMZGRUVh6NChOHLkCADgjjvuwG233YbvvvsO06dPx9y5czFy5Eiv31VcXIympibMmDHDZbnFYsGYMWNclo0bN87rdhoaGlBZWYnJkye7LJ88eTL279/f6e04M2nSpHa/i5VXnrZlMplw/PhxLF682MXrYLVaHUnGR44cwciRI108Te7f405hYSHmzZvXqTl746qrroJMJsOGDRuwYMEC/O9//4NOp8P06dMBAPv370dxcTG0bm2LzGYzjh8/7nPbzsc3JiYGoaGhLtp6MTEx+PHHHwF0/ni/+uqreOedd1BWVobm5mZYLJZ2FXzDhg1z6a4QFxeHAwcOdObP0SuQ4dNT1NYCERGsD1cfEHAiiH5LaCgrMOit7+4C06ZNw+uvvw65XI74+HiEdKEY4s9//jOys7Px1Vdf4bvvvsOKFSvwwgsv4G9/+5vH8aLUyFdffYVBgwa5fOZeWatWq7u0H97oru24b0vcl//85z8uxiEAr+2POoMYErwQ5HI5fv/732PdunVYsGAB1q1bh+uuu85xbI1GI8aOHesx56kjHT3nhG6O49oleHMc52jU25nj/dFHH+G+++7DCy+8gEmTJkGr1eL555/Hnj17vH6v+/f0Rcjw6QlaWlgfruHDu3zhIwiim+E4oBtvuP5ErVZj8ODB7ZZnZmbCarViz549yMrKAgDU1taiqKgIF110kWNcYmIilixZgiVLlmDZsmX4z3/+g7/97W8e2wZcdNFFUCgUKCsrc8nn6So6nQ7x8fHYuXOny3Z27tyJSy655Ly2uXv3btx4440uv7t7oZyJiYlBfHw8Tpw4gRtuuMHjmMzMTLz//vswm80Or8/u3bt9zmPkyJHIzc312h9SLpd3qhXDDTfcgBkzZuDQoUPYunUrnn76acdnF198MT7++GMMHDgQOp2uw22dL5053jt37kRWVhZuv/12x7KOvE6BABk+PcHp06wVRbAqUBME0aOkp6dj9uzZuOWWW/Dmm29Cq9XioYcewqBBgzB79mwAwF133YWZM2diyJAhqKurQ15eniMZODk5GRzHYePGjbjqqqugUqmg1Wpx33334e677wbP87j00kthMBiwc+dO6HQ63HTTTZ2e3/3334/ly5cjLS0No0ePxurVq1FYWOi1cqsj1q9fj3HjxuHSSy/F2rVr8eOPP+Ltt9/2uc4TTzyBO+64A2FhYcjJyUFLSwv27duHuro63HPPPbj++uvxyCOP4JZbbsGyZctQWlqKlStX+tzmsmXLMGLECNx+++1YsmQJ5HI58vLyMG/ePAwYMAApKSnYs2cPSktLodFoEOmlcnfKlCmIjY3FDTfcAL1e7+KVuuGGG/D8889j9uzZjsq4kydP4tNPP8UDDzyAhG5qYt2Z452eno733nsP3377LfR6Pd5//33s3bsXer2+W+bQW1A5u7+pr2dPl2lpgIT+3ARBdA+rV6/G2LFjMWvWLEyaNAmCIODrr792hB1sNhuWLl2KzMxM5OTkYMiQIY5y7kGDBuGJJ57AQw89hJiYGPz1r38FADz11FN49NFHsWLFCsd6X331VZdvdHfccQfuuece3HvvvRgxYgQ2bdqEDRs2uFR0dYUnnngCH330EUaOHIn33nsPH374oYtnyxN//vOf8dZbb2H16tUYMWIEpk6dijVr1jj2RaPR4Msvv8SBAwcwZswYPPLII/jHP/7hc5tDhgzBd999h/379+OSSy7BpEmT8MUXXzjCVPfddx+kUikuuugiREdHo6yszON2OI7DwoULsX///nYeqdDQUOzYsQNJSUm49tprkZmZicWLF8NsNne7B6ij433rrbfi2muvxXXXXYcJEyagtrbWxfsTqHCC4KQiGAQ0NDQgLCwMBoOh+92EBgPw/fesHL0zsXarFaisBEaPBgLcQiaIQMVsNqOkpAR6vd5nyTTRN+E4Dp999hnmzJnT21MhugFf/49+vX87QS4IfyK2pUhM7O2ZEARBEAQBMnz8h9iWIj2d2lIQBEEQRB+B7sj+QGxLMWwYtaUgCIK4AIIsG4PoA5DHxx+cOcNECimvhyAIgiD6FGT4dDfNzQDPs87rPnqqEARBEATR85Dh052IbSn0elb5RRAEQRBEn4IMn+6E2lIQBEEQRJ+GDJ/uQmxLMWQI0A39XAiCIAiC6H7I8OkuamqApCRqS0EQBEEQfRgyfLqD+npAowEGD6a2FARBEATRh6G79IVitQINDczo0Wp7ezYEQQQJixYtAsdx4DgOMpkMMTExmDFjBt555x3wPN/p7axZswbh4eF+nClBBBZk+Fwo1JaCIPoFPM+jtLQUBw4cQGlpaZeMj/MlJycHVVVVKC0txTfffINp06bhzjvvxKxZs2C1Wv3+/QQRjJDhcyE0NlJbCoLoBxw5cgSrVq3Cu+++i08//RTvvvsuVq1ahSNHjvj1exUKBWJjYzFo0CBcfPHFePjhh/HFF1/gm2++wZo1awAAL774IkaMGAG1Wo3ExETcfvvtMBqNAIBt27bhT3/6EwwGg8N79PjjjwMA3n//fYwbNw5arRaxsbG4/vrrcfr0ab/uD0H0BcjwOV/EthRpadSWgiCCmCNHjuCTTz5BQ0ODy/KGhgZ88sknfjd+3Ln88ssxatQofPrppwAAiUSCl19+GYcOHcK7776LrVu34oEHHgAAZGVl4Z///Cd0Oh2qqqpQVVWF++67DwDQ2tqKp556Cvv378fnn3+O0tJSLFq0qEf3hSB6A3JTnC9nzgAxMUBKSm/PhCAIP8HzPDZt2uRzzKZNmzB06FBIerCwISMjA7/88gsA4K677nIsT0lJwdNPP40lS5bgtddeg1wuR1hYGDiOQ2xsrMs2br75Zsf71NRUvPzyyxg/fjyMRiM0Gk3P7AhB9ALk8TkfmpuZSjO1pSCIoKasrKydp8edhoYGlJWV9dCMGIIggLOLpG7ZsgVXXHEFBg0aBK1Wiz/+8Y+ora1FU1OTz20UFBTg6quvRlJSErRaLaZOnQoAPb4vBNHTkOFzPpw9S20pCKIf0NjY2K3juosjR45Ar9ejtLQUs2bNwsiRI/G///0PBQUFePXVVwEAFovF6/omkwnZ2dnQ6XRYu3Yt9u7di88++6zD9QgiGKBQ1/kwYACQmkptKQgiyNF2UqKis+O6g61bt+LAgQO4++67UVBQAJ7n8cILLzhCbZ988onLeLlcDpvN5rLs6NGjqK2txbPPPotEe0Xqvn37emYHCKKXIY9PV9FoWBUXtaUgiKAnKSkJOp3O5xidToekpCS/fH9LSwuqq6tRUVGBn376CX//+98xe/ZszJo1CzfeeCMGDx6M1tZWvPLKKzhx4gTef/99vPHGGy7bSElJgdFoRG5uLs6ePYumpiYkJSVBLpc71tuwYQOeeuopv+wDQfQ1yPDpCqGhTKiQ2lIQRL9AIpEgJyfH55icnBy/JTZv2rQJcXFxSElJQU5ODvLy8vDyyy/jiy++gFQqxahRo/Diiy/iH//4B4YPH461a9dixYoVLtvIysrCkiVLcN111yE6OhrPPfccoqOjsWbNGqxfvx4XXXQRnn32WaxcudIv+0AQfQ1OEAShtyfRnTQ0NCAsLAwGg6HDJzWCIIIfs9mMkpIS6PV6KJXK89rGkSNHsGnTJpdEZ51Oh5ycHGRmZnbXVAki6PH1/9hT92/K8SEIguiAzMxMDB06FGVlZWhsbIRWq0VSUlKPlrATBNE9kOFDEATRCSQSCVJIt4sgAh56XCEIgiAIot9Ahg9BEARBEP0GMnwIgiAIgug3kOFDEES/IMgKWAkiIOkL/4eU3EwQRFAjk8nAcRzOnDmD6OhoR48rgiB6FkEQcObMGXAcB5lM1mvzIMOHIIigRiqVIiEhAadOnUJpaWlvT4cg+jUcxyEhIQFSqbTX5kCGD0EQQY9Go0F6ejpaW1t7eyoE0a+RyWS9avQAfjR8SktL8dRTT2Hr1q2orq5GfHw8/vCHP+CRRx6BXC73up7ZbMa9996Ljz76CC0tLcjOzsZrr72GmJgYf02VIIh+gFQq7fULLkEQvY/fkpuPHj0Knufx5ptv4tChQ3jppZfwxhtv4OGHH/a53t13340vv/wS69evx/bt21FZWYlrr73WX9MkCIIgCKIf0aO9up5//nm8/vrrOHHihMfPDQYDoqOjsW7dOvz+978HwAyozMxM7Nq1CxMnTuzwO6hXF0EQBEEEHj11/+7RcnaDwYDIyEivnxcUFKC1tRXTp093LMvIyEBSUhJ27drlcZ2WlhY0NDS4vAiCIAiCIDzRY8nNxcXFeOWVV7By5UqvY6qrqyGXyxEeHu6yPCYmBtXV1R7XWbFiBZ544ol2y8kAIgiCIIjAQbxv+z0QJXSRBx98UADg83XkyBGXdU6dOiWkpaUJixcv9rnttWvXCnK5vN3y8ePHCw888IDHdcxms2AwGByvw4cPdzg/etGLXvSiF73o1Tdfx48f76pp0iW67PG59957sWjRIp9jUlNTHe8rKysxbdo0ZGVl4d///rfP9WJjY2GxWFBfX+/i9ampqUFsbKzHdRQKBRQKheN3jUaD8vJyaLXaoBIqa2hoQGJiIsrLy/td7hLtO+17f9t3oH/vP+17/9x3g8GApKQknykx3UGXDZ/o6GhER0d3amxFRQWmTZuGsWPHYvXq1ZBIfKcUjR07FjKZDLm5uZg7dy4AoKioCGVlZZg0aVKnvlMikSAhIaFTYwMRnU7X7/4ZRGjfad/7I/15/2nf++e+d2QrXPD2/bXhiooKXHbZZUhKSsLKlStx5swZVFdXu+TqVFRUICMjAz/++CMAICwsDIsXL8Y999yDvLw8FBQU4E9/+hMmTZrUqYougiAIgiAIX/gtuXnz5s0oLi5GcXFxOw+MYE9cam1tRVFREZqamhyfvfTSS5BIJJg7d66LgCFBEARBEMSF4jfDZ9GiRR3mAqWkpLTL3lYqlXj11Vfx6quv+mtqAYlCocDy5ctd8pn6C7TvtGkxkycAAArKSURBVO/9kf68/7TvtO/+pEcFDAmCIAiCIHqTHhUwJAiCIAiC6E3I8CEIgiAIot9Ahg9BEARBEP0GMnwIgiAIgug3kOFDEARBEES/gQyfPsq2bdvAcZzH1969e72ud9lll7Ubv2TJkh6cefeQkpLSbj+effZZn+uYzWYsXboUUVFR0Gg0mDt3Lmpqanpoxt1DaWkpFi9eDL1eD5VKhbS0NCxfvhwWi8XneoF63F999VWkpKRAqVRiwoQJDjFTb6xfvx4ZGRlQKpUYMWIEvv766x6aafeyYsUKjB8/HlqtFgMHDsScOXNQVFTkc501a9a0O8ZKpbKHZtx9PP744+32IyMjw+c6wXLcPV3XOI7D0qVLPY4P5GO+Y8cOXH311YiPjwfHcfj8889dPhcEAY899hji4uKgUqkwffp0HDt2rMPtdvWa4QkyfPooWVlZqKqqcnn9+c9/hl6vx7hx43yue8stt7is99xzz/XQrLuXJ5980mU//va3v/kcf/fdd+PLL7/E+vXrsX37dlRWVuLaa6/todl2D0ePHgXP83jzzTdx6NAhvPTSS3jjjTfw8MMPd7huoB33jz/+GPfccw+WL1+On376CaNGjUJ2djZOnz7tcXx+fj4WLlyIxYsX4+eff8acOXMwZ84cHDx4sIdnfuFs374dS5cuxe7du7F582a0trbiyiuvhMlk8rmeTqdzOcYnT57soRl3L8OGDXPZjx9++MHr2GA67nv37nXZ782bNwMA5s2b53WdQD3mJpMJo0aN8qrJ99xzz+Hll1/GG2+8gT179kCtViM7Oxtms9nrNrt6zfCKX1ugEt2GxWIRoqOjhSeffNLnuKlTpwp33nlnD83KfyQnJwsvvfRSp8fX19cLMplMWL9+vWPZkSNHBADCrl27/DHFHuO5554T9Hq9zzGBeNwvueQSYenSpY7fbTabEB8fL6xYscLj+Pnz5wu//e1vXZZNmDBBuPXWW/06z57g9OnTAgBh+/btXsesXr1aCAsL68FZ+Yfly5cLo0aN6vT4YD7ud955p5CWlibwPO/x82A55gCEzz77zPE7z/NCbGys8PzzzzuW1dfXCwqFQvjwww+9bqer1wxvkMcnQNiwYQNqa2vxpz/9qcOxa9euxYABAzB8+HAsW7bMpSVIIPHss88iKioKY8aMwfPPPw+r1ep1bEFBAVpbWzF9+nTHsoyMDCQlJWHXrl09MV2/YTAYOtWtOJCOu8ViQUFBgcvxkkgkmD59utfjtWvXLpfxAJCdnR3wxxdgxxhAh8fZaDQiOTkZiYmJmD17Ng4dOtQT0+t2jh07hvj4eKSmpuKGG25AWVmZ17HBetwtFgs++OAD3HzzzeA4zuu4YDnmzpSUlKC6utrluIaFhWHChAlej+v5XDO84beWFUT38vbbbyM7O7vDzvPXX389kpOTER8fj19++QUPPvggioqK8Omnn/bQTLuHO+64AxdffDEiIyORn5+PZcuWoaqqCi+++KLH8dXV1ZDL5QgPD3dZHhMT49IYN9AoLi7GK6+8gpUrV/ocF2jH/ezZs7DZbIiJiXFZHhMTg6NHj3pcp7q62uP4QD6+AMDzPO666y5MnjwZw4cP9zpu6NCheOeddzBy5EgYDAasXLkSWVlZOHToUIfXhb7EhAkTsGbNGgwdOhRVVVV44okn8Jvf/AYHDx6EVqttNz5Yj/vnn3+O+vp6n62dguWYuyMeu64c1/O5ZnilS/4h4oJ58MEHBQA+X0eOHHFZp7y8XJBIJMJ///vfLn9fbm6uAEAoLi7url04b85n30XefvttISQkRDCbzR4/X7t2rSCXy9stHz9+vPDAAw90636cD+ez76dOnRLS0tKExYsXd/n7+tJx90RFRYUAQMjPz3dZfv/99wuXXHKJx3VkMpmwbt06l2WvvvqqMHDgQL/NsydYsmSJkJycLJSXl3dpPYvFIqSlpQn/93//56eZ9Qx1dXWCTqcT3nrrLY+fB+txv/LKK4VZs2Z1aZ1APeZwC3Xt3LlTACBUVla6jJs3b54wf/58j9s4n2uGN8jj08Pce++9HTZvTU1Ndfl99erViIqKwjXXXNPl75swYQIA5jlIS0vr8vrdyfnsu8iECRNgtVpRWlqKoUOHtvs8NjYWFosF9fX1Ll6fmpoaxMbGXtC8u4Ou7ntlZSWmTZuGrKws/Pvf/+7y9/Wl4+6JAQMGQCqVtqu683W8YmNjuzQ+EPjrX/+KjRs3YseOHV1+gpfJZBgzZgyKi4v9NLueITw8HEOGDPG6H8F43E+ePIktW7Z02SMbLMdcPHY1NTWIi4tzLK+pqcHo0aM9rnM+1wxvkOHTw0RHRyM6OrrT4wVBwOrVq3HjjTdCJpN1+fsKCwsBwOXk6i26uu/OFBYWQiKRYODAgR4/Hzt2LGQyGXJzczF37lwAQFFREcrKyjBp0qTznnN30ZV9r6iowLRp0zB27FisXr0aEknXU/H60nH3hFwux9ixY5Gbm/v/7dy/S2p9HAfw7wOl0qJFZRGcMKSI9uI0GGSTDdVkDdYWGAVCRC0hNURD1OAfcBoaoiUcGqRMFyNBM5KKIJFCKNr6QU71fobo8Fj23Gvda/d63i9w8Hy/5/D9+JHDm3OOiv7+fiHEyy2fYDAoxsfH8+4jy7IIBoPC4/Go27a3t/+I/hYKgJiYmBCbm5siHA4Li8VS8DGenp5EMpkUDofjN6yweB4eHkQqlRIulyvveCn1/ZWiKKK2tlb09vYWtF+p9NxisYi6ujoRDAbVoHN3dyei0ahwu9159/nMOeNDBV0foqLb2dn58BZQJpNBS0sLotEoAOD8/Bzz8/OIxWJIp9Pw+/1oamqCzWYr9rK/ZG9vDysrKzg8PEQqlcLa2hpqamowPDysznlbO/Byy0CSJOzu7iIWi0GWZciy/B0lfFomk4HVaoXdbkcmk8HV1ZX6+u+cUuj7+vo69Ho9VldXcXJygtHRUZhMJlxfXwMAXC4XZmZm1PmRSARlZWVYWlrC6ekpvF4vysvLkUwmv6uET3O73TAajQiHwzk9fnx8VOe8rX9ubg6BQACpVArxeByDg4MwGAw4Pj7+jhI+bXJyEuFwGOl0GpFIBD09PaiursbNzQ2A0u478PJLJEmSMD09/W6slHp+f3+PRCKBRCIBIQSWl5eRSCRwcXEBAFhcXITJZILf78fR0RH6+vpgsViQzWbVY3R3d8Pn86nvf3TO+FkMPn+4oaEhdHZ25h1Lp9MQQiAUCgEALi8vYbPZUFVVBb1eD6vViqmpKdze3hZxxV8Xj8fR0dEBo9EIg8GA1tZWLCws5Dzf87Z2AMhmsxgbG0NlZSUqKiowMDCQExj+BoqifPgM0KtS6rvP54MkSdDpdGhvb8f+/r461tXVhZGRkZz5GxsbaG5uhk6nQ1tbG7a2toq84l/jox4riqLOeVu/x+NRPyuz2QyHw4GDg4PiL/6LnE4n6uvrodPp0NDQAKfTmfMsWin3HQACgQCEEDg7O3s3Vko9D4VCeb/jr/U9Pz9jdnYWZrMZer0edrv93WfS2NgIr9ebs+3/zhk/6x8AKOwaEREREdHfif/jQ0RERJrB4ENERESaweBDREREmsHgQ0RERJrB4ENERESaweBDREREmsHgQ0RERJrB4ENERESaweBDREREmsHgQ0RERJrB4ENERESa8S8tIBteuijO2AAAAABJRU5ErkJggg==",
"text/plain": [
"Figure(PyObject <Figure size 640x480 with 1 Axes>)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot predictions\n",
"pred_mean = mean(ynew, dims=2)\n",
"pred_lower = quantiles(ynew, 0.025, dims=2)\n",
"pred_upper = quantiles(ynew, 0.975, dims=2)\n",
"plt.plot(vec(Xnew), vec(pred_mean), color=\"red\", label=\"Posterior predictive mean\")\n",
"plt.scatter(vec(X), vec(y), color=\"grey\", label=\"Data\")\n",
"plt.fill_between(vec(Xnew), vec(pred_upper), vec(pred_lower), color=\"red\", alpha=0.2)\n",
"plt.legend(loc=\"lower right\")\n",
"plt.title(\"GP Posterior predictive with 95% credible interval\");"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.4.1",
"language": "julia",
"name": "julia-1.4"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.4.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment