Skip to content

Instantly share code, notes, and snippets.

@karlnapf
Created January 29, 2016 09:50
Show Gist options
  • Save karlnapf/ccce1dabf947cf8d8e7e to your computer and use it in GitHub Desktop.
Save karlnapf/ccce1dabf947cf8d8e7e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Kernel exponential families and TIMIT\n",
"\n",
"In this notebook, I show how to fit the RFF approximation of the kernel exponential family model to TIMIT data, and how to store the fitted density to load in another computing environment (i.e. Matlab) and give code how to evaluate it there.\n",
"\n",
"Then I show how to sample from the fitted model using the HMC implementation of pymc3.\n",
"\n",
"By [Heiko Strathmann](http://www.herrstrathmann.de)\n",
"\n",
"Last edited: 29/01/2016\n",
"\n",
"License: http://creativecommons.org/licenses/by/4.0/legalcode\n",
"\n",
"Makes heavy use of the code to be found at https://github.com/karlnapf/kernel_exp_family"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import time\n",
"\n",
"import numpy as np\n",
"import scipy.io\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"from kernel_exp_family.estimators.finite.gaussian import KernelExpFiniteGaussian\n",
"from kernel_exp_family.estimators.parameter_search_bo import BayesOptSearch"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['testing_vectors', 'training_labels', '__header__', '__globals__', 'training_vectors', 'testing_labels', '__version__']\n",
"(63881, 39)\n",
"(63881, 1)\n"
]
}
],
"source": [
"# load data TIMIT\n",
"data = scipy.io.loadmat(\"timit.mat\")\n",
"print data.keys()\n",
"\n",
"# extract data\n",
"X = data['training_vectors']\n",
"N = X.shape[0]\n",
"D = X.shape[1]\n",
"\n",
"y = data['training_labels']\n",
"\n",
"print X.shape\n",
"print y.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We sub-sample and downsample the data to make things faster here"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(20000, 39)\n",
"(20000, 1)\n"
]
}
],
"source": [
"# subsample at least D of the images (to make estimation well posed)\n",
"num_subsample = 20000\n",
"inds = np.random.permutation(N)[:num_subsample]\n",
"X = X[inds]\n",
"y = y[inds]\n",
"N = X.shape[0]\n",
"print X.shape\n",
"print y.shape"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"N = X.shape[0]\n",
"D = X.shape[1]\n",
"\n",
"# kernel bandwidth, chosen below\n",
"sigma = 82.\n",
"\n",
"# regularisation can be small if D<=N\n",
"lmbda = 0.01\n",
"\n",
"# using the Random Fourier Features approximation here, since it is easier to \"export\" to matlab\n",
"# number of random features should be as large as possible for now (increase until you loose patience)\n",
"m=2000\n",
"\n",
"est = KernelExpFiniteGaussian(sigma, lmbda, m, D)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# principled sigma optimisation, but very slow. Only run once, or use median heuristic below\n",
"\"\"\"\n",
"param_bounds = {'sigma': [-2,8] }\n",
"bo = BayesOptSearch(est, X, param_bounds)\n",
"best_parameters = bo.optimize()\n",
"print best_parameters\n",
"\n",
"est.set_parameters_from_dict(best_parameters)\n",
"\"\"\";"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"82.3916881559\n"
]
}
],
"source": [
"def gamma_median_heuristic(Z, num_subsample=1000):\n",
" \"\"\"\n",
" Computes the median pairwise distance in a random sub-sample of Z.\n",
" Returns a \\gamma for k(x,y)=\\exp(-\\gamma ||x-y||^2), according to the median heuristc,\n",
" i.e. it corresponds to \\sigma in k(x,y)=\\exp(-0.5*||x-y||^2 / \\sigma^2) where\n",
" \\sigma is the median distance. \\gamma = 0.5/(\\sigma^2)\n",
" \"\"\"\n",
" from scipy.spatial.distance import cdist, squareform, pdist\n",
" inds = np.random.permutation(len(Z))[:np.max([num_subsample, len(Z)])]\n",
" dists = squareform(pdist(Z[inds], 'sqeuclidean'))\n",
" median_dist = np.median(dists[dists > 0])\n",
" sigma = np.sqrt(0.5 * median_dist)\n",
" gamma = 0.5 / (sigma ** 2)\n",
" \n",
" return gamma\n",
"\n",
"# fast way of estimating a \"reasonable\" sigma for the Gaussian kernel\n",
"sigma = 1./gamma_median_heuristic(X)\n",
"est\n",
"print sigma"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# fit and measure time it takes\n",
"start = time.time()\n",
"est.fit(X)\n",
"end = time.time()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Time taken: 297s\n"
]
}
],
"source": [
"print \"Time taken: %ds\" % (end-start)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4400.52755208\n",
"(39,)\n",
"(39, 39)\n",
"(39, 39, 39)\n"
]
}
],
"source": [
"# evaluate log-density via the given interface\n",
"x = X[0]\n",
"\n",
"print est.log_pdf(x)\n",
"print est.grad(x).shape\n",
"print est.hessian(x).shape\n",
"print est.third_order_derivative_tensor(x).shape"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# store random fourier basis and solution vector (have to be loaded in matlab)\n",
"omega = est.omega\n",
"u = est.u\n",
"theta = est.theta\n",
"\n",
"# the below snippets show how to evaluate the log-pdf and its gradient in Matlab"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# test point\n",
"x = X[0]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.01332407006\n",
"1.01332407006\n"
]
}
],
"source": [
"from kernel_exp_family.kernels.kernels import rff_feature_map_single\n",
"\n",
"# fourier basis allows to embed test point (best to create a function for this)\n",
"# taken from kernel_exp_family.kernels.kernels.rff_feature_map_single\n",
"phi_x = np.cos(np.dot(x, omega) + u) * np.sqrt(2. / m)\n",
"print np.linalg.norm(phi_x)\n",
"\n",
"# verify the above matches my Python code\n",
"print np.linalg.norm(rff_feature_map_single(x, omega, u))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4400.52755208\n",
"4400.52755208\n"
]
}
],
"source": [
"# log-pdf is a simple dot product\n",
"print np.dot(phi_x, theta)\n",
"\n",
"# verify the above matches my Python code\n",
"print est.log_pdf(x)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0754413156597\n",
"0.0754413156597\n"
]
}
],
"source": [
"from kernel_exp_family.kernels.kernels import rff_feature_map_grad_single\n",
"\n",
"# gradient of feature embedding\n",
"# taken from kernel_exp_family.kernels.kernels.rff_feature_map_grad_single\n",
"grad = np.zeros((D, m))\n",
"\n",
"for d in range(D):\n",
" projection = np.dot(x, omega) + u\n",
" np.sin(projection, projection)\n",
" \n",
" projection *= omega[d, :]\n",
" projection *= np.sqrt(2. / m)\n",
" projection *= -1\n",
"\n",
" grad[d, :] = projection\n",
"\n",
"print np.linalg.norm(grad)\n",
"\n",
"# verify the above matches my Python code\n",
"print np.linalg.norm(rff_feature_map_grad_single(x, omega, u))"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4.56745692936\n",
"4.56745692936\n"
]
}
],
"source": [
"# gradient of log-pdf is a simple dot product\n",
"print np.linalg.norm(np.dot(grad, theta))\n",
"\n",
"# verify the above matches my Python code\n",
"print np.linalg.norm(est.grad(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Disclaimer: With the current code, it is not easily possible to compute higher order derivatives in Matlab as I use automatic differentiation to compute the feature map derivatives. You will have to compute the derivatives yourself and store them, rather than storing the function itself."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Sampling from the model using Hamiltonian Monte Carlo"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First thing we have to do is to make the kernel density model a proper probability density that is normalisable. We do this by adding a \"base measure\" to ensure that the density goes to 0 in the tails. A Gaussian is a reasonable choise. The covariance is tuned to roughly match the data to avoid giving mass to areas where the RFF approximation of the kernel model produces artifacts that distract sampling."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fba10752490>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# compute standard deviation of each dimension to scale base measure\n",
"stds = np.std(X, 0) + 0.0001\n",
"plt.plot(stds, 'o');"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from pymc3.distributions import Continuous\n",
"import theano.tensor as T\n",
"\n",
"# define log-pdf in theano form, to enable autodiff for computnig gradients in HMC\n",
"def logp(x):\n",
" phi_x = T.cos(T.dot(x, omega) + u) * T.sqrt(2. / m)\n",
" \n",
" # log-pdf plus a \"base measure\"\n",
" return T.dot(theta, phi_x) -0.5 * T.dot(x/stds,x/stds)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Assigned NUTS to x\n",
" [-----------------100%-----------------] 1000 of 1000 complete in 6.4 sec"
]
}
],
"source": [
"from pymc3 import Model, DensityDist, find_MAP, NUTS, sample\n",
"\n",
"# define model via pymc's custom density capability (does the autodiff)\n",
"with Model() as model:\n",
" x = DensityDist('x', logp, shape=D)\n",
" \n",
" # draw a few posterior samples using NUTS, start from random data point\n",
" start = {'x':X[np.random.randint(N)]}\n",
" trace = sample(1000, start=start) \n",
"\n",
"# get rid of warm-up\n",
"samples = trace['x'][200:]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb9ffe00a10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot a few random samples from training\n",
"num_plot = 3\n",
"inds = np.random.permutation(N)[:num_plot]\n",
"plt.figure(figsize=(15,4))\n",
"\n",
"for i,idx in enumerate(inds):\n",
" plt.subplot(1,len(inds),i+1)\n",
" plt.plot(X[i]);"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA3YAAAEACAYAAAD/SeR4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXnYXWV1//1ZDJnzhJBACAkkDAmoqGgVQXwL1raK2tKB\nah3qr/ZtpVZ+2tq+tbW2pm/tYH/Xr60DvurV1jqjtVapIEV/GpVBQAEZZIoQhjAPgYSEEMh6/7jv\nnWef/ezh3uPZ+zzrc1258jzn7LPP/Zyzh/t7r+9aS1QVwzAMwzAMwzAMY7jsM+4BGIZhGIZhGIZh\nGPUwYWcYhmEYhmEYhjFwTNgZhmEYhmEYhmEMHBN2hmEYhmEYhmEYA8eEnWEYhmEYhmEYxsAxYWcY\nhmEYhmEYhjFwGhF2IvIvInKfiFyT8fwpIrJVRK70/97TxPsaxmxCRFaLyLdE5HoRuVZE3p6yjZ1r\nhtEBIjJXRC4Tkav8Ofk34x6TYQyFkPuZ3+6DInKLiFwtIsd3PU7DGBr7NbSfTwAfAj6Vs813VfUX\nG3o/w5iNPAW8U1WvFpFFwA9F5EJVvTGxnZ1rhtEyqrpLRF6qqjtEZF/gYhE5WVUvHvfYDGMAFN7P\nROQ04ChVXSciLwI+Cpw4pvEaxiBoJGKnqhcBjxRsJk28l2HMVlT1XlW92v+8HbgBWJWyqZ1rhtEB\nqrrD/zgXdz8tug8ahkHw/ex0fMBAVS8DlojIik4HahgDo8scu5N8KP08EXlmh+9rGBOHiKwFjgcu\nS3nazjXD6AAR2UdErgLuBTaq6o/HPSbDGBo597NVwJ2x37eQvphpGIanKStmET8EDveWldOArwDr\nO3pvw5govG3lS8A7/EpnHDvXDKMjVHUP8DwRmQIuFJFTVPU74x6XYQyFgvuZYRgl6UTYxU9WVf26\niHxERA5U1YeT24qIdjEmw+gaVa1tkRSR/XA3wU+r6ldT3iPoXLPzzJhUmjjPKrznYyJyHvACYK+w\ns/PMmFS6uJ/hInSHxX5f7R9L25eda8ZEUvpcU9VG/gFrgWsznlsR+/kEYHPOfrSpMSX2u6GN/U7y\nvkE3gx4/pDH3eN/a0H4+BfxDzvNB51pb51mbn+OAv/vB7XuIY/b71rb2nfJey4El/uf5wHeBl3U1\nngF/R63se4hjHvDnoQ3tp+h+9krgPP/zicD32x7TJHz3Q933EMfcwb617GsaidiJyOeAU4FlInIH\n8F5gjh/Qx4EzROStwG5gJ/DaJt7XaJ15wMJxD8JwiMjJwBuAa31ejwLvBtZg55phdM1K4JMiIrh8\n9U+r6v8Z85gMYxCE3M9U9XwReaWIbAIeB948vhEbxjBoRNip6usLnj8bOLuJ9zI6ZR6wYNyDMBzq\nyqjvW7CNnWuG0QGqei3w/HGPwzCGSMj9zG93VgfDMYyJocuqmONmo+279L6rRuyK9luHoe57NrFx\nYPu1fXe337b3PZvYaPvuZL9D3Xdb+51tbLR9d7bvtvY75H2XRryHszeIiOoYkt+NUUQQYA/wRlU+\nO+7xDJ2+Hdd9G49hNEHfjuu+jccwmqCPx3Ufx2QYdalyXM+miJ1Rjjn+f8uxMwzDMAzDMIyeY8LO\nyGKe/7+UsBNhqQi/28J4DMMwDMMwDMPIwISdkUUlYQccA7xfxI4twzAMwzAMw+gKm3wbWUTCrmxV\nzDnAFPDMZodjGIZhGIZhGEYWJuyMLKpG7KLcvJMaHIthGIZhGIZhGDmYsDOyMGFnGIZhGIZhGAPB\nhJ2RRR1hdzsm7AzDMAzDMAyjM0zYGVlUFXb7A1cBq0Q4sNkhGYZhGIZhGIaRhgk7I4t5uAblVSJ2\nO4AfAC9qelCGYRiGYRiGYczEhJ2RxVzgEapVxXwSuBSzYxqGYRiGYRhGJ5iwM7KYBzxEtYidCTvD\nMAzDMAzD6BATdkYWdYTdbuD7wAki7Nv0wAzDMAzDMAzDGMWEnZFFrYidKg8C92GNyg3DMGYdIrxT\nhN8e9zgMwzBmEybsjCyqCrv9cVZMMDumYRjGbOUY4JXjHoRhGMZswoSdkcU84GFggQhS4nVRjh2Y\nsGsUEVktIt8SketF5FoReXvGdh8UkVtE5GoROb7rcRqGYQBLgJNK3j8MwzCMGpiwM7KYB2wHnsJV\nyAzFhF17PAW8U1Wfhftc3yYix8Y3EJHTgKNUdR1wJvDR7odpGIbBFHAIcPi4B2IYRr8R4UARPivC\nqbYYVA8TdkYW84AngMcpZ8eMC7vrgEOtUXkzqOq9qnq1/3k7cAOwKrHZ6cCn/DaXAUtEZEWnAzWM\nGoggInZvmgCmgAeBE8c9EMMwes9RwMuAjwMXifBKE3jVaOTmKSL/IiL3icg1OduYPWxYzAN2UU3Y\n7QZQ5WngCuzG3jgishY4Hrgs8dQq4M7Y71uYKf4Mo8+cBHx53IMwajMFXIhd/40MiuaOInKKiGwV\nkSv9v/d0PUajM5YA1wPPAD4EvB/4oQhHj3VULSDCviJ8sS3hul9D+/kE7ov4VNqTcXuYiLwIZw+z\ni32/aSJiB9N2zPObG9rsRkQWAV8C3uEjd1X3syH260ZV3VhzaIbRBAcDB4VsKCKnAqe2ORijMpGw\ne+u4B2L0lty5o+e7qvqLHY3HGB9TwKM+IHCOCF8EPg/8LLBprCNrnsXAy1XRNnbeiLBT1YtEZE3O\nJiP2MBFZIiIrVPW+Jt7faIW5VBN28aqY4ITdHzQ4rlmNiOyHE3WfVtWvpmyyBTgs9vtq/9gMVHVD\n4wM0jPos8P8K8YsRG6PfReS97QzJqMAU8C3gIyLMVWXXuAdk9IuAuSNgdrxZwhLgsegXVfaIcB/l\najwMhSlif2vTdJXHYPaw4RFF7HZQL2Jnjcqb5V+BH6vqBzKePxd4E4CInAhstQUUY2AsBOaPexBG\ndbzFaAq4F7gJeP54R2QMmJN8Cs95ImJ9cSeXJcCjicd20YCwE+EMEf687n4apFVh15QV05g84lbM\noNVzz4iwU+UhEe4BjgN+1OgIZxkicjLwBuBaEbkKUODdwBpAVfXjqnq+iLxSRDbhvrs3j2/EhlGJ\n4Iid0VvmA0+qsluES3GpF5eOeUzG8PghcLiq7vApPV8B1o95TEY7tCbsgKOBYwu36o7FTICwC7aH\ngeX+9ISmcuzARe1eyCwSdm3k/qjqxVAc+VTVs5p8X8PomAVYxG7oxG1V3wd+AfjH8Q3HGCLxHHJV\n/bqIfEREDlTVh9O2t7njoFnCTF3QlLCbAg5oYD9BiDClmivcpoBt6a+tP3dsUtgJ2V7oc4G3AV8I\nsYdZ7k8vqCPsdice+xHw3IbGNQgs98cwKmMRu+ETtxpdCvz1GMdi9JvMuWO8FoOInABIlqgDmzsO\nnCXAjxOP7cJdS+oy5fffOiIcBnwbcqt5Zloxm5g7NiLsRORzOIW5TETuAN6Lm+CbPWy4NBmxuwZX\nQMcwjAqI8FzgMFW+Nu6xdMBCYL4I0lbVMKN14hOXn+C+z1Wq2U4dY/ZRNHcEzhCRt+IWi3cCrx3X\nWI3WadOKuZiOhB1wCK6ycx79z7FT1dcHbDNr7GEivBz4hip7xj2WGlQVdsmqmOAids+xiZphVOal\nODvzbBB2C3Ar+FFlXmN4TOEnaaqoCN/H5dn9x1hHZfSKormjqp4NnN3RcIzx0qaw69KKeSCwWIR9\nfeuGrPEMvirmbOOLwBF5G4jwGpFGQsxt0VRVTFR5ALfadljqKwzDKGIRsHzcg+iIyIbZ6zw7EVkt\nIt8SketF5FoRefu4x9QjkhOX7+P6mRqGYaQxKRG7ZbH3zKLV4ikm7BpGhMW4m1relwrw58BPtT+i\nyszDnVS1qmLGuIZZlmdnGA0ym4RdtJDU9zy7p4B3quqzcKLlbSLSp8pr4yQp7KLKmIZhGGm0HbFb\n3FHbrQP9/3lCMrN4ShOYsGueqD9fkbDr+0StyRw78HbMBsZlGLORRUyvBE46g4jYqeq9qnq1/3k7\ncAPWnzUiKeyuAI4XYc6YxmMYRr9pW9jF/2+TSNjlvZdZMQdGdGNfVLDdYvot7KL8liaqYoJF7Ayj\nDn1fCGqSBYn/e4+IrAWOBy4b70h6w8jERZVtuCIqdg8wDCONeIuUiCatmE/RjR0zNGJnwm5ArPb/\nF0Xs+i7smiyeAh21PBBhqUivGlEaRhMsAhaK9DuK1RALgT30PGIXISKLgC8B74j33ZrlpE3SogIq\nhmEYe/GR/P1xNR3iNBmxu4tuCqiMXdh11aB8NlFoxfQH8RwmU9hlWTFvAg4XYYHqjJO3Sd4IvBx4\ndYvvYRhdEzkAluFuUJPMAuAhBhCxE5H9cKLu06r61YxtNsR+nS1Nk6eA2xKPXQr8PPCh7odj1KGJ\npsmGkcMU8GhK1fTawk6EfXD3ki10F7F7vOC9Wi2eYsKueVbjhE1RRRzoqbATcceFKk+J1K+K6fe1\nW4QbgeOAyxsZaDrH+H+GMUlEwm45s0PYPcgwInb/CvxYVT+QtcEsbZqctiL9feAvxjAWoyZNNE02\njBzS8uugmYjdIlwk8BG6EXbLgM0U59hZ8ZQBsQq4hQELO6ajddBcVUzopoDKMcCRIrVXeaZEeGdD\nYzKMuizC3ZhmQwGVSNj1OmInIicDbwB+RkSuEpErReQV4x5XT9jbxy7GzTjXxv5jGI9hGP2lTWEX\nLTJtpTsr5q1Yjt1EsRq4kckSdk1YMaFEARUR9hPhXJHSk7tjcD3zjir5uiRHAe+uuQ/DaIpFuFXA\nvl4zmmQhzorZ64idql6sqvuq6vGq+jxVfb6qXjDucfWEGRMXVfZQ/n5iGMbk04Wwe5TurJi3FbyX\nCbuBsRpX9jqvKuZi4D76O0mrK+zSqmJCuYjdGuAXgNeHvrEIC4GDcJaRugVU5gHLfF9Cwxg3s0LY\niSA4Qdd7YWfkkjVxMWFnGEaSNoXdYpztcSstCzufz7cUd69OfS9/jzMrZpwKEZzO8EVRluLCsEUR\nu9vor62qkrDzB+z+ZAu7a4Dn+O2KWA88DJwVuD3AOlxJ7R9TP88umlSurbkfw2iCWSHscNeeXZS3\ngBv9woSdYRihdBWxa9uKuRiXz/cQ2Tl2c4GnVdnV1iAGJ+yAi0Q4edyDyOBQ4F7cAVQk7O4G9u9p\n+fJocgXlbsT7AntUeTrtSVUewNkkDwvY13rgHD+WlwS+/zG46ps30kzEDuCImvsxjFr4VcD5wB30\ndzGoKRbirjk7sIjdkDFhZxhGKJNixTwQF5DIe69Wo3UwTGG3khL2vI5ZhatYt41iYbcNVyCgjxO1\neMTuCWCuCPsGvC4vvy4iNM9uPU6gnQ2cFbA9TAu7m2guYmfCzhg3C3ALIvcz+RG7BThRtxOL2A0S\n77BYQvrkxYSdYRhJurJith2xW0aYsGstvw6GKeyWAmdEJfl7xmpcr4wywq6PE7W5eGHnE953ErZ6\nHiLsQhuVr8dVUfsk8HMie/sD5jESsSth4Uyjd1ZMEfkXEblPRK7JeP4UEdnqq/NdKSLv6XqMRiss\nArbj7B19vF4AIMKbRHhHzd1Ews4idsNlHtlWIxN2hmEkmW0ROxN2ESJ77XF3AqeMcywZVInY9XGi\nFo/YQfjNOK9wSkRoAZX1wM2qPAZ8Djgz4DXHADep8hDwFHBwwGuymIc7OfsUsfsErvl6Ht/11fme\nr6rv62JQRutEwq6v14uIo6lvgY6smBaxGy55ExcTdoZhJFlC+jVjN7CvT0eoStfC7iH/flk5dibs\nEizFhVO/ALx2zGNJY1IidnWEXW0rps87PBiXUwTOjvmWvN50Pjq3Hhexg/p5dvNxRVh6I+xU9SJc\nL7M86kQpjX4yFGG3kPo3TovYDR8TdgMhtlhuGOMkNWKniuLmlHWidl1aMUMidosxYTfCAbiJ7ReB\nX+5ho9N4xK6o3cEkCrv9KRZ2NwGHFVQ3PRq4NSrCosoNwLXAGTmvWQk8obpX+NTNs5uHE3Zra1o6\nu+YkEblaRM4TkWeOezBGI8SFXR9zciMWkr1KGYrl2A2ftObkESbs+sWNIp00bTaMPPKuGXXtmOOy\nYk5lzB1bL57Sxzy1PJYCj6hyuwibgJcBfWoIG0XstgOLRRC/4pBkUoVdYcROld0i3AQcB1yesVmU\nXxfnw8CfAp/NeE2UXxfRRMTuHv/zUtzJ2nd+CByuqjtE5DTgK7jPMhUR2RD7daOqbmx3eEZFImG3\nA9hHhAWq7BjzmNLoPGInIqcCp9Z8T6NZLGI3APykczVuPrJ1zMMxZjdZOXbQnLDrKmK3xc9zd+Pu\nZ49njKc1hibsDmD6AhTZMfsm7O6KfanzIXUCtpjpYgiZE+8xkhR2O2jOignTeXZlhN3XgA+I8EJV\nrkh5TZqwe2nAWLKYjxPfm3EFVHov7FR1e+znr4vIR0TkQFVNHbuqbuhscEYdFgHbVVERHsJF7foq\n7OpG7Erl2PnFiI3R7yLy3prvb9THhN0wWIhrUVS3OIVh1KVNYRcFUp7ALYzObbGH3DKcuwym8+w6\nF3aNWDFF5BUicqOI3Cwi70p5vqlqfUuZzjH6d+D0vLyrLvHJnStx/ekgP89uSO0OILxZcKiwK8qz\nmyHsvC3zY8BvZbwmKeyasGLuxDWS702eHS6HLtUaKiIrYj+fAEiWqDMGRRSxg/5G+cGN03LsDBN2\nwyA6V+eMawBFlZ79Nh8UkVt8isHxXY7P6IzWI3bePde2HTOyYpLzXv0XdiKyD84m93LgWcDrRCTN\nAtdEtb6oeAqqbAGuA36+4r6a5mBga2wlIFTY9XGS1mZVTCiujJkWsQNnLXxVhm85KexuA1bVSA6f\nj/sMeiPsRORzwCXAehG5Q0TeLCJnishb/CZniMh1InIV8E/0s8CQUZ6ksOvjYhA0a8W0HLvhYsJu\nGETn6jgXx3MrPfuUgqNUdR2uMvZHuxqY0SldWDGhfTtmVBUTsoVd68VTmrBingDcoqq3A4jIOcDp\nOCtcnCYKUETFUyK+iJu8/lcD+65LVDglIkTY7aK/wi4eqm6yKibA1cDxIuynylMpz2cJuxuBp3H5\nedcmnhsRdt4OexuuEMt1AWNKEkXsNgPrKry+cVT19QXPn42rIGp0gAh/AZyrytUtv9VQInYL8Qnj\nGbnFoft4HIvYDZms0uVgwq5PjF3YqepFIrImZ5PTgU/5bS8TkSUiskJV7+tmhEbb+J7U85i+xyVp\nyooJ/YnYtVo8pQkr5ipcX7mIu/xjSZqo1rc3Yuf5EvBqXx5/3ESFUyLyKmNOasQupComvs/c7cDz\nk8+JcCDuJL4/5XUKnAe8MvGaubhj7tbES+oUUJlPP62YRn/4ZeCFHbzPkITdPtSbuFvEbvhYxG4Y\njF3YBZCcX24hfX5pDJcpYFvOYmDTEbuuhF1WL7uJKZ7SVLW+A3Al6AFQ5V4RrgROA77c9KBLUiVi\n9wSwvOYKdxvMZXRFoemIHbiCBy9lZgGVdbjG5Fmfx/nAnwDvjz12NHC76gwbaJ08u1pWTKvWNytY\nCxzWwfsswgk6cDaPPgu7PbgbV9bqaxELcH+rReyGyxSjk/E4Juz6wxCEXSms0vMgybNhQjMRu0hI\nPUpLVkyfInQg067CSjl2TcwdmxB2W4DDY78nI1elq/WBvi/DopeM2IGrjvmrjF/YJf/u7aQIO//l\nL8atUOwWQUkviTpO2q6KCfBt4C2MCjTItmHGX3eOCEtjPeuS+XURN+JaYlQhbsVcW1Z8W7W+ycb3\nfjoAd963TTJi18dKuuCuEffjbmZ3F2ybt4/gqphGL7E+dsNgCMJuC6OLZzPml3Gs0vMgaU3Y+V7X\nc3D3E2jXirkI2BWrs1FJ2DUxd2zCinkFcLSIrBGROcCvA+fGN6hQrS+rZHYyxw7c5L2LyVURoRG7\n+cDuWHSpj9aqtqtiAnwHODmlyXyusFNlJ/BdRovmZAm72hE7VbbhhO3BFfdjTCZRFHccwq5v14to\nwWoRrvdjnZYHcSvm/IxCSUa/MSvmMOiLsMus9IybS74JQEROBLZaft3EkZeTC/UidlEQJVqUb7N4\nyjKmC6fAkIunqOrTInIWcCFOKP6Lqt4gIme6p/XjuGp9b8VVTNxJcbW+A0jvGxZvdxDxONm5bLUR\nYRnOHrgOZ/k7AHinL78fJy3HLk3YxRM5YXqidntTY26AtqtiosrDItwKvAC4NPbUeuCrBS8/H3gV\nLloLTrxdlLLdTcCxFa2uUcQOnB1zLWA3FCPiCFxOpwk7x1zgKdyNrc6K6AJghypP+16gcxm9Fhn9\nx4TdMBi7sPOVnk8FlonIHcB7cfMIVdWPq+r5IvJKEdmEO3bePK6xGq3RphUzKaLajNjF8+vw75uW\nqtF68ZRGcuxU9QISkRFV/Vjs57LV+rIUdbxBecR2WhJ2IvwJ8Gc4gXCL//dqnKC4JLF5aMQuKez6\nmDNTR9iFRuzA2SpPZaawy7NighN2G0TYR5U9uGPvX5MbefH4BHAILpJQhqh4Cjg75hHAZSX3YUwu\na4HvAb/SwXstZlrY9fF6Ae76sB13M6st7PzPUZ6dCbthYcJuGIy9j11RpWe/zVldjMUYG20Ku6SI\nepT2iuElhd2juAruaWPqdx+7llia83haxK6tG8XhwLtUeYEqr1PlL3AtFl4V38jbhUKrYmZF7PpE\nq1UxY3wbV0AF2Ps5rsMJ6ExU2Qw8ALzQvybLignVK2PGJ5RWGdNIcgSubcc+Iq1W2YJhROyi3LhH\nqWfFjPYDlmc3VEzYDYMl1C9MYRh1ycvJhfrCLn4tatOKmSbsRuYGIuyLu6dVLS4WRF+F3YwP3n8g\ni5h5w2gtYkd6yPQ8EsIO9+XtUR0ZWxkrZt8aDncVsfsecKLI3hXDQ4HtqrkneUTU9mAZ7jie0R7B\nUzXPLs2KaRgRR+COiztp3445hAblcWHXdMTOGBbWx24YLMHdN03YGeNkUq2Yae+1CHjcO81aYzDC\njuleF8kP5HFgYUtJ9kkRBvB94DCRkcncKmZWaiqbY9cnuqiKia9qeQvTvcBCbJgRUZ7dMcBNOTl0\nTUTsNmMRO2OUtThhdxcdCjtVJ3pEehfJioRdVu+eUOLCziJ2wyQvYrcTmOsXao3xYsLO6ANdWjHb\n7GOXlmOXvBe2XjgFhiXs0lodoMqTgNKOT3zGDcq3YbiA0ajdakbz6yCj3QFukjYEYbcr9nsbVTEj\nNjJtxywj7C4GjgJOIduGiX+uirBLRuxM2BnAXsvwWpzg71TYefp4zVhEMxG7uBXTInYDQ4S5uAqH\nu9Ke9wtwO2hYsItwtAh/2eQ+ZwFLcCkNJuyMcdK2sEtG7MZZFbP1wikwLGGX1uogoi07ZlrEDmba\nMSc9Ytd4VcwYUQEVKCHsfLuIbwBvI1/Y3UhJK6afuMc/g9txUdq+ni9GtxyE61fzGC0Lu1gbgXif\nyz4WUIlH7JqyYlrErgQimbnpXTIFPFpQhbgNO+bzcf1sjXAsYmf0gdlkxWy9cAoMS9ilRuw8bfn2\ns4TdBcCpIntXk9MidkMWdskS420VTwGXZ/civ9JbJmIHzo55KPnCbjNwSOy7CmEOrtfgHtjbO+8R\n/16GsRYXxQV33qeVNG6KeYz2vYR+5tk1VTzFcuyqc4tIa6vRoYRMXNq4X6/EVT82wpnVwk6ENSJ8\nIpbjb4yHrq2YYyuewiwXdmkrj+OI2KV+Cao8DPyI6UhTVsRutlXFLG3F9IVSbgROoLyw+7r/P1PY\neevsDcDvlsjDjLc6iLACKkZEVDgF2rdiJm2Y0M9rRtTuoPKKqI+Ix689FrELxC9cLcNNLsbJOIXd\nMpukh+HvhbPdivkM4DeBj7ZUo8EIo0sr5mPAVEvfd1LY7QT2S1yTLMcuQVqrg4iuI3YwasectIhd\nZ8LO823g54A1wE9CX6TKfcDrccItj9cAvwX8swjzAnad1jvL8uwaQoTPi/CCcY+jBkfgIsHQflXM\nIQm7usVT5gM7YwWyLGIXTnQ8tN16o4hxCjuwqF0o83FpE9sYYx+7MTOFWxw+HvjjMY9lNpNXRRca\ntGJ658su2tELI8LO29GT98NZHbEra8VsPGLnq3bNZzS3Jc7XgFd55V8nx+4hYHnICoII+4twStF2\nDZAUdrsBCVgNrSrsNgL/A7hbNT3pPgtVPu+jcnnbbAJOwp1U30lUNE0jXjglYjMm7JpiHcOegK1l\nvBG7PufY1clhiNswwSJ2ZTjI/2/CzgghipLM5j52U8C9wC8AZ4nwK2Mez2ylSysmtGfHTEbsYOb9\n0IqnpDyWZ8Vs+kZR1G/ietzn9wyyq2IuShFsI8JOlSdwYihNBCb5ReBzAdvVZUTY+ZWHkJtxVWH3\nPZw4LmPDLIUq23GRuy8Dl4vw4pzNsyJ2a9sZ3axjCQRFTvtK3Ir5CDBHJOj8rcJsitglhZ1F7MLp\nS8SuaPUd2hN2dzIt8Ix8TNj5aI4qW4DTgY8N3EkyVLq0YkILBVT8PH8ZYcLOInYxioqnNJ1jl2fD\njMTOecAZftsHE88/hRM5yRXntP2GFkN4A3Bwm35wn+eSVgQlpOVBlaqYqLIN+AEtCjv/PqrK+4H3\nAO/L2bSXETsR+RcRuU9ErsnZ5oMicouIXC0ix3c5vhJMgrDbDHuvA3fhFibaIEvY9a14ShPtDuKt\nDqDnEbuQ87FDZnvE7hDgSkzYhRJNpp9k9gq7vceqKlcCvwN8RcSOoa7wzriF5EexmqyKCe1E7Bbi\nipwlAwLJYmIm7FIe67J4SsgX8DXg/8ZZCNMie2l2zCxhl7sC70tZvwx3IW6zrPVcXCn3ZLnqkJtx\nlaqYEf8GfLPia8tyLfkR0r4WT/kE8PKsJ0XkNOAoVV0HnAl8tKuBlWSKgUZi/MLH4Uzn2EG7lTGT\nfS+h3xG7x4F5IuxfYR9Di9jlno8d05eIXefCzqcILMFd182KGYZF7BK2OFW+guuP+/NjG9HsYzHO\nGfd0zjZNWzHbaHmQZsOEme1/ZnXxlLSJQdftDnIjdp5v41ZKkzbMiLTKmJWEHS4yeKF/r4MLtq1D\nsjl5RJtWTFT5qCrnVnltBYr+ljQr5p3AoSLs19qoClDVi8he3ABnJ/mU3/YyYImIrOhibKH4thZz\nGW7EbiUnbJMaAAAgAElEQVTwiG+BEdFmAZUhWTG3xxLGq1hTB5VjF3A+dslyYA+zUNgBK3DVHe8m\nJ2InwjwRfr3B9x0yJuzSJ9mbcAt3RjdMkW/DhAFYMckWdmbFjJEWKu06Ylco7Pzk7lvMLJwS0VjE\nDmfD/Cyu70ybk/Vk4ZSIVoVdxxRZd2dYMVV5EriPdnuW1WUVTmREbKE9iyAi/IwIf1DyZdFFbqjC\nLl4RM6LNAipDK54C1W+cCxlWxK5PHATcQXs9mkIJmag1LexWAvf4f3k2uucBH27wfYeMCbv0SfYd\nmLDrkqL8OqhvxeyieEoZYdd68ZSxRR8KiD74B2KP1aqKKcJin8sVSqiy/mem8xuSNCLsRDgcOA5X\nmveNNBCxE+EdwIdTQuBZwm4HkyXsykbsYNqOeVvKc4NDRDbEft2oqhtL7uLFwP8F/GOJ10R+86EK\nu7XM/P7vwpXMboMsYbdMBEmxTI+LuLCrWkBlASVz7ETkVKb7ifaSBs6zEJbjog2zMWIXKuzW4M6b\nJb5/6mymlLAbwnlWgSxhZ9Uxu6M1YedrUfQhYtd5jl1fhd0jzFTURX3sMr31IjwT+Azw/BJjCLFi\nRr7sLJqK2L0O+A9VdolwPzWFnU9Y/QfgHFwUKs5c6kXsShdPGQNFf0ta8RRwE/ojcRbcPrKF0Yji\narKjyajqhprvdxhuslSG6II61EhMvCJmxF3Aq1t6vxnCTpUdIuwhIYREWACsVm23CFEGQRE7b8Vd\nqJp6EyydY+dF0sbp/ct7g0fcEQ2cZyEchOvnOZQG5U2mE0TC7l7yc+yiSMwRwNUNvv8QiQu7wj52\nQzjPKpA2F7OIXbe0GbGbC2hKC62tNC/sluEWXJM8xmihM7NiRr945X0A+RG7vIn6QZS/kTTxBWwn\nJux84YUFlM+ZeSPOhglOiNW1Yh6A++7TwtF5VsyQqphDiNg9AezvBW4aacVTAG4CjmltVGGI/5fG\nucCbAETkRGCrqiaFe5McBqwpWaV1Uq2YbRZPSV4vIP2a8bvAB1oaRxFRVUzIj9i9juwxJq2Yvc6x\n8+Sdj11iETsn7Fb4+2wa0SLUkQ2+d+uIMD/nb6qKWTHTj9U7gcPbrDxujNCmsMsKzjzK+KyYs7p4\nylZGKz/OB/aklBKNKMqZWkL5G15QxK6AZMRuIbAzpYJmprAT4Tm4C9BF/qHaETumVxDSPpM6OXZ1\nqmJ2hrev5VlLs6yYYxV2IvI54BJgvYjcISJvFpEzReQtAKp6PnCbiGwCPgb8XstDOhx3vJQ5Hocu\n7NYyM2LXdfEUSM+ze03KY10RmmO3muyFqaQVs9c5dmnn4xiHcxD9EHbj6GO3ErjHr8xvI7sVyBrg\nVsbctqYCn8AtiDSJCbsUYafKY7g5zLgj371FhK+I8G6Ryv1K47Qp7LIWmSa+eEpfrZjJ5Ma8wilQ\nnGM3hWsWvp/vLxdCU8IuPq6sfeYVQ3gj8LmYGGyieEp04ysbsZuUHDuY/nvSTrIsK+aNwLFtDioP\nVX19wDZndTEWz2G4idIaZlp6sxh6jl2aFfMhYIEIC1VHhEkTBEXsRFiLs5pnVehtm1Bht4LsiffQ\nqmIWno9d4KM5S3Hn4riF3Tgjdvj/D2E0Pz9iDc5OOKiIHXAULp/5s0UblsD62GXPx+7AHStp1rpZ\njQjzgVfgzuFNInwA+JAXxFUIWQhqWti1VTzlppTH03LsWi+e0kjETkReISI3isjNIvKujG3KNE5O\nfvB5hVOg+EYxlfg/hCaUdTJil3UhSY3Y+Rv263H5gRH30VzEzoRdOlkRu5/grIdVenRNFH61bj9c\nrkqZPLsluEWawQk73+riUEYrj7bdpDxP2MUF0hnAVxhf4/KFTI8zz4p5CNmLWGnCrrcRux6xFHdf\neYiSwk6EBSK8oMGxjEvY3et/vpfsAiqH4/KjhybsVgEnNLzPXkTsiuaOInKKiGwVkSv9v/c0876Z\nhTUAbicnz06EvxDhr5sYxwA5ArhdlTfgCqcdixN4Z1Tc37ismJ33sfP55UJ6O7FGqS3sRGQfXAnh\nlwPPAl4nIscmtinbOLmNiB2U+zLbsGLmCbu0CdkpwIOqXB97rImIXTSxKiPsJqkqJuRPLlIjdt7q\ncyduBXW2cxjus9hMucbtS3CTryFO2FcD9/nWF0naankQmmP3a7gKvQu6Xnjwk6S4jTLvxnkI2eIz\nHvUDd83pbcSuRyzHHQ9VJiynARtFShdByqIPEbsZwk6EA3CTqisZkLDz5/JBwDNFGl0MG7uwC5k7\ner6rqs/3/97X0NtnFdaA4gIqpwL/s0Krn0ngKJwzAFVuUuU3gD+Gyv0hZ5MVcwp4rItK1k1E7E4A\nblHV21V1N67S4umJbco2Tk5WxSyK2BUVT1mS+D+ELoXd3vLlicd/g5n2i75H7IZQFROKI3ZpVkzo\nRwGVPnAY7gZ4O+UidlO4Y3hsETtvJ6lCmg0zoq0CKoXCztswj8T11HyE7vND5gJPxVqn5EXsVgAL\nMyapFrGrxkE46+HjwNySwn45oMDH6haMEGEOLoqfde2MaEzY+QJYBzMdsYusmEnW4K5Vm3Gui6zC\nWX1jJe56eRPw3Ab3O3ZhR9jcEdopTpRniSsSduuBVwHvFOG1TQ+s5xyJcy7FuZfqfaTbjth1ZcXM\nqooZF3adFE6BZoRdsilymiWpbOPkshG7ouIp0SSjzJfZmRXTRwB2EBOeIqwEfgn4t8TmjwFzakxO\nwR2EO8gWdmmrWJNUFROqWTFhzHl2PeJw3DldVtgtYczCDrjG94YsS1pFzIi2CqiEFE/5NeA/ff7w\nOJqXJyNtRRG7HaRH7dLaHVjErpjlOGeHUr6H4DLg4zgB8Yaa41hM2Ip0kxG75cCjsSh6lhVzDXCH\nKjtwK+uHNvT+bbMKN6e6nGbtmCPtDsZUBTJk7ghwkk/hOU9EntnQe+dNsjOFnQiLcAtnF+PE3YdE\neGlim7Ui/JUIr2horH3iKGYKu8I+0jkEC7sKx2iWeB9XH7tOCqdAb4unvPhV8LwXinxkA7ARNCRi\n10cr5ki7g4J9Rivw0d/5+8BnVEeTwFXRWC+72yuOaxkunN50xG4QVTE9pa2Ynptwiey5TGhD1zh1\nrJj3Ub7/XZMcAjwDdwMvw1ryI3bH1RhTFiE5dq8B/tT//BDd59nFWx1AhrgQYSFu8ecW3BiTPRbT\n2h1YxK6YKGIH05OW0MIPy3Bi6LeBr4nw38l7TglCJy5NCrtDmLZh4n9+Ucp2hzN9v7wVF3m4M2W7\nvhH1Ir0cRgVEVfwEeQlOEO8R4Sn6e+/+IXC4qu7wKT1fwUXMUhGRDbFfN/r+e2nkHat5Ebt1wCZf\nzO4aH7H7ghdxa4G3AC8ArsLZSy/IGutAOQr4P4nHWhV2qjzt+7buRzlHWNZ3vB2YX7KYYib+fMoS\ndttxhRv3IbBwShNzxyaE3RZGT4K0psilGifDJWcDR6qevQFAhJ+mOGJXVDxlO+WEXRPVa9KqYqZN\n0mBa2G3y+QC/DTwvY9u6wm45btVlNhdPybPvFkXsCsuaT2hD1ziHAd/DR+xEkEDv+BLgR4wpYucv\nsItwk4P/LvnyI4BvZjx3F7SyQptrxRThCKar/cF4hF1oxG4FTkRk5RQn2x3sxN2AQ4+t2UqUYwfl\nV6OXAdercoUInwH+EVeJuQrjEHbx/DootmLCtLD7TkNjQITXAM9Spenr/GrcteUKILUwXQXm4dpH\nRc6cyOrW9b27cO6oqttjP39dRD4iIgeqatokGlXdEPjeVa2YxxCrfqjKt0V4O+77uRgX/f4l3LXu\n8gm8dqVZMesIuymKI3YwXb21jLBLjcr6xYxt/r1Tj6OSzMfla6bVZXhahMf9WIKuj03MHZuwYl4B\nHC0ia0RkDi6J8tzENmUbJ5e1Yj7pds2cjOencCdrGStmE37Y0Bw7GC2G8Dbgv1QzIwp1m5Qvw/U8\nSvs85jI7hF3ViN2NwLHWwNRF7FTZisvRCT23ohy7cUViou88c9U3hzwr5riKp/wa8OXYymPfhd19\nZNtFR6yYPmdvN7O3HHsoaRG7UOK5IX8BvFiE0yqOI1TY7cAV+WniGpoUdnlWzKSwa5JjqHZNKSKy\nYv4YOFRkpL9vVZIl5seVZ1c4d4zXYhCREwDJEnUlyZvf3YNbNEv7TNYDN8cfUOUcYJEqP63KZ3y/\n5Ttw166JKbTmF0XX4ounxGjbignVjtE88d6kHTMrWpd8r86smLWFnao+DZwFXAhcD5yjqjfUbJxc\nqniKXxHJi8AswZ1ofS2eAtMr8AuAtwN/n7Pfuk3Kl+FWXco0KM+tiulv0kMrnpJ1McornhKtjI+r\nEXRfiIqnQDk75rhz7KLzscokbC0dFk/xC1X7kL5YEomj1wD/Hns8KxrWJvFWB5Cd53UIbuKdJT6T\nVkywPLsQ6kbsHgLwPRjfAnxUpNL1LaQnVSTYd9HM4k5axC4zx87/3IawWwaNiK4kq4Et/jO7Ehpp\nTZGcTI+ll13I3BE4Q0SuE5GrgH+CxoqVZE6y/Wd9N+n5fiMRu9hrdiZ+V+Ai4OTaI+0Pq4BHfJ5q\nnKIaF3m0LeyyrkdNFlAJEXZTdFg8pZEcO1W9gESlQFX9WOL3Mo2Ty0bsYPrgSttuCvgBgTc8vzKR\nnKxUIU3YZTUQjlbgfwu4RJUf5+y3bsuDSNhlWTHTDr6iiN1+wNOxRup9p1LxFJ/jGBVQqZqLMmi8\niI9y7GC6gMpVAS9fgjt+xyXsFuEmMqWEnV+9PYhsC/kDwGIR5qdZMiqyENieYeV5CCeU9mfUUtbn\niF0k7EKtmGB5diE0FbFDlW+K8CngBhH+Htd8OMuWnqTMinR0/U1OEsuyEuc+iXgM2FeERaoj9+9k\njt0RNd83yTKar7QH01ZMmC6g8o2a+0xOpsdWGbNo7qiqZwNnt/DWRcdqZMdMRqfWAx8KfI+LgZcA\nnyw9un6yt9VBgigCv0+Z+Z+fR4SKncxjVIQTcdbiyxNP5e27yYhdVkXMiKiX3XAidi3xBLBPrCR2\nUfEUyI/YlbViLgR2xsp3V6VMxO4h3E3qj4C/K9hv5ZYH/mSqmmOXt3I+JBsmVLdigrU8WI47P6JJ\neJnKmONud7AY9/2tLNkXag1wV9Y1wd/Qiqr9liUzJ9eLx53AfyQSwPsg7B4DplKsdlGOXZAV02MR\nu2IaidhFqPLnuObDLwZuEuE3/GJnEVWEXV1GInZ+EWQkz86f50tj27URsVtOexG7pLCrS2+E3Rgp\ncmTNyLPz17NjSFgxc7iYyYrYpeXXRRHOKgtwi4AnAguY5B2jv4pzGiTpoxWzrgswiF4KO39xjkft\nykTs0pjCRRdCv8imvoDHcT2boglOkRXzTcCtqlxWsN86VswoYnEvzRZP6WtVrSyqtjsAa3kQj9aB\nE3Zri17ke0ctxEUXxhWFWYy7lmymXP5DfMU/i6bz7LLy6yLuA76YeGzsVTF96fmnmPkdH8J0jl1I\nuwOwiF0Iy6kQsfNi7QBSJiWq3KjKL+NaIPwe8J8BuwwthAAtCTtPMs/uMJydcU/s+SW+SmtTNB6x\n89/PSpwtELywayA30YRdeMQuzgpgl2pwwY1rgNUinfcVDUKEfxDhN0q8JK3VQUSVPLsg67Yn7xhd\nSHqhwT5ZMS1i54l/8KERuxkHlrdQ7Yu/mAe+dyNeWL8SsYvpFeeQ4il/G7DrOsVTohXaHbj+NcmC\nM1WF3WyL2M12YRcv7LOZsIjdYtznvhPYPzAK0DSLcOfgzZSzYybLqqfRtbD7GWLVszx9iNhBusCw\nHLt2OIhqEbsDgG15K+aqXIQ7zn7W53/nMfaInSeZZxfPr4ui67fRrB1zGbC04aJaB+H6Akb34ztw\nc7a6rgATdtWEXWp+XRb+vLqcgPZIXSPCMbhaDs8u8bIsKyZUF3ahC0FFwu44EfZPPN6VFTM0x86E\nHTOFXUjELu1GEa0ibqWcsGsqZBq3Y+bt9ye4/iBZ5dTj1InYLQMe8lHRtIM7r3hKXiWzSRJ2ecVT\nwEXsZrMVMy1iFyLsot5JyvgmE9E5WEXY3VuwTdMFVHKFnSq3p+Tf9aFBOaQXUIm3OxgZo4/mzmHm\ntccidjmIMB+X3xwdJ2UmLEW5IcBe2++1FNsAOxV2/l6UJeziLQ/Sou1N2zGX41wrTR6rcRtm5GRq\nwo6ZJuyyKopPKqWtmKRUxAygr3bMv8SJ1DLzyFQrpmecwm4R7vh9RuLxPOddlxG7KMeus+IpfRZ2\njwAHiLAfbsW2SGhlHVjRzeZRypVkb0PYRdGCGajyI1V+NrDnSZ2I3XKmb+ZpB/c82NvfJj6+p3HC\nLevGNWnCLs+KeStwWEY55NnA4VQTdnGr1hOMJ88uyltrQ9jdSbcRuzT6HrHLsmLOB3akXP8sYpfP\ncuDB2OfWuLDzhExQu47YLQF2x3J9I5JWzHirg4jbaEjY+UjBAv++TebZRa0O4lxBO8Jutt3LQiJ2\nyXtaqYid5yJcAZXeIMJzgVNw4q6MsGvDitlUxO4RZtox877jpiN2eddRs2LGiETHEpwdoajaTlbx\nlLiw69SK6QmN2JXhQeBAv8pdlmVM23ayhF2WqMm7GQ+p1QHUsGL6HKLbmaAeNSVJRuwewEVziy7s\n8Qv5uIRdHStmSMRu3MLuYZq3hBWRVkF4JGLnx5Mn7LIqJFrELp94fh20J+wuodhS1rWwW0n6OZlm\nxWwzYncgbmKZbNNUlxkNu2kvYmfCbpQ7gMMT19EqEbvvA8/r2SLw+3ApP7cRGCAQ4QDcHC+rEvi4\nI3YXExN2/nvLDKTQrLBbwfScOu+9ZnfxFM9W3OpXSOEUyC6eEp3AfbdiBuO921uptjIfv5lXEXZZ\nq+cTEbHzeV9zSIlaJhhLARUReYWI3CgiN4vIu1KeP0VEtorIlf7fe1oYxoiw89GCkKhdPFn6CcYz\nYZ8YK2YaftFhJ83dtABn+UvJx40IidhNAU/5EvRbca0h4u120lodgEXsiojn10E5Z0rcvVHExcBJ\nBXmxZYohNCXs0vJek1bMkRw7T5PCLqpK+gjNRuxGrJieK4AXVFzUjTBhVzAXU+Ux3HwmXvikdMRO\nlW3ALcDzK4yxcUQ4CXgOrp90merqR+IK+2U5ysYdsfsecHzssQXAkzn5w01aMZ8J3JDzvOXYxYg+\n+JDCKZB9YEUHzxO4/jYhF7Amv4A2InZQPc8uKeySE8C5VIvYTUpVzLm4yldFltjOWx6IyD7Ah4GX\nA88CXiciaeLyu6r6fP/vfS0MJVk8BcKEXdyKuZPxWjHvwUUZQy/uIcLuJmB9g6uzVSJ20E6T8r8C\nfjfjuZGqmJ5kjl2UXxcVr3iE0UlTWkVMsIhdEfFWB9BSxE6Ve3HfWTKPJc44InZpwi5pxWw7xy76\nHJucLEKKFVOVh3D3/jr3nmT10rE0KB8zIcfq3jw7b7ddQ7YVMY8+5dn9NfBXquzCRd8ODnR35Nkw\nYfzC7mLg+NjfUvT9NhKx8wWlVjHaSzOJ9bGLEV0ky0TsMq2YOcVC0mhSgG0HFvnV6bnUb8gaUbWX\nXUiOXVUr5iQIu6LCKRHjiNidANyiqrer6m7gHOD0lO1as+H5leJDmGkRCml50Acr5mJcJUDFRe3W\nBb6usCqmX+W9GfipWiOcpqqwayPPbjnZ1fhCInaRDTMiOcYsK+asi9iJ8H4Rfjtw83hzcmjPignF\nE9S+CLu9VkwfYVzNqHUcfFXMhizLbQm7tIgd1LdjWsSupLDDVVDd4gVRWXoh7ER4Ge6Y+iTsLYq0\ni7DrRRvCrkx7lCIr5mY/hqjSbVE6VRkHXx7PAG4u6MUXXZOteArTfvW6Ebv4CRx602ujeMoiYHtg\ncZQQ7qdaAZU2c+yGJOyycjKLCqdEjKPlwSpGJyh3kT7ZPklErhaR80TkmQ2P4RDgYW/5i7OZ8lbM\ncebYQaAd01sQp8ivfBXxPVxz5ybok7CbInshKVTYxSOeycqYWVbM2Rixex5wauC2nUTsPH0TdlmL\nLQ/g8kz3xwm8R2ItAwDwluDHGLVsVqVNK2ZyAQ1M2DVByBwvLuyq5NdFXASc3HHe8wj+vf8GeK/q\nSC2E0ABBXkVMGH/E7nHgKqbz7Iq+3zKW9TyOA64r2CZ6r6r389L0WdjFrZghEbui4inxfRbRRvGU\nJqOA0IwVM+3gzhN2O5gcYZc1sSjqYRdxI3DMOC/WGfwQOFxVj8fZNr+StaFIJd9/siJmRGiOXTxi\nN64cu+jiGppndzBwf0ABJ5hsYXdQxnMh7Q72WjE9yTFmWTFnXcQON4l6YeC2yYjddmBeSk+nNNoQ\ndl02KE+N2PkKzg/gztu0wikRTdkxG4/Y+ftKXsTuRTV2P6uFXUBhjYi4sKtSERMAVe7E3e9C3SFt\nsBb3t3wh8XjoPDKvhx2MSdj57zIu7KI8u06smDhhd33BNo8ChwI7/bWpdYYg7A4gLGKXVTwlHiUY\nhxWzLWFXteVB3eIpk1IVcycwNyUJPShi53MdnqJ624kqbGG0t86MFV1V3a6qO/zPXwf2F5F4LlOM\nt31BRDb4f6cGjiFZETMixIrZlxy7UhE7wvLrIr6HW51t4to6ZGFX1opZKcdORE6NHcMbsrYbCt6y\nfxiwSiQo+jMSsfOOkLQegmmUFXY/BpaJzLzmVUg1aNOKCdN5dmn5dRFNCbs2InZLcMWG0uYM1wLP\nKLrG5FQpnu197BYCTxTY56C5iB2M3465CticsjgZ6vxqK8cuNICStfgwF3jaRyHjEbsQK2YTizDP\nIixid1DBeBql78JuKc1E7KKL2DitmH2J2NXNsctaPR9U8RQ/AdrJzL8nNGIH3TcqvwI4WkTWiMgc\n4NeBc+MbiMiK2M8nAKKqGRbCs/cF/baqblDVjYFjSCucAuFWzHHn2JW2YlJC2KlyHy5acFyl0Y3S\nN2GXZ8XMbXdAsRWzUo6dqm70x+8GVd2Qtd2AWI0TwD8EXhCwfTJiB+H3uVLCzk8KLyV9gjrFdO5q\nCG0LuyjPbpARO7KjdVGlxW2MFogZwYu6u0RSr7ETG7HzPdqKCLUMNxKx84xb2K0E7k55vNCK6VMR\nVpJ+34+oIuxCoqYRWcdofFHxagKtmJE1O+P8KEOIFfOxxP+t03dh10TEblKtmHUidpZj50j7e0Jz\n7KDjPDtVfRo4C7gQF/4/R1VvEJEzReQtfrMzROQ6EbkK+CfgtTm7fC/wtyXtpFkRu3tweS15F8o+\n5NjFrZi34KpYFv39ZSJ20Jwds8yNL85DjIqmJmgiYldkxbQcu2nL0xWE2TGTOXbQkrDzZE1Q3+if\nC6ULYXcI6a0OIpoWdk1G7LLy6yI2kd9HdR3uGBipYuor9u7D6D1uYoQd8BsB24TOxZqO2L1EhH1E\n2E+EOSLMa8jZEcKhpAu7kADBGlzhmDxHVhVhl3bfyCLrGI0vfm7GVbo+mDDxXsuOKcISXGXnzXnb\n+XoETwSMpzGGIOzKROyaKp7SeFXMhvcJFSJ2/qI+h+kTYUTY+QnuPLJ7uM0WYdfXiB2qeoGqHqOq\n61T17/xjH1PVj/ufz1bV41T1ear6YlW9LGd3n8Mdl68uMYRUYedX85NW0STx6PlYq2ICqLIVFxEq\nKqAwTmHXp4jdAl/eOUlau4Ood0+E5diFcSROcIQWyEiL2IVWfGtE2IkwBfwZ8O4S+6kl7ESYj7t+\nZM0NIitmFxG7SFw3GbGb0eogwSbg6Jzno3yuZyceXwI8moisTpKwe0OiP2YaoRG7e4CDRFiG+9zy\nhHYR1/h9PI27923H3Yc+UmOfZTiU9EWQECtmkQ0TsgMreTQh7Pbuwx/TV+Py7EKCMw+SvVgZwjOB\nGwJz7x8NGE9jTJKwy2134H8uY8UcQsSurBVzGfBQ7KKevBHtj/MrZyV4zgZhV8aKOY7KmI3hv+c/\nA/6mRMPbrOIpUFxApQ/FU5JRsBA7ZiVh10BhnV70sfPHxnzciu9BieeE9Ghb1LsnIpljF2rFnG0R\nu0jYFUbs/Gr/UmZWay28z3mBLpRvv3M58GwvrCL+GLhAlWtK7KduxG4lcG+O9TOyYnaRY9dWxK6O\nsFuPO3dShV3isUnqY3cn8LKCbYLmdz4H7x7gpcAtgRP4rH09DRyqiqiynypzcAVwmiq0VURlKyZh\nwi4rFSqPpoRd/B4Z5dmFpFPdhTvPqhJiw4x4NGA8jdFbYef7hTyFW2lookE5hK9kDqF4yv3AipKT\nx3h+HcwUdnk2TCiuijmk4ilQ34rZecSuBf4Ld1y+LnD7rBw7KM6zi5+LnRdPiVVDi98I2hB2t+Im\nzUcUbVhAXyJ20bXrfmaucM4DdqcsBu0VF16AHExx8ZS0m/wOZqew2wzMEcnsHQju2r0txSIVsoCZ\nXOQLQpUdOBv4CwBEWAm8FfjzMvuhGWGX11cyJMfublwxmLrHV1COnQiLRHIbvMcpsmL+hOKI3QWE\nCbtJith9CnhTwTZl5mJ3AD9Hvfw6YG9EKc51uF6KZSNdVahjxSxqdQDjtWLG9xHl2YVE7O7CzWeq\nUkbYPRYwnsborbDzbMVNjppqdxDau6L3xVNUeRzYQ7mbYzy/DmYK3bnkixqL2I1yK/DRHrY8CMbf\nbP4U2FD0d3gr71JGJ+hxQiJ248yxWwDsSoiQxoWd/0ybsGP2RdhF19A0YZd1c44XT1mK6+EZt3iX\nqYo526yYP/HHUFHU7iBm5tdBuLBLe20IcTvmBuBfVXMLK6TRtrC7l2k3RWpJdX8duIOCar4i/JoI\nv5Tx3L64OcUjTBd8y+IXgA/mvVeMulbM9cCXmX3C7hzgVd4enEUZR1Yk7Ork16Xic6+uhUpth8pS\nR9gVtTqA8Qm75D6ilgch3/Gd1IvYPYviVgcRZsWMsRX3xTVVPCXEohLa4ySUtiJ2UL5JeTKnYjsw\nP+ZJL4rYTUxVTE+tiJ0qT6nyvxpsOj8uvos7NorEwCrgnhyrbmbLA39ejTvHLu0cbCNiB5Mp7KLe\nYC43FPgAACAASURBVHGybs7bcTl5+zLThgnlqmLOpohdfBJVlGe3nJn5dVAiYld6dI6LcS09jgV+\nBfjbCvtoxIqZ8/w9ODfF7QXX5xA75uuBn8947gDgMW/bexRYlGNrPwRyI7BxQqyYR+Usxq0Dvgks\nFiHe7iatxPzECDtVHgQ2Ar+as1lZYXcEDUTsMriCsOq3dclaCGkqx66UsItZ+EOt4KFWzBtxUbiV\nFM+376S7iN1whJ2ILBWRC0XkJhH5bxFJvZmIyGYR+ZGIXCUil5d4i62J//PYBeyb0pg1WRWz6IYX\nreoX9TgJpW1hVybPbuRmHut5FH0mIcJu0iN2ZYqnTAT+OLiF4gaqWRUxIzaTHbGbj+vLFB0j4xB2\naQs2vRR2fnI4l2rH4uPAfg2Uco6IC7u0iN0M8enzUbbjrntpn9/DwAGxqnCDjNiJyCtE5EYRuVlE\n3lVvXyzFLZBFkbS2I3Z1hN2Lgb8D/pfqjBy/ELqwYkK2DTPiZlwRhDxOIHsCuPdz9Mf8NrJ7CK4g\nPEKQK+z8Z/40KdVvvZCbg1tMuY7RqF1WxG4sfexCzh8R+aCI3CIiV4vI8WnbJPg0+XbMMnOx6Php\nPGLnCa1+WxmfTzufmbm44CLNi3xLg7TXCu1YMecz0z2TR5AV09vSfwycRFjErpKwE2E5bv4SWlBn\nOMIO+BPgm6p6DPAtnKUrjT3Aqb5SX0ilr4hHcN3as6o07sVPTkduFt46ti/TYiXEitmkDRO/rzaq\nYkL5lgfJHDsYzQsIEXZZJ++kCLsyVsxJYhPFwi6vcArkWzGTK8XjKJ4Sb3UQ8RNcnkNqJbUo/0G1\ndOTsOuDgtGbOgSwEHq8SDfavaTJql2fFTKuIGREJjGRFzKgwweNMC5DB5diJyD7Ah4GX42w5rxOR\nOsWUjgBujX3nVwAvzCmJPpaInSr3+Pf4KeBDVfaBv/bWsLHnCjvfp2orxcLuUtwkMBWf43go2dV+\nk+0m8gqorMBF0BbnDahgIh4ny465DrjZH0fXEibsOo/YhZw/InIacJSqrgPOBD4asOuvAc8RybwX\nlY3YQXvC7ge0LOzw50ravcQvRqQt2EWswN2HiuauZYVdGRsmhFsxweXZLaLdHLtnAdeXuD9/A/h+\nxfcqTV1hdzrwSf/zJyHdh44rJFDlvbYSll8XkTy4phgt7Rtyw2uyhx1Mi4emBSPUjNh5ygi7vMpH\nkyLsyhRPmSRuIT9nA/ILp4C7UK5MiZrDzAlF58VTSFlc8RPAe8gWpFWidVH+ziXAS8q+1lPVhhnR\nhrArY8WE6ZYHWZ9h3I45xIjdCcAtqnq7qu7G5fecXmN/UeEUAFS5H3d9zjov60Ts0hb5yvBZ4A9U\nqy2C+ZX1PVSPFBVF7MAdc0W5f5cAL84RmCfgJmRZwi55T80roBIt8hTZMVfh+oYVTRqzCqisw13P\nocfCjrDz53RcQRR8654lIpK7WOYDAV/E9VZMo4yw2wzc51vjtMGNuCJ4TVVTTaPoXMmzY4bk10X5\ngmRF/lJoUtgl75NX+f9DrJirKy4ulbFhosrnVflOhfepRF1hd7Cq3gegqveSLTIU+IaIXCEiv1Ni\n/1sJs2FGJIVH8gQOsWI2KsD8BO8J3Ikz7ohdWsJ8WWGXF7EbWlXMNKE6WyN2ta2YfrJ2L+kTl3h+\nHfTHign5dsxKws5Tx47ZhLBrqkl5kRUz6wYd2bzTcuyiMUbic4g5dqsYPR/uIjyHKo00y1Nent24\ncuxQ5c9V+VLV13sq2TF9dP04iu1hd1McsbsDZ2nMqmD7QuC/gf0zCnIk76lFEbttFB8jRfl1EVkR\nu3gz7T4Lu5DzJ7nNlpRt0jif7EW1Mu6pG8iJ6NbFzw+vpN08u6zCKRF5LQ9C8usiykTtsq73WYRW\nxYRpYZcr3lV5DHfuV+k9WUrYdU1RI0dE5BuMigfBCbX3pGyetcJ0sqreIyIH4QTeDap6Uc57bnA/\nvfbZ8Po98ItFw4xIWgWTwu5RYIkIkrMa1nTEDtxF5FDaidgVTcbjWMRulDRraSMROxE5FTi17n46\nJFTYfb1gm824AiqbE48nJxTjKp6SJpYiYZf2t9URdt+lulWtrrBrspddtNhVpiomTAuMQ3B5D0ni\nwi7LirkTV+Ap75rda6bvZwBsVNWNGZseBfwo8ViUg/OZlO0PgtTecaHC7qqCbdomEnYjlkMR9ino\nGfZLwG2q3Fiw/7cz8zo0gioq4qJ2pEcmTgD+N9P5OMkqeEUthOIcgvvMQ4RdSO7OJlzFxiTrgPP8\nz9cCx8XOnyU4sRKnsI/dUO5n0+faMSvgH46BV6ZtFhyx85/ZbQ0NL4vIjvmNlvZfJOzynF9VhF1I\nzm2TEbvk4tY1OMEW8h1H53WqM1CEI4C7UlrKPAsXFW6cJs61QmGnqmkXjmgA94nIClW9T0QOwR0g\nafu4x///gIj8J+5imSnsVHWD2z+PAz9dNMYYuRE7VXaLsJvsSQS0kwu3DXfwtBGxO7lwq2lCcuzy\n8hnzcuyGWhUzGfFspHiKn7xtjH4XkffW3WfL3AKsK5hAFxVPATeROoLY3+7pS45dVsQuq79UHWH3\nA2C9CFN+dbAMk2DFjFoezMixi40x14qpyh6RvRPPvlmktzBq0UudkEf3swCOBP4z8djluMqTaYwt\nYtcQWRG760R4syqXZbzu94F/LNq5anAp8qgYzIh49rmNL8CJ6ztw33Vyn8nPMTVi5/d1EG4yWFRA\npajVQcQmXA/BJHutmKo8LMI2nNV8MxUjdi3dz0LOny2M5kHlit7Y3HEZ2b1Zy1gxu+AK4DUt7r+O\nFfMYXK/bEMpG7JoQdjMidqo8LsKzA/ICYTrPLm2BDOArwH8A/2/0gLduHkd4q4NSNHGu1bVingv8\npv/5fwBfTW4gIgtEZJH/eSGubHBoCPMByvXaSQqPtItY0U2vjVy4bbiDsm/tDqBZK+YQhZ1ZMRmp\nspaaRO0vZmspzlm5jfSWB0kr5jhy7LKsmDfgVuDSqCzsfN7BD6lm5emrsAuqiumJR+zSrJjxqGKe\nNaeveXZXAEeLyBoRmQP8Ou6eWJWRHDvPlbhCEGm5K+OqitkUM66/IizBLbL8fVruiwgvxE3uZ8w1\nahBF7JKsBx72JfQjYZckrTdsWsRuKe7vvZUWrZj+M1vPdI4djNox+2TFDDl/zsVXuBSRE4GtUfpP\nAQ8DczIK1bSxeF+Htitj1rFixm29RYxD2KXuR3VGVDqLzF52fjFmHfAOkZFtVuIqfKcGsvpAXWH3\nfuDnROQm4GW48seIyEoR+ZrfZgVwkYhchUtC/i9VvTBw/58H/qDEeNKKpyRXZory7NqyYsb/b4q8\nEzKNrBy7Uu0OMpJNhyrsWrFiDpS8AiprcE2miyaDm0nPV+mzFfNHuMlz2nFdJ2IH8G3S7VJF9FHY\nbcO1UYiLrLyqmFHELuszDLFiQk/z7FT1aeAs4ELc6u05qho6oRjB542tJpET5ledb8OtECfJi9gV\n5Y30UtjhrF8/xv1tr055zTuADzXYjghcFb2jU3LoTsBFTCFb2CVdMFk5ditw9+uQHLFQYXc/ME9k\n5Ls+GHgy0YKil8Iu6/wRkTNF5C1+m/OB20RkE/Ax4PfC9o2SPWnvW8TuVty86pCW9l/JihlbJOi7\nsKtzn8xreXAYboHgo3ht4+l1fh0EWDHzUNWHgZ9Nefwe/EVZVW/DdYKvsH92kW8NTJK8UaSdwEU3\nvbasmPH/myI4YucnDlPMLEYTr7qWa3dS5SlvZU2Lag1V2FnEbpooz+6SlOeOx02AirgNeHPK42lW\nzHEIuxmTWVUeEGEnbuKWLLZQV9idh+ur9EclX9eEsHtOjdfHmcI1YVaRvVG76HMqyrE70P9LEyAP\nMX1vyGtW29eIHap6Ac6uVJfDgHszWvtcgRMZVyYez4rYbcdN+PdPyQ2J6KuwOxpXKfDfgL8T4euR\niBPhUFzS1FlNDkKVJ0W4EngRo3lOSWE3Y65DelXMlSnblRF2qwjIsfPn4yacGP6hfzgZrQMn7E7z\nP/eqj13a+aOqH0v8XvX7jmx2ycWWXgk7/z3+AGf7/VrR9hUIEXZp88iVuMXc5PGSRS+smCW5k+x8\ntkjU/i1wkwgnqvJ9fKuDGu/ZOnUjdn0jJGI3DivmdmB3SD++kjwMTGWUl0+yFNf6IdkQMi50iyJ2\nkH3yDrEqprU7GCWvgMrzCCu2sJl+R+yyzu0fAc9NeXwl9YTdlcBSEY4q+bo+ReziLoakHbNI2B2N\ns7OlRVgeBJb5Raf9yF4Y6mXErmHSbJgRl5OwaokwH/eZpTWHV6ajpTPwn/diylWcboOsiN0m3AT3\nIVyKR8TvAZ9tqfR8mh0zNGKXtGKmRewiO3KTETuYacdcx8wISy8jdh0wlIgdtGvHLMqxy3J+lYnW\nQY+smCXI62W3HtcPcjvwbuAD3p7Z+4jdJAq7+I0i7SI2Litm455uXznsQbKbS8bJWqEtk2MH+cJu\nEiJ2jRRPGSh5TcpDhd1duMbcyRXgtHYHXU/Ws3LsIFvY1YrY+XP0POBVJV+aZRsNJVXYifBcEb5S\ncl/xiVAZYfcY7uaYlRMTjXEBsCOnaE9vI3ZlEeG3RHhmylN5/aKiiF2c5cCDOZ9Z3gJm1iJf12RF\n7H7i/64/Bv5ShAVeyL4F+GBLYxkRdiLMxU3gomteXo5d0oqZ5giKCgjdCyzPWoz1jy8j+5xJkibs\nkhG7G4Cj/DV5tgm7kUm7CPvi5jl1xEAbRBG7RhFhIe7vzesHnVUV8xiGIezqWjGzihnFhe2ncR0B\n3oAJu84pancAxVbMtoqn1Dn48ghtUp6WXwflhV1WJbOhVsU0K+Y0eTl2QcLOR2buZuYkqC8NyrPO\nwxnCLlbJrm6SdBVh11bE7ueAY0vuK34dTV5viiJ268gWxlFVzLz8OpisiN1vAv8z5fG8iN01uEIQ\nf+uPScjOr4vIE3Z9sGFCtrDbBOBtT9/H5dW9AbhMdYZoaYpLgRf5iT+4a8HNqnuPy7uAQ2PPRzlI\nBxLW7mAFrtH1U7jvLSufaiXOkhsqupPCbkaURZUncE6K5+Du00nL86QKu7RozGKcvbBvrVOuAF5Y\nsVl2HiuBuwv+3gdwi7HJ9y4bscurmp6kT1bMrCble/9+v0D7+zhb5jMxK2anNGHFHEzEzhNaQMUi\ndjMZnBVTRF4hIjeKyM0i8q6MbT4oIreIyNUiUia/dW/Lg9H9sRx3Lm0O3M9tzLRj9iXHrkzEbhku\nt6zucf0N4MUiwTc9aE/YnUz4zTeiTsRuHtnCLqqKWdSsdmIidrjV4dekRLQzhZ0//k4GTgE+66NJ\nWfl1EUXCrky16bbIs2JGvBv4Q+D/Af6prYGo8gDuXhpFU+M2zCjf/2FGc5GmgCcS14ei4imQb8dc\nQ3FLmTg/oThiB86OeTIuUpuc5D8JzG1BVIybtGhMH22Y4I6JPSQWREWYL5JpFQyhyIYZCf8dzFyQ\nqGLFzOpznKSssHsS2D+2sBXfT+X7pF+4eYL0e+XI36/KJbjetI+2ZAdvjEkTdiHFU0KsmG1E7NoS\ndveTHWWJk9bDDkzYDSZiJyL7AB8GXo5L4H2diByb2OY04ChVXQeciavoFIQqj+C+w+RCwfHA1QVN\ng+OktTxIs2L2pd0BuAv4oQnxVbdwCrC3suFlpBdfyKKusHsEWJISYTgZUkuA51Ek7PLaHUB+xC5E\n2E1ExM5//ofiJuOvSDx9JDmNgH3J/Zfh8uq+gZt0TFTEzldbXU6scIgqNwNfwF2XvtXyeOJ2zBcS\nE3aepB2zqH1QnFBh9wzgpsDxAnuLp0QOg70RzwTXAi9hpg0zclkoNYvp9ZC0iod9a3UA7M2LvYKY\nHdNXab2Qei1UigqnRKQ5v9ZT7lgsY8UscmmM4Oceu5lZ5KduxA5SIrt+8WwVM5vT/yHOIt5rJk3Y\nhUbsxmHFbOti8s/Ae0V4d3wSl0KTEbu0VZlJEXZ9jtidANyiqrer6m7gHOD0xDanA58CUNXLgCUi\nUqbXYVoBldD8uojNpEfs4pOKXbjKfV2uEmdaMf3k5gamiwxAQ8LO8zXK2TFrCTtv5XqU0ejBOtzN\ncVHo5+63i0+GkhOAvBtr9H2n5gv5leKn/P7ybs6TErFbjvtO/xl4Y+K5PCsmAKrsBF6Lsyf+E/Ui\ndr0TdrjP4LYUG+IfAad1YJ+7BLfwAe5ae0Xi+TuZKeyS30FWxC5+LbmLbGF3LDOrOOaxBVecaaHf\n59aMxsyZws4ziXbMNCtmXyN2ECugIsJS3ALO9cAakcKCO1mUEXZ75wk+13MNBdekBG3m2EHiGPXz\n3bnUX4hPi+weCdyRrCqsyj2qfK7m+7XOpAm75I2iSoPyNqyYW2mpApkqG4GfwjV+/0bOBSDLfrMN\n10MlSiouqtyZ5aMeYlXMHcD8RHi/z8VTVjFq00mbICS3CanCFietgEpoq4OItIjdyLnoV+CepNvJ\nRNFqbdKO2aSwOw94VQkhWzdiBzPtmC8BvoP73EMjYAuAXbGqlmWtmJD/GT6Im3xNfMSO6WqHXwJe\n7ptxR5O4/QgQW6rsUeWPgd8hvzT6EIVd0oYJOEGrGlwlsg6X4CzTS3DHZDKPJhmxS3PBPAGIyAw3\nQjJil1Ww4RmUEHb+Onor7rPLsmGCE3aHMLuE3VZgn0R/wj4Lux8ALxDhIFx0+mLgrbioXTLCH8pK\nqkXsjgC2lKzk3qmww0f9GljwSYvslrWh9opJE3ZNNChvI2L3VeDtDe9zL/6m9zLcxeBKEX4xZbNU\nK6a/MUSlsWeVFdP/7TsZnTT21orZEWkFVJqK2CXPxa4LqORZMaFFYeeLPmzHfZYhtCHsTgYu8vsN\ntWMmr6Fl2x1A/mf4EG6yPBty7FbjJksP467Vv+IfPxK4tcwERZVPqHJhziZDFHZHk2NH7YAbcJ/N\nq4CrUlp0FFox/Xc4ErXzizkHM12EqciKWbbJfVRAJW8yehvu884TdmPpZdcW/rtIRu16acX0RBG7\njcD5wB/6v+F8XP/GKhxKQY6dJ1mroYqw6VrYNWHDhHRhdwzlbKi9YhKFXUiD8k5z7FR5QrWxlf+s\n93halfcBvwR8MiVyl3czj+yYdYTdEKtiQmxy4aOW+9HfyOMWRicWq5nZyHYLoxeptG0AEJENsX+n\n+odHrJg+72Ut5SYbIxE7b+uYw8yLcGd5djFLYZ5YajNiB+WqY7Yl7C7GXd9Cb8DJa2hwVUy/2vsk\n+aXbQ4RdZsRORE6NH8c5++gD8f5kn8FVeoQAG2YF8u5zWfnWXZMm7NLywzrBL/RFVTiT+XWQLuyK\nKk2DE3k7vPUYMoSdt1MeTHiRqoiogEpmxM7/bdczuyJ2MNNm19uInS/gczfweVX+LLbQcwHwspSC\nSyFUzbEbgrCr28MuIs2yaxG7HlGr3UFKPsngUOVSXO7VbyeeyhN20Wcyl+rtDgYXsfPE/555wM4e\nlkKOuAI4WkTWiMgc4NeZmVh9LvAmABE5Ediqqhk5Troh9m+jfziZY/cc4MaSlSHvweV9RJPxKVx1\nyeTn2mUBlXnAU0nPfIJrgGfHrLmdCDsR1orMKHXdqLDz9p6VuP472+gmYgfwbdyEOIvIilkpx05V\nN8aP45x99IFVTAu784Dn+wW43MIpFRlixC7Vitkxl5CoiBkjxIoJM5uUx22YkB2xOwbYVKG/YFRA\nZT3ZVkxwdszZKOzik/beCjvPs/0C/V5UuR8nMk5Of0kuZayY8Vz8soVTYDzCrok2Ymk5dibsesTe\nA8tXtdmHmUIlz4o5Hzf5G6JAifP/Ab8jMlLlKq/EdRMRu0kQdn0unIKqPg2chfPcXw+co6o3iMiZ\nIvIWv835wG0isgn4GPB7Jd9mE3B0TGQcTzkbZrQ6fAfTUbs0GyZ026S8cMHGVwV9GDfRhuaF3XeB\nY0WmV0ZFeCNOsH8G2CzC/xbhJOo3KIfRiN2LgUv9pLGOFXMbruz0fH+M5FY3U+UVqrkTqVoRu4Gx\nN2Lnozdfxi3OdB2x66uwG7cVE5ywg/CIXdrnmGxSnryObAFWpeTbVrFhwrQVcx35k9F/B76Z8dyk\nCrshWTFJsf9GVLVjVrVilm1ODpNlxTRh1yPiN4qsKEHeDa/XJ30oqlwD3A78Quzh/7+9sw+2rCrP\n/O9F5KNpRFQaFRAFWhrxA4yhVIx2mUExWkEdqkb+mPiRMiYZ57OSUYMVOlYyUSszJhXLlBrNaKIh\nVTogoCgwDkxZijIKSEN30wgN3dg0jdLStxuaj37nj7X2vfuee/Y++5z9vc/zq6LuPaf3XWdx71ln\nr2e9z/u+efYbCbtAlwunAODu33b30919rbt/PD73WXf/XOqaD7r7ae7+Cnf/yXTjs4fwHkga6E6b\nX5ewjSVhN9rqIGGqHLt4WDMrRSNgaTtmpcIuHhj9b+AtZqwy44vARwn5sesI0bwF4AuE9Vr2ZDkt\n7F5HsGFCCStm/Dx9kBC1OxJ4fIYIw+gc5yrHLvX4K4TqmKcyv8JuFUC0mZ1AuG+1yY3A1xlvh9xN\nKDSW3C/yrJiZETt3Fgj3ytHqmWWE3TrC521ey4zvuPONjH9uupBVU/TGijmBqYVdfJ8eRrHCfX21\nYlYRsdtBOGg5BCAWT1pNsUhnJxmasEu/sbIW8F7g6DGNDqGeipht8XeEikqJxfRZVCfssqyYXc1N\nyyNt3533wikJ6QIqswq7dJPycdVpYQorZrQS3l2iPULRQ5vahF3kmwSb9E2EvNRXufNTd9ydje5c\n4s5LgDVxA1iGpAE4LBVOgXJWTAgb3DVUk+PwEEEgTrJiDipiF7mBIOBfQ/XCLs+Z0iVhl9xLTgZ2\ntO2WcWefOxeOs+PH59Kn+1mHpaMRu1ErJoy3Y07b6iDhPsJ63JXK45uWoUbs+mbFzOL/AceZrag2\nncfzgJ8XTC1ZtGLGXq7HwtSVaHuZYxfbyCywlGKwFtja4ZSciQxN2D1GsAkdSsYCnmBFqqMiZlt8\nDTjLjLWE/6/Hcm6a0wi7rHYHvS+eQsetmA2yFVgb19GZhNyzaUkXUCkt7AiboOezFEmclqmEXYwO\nHk2wZlbJtwg2l/8O/E6WeIuVE8vyC+A5MdfxFSzZy8pYMWEpz66KG2uyMZ5kxex1xC4eSCwTdtGy\n/M+ENVB1pGpsxC7Oo4vCrgs2zCKk7ZhFesNCcWE3U8Qu2ve2Uc46NlRht4PlEbteHt7Hz4pvA2+Z\n4seK2jBhuRVzLSHX8+AUrwX9tWLC8shur22YMDBhFxV2crPIO5nJsqn0ctGPI57c/U/g95h8Iy9l\nxYybhT5H7JYVT2lxLl0hKaByOqE8+yyHHdtYHrHLyrErKuySxO4zZpgLTG51kJBE7NYAD85wc8sl\nVsc93p0vNnAimFgxXwXc4b54EyxTFROWrJhNCbshROyeARwck2/4ZeD2GiJVWfe41cATJSI7VTIq\n7NounFKE+1iKAGVZMUeblB/Pysj/sh6k8RDtFGbfUN5FfuGUSQxV2G0HTko5Pfp8eD+tHbNoRUwI\ne8BV8UBzlsIpEFMrYnXxTJLqnjN85tVlxYTlkV0Juw6SWAWzogSQXRmzz4t+HJ8F3kM4icgqnALl\nrZiHEorOVLoJbghF7FaSCLtZbZiwPGKXlWM3TfGU5DRxVmFXtBjJzwgbtnVUb8MEFg+gmiARdmkb\nJnTPigkDj9iR0XbEnY0sb7FRFVnCrivROlj+2duFiphF2M5SxC6vKuZo8ZRJEbtTCba5We8/PyLY\nu2dlcH3sIslnV7IW+mrFhFA07Q1mhQ9Di1bETO5Jyef6LIVTkqhikc/qWe8bdUbs0kV2JOw6SGIV\nnDViNxhh587PgB8DH2ByxO4YgrA7MGHYcVbMvhZOAUXsxpFUWTsbuGXGMbYxOcdumuIpawhCsIyw\nm7i2481pI/AmahJ2DZIIu3ThFJjeijn6e6vDijn0HLvR/LpFahL6C4TT80NHnu+SsDsAHBpP+PsU\nsXtB7O/p7mMPJMZF7MYJu7RFcNbCKQDE3Nx/mPXnGWjELpUXmfyue+vKivb8nwJvKPgj00TsYMmO\nWUbYFLFjViXsqupjB8sjdr1uTg7DFHbJGytP2GUllvd20efwd4SS2rVZMemvDRMUsRtHUjylTMTu\nQYK142iqs2L+gPqtmBDsmG9mOMLutSwXdn2zYg4hYpfuYVc7cUO7l/D3S5PX9qZR4hz3E95Hfcux\nyxPIs+TYlRJ2FTBIYRdJb9r77sr6FsXz7KbJsYOlyph9EnZVWjFPjJbdSf0gO88QhV2ZHLu+L/px\nfJNwapMn7BJrahlhN4SIXefbHTRBzAPaR7DwzSTs4qZtG8GOmWfFnCZidwP1WzEhCLuX0XNhF21d\nTwIPuy+7wVdlxayiifoC4VBo6Dl2mRG7Ghl3n+tSxA7C58zRhKqYVVcGrYNE2E1qH3QsLOafr0HC\nrk3SNrs+WzFhujy7aSN2SWXMMsJutDflOLpoxUzE/3OBR2NP295SStiZ2YVmttHMnjKzV+Zcd76Z\nbTazO83sQ2VeswCJ8Jglx25QVkxYrJj1l4RyuVnsIdzwn8bkyNu4HLu+VsQEWTGz2Ar80n3FhmQa\nkpYHeVUxp8mx+zHwjNhnZlqmWdu3xq+9FnaRX7A8WgcdqooZDwAemjDOECJ2Y3Psambcfa6Lwm4d\n8FAsO951kg3gcWRHPtPtDp5J2CiOHpguK57C7K0OqqJRYWdmx5rZNWa2xcy+Y2ZjP9PNbJuZ3Wpm\nN5vZuKbxRUhbMfsu7G4FVpsttiPKo3COXWQX8FJCvYRZPyOKRuzyDvKyqNOKmYj/3ufXQfmI3W3A\nOwgn6WMxs0OATxOsTWcCF5nZupKvm0ciPGTFjLjzGXe+lHPJHsJJzWMF8j32E5q0pt87fY7YpYWq\nrJhL3MXsNsyEpIBKFe0OklPvzcwWtZtG2N0Wvw5B2D3E8sIpUN6KWWWOHYQNbd4BgiJ2s9GXreJU\ndwAAIABJREFUiN0r6IcNk5hTt5fwGTQxYsf4wikQ1uUzzDgiRvXWET7b2qLpBuUfBq5z99OB7wIf\nybjuILDe3c9293NmfK2kMubhhD3vpDoCnSXuz24iOEomMYsV8zcoJ2z6asXcQfh9ncG8Czt33+Lu\nWyG3afA5wFZ3v9fdnwAuBS4o87oTKFM8ZYhWzCLsIVhLJoqa2AdwNNLSZ2GniN14vg9cW3KMbSxF\n7MatxWmKpyR5KpuYTdgVtg3G9g53Md1Nsav8LXDFyHNlrZhJLkZVDWJ/0z3XhjeEiF2jOXaRvgi7\nl9OPwikJ9xHyj7N+j78iiLZDGJ9flxRp2knYTJ4A7G/Z/tW0FfMCWDxs/hLw9ozrjPIBiKSX3dHA\nI31uPB0Z7c23gthk/FCyXWvjeBB4Jf0RdpVZMd05QIi0v455F3YFOYFwYpIwakGomiLFU/KsmIOL\n2BXgEcIHaNFo1agdcyjCThG7iDufc+dTJYdJInalcuxSeSq7CcLuJTPMZVqb9VuBG2d4nU7hzj/E\n3nlpylox9xLs18+hOitMHkl/pLwDxK6jiN14kohdH4XdWCtmTH/YR1g7Y4VdJMmzazu/DpoXdmvc\nfReAuz/AUjubURy41sxuMrP3z/haiX227zbMhInCjmjDnFLE7iKIwb4IuyojdhDeJ7/JAITdaCnk\nFZjZtSw1B4YgABy42N2vrGNSZrYh9fB6d79+ih8vUjwly4o5lxE7d54y4xGKi5okKvpgfDykqpiV\nROzMbD2wvoqxesw2JufYFYnYPQM44M6jZmwCfneGuUwl7Nz7/+GeQykrpjtuxm6CaB/N36scdw6a\n8Tg9jajH0vhH0bygGifs8op+tME+4PX0xIoZuQ94G/DFnGuSPLtxzckTEmG3hm4Iu6KHPYXI2Tt+\ndMzlWQLkXHffaWbHEQTeJncftZanX3ND6mGyd0zyp4ayv9tOyIXLY9rCKbC0n+uysEu3EamyeAqE\n98mv0bKwq2LvOFHYuft5ZV6A8OH1gtTjiUnk7r6hxOsVLZ4y+D52U7KH6SJ26cU7lIjdEYTfQ2ni\nDeX65LGZXVLFuD0j3aS8TPGU9Kn3HdRsxZwDClkxY06KMT4n5UGCaL+m2qllkuTZ9U7YETbv97dg\nAVt2nzPjyDiXrgm7w+hfxO5QirUQyovYJe6l0wifa21ygCD6KyNv72hmu8zseHffZWbPZUlUjI6x\nM37dbWaXEVJ7MoXduL2jO4+Y8SRhHzovEbtp8+tg6W9QpodbX/vYQRDMTsuHTFXsHau0YmbZZG4C\nTjOzk83sMEJPtdGcjyopUjxFVsyVlBF2fa+Kmfy/yIpZLQ8TPmOOYfyBSdEcuzUs3XR+Bjw/blKn\nYZ4PbUYpcvOF+BmaIUiSiF1TYrnPeXZt2DAh3OeebcZbzPgy4QR/B+1Hh9IkG7O+Rewgvx9g0qQ8\nq3gKzLcV8wrgPfH7dwPfGL3AzFaZ2er4/VHAm4CNM77edoKFfwj7u8JWzCnH3U1Yj2XWYt+tmPf2\npDpvLmXbHbzdzLYDrwauMrOr4/PPM7OrANz9KeCDhJPd24FL3b3OD7EixVNkxVzJHopXixpqjl0v\nrV5dJQqCe4B9Me9klKJWzEVhF8e5m1CWeBok7CIxUTyJyOWR9xm6m7BxbSLHDvpdGbONwikQIkr/\nCfhTwgHrGe6cH4sDdYV9wO7YO7MvJDUDykbs7ids0OdR2H0COM/MthDymj4Oy/eOhN/d98zsZkK+\n85XuPqtDYAdB2HXpvT8r9wMnTMg5ntqKGe8LJ8XKr7NSRNitomPFUyLbaLcybWVMtGLm4e6XA5eP\neX4nwYOePP42cHqZ15qCohE7WTGX8yuKe+zTUS4YjrBTxK56tpFt8Skq7I5nuVUnqYx56/jLx7Ka\n+V3b40gKqOQd5uR9hiZ/j6aEXd8jdk33sAP4CvAd92XFy7rGPvplw4RiEbuk5cGkHLuXEu4700ZX\nqqZRYefuvwT+1ZjnF/eO7n4PcFZFL7mdUPHxJxWN1xox13yBcF/dnXHZCczQrqiCyqxFI3azHHQt\nvkejqK3aink5KQtkn2miKmbT7CNU/jqE7E36CitmfKMMpWrSLCjHrsM5PA03dK2Se8heU9NE7NKn\n3rO0PDga5dilKVJAZVLEDuY0YmdmF5rZRjN7ysxeOeHyVqyY7jzacVEH/RR2DxDWxSQrZpEcuzOA\nzR0owd90H7um2U74XQ9lf5cUhMniRYR7b9M0ZcU8DHjKvbqife487j4+17NvDFHYLRDC0Hn9SvYB\nh5nx9NRzhwOe2JTmkGmF3agVs69VMfcDq6Kw77IVs8mGrlVyD9lFjIoWT0nn2MGUwi6xHM7x2h5H\nkQIqXRJ2XYvY3Qa8A7ihwLVt5dj1gSuBz7Y9iWmIPeheNMHSugd4FvnCLonStW3DhOatmE2zg3Cv\nGZKwy8uzOxVye4PWRVPCrmob5qAYorDbR0gczVzAUfA9Qti4JLyG/BO4oTONsBuMFTM2XD9A+NDv\nshWzyYauVbKZ7I3NLMVTYPqI3TxbrLMo0ssur5hU01bM/0NFFWurwN23uPtWsouGpWkrx67zuLPR\nvf6WGVXjzi8nXPIwobjQY+7j7ynxoOkhuiPsDmt7EjWSRK6Hch/IFHZmPINwCJZ1362TpoRd1YVT\nBkWXNoBVkXiPJ53MLObZmfFrwL8A7613ap1mXqtiwpIds8sRuyYbulbJNcC/yfi3aXLs0jepLcBp\nZoVzhNXqYCW9smK68zH33ubHtJVjJ9pjD6GuwKTN9f10R9gNPWIH8xGxOwW4uyV7b5PCThG7DEoV\nT+koyQauiLB7phlnAt8EPuDOd2qdWbe5Abi34LULLG882tuIXSQRdq1G7Jpu6JrRzLVS4s0l63c6\ndVXMOOZ+M3YS8gi2Fvh5RexWUpUVs1XBXEUz15yxs9bjxe5+ZfGR/nQN/MXvmR10alpnonM8DKxj\ncgGLPwRuqX86E8kVdnWus4ZIInZDEXbbCdVEx3EK7bUPkRWzAwxR2CV/7Ky8noQ9hCpJG4A/cuey\nOifVddz5MfDjgpcvED48Evou7JKcwVaLpzTd0HVcM9eGmTXHDsIp90uQsJuVIlbMIlUxy5TGLk0V\nzVxzxs5cj9PxsZ+7f6yyeYlesIew+cyN2Lnz/WamM5FcYVfnOmsCdxbM2MNw7gN5Ebu28utgeTG6\nLGTFrJmhWjGhWMTuM8DH3Pmneqc0OAaTYxfpgxWz6YauTTAxYmfGYYT32mgZ5mny7GTFXElZK+Ze\n4K0xR3XemZRnp/y6+SP5vGojz2kWhm7FhNCmojN5uiWZaMVscC5pFLHrAEMUdo/CYnGUPH5AiNR9\nrv4pDY5x7Q76WhUTOmLFnEDTDV2boEjxlOOAh2IlujTTCDtF7FZSyorpjrvzrcpn1RPM7O1mth14\nNXCVmV2dc7ny6+aPREBI2HWHdwJdaAFUBfcDJ2Y0KT+V9qyY+4DVE5qnK8euZgZnxXTHzdjHBGHn\nzicamtIQGdfuQBG7GmmhoWsTHACOMMNyEr3H2TAhCLsPFHwdCbuVlLVizjXufjmhoW0RFLGbPxJh\nl9WcvGsMvY8d7q2JncqJ1tIDhJYavxj559Yidu48bsZBwp4wq72QrJg1M8SIHYQ/+KQcOzE7o1bM\noVTF7HLEbnBEG9+TsKyf5Ch5wm5d+mTQjLPM+KwZTxu5djUSdqMUtWLq91YeCbv5Yx/hs00RO1EX\nK+yYsVL0ScC2NiYUybRjxnvz4cx2gC4rZkGGKuwmRuxEKcZZMfsu7J4J4N5rS2kfmVRAZWyDX3ce\nJhTuOMGMI8z4C0JrhXcCLx25/Gh0ujdK2aqYojgSdnNGdCDsoV/Cbsh97IbIuDy7k4BdsUdiW+Tl\n2a0C9s/YikERu4IMVdgtoA1JnQxR2D2HjtowB86kAipZETuAO4D3EcqFnw68HLgSeM3IdbJirkRW\nzOZQjt188nWKVe3tAorY9Y9xwq7NVgcJecKuTG6ccuwKMlRhp4hdvQwxx+7ZyIbZBpMKqOQJu43A\nHwB/4s6F7jxAKIokYTeZslUxRXEUsZtD3Pl9d37Z9jwKImHXP7azUti12eogoS5h9yRg0W4qK2YO\nQxV2lwG3tT2JATOu3UGfLYyK2LXHpIjdWCtm5KPAi935X6nnfgC8duQ6tTtYiayYzfHzticgxASe\nBA4Zk58sustcReyifTM5gJAVM4dBCjt3/mpIFZA6yH7gSLPF948idmJWJuXYZUbs3HnEfUUk7g7g\nODOOSz2niN1KcvsNxQ3ekehUtDQt57sIMZGRTbPoB+OE3ZAjdrD0HlXELodBCjtRL7Gn2H5CIiwM\noyqmInbtUCbHbgXxvflDQn+xBAm7lUyK2B0NLIzpHyiEGCYSdv2irxG7/SXGTkfsJOwykLATs5K2\nYw4hYidh1w6TcuzyrJhZjNoxZcVcySRhJxumEPPF4HvZDYwdwElJy5/4dV4idrJi5iBhJ2YlvXj7\nLuwWkBWzLTIjdvFGtQbYPeWYowVUFLFbSa4VEwk7IeYNRex6hDuPAAeBY+JTx8avbRfskRWzZSTs\nxKykK2MOoXjKMShi1wZ5VsxjgEfdpxbcPwReZbbY+FzCbiWPAk+PFcbGIWEnxHyhXnb9I23HPBW4\ne8YecVWiiF3LlBJ2ZnahmW00s6fM7JU5120zs1vN7GYz+1GZ1xSdYUgRu+SDRhG75skrnjJVfl2C\nO3uAbYS+diAr5grizT+vl52EnRDzRWMRuyn2jueb2WYzu9PMPtTE3HpGWtidQvs2TJjcoLwqYaeI\nXQZlI3a3Ae8Abphw3UFgvbuf7e7nlHxN0Q3SOXZDKJ4Citi1QV7Ebpb8uoS0HVMRu/Hk3YAl7ISY\nL5q0Yk7cO5rZIcCngTcDZwIXmdm6ZqbXG0Yjdm0XTgFZMVunlLBz9y3uvhVC8mYOVva1ROcYYsRO\nwq558oqnzBSxi3wfeG20Yx6KorHjyCugImEnxHzRmLAruHc8B9jq7ve6+xPApcAFTcyvR6SblHcl\nYrePpTSdUWTFbICmxJYD15rZTWb2/oZeU9TLaI7dEISdNv/NkxexKyPskojd0cDeDuQddBEJOyFE\nQteKp5xAEC4JO+JzYol5jNgdSdgz6CA+g6zE+UXM7FqCJWrxKYJQu9jdryz4Oue6+04zO44g8Da5\n+/dyXnND6uH17n59wdcRzTG0dgdQ4QeFma0H1lc13oCpy4p5J6H4ylp0speFrJhCiIRKhV1Fe8dp\nX3ND6uE87B13AP86ft+ViF3dwu5YYP9QD2ur2DtOFHbufl6ZF4hj7Ixfd5vZZYQQe6awc/cNZV9T\n1M6oFbPvVTGhwohdvKFcnzw2s0uqGntgTCqecvssg7pz0IwfAOeh/LosJkXs7m9wLkKIdqlU2FWw\nd7wfeEHq8YlM+Eyaw73jDuBEMw4Hngvc1/J8oH5h92wGfFhbxd6xSivmWK+0ma0ys9Xx+6OANwEb\nK3xd0Q6DsWK68xThA6Ozof0BVxGry4oJwY75ZiTsspAVUwiR0FaD8qw8u5uA08zsZDM7DHgXcEVz\n0+oFO4CTgJOBHe482fJ8oH5h96ySYwyesu0O3m5m24FXA1eZ2dXx+eeZ2VXxsuOB75nZzcCNwJXu\nfk2Z1xWdIL14+14VE8IHRZdz7IZaRSyveEoZKyYs5dkN9nSvJLJiCiESGutjV2Tv6O5PAR8EriE4\nNy51901NzK9H7CE4786iG/l10Iyw0z09h4lWzDzc/XLg8jHP7wTeFr+/h/CmE8NiSDl2EP5/Ohux\nc/ctAGZWqIpYvDapIra5/hnOTJ0Rux8RToMVsRuPInZCiIQmq2JO3DvGx98GTm9iTn3EHTdjB/B6\nupFfB81YMRWxy0EtCMSsDKndAXRc2BWkj1XEKm9QnuDOXkKkU8JuPHtRxE4IEehaVUxRjETYzVPE\nTsIuh1IROzHXDCbHLtK6FbPpKmIdqSA2NmJnxmGE99eekuP/oOTPD5kFQn7GOHoh7FR9VojKkLDr\nJ9uBN9KdiN2jwOFmPC3WL0hTlbDbUWKMwSNhJ2ZlH7DaDCPk2PW5KiaETW6rEbumq4h1pIJYVo7d\nGmC3OwdLjv85gkgRK5lkxex8pFPVZ4WoDAm7fpKInE5E7KI9NGlSPno4WJUVc0uJMQaPhJ2YlSTc\n/nTgyQH0FLkBuKvtSRRkYhUxYCehithFjc1qNrJy7Mrm1wHgzs1lxxgwsmIKIRIk7PpJIuzuaXUW\ny0n2h3UIO1kxJ6AcOzEriRVzCBUxcecS9+624RhwFbFahZ3IZYExEbsYhT+aHkTshBCVIWHXT3YA\nv3DnV21PJMWKPLt4X1lFeWF3DKqKmYsidmJWkqqYQ8iv6zwDriKWVTylbKsDMZksK+Yq4IB77+3V\nQojiPE6Ihoh+cRvw9bYnMcKvWPleOgJ4Ykze3TQciF8VsctBETsxK8mJjISdKIMidu2RZcU8Btkw\nhZg3GutjJ6rDnXvd+UDb8xjhLmDtyHNlbZggYVcICTsxKxJ2ogryiqdI2NXLWCsm8ELgvmanIoRo\nGVkxRVVsAs4Yea5KYScrZg4SdmJWHiWIuiPpf0VM0R5ZEbvnIitm3WRZMV8M3NnwXIQQ7SJhJ6pi\nE7Bu5DlF7BpCwk7MRKyCuR84FkXsxOxk5didDmxteC7zRlYjWQm7CZjZJ81sk5ndYmZfNzO11BB9\nR8JOVMVmFLFrDQk7UYYFJOxEOVZE7GL1rHWEm4Ooj33AkWYr7gNrkbCbxDXAme5+FuEA4iMtz0eI\nskjYiarYCrzIjKennlPEriEk7EQZJOxEWR4DjohiLuH5wKPu/LKlOc0Fsfn7flZG7V6MoqW5uPt1\n7n4wPrwROLHN+QhRARJ2ohLceYzQhuHU1NNHEe43ZZCwK4CEnSjDPkJJWwk7MRPuPAkcZHnrlTMI\nHn1RP8vsmDF6txYJu2l4H3B125MQoiQSdqJKRguolO1hB7JiFkJ97EQZFpCwE+VJ7JhJER4Ju+YY\nLaByAvArd7U7MLNrCf0UF58CHLjY3a+M11wMPOHuX21hikJUyeNI2Inq2MzyAiqyYjaEhJ0oQyLs\nVBVTlCEpoLI3Ppawa45RYaf8uoi7n5f372b2HuC3gDdOuG5D6uH17n592bkJUQOZfezMbD2wvsnJ\niN6zieXvGQm7hpCwE2VQjp2ogtECKuuAy1qay7wxWhlTFTELYGbnA38MvN7dD+Rd6+4bGpmUEOXI\ntGLGw4jrk8dmdkkzUxI9ZhPw+6nHqorZEMqxE2XYh4SdKM9ok/IzUEXMphiN2KlwSjH+liCIrzWz\nn5jZZ9qekBAlUY6dqJLNwLpUYTRF7BpCETtRhgXgFODnbU9E9JrFiJ0ZzyRsmHe0OqP5YS8rI3b/\nt6W59AZ3X9v2HISoGAk7URnuPGzGfkLe9g6CsNtVctgDwOPuSv/Jo1TErmiTVjM738w2m9mdZvah\nMq8pOoWsmKIK0lbMM4DN7niL85knFlgZsZMVU4j5ozFhZ2YXmtlGM3vKzF6Zc902M7vVzG42sx81\nMTdRKekCKlVE7PYA/1JyjMFT1oo5sUmrmR0CfBp4M3AmcJGZrRu9TvSSpN2BTk9EGZLiKaDCKU2z\naMWMzWRfAPys1RkJIdqgyYjdbcA7gBsmXHcQWO/uZ7v7OfVPS1RMuuVBaWHnzgF3fqf0rAZOKWFX\nsEnrOcBWd7/X3Z8ALgUuKPO6ojOo3YGognTEbh3Kr2uStBXzhcDP3cktBiKEGCSNCTt33+LuW2Ex\n/yoLQ7Ug+swmqo3YiQJUuWCymrSeAGxPPd4RnxP9Z4FwI5CwE2VIF09RxK5Z0lZM2TCFmF+62MfO\nCQWKbjKz97c9GTE1m6kwYieKMbF4ipq0ihySkrMSdjVjZhcCGwgfkr/u7j/JuG4b8CuCheWJnthX\nRnPsJOyaYy9wWvxeFTGFmF8eBw414xB3Dk68egJF9o4FONfdd5rZcQSBt8ndv1d2bqIxKrViimJM\nFHYVNGm9n5C3kXBifC5vzA2ph2ro2l2SRSphN0INDV2TnITPTrguyUl4uMLXrpvHgCPNOIIQzVeO\nV3OkrZgvBu5ocS5CiJZwx814nNCk/LHy4+XvHQuOsTN+3W1mlxFSezKFnfaOnWMHcHSsdi1hV4Aq\n9o6l2h0UbNJ6E3CamZ0M7ATeBVyUN64auvYGRewyqLqhq7tvieMMMSchidi9GLhHpYwbJW3FXAtc\n3uJchBDtkuTZlRZ2UzD2nmZmq4BD3H3BzI4C3gT8Wd5A2jt2i3hYkFTGlLArQBV7x7IbwLFNWs3s\neWZ2VZzkU8AHCRU0bwcudXdZrYZBIuy0Ee8OfcxJSISdGpM3T7pBuXLshJhvGimgYmZvN7PtwKuB\nq8zs6vj84t6RYOP8npndTCjOd6W7X1P33ETlJAVUJOwaolTELqtJawyfvy31+NvA6WVeS3QSWTEr\npOmchA7ZVpLiKetQfl3T7AVWm7EKOA64r+X5TEUNlmch5plGhJ27X84Yd0B67+ju9wBn1T0XUTtJ\nARUJu4YoJezE3CMrZoU0nZPQIdtKErFbB1w14VpRLYkV8zSCDfapluczFVVbnoWYc5rsZSfmg03A\nu5Gwa4y+5eKIbiFh1w6ZOQlmtjp+n+QkbGxyYjOSNChXRczmSayYa5ENU4h5R8JOVM1m4OUEvaG9\nYgNI2IkySNg1xMBzEh4jnOatBba0PJd5I6mKqfw6IUQXe9mJfnMXoRr+Pne87cnMA7JiijIcIJTX\nl7CrmYHnJDxKsGE+5L54WCCaYR9B2J1OThlxIcRccIDQ7kCISnDncTPuZqlIl6gZRezEzMTTlwVU\nFVOU4zHgbGTDbBx3niRs5s5CETsh5h1ZMUUdbEL5dY0hYSfKsoAidqIcjwHPQsKuLfYCZyJhJ8S8\nI2En6kDCrkEk7ERZ9iFhJ8qRNMOVsGuHBcLfYFfbExFCtIqEnaiDzUjYNYZy7ERZFLETZUmEnZqT\nt8NeYI8S24WYeyTsRB1ch3I3G0PCTpTlQWBP25MQvebR+FURu3bYC+xoexJCiNaRsBOV4879wOfb\nnse8IGEnyvLbqHiKKMdjwC+B3W1PZE5ZQPl1QggJOyF6j4SdKIW7bJiiNFuBP5cVsDUeAH7a9iSE\nEK0jYSdEz5GwE0K0ijsPA59qex5zzO+CRLUQgsdRLpQQvUbCTggh5hh3DrY9ByFEJ1DEToieo3YH\nQgghhBBCwk6IniNhJ4QQQgghJOyE6DkSdkIIIYQQQsJOiJ4jYSeEEEIIISTshOg5EnZCCCGEEELC\nToieI2EnhBBCCCEk7IToOaWEnZl90sw2mdktZvZ1M3tGxnXbzOxWM7vZzH5U5jWFmEemWGvnm9lm\nM7vTzD7U9DyFmAfM7GPxnnaLmV1nZie2PSchKuBa4K/rfhHdz4Soj7IRu2uAM939LGAr8JGM6w4C\n6939bHc/p+RrzoSZrdfYzYzdxznXPXYFTFxrZnYI8GngzcCZwEVmtq7RWaL31RDG7uOcG+aT7v6K\nuB6/AWxoegJ9/RvpPdvM2LOM684Od26pYTqjzP39TGM3N26fx56FUsLO3a9z96S57Y1A1qmllX2t\nClivsRsbu65x+zx2KQqutXOAre5+r7s/AVwKXNDUHFOs79m4Gru5ceseuxHcfSH18CjgoRamsV5j\nNzJuX8eua9zS6H6msRset89jT02VYut9wNUZ/+bAtWZ2k5m9v8LXFGIeyVprJwDbU493xOeEEBVj\nZn9uZvcB7wH+suXpCNFXdD8TokIOnXSBmV0LHJ9+iiDULnb3K+M1FwNPuPtXM4Y51913mtlxBIG3\nyd2/V3LuQgyKitaaEKICJq1Hd/8o8NGY+/PXwHtbmKYQnUT3MyHawdy93ABm7wHeD7zR3Q8UuP4S\nYK+7/4+Mfy83ISE6irtbmZ+ftNbM7NXABnc/Pz7+cHhZ/8SYa7XOxCApu86mxcxOAr7l7i8b829a\nZ2KQdOl+Fv9da00MkmnX2sSIXR5mdj7wx8Drs0Sdma0CDnH3BTM7CngT8GdZYzZ9UxaiDxRZa8BN\nwGlmdjKwE3gXcNG4C7XOhJgdMzvN3e+KD98O4wtOaJ0JsZKq72egtSZEQqmInZltBQ4DfhGfutHd\n/9DMngd83t3fZmYvAi4jhOAPBb7i7h8vOW8h5ooiay1edz7wN4T82S9orQlRPWb2NeDFwFPA3cAf\nuPuD7c5KiH6g+5kQ9VHaiimEEEIIIYQQol3abkGwSJ2NKKtskG5mXzCzXWb209Rzx5rZNWa2xcy+\nY2bHVDj2JWa2w8x+Ev87f4ZxTzSz75rZ7WZ2m5n9h6rmPWbsf1/FvM3scDP7Yfyb3W5m/63COWeN\nXfp3nXqNQ+IYV1Q17yrQOtM6GzN2LWttntdZnMtcr7W61lkcp5a11sd1NmHsqn7fWmcdXWc5Y8/l\nPa3P6yyOVX6tuXvr/xEE5l3AycDTCfkK6yoc/27g2IrGeh1wFvDT1HOfAP5r/P5DwMcrHPsS4L+U\nnPNzgbPi96uBLcC6KuadM3YV814Vvz6N0Ovm3Ap/1+PGLj3n1Pj/Gfgn4Ioq3yMl56R1lj323K6z\nOGYta20e11l87blfa3WtszhOLWutr+ssZ+yq5q11Vn4s3dOKja29Y8m11pWIXd2NKCtrkO6hTcPD\nI09fAHwpfv8lQjJ9VWNDmP/MuPsD7n5L/H4B2ERoCFp63hljJ71mys57f/z2cMLf7+Eq5pwzNpSc\nM4STKOC3gL9PPV3JvEuidZY9NszpOotj1rLW5nSdgdZabessjl3LWuvrOssZG0rOW+us2+ssZ2yY\n03taH9cZVLfWuiLs6m5EWXeD9DXuvgvCmxVYU/H4HzSzW8zs78taHszshYSTnRuB46ucd2rsH8an\nSs07hqRvBh4Arnf3O6qac8bYpecc+RSh4lc6gbXS3/WMaJ3lM5frLI5Zy1qb03UGWmvvpseAAAAC\n+ElEQVR5VLbOoL611qd1ljN2FfPWOuvnOoM5vaf1dJ1BRWutK8Kubs5191cSlPC/M7PX1fx6VVak\n+QxwirufRXgjje3/VwQzWw18DfiP8YRkdJ4zz3vM2KXn7e4H3f1swgnRb5jZ+qrmPDL2683sDVXM\n2czeCuyKJ1F5JzhDrFqkdUb/1hnUt9a0zmqjr2utsnUG9a21vq2zMWNXsta0znq7zmCO72l9W2dQ\n7VrrirC7H3hB6vGJ8blKcPed8etuQuuFc6oaO7LLzI4HMLPnApWVvXb33e6e/CE/D/z6LOOY2aGE\nxfOP7v6N+HQl8x43dlXzjmM9AnwLeFVVcx4Z+5vAqyqa87nAb5vZ3cA/A280s38EHqjrPTIFWmcZ\naJ0F6lprc7bOQGttLFW+X+taa31eZ6mxq1prWmf0b52B7mlxrL6sM6hwrXVF2C02ojSzwwiNKK+o\nYmAzWxVPBLClBukbyw7LckV9BfCe+P27gW+M/sCsY8c/ZMI7mX3uXwTucPe/ST1X1bxXjF123mb2\nnCScbWZHAucBN1cx54yxb6nid+3uf+LuL3D3Uwjv4++6+78Friw77wrQOssYe17XWRyjlrU2x+sM\ntNbGjlvhOoP61lqv1lnO2KXXmtZZb9bZirHn9Z7Wx3UGFa81r6CKSxX/AecTquJsBT5c4bgvIlRK\nuhm4rezYwFeBnwMHgPuA9wLHAtfF+V8DPLPCsb8M/DT+P1xO8NtOO+65hEa6ye/hJ/H3/ayy884Z\nu9S8gZfFsW4GbgX+KD5fxZyzxi79ux55nTewVNmo9LwrWg9aZ1pnRddDqXnP8zqLc5nrtVbXOotj\n17LW+rjOJoxd2VrTOuvmOssZey7vaX1fZ3G8UmtNDcqFEEIIIYQQoud0xYophBBCCCGEEGJGJOyE\nEEIIIYQQoudI2AkhhBBCCCFEz5GwE0IIIYQQQoieI2EnhBBCCCGEED1Hwk4IIYQQQggheo6EnRBC\nCCGEEEL0HAk7IYQQQgghhOg5/x8i+JhOzr7SiAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb9fff4a290>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot a few random images from sampling\n",
"inds = np.arange(0, len(samples), step=len(samples)/num_plot)\n",
"plt.figure(figsize=(15,4))\n",
"\n",
"for i,idx in enumerate(inds):\n",
" plt.subplot(1,len(inds),i+1)\n",
" plt.plot(samples[i]);"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment