Skip to content

Instantly share code, notes, and snippets.

@NickRSearcy
Created February 15, 2016 20:48
Show Gist options
  • Save NickRSearcy/5aaea7b12982a67e5ef8 to your computer and use it in GitHub Desktop.
Save NickRSearcy/5aaea7b12982a67e5ef8 to your computer and use it in GitHub Desktop.
Monte Carlo Implementation Tutorial
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Import\n",
"\n",
"Here, I'm going to import all the modules we need to run the code. Keeping imports at the very beginning allows them to be more easily managed"
]
},
{
"cell_type": "code",
"execution_count": 255,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline\n",
"import numpy\n",
"from scipy import stats\n",
"import seaborn\n",
"seaborn.set_context('notebook')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Define $P(x)$\n",
"\n",
"Here, I'll make a class for $P(x)$, the 'target density' function. Doing this with a class means a little bit of extra syntax but it will allow me to re-use code more easily. Hopefully it will also be somewhat more clear."
]
},
{
"cell_type": "code",
"execution_count": 129,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"class PStar:\n",
" \"\"\"\n",
" Class for implementing P(x) in Mackay chapter 29\n",
" p_star is equivalent to P(x) and a multiplicative constant, ie P(x) = P*(x)/z\n",
" support defines the interval of support for sampling purposes. probably avoid infinities and stuff like that.\n",
" \"\"\"\n",
" \n",
" def __init__(self, pdf, support):\n",
" \n",
" self.support = support\n",
" self.pdf = pdf"
]
},
{
"cell_type": "code",
"execution_count": 130,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def p_29(x):\n",
" \n",
" return max(numpy.exp(0.4*(x - 0.4)**2 - 0.08*x**4),0)\n",
" \n",
"E_29_10 = PStar(p_29, [-5, 5])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, let's test out the code\n",
"\n",
"(one day python will get string interpolation and this will look less ugly)"
]
},
{
"cell_type": "code",
"execution_count": 131,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"P(-2)=2.784309758188615\n",
"P(0)=1.0660923987615052\n",
"P(2)=0.7741419687922485\n",
"P(5)=2.275263001914578e-07\n"
]
}
],
"source": [
"print(\"P(-2)={0}\".format(E_29_10.pdf(-2)))\n",
"print(\"P(0)={0}\".format(E_29_10.pdf(0)))\n",
"print(\"P(2)={0}\".format(E_29_10.pdf(2)))\n",
"print(\"P(5)={0}\".format(E_29_10.pdf(4)))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Define the Monte Carlo Sampler\n",
"\n",
"Mackay begins by talking about using Monte Carlo methods for two purposes:\n",
"\n",
"1. Generate a list of $x$'s from a $P(x)$ that is difficult to evaluate\n",
"2. Estimate expectations of a function $\\phi(x)$ under $P(x)$\n",
"\n",
"We're going to start with uniform sampling which is only useful for #2. At the end of this section it would be good to see if everyony can explain why."
]
},
{
"cell_type": "code",
"execution_count": 256,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"class MCUniform:\n",
" \n",
" def __init__(self, p_star, phi):\n",
" self.p_star = p_star\n",
" self.phi = phi\n",
" \n",
" def sample(self, num_samples):\n",
" \n",
" s = self.p_star.support\n",
" self.num_samples = num_samples\n",
" \n",
" # actual uniform sampling\n",
" self.x_list = numpy.random.uniform(s[0],s[1],num_samples)\n",
" \n",
" def estimate(self):\n",
" \n",
" self.p_star_list = []\n",
" self.w_list = []\n",
" self.w_phi_list = []\n",
" self.e_phi_list = []\n",
" \n",
" for x in self.x_list:\n",
" \n",
" self.p_star_list.append(self.p_star.pdf(x))\n",
" w = self.p_star.pdf(x)\n",
" self.w_list.append(w)\n",
" z_r = sum(self.w_list)\n",
" self.w_phi_list.append(w*self.phi(x))\n",
" self.e_phi_list.append(sum(self.w_phi_list)/z_r)\n",
"\n",
" return sum(self.w_phi_list)/sum(self.w_list)\n",
" \n",
" def pdf_plot(self):\n",
" \"\"\"\n",
" plots a vertical line plot that estimates the shape of the pdf\n",
" \"\"\"\n",
"\n",
" pyplot.vlines(self.x_list,[0],self.p_star_list)\n",
" pyplot.title(\"Observed pdf of $P^*(x)$ for {0} samples\".format(self.num_samples))\n",
" pyplot.xlabel(\"$P^*(x)$\")\n",
" pyplot.ylabel(\"Observed x\")\n",
" \n",
" def phi_plot(self):\n",
" \n",
" pyplot.semilogx(arange(len(self.e_phi_list)), self.e_phi_list)\n",
" pyplot.title(\"Monte Carlo in action\")\n",
" pyplot.xlabel(\"Number of samples (log scale)\")\n",
" pyplot.ylabel(\"Estimated $\\Phi(x)$\")\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I'll test this class with the same $P(x)$ from example 29"
]
},
{
"cell_type": "code",
"execution_count": 267,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n3j+F8jBFj2mqDntIn3Vxb4qei8+WJx1eD7yIh3s6+vWkdOu3HnXqt86f0qcujThb5lpSmfmGciP+\nmYjYiSIwrwOelcWlaU8CbgHeXG5Qf8zDx7k/AhwSEbdQnCh1G3BOZt5Tnix2SXkC0ibgKIoW30zX\n5/8kIm4Ats/MH5fv3dIxPRQto6PL1tgXI2Jvig3zXRQnQ/WzDnhLWfc64JXl/HvNY7aunmcnZ+ZX\nI+I9wNfK77S+/E70m64M3OPKZXoosNDu1aspWqdfK18/j6Kr+A7gEeU5AN3d4fsBq/rMbwb6fqcX\nzrO27n/P9eX69A8RsQPFDsUrM/PuXu/PNc2gYV16rosUXd8fi4h/oTiP4DMU5wlMdNc+x/fquR51\nfe9e6+xRFIHeqy6NuImZGa90kLZVeRbyBzLzqU3Xsq0i4lHAn2fmGyuOvxNwZmb+Wb2Vjb5RWo+0\ntGptmZddfucCQXHc89TMvKVj+GkUl23MHj89JTNvrbMmSXMrW7XrI+KXypOzBjmO4koBSQ2pu5v9\naIpLcA4q9zjPpDiGNGsaOCEzb6y5DqlWmXk1MEqtqfcCf0j/rnMAIuKJwF29roPW/I3geqQlUns3\ne0Rsl5kPRsTvU1wXe2LHsFuAmylOnlmdme+otRhJkkZQ7Wezl0F+AcVJGB/tGnwxxdmnhwEH9ThD\nVpIkDbBkJ8CV16heB+w1e81mRCyfveQiIv4IeHRmvq3fPGZmZmYmJqpe3SFJ0kgYGHx1nwB3AvCE\nzHw7xc0UNlPeECQilgM3lXfiuo/iBgdz3V2LiYkJ1q/fONcoKk1NTbqsKnA5VeNyqs5lVY3Lqbqp\nqcmB49Tdzf5JiltaXg18ETgNeHFEnFS2yF8HXEVxXevNmbktN7qQJGks1doyL7vTXz7H8Eso7vEs\nSZIWyNu5SpLUcoa5JEktZ5hLktRyhrkkSS1nmEuS1HKGuSRJLWeYS5LUcoa5JEktZ5hLktRyhrkk\nSS1nmEuS1HKGuSRJLWeYS5LUcoa5JEktZ5hLktRyhrkkSS1nmEuS1HKGuSRJLWeYS5LUcoa5JEkt\nZ5hLktRyhrkkSS1nmEuS1HKGuSRJLWeYS5LUcoa5JEktZ5hLktRyhrkkSS1nmEuS1HKGuSRJLWeY\nS5LUcoa5JEktZ5hLktRyhrkkSS1nmEuS1HKGuSRJLbeszplHxHbAuUAADwKnZuYtHcOPBs4ANgEX\n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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1165efc18>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"E_29_U = MCUniform(E_29_10, lambda x: x)\n",
"E_29_U.sample(10**3)\n",
"E_29_U.estimate()\n",
"E_29_U.pdf_plot()"
]
},
{
"cell_type": "code",
"execution_count": 268,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\nN9woVq8AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1165df898>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"E_29_U.phi_plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Importance Sampling\n",
"\n",
"Next step is importance sampling. The big difference is that we can draw our list of x's from any $Q^*(x)$ and our weight will now look like\n",
"$$\n",
"w_r = \\frac{P^*(x)}{Q^*(x)}\n",
"$$\n",
"\n",
"One thing to not is that Uniform sampling is just a special case of importance sampling where $Q^*(x)$ is uniform. Neat, right?\n",
"\n",
"Technical note: our $Q^*$ will be an instance of the SciPy class [`rv_continuous`](http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.rv_continuous.html#scipy.stats.rv_continuous) because that gives us the means to draw samples from and compute the pdfs for a variety of common distributions."
]
},
{
"cell_type": "code",
"execution_count": 292,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"class MCImportance(MCUniform):\n",
" \n",
" def __init__(self, p_star, q_star, phi):\n",
" self.p_star = p_star\n",
" self.phi = phi\n",
" self.q_star = q_star\n",
" \n",
" def sample(self, num_samples):\n",
" \n",
" self.num_samples = num_samples\n",
" \n",
" # actual sampling\n",
" self.x_list = self.q_star.rvs(num_samples)\n",
" \n",
" def estimate(self):\n",
" \n",
" self.p_star_list = []\n",
" self.w_list = []\n",
" self.w_phi_list = []\n",
" self.e_phi_list = []\n",
" \n",
" for x in self.x_list:\n",
" \n",
" self.p_star_list.append(self.p_star.pdf(x))\n",
" w = self.p_star.pdf(x)/self.q_star.pdf(x)\n",
" self.w_list.append(w)\n",
" self.w_phi_list.append(w*self.phi(x))\n",
" self.e_phi_list.append(sum(self.w_phi_list)/sum(self.w_list))\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 293,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x116605128>]"
]
},
"execution_count": 293,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfMAAAF4CAYAAABAeBBQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XucZHdd5/9X36Znpqd7LklP0iSDkR/6IRoJ0iDiLwTC\nIizXNXhbBHT5mR/JyuIv66qIiP7W34LsA+X2w8tCuMkqARVEiIACAU0EWSJKEPkQEDIzmUlmJnPp\nmb5Nd03vH6d6Ut3Tl+qZrq46Va/n49GPrqpzqc/pqq53fb/ne87pmpubQ5IklVd3swuQJEkXxjCX\nJKnkDHNJkkrOMJckqeQMc0mSSs4wlySp5AxzSZJKzjCXJKnkDHNJq4qI76xjnpGI2LoR9UhayDCX\ntKJqkD+hjlkPA7/c4HIkLcEwl0REDEVELDP5psy8dbV1ZOYs8NGI+On1rU7SanqbXYA6W0TcBNxE\n8V6cA/4B+LXM3BcRTwb+IDOvbGaNy4mIHwX+U2Zetx7riIjfB54O/HFmvnoN61h2uYh4HPBfgW3A\ne4A+4GrgA5n5meo8jwaeCIxExB2Z+cma5R8N7Ku3lsz8YkT8PPCHa611rSLiXcDdmfmGmseeDbwW\n2AR8GfjZzDy13OMrLXMhta2H6vv/rZn5fc2uRa3PlrmaJiJ+G7geeFZmXlX90Pok8LmIeFh1tla/\nEtB61De/jpcCTzqPkFt2ucz8IjAJ3JKZ78zM/wH8LvD+JWqYA7oWPf5c4PY11nMoIv6PtdZar4h4\nVER8CvjxRY9fDLwTuL76BfBbwH9f7vGVljnf2hqg1d//ahG2zNUUEXEZcCNwWWaOzT+eme+NiMcC\nvwr8CbAtIj4AfBdwDLgxM++JiAHgXcAjgTPAXZl5Y3XdzwF+jaIVOgH8EtAPvBkYB7YC/1Jd5neq\ny9wIPCUzXxARzwVeVbt8Zn6+Ot9vAj8FHAG+ucy2PRn4HeDean0TwEsy82vLrKMrIv6GIkg/FhE/\nl5l3LlrnS4GXA7PAAxSt+W9Ul2O55aqezMJ92Y8ATtb8zb8cEYeAqzPzrxct+3iKVutafBkYZdHf\nZ3GtwPcu2qaXV1/bJ7PwtfqBzJypWdXLKAL43kXP+3TgC5n5r9X7vw/8E3DnMo+/bIVlXrao9iXf\nbxHRBbyRYkzBIMVreENmfq66Hb8FHKhu6wTwG8DPA98NfDAzf2G598viP+pS7+vM/PxK/wvqHLbM\n1SxPAL5aG+Q1PgX8n9XbDwN+JzO/H3gf8N7q49cD2zLzscAPAETEIyLikRTh88zMHKX4wvBBYIDi\nA/Unq+t6G/AzNc/5EuBt1eVfs3j5iNgSEf+u+ryPBn6ous7lPAZ4U2ZeDbx7vu5l1jGXmddWl3vK\nEkH+VOAXgSfX/B0+DFBdrmup5arLPhqYmQ+riNhM0TpeEFaZeX9mfmKJ7diSmQtahxHxvIh4dkS8\nLiJeGBHvXbS//Rhw+eIV1dZK0aW9eJv+vGb2s6/VoiAnM1+emX/Eub0Ie1i4S2A/METx5WXx44MR\nsW2ZZean1Vry/UbxPh7JzCdm5lUUuxd+pWa5xwG/WW31P1Cd9kyKLzsvi4hLq/Mt+X6ZFxHfxRLv\n64jYskJt6iCGuZqpb5nH+3moe/GfMvPvq7ffDTwuIgaBO4DvjYjbKT4g31QNrB8GLgU+FRFfAv6I\nouX3SGBfZu4HqO4v7o+Ix0bElcDFmXn7Ksv/G4rW1ERmngHescK2fSUz/7Z6+53AYyJiZx3rWBxQ\nAM8A3p+ZR6u1vwe4LCK+Y5XlAK4D9kbET0TEi4D/QNGqXyq4l9JTeyciHk7xJew2ir/VbcCtwN6a\n2SYpwnop8135/3aVbTr7Wq3Bcp9nlRUer3eZJd9v1R6bV0fETRHxeuDHKMYnzPtWZn65evubwO2Z\nWcnMB4ExYFd12uL3y/cDF9Ws52ks/75c7n9BHcRudjXL54HviojdmXlo0bTrgL+r3j5T83hX9f5M\nZn672op+CvBUig+5l1OEz6cy8wXzC1UD6JHA4kFN76BonU/zUKgut/x+zt2nPLvC9tVO664uV1nj\nOmqXX6yL5b8M1boO+MPM/EAd8y5lQX2ZuRcgInYDY5l5nCLQa20Hjq6y3tW26XwGoO1l4SF0l1Xr\nuHfR45cDxzJzMiIWL3N2Wu2Kl3m//SdgimKXwG9T9Cx8DXhhzaLTi2qcYWm1f+euJR5b7n25LzPn\nlqotMz+4zHOpDdkyV1Nk5gHgLcD7aga7EREvAZ7PQ4OQro6Iq6u3bwTuyMyp6ij4d2fmX2fmK4FP\nUHTNfhp4+ny3b0Q8A/hHYDPntl7fAzyPojX1rupjSy3/JYrego8DPx4R2yOiG3jxCpv46GoXNxTd\n2ndWdymsZR3zPgH8ZHWw1vzf6EhmfmOlharrv7b6nOfr/uo+2fl1Pqr6ejwL+JvqY89atMwIy4wn\n4KHX4Ly2aRV/BTyhZvDdTRQB+9eLHr+R6m6KJZapnXbWMu+3qyh6J/6iOrDwi8CPsKg3o06175cb\nKfbzn+Chv9dy78vNK9SmDmLLXE2Tma+qfoh/OCL6KQLzC8ATszg07RHAV4HfqH7Y3s9D+7n/EHhy\nRHyVYqDUvcCbM/NEdbDYrdXBSTPAcyhafHOLnv+BiLgL6MnM+6uPfbVmeShaR8+tttQ+FhFXUXxo\nH6UYKLWcQ8B/rdZ9CPjp6vqXWsd8XUuOXM7MT0bEG4FPV7fpcHWbWG65auC+oPo3fQpwvt2un6Vo\nuX66ev/pFN3IBymC5N9R9FrUegxwyzLrm4Nlt+nZa6xt8et5uPp++rOI6KP4QvHTmXl8qcdXWmaJ\n51ry/UbR9f3HEfEPFGMFPkwxFmCt9S/1frmCh/5ey74vI2K52tRBuubmPPJBWk/V0cm/n5nf0+xa\nLlRE7AB+MTN/rc75+4HXZuZ/aWxl7aOd3i9qnoa2zKvdfG8HgmJf502Z+dWa6TcDN1B8E4XqYUeN\nrElS/aqt2sMRcVF10NZqXkBxpICkDdTobvbnUhx2c0312+drKfYpzRsFXpyZX2pwHdKGyczPAu3U\nynoL8LMs33UOQETsAY5mZm5IVW2iDd8vaoKGd7NHRHdmnomIn6E4FvYlNdO+CnyFYsDMbZn5uoYW\nI0lSG2r4aPZqkL+LYkDGHy2a/D6KEafXAdcsMSpWkiStYsMGwFWPS/0CcOX8MZwRMTR/BrCI+I/A\nrsx8zXLrmJubm+vqWu7cGJIktaVVg6/RA+BeDFyemb9FcXKFCtWTgETEEHB39exbkxQnO1jpjFp0\ndXVx+PDJlWZpa8PDg26/29/sMpqik7cd3H63f3DVeRrdzf6nFKex/CzwMeBm4PkRcUO1Rf4K4DMU\nx7J+JTMv5OQWkiR1pIa2zKvd6T+5wvRbKc7rLEmSzpOnc5UkqeQMc0mSSs4wlySp5AxzSZJKzjCX\nJKnkDHNJkkrOMJckqeQMc0mSSs4wlySp5AxzSZJKzjCXJKnkDHNJkkrOMJckqeQMc0mSSs4wlySp\n5AxzSZJKzjCXJKnkDHNJkkrOMJckqeQMc0mSSs4wlySp5AxzSZJKzjCXJKnkDHNJkkrOMJckqeQM\nc0mSSs4wlySp5AxzSZJKzjCXJKnkDHNJkkrOMJckqeQMc0mSSs4wlySp5AxzSZJKzjCXJKnkDHNJ\n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\nRK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x116605400>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"q_star = stats.norm(loc=0,scale=2)\n",
"ex_importance = MCImportance(E_29_10, q_star, lambda x: x)\n",
"ex_importance.sample(10**3)\n",
"ex_importance.estimate()\n",
"ex_importance.pdf_plot()\n",
"plot(numpy.linspace(-5,5,10**3),q_star.pdf(numpy.linspace(-5,5,10**3)))"
]
},
{
"cell_type": "code",
"execution_count": 294,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nJerRggRPKuMAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1168d6240>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ex_importance.phi_plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Rejection Sampling\n",
"\n",
"Rejection sampling is quite similar but involves rejecting proposals rather than weighting samples.\n",
"\n",
"The first step is to find a $Q^*(x)$ and a $c$ that meet the requirement"
]
},
{
"cell_type": "code",
"execution_count": 302,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x116a14c18>]"
]
},
"execution_count": 302,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1164907b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ex_importance.pdf_plot()\n",
"q_star = stats.norm(loc=0,scale=2)\n",
"c = 25\n",
"pyplot.plot(numpy.linspace(-8,8,10**3), c*q_star.pdf(numpy.linspace(-8,8,10**3)))"
]
},
{
"cell_type": "code",
"execution_count": 297,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"class MCRejection(MCUniform):\n",
" \n",
" def __init__(self, p_star, q_star, phi, c):\n",
" self.p_star = p_star\n",
" self.phi = phi\n",
" self.q_star = q_star\n",
" self.c = c\n",
" \n",
" def sample(self, num_samples):\n",
" \n",
" self.num_samples = num_samples\n",
" \n",
" # actual q_star sampling\n",
" self.x_list_initial = self.q_star.rvs(num_samples)\n",
" \n",
" # begin building list of accepted xs\n",
" self.x_list = [] \n",
" for x in self.x_list_initial:\n",
" u = numpy.random.uniform(0,self.c*self.q_star.pdf(x))\n",
" if u < self.p_star.pdf(x):\n",
" self.x_list.append(x)\n",
"\n",
" def estimate(self):\n",
" \n",
" self.p_star_list = []\n",
" self.phi_list = []\n",
" self.e_phi_list = []\n",
" \n",
" for x in self.x_list:\n",
" \n",
" self.p_star_list.append(self.p_star.pdf(x))\n",
" self.phi_list.append(self.phi(x))\n",
" self.e_phi_list.append(sum(self.phi_list)/len(self.phi_list))"
]
},
{
"cell_type": "code",
"execution_count": 298,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nYJ32eXfr8nnbSNE78Y/lwMJvAM+mozejovbPy0kU1/lv4Vfnq9vn8r49atMYsWWuocnM15a/xD8Z\nEbtRBObXgd/K4ta0hwPXAG8of9n+mF9d5/574NCIuIZioNSPgLMy85ZysNiF5eCkO4FnUrT45jv2\n/5OI2Azskpk/Lqdd07Y+FK2jo8qW2mcjYiPFL+2bKAZKdXMj8Jdl3TcCLy63v9A2WnUtOHI5M78Y\nEW8HvlQe0/bymOi2Xhm4x5Tn9DBgqd2ul1O0XL9Uvn8aRTfyDRRB8nsUvRbtHgts6rK9eeh6TM9Y\nZG2dP8/t5efpHyJiV4o/KF6cmT9faHqvdRbY14KfN4qu7w9GxL9SjBX4JMVYgMXWv9DnZQO/Ol9d\nP5cR0a02jZGJ+XnvfJCWUzk6+W8z81HDrmVnRcSewJ9l5usqLr8bcEZm/mm9la0cK+nzouGptWVe\ndvO9DwiKa50nZ+Y1bfNPAU6g+EsUytuO6qxJUnVlq3Z7RPxaOWirn2Mo7hSQNEB1d7MfRXHbzcHl\nX59nUFxTapkGjsvMb9ZchzQwmXk5sJJaWe8E/oDuXecARMRDgZsyMwdS1QqxAj8vGoLau9kjYlVm\nzkXESyjuhT2+bd41wNUUA2Yuysw311qMJEkrUO2j2csgP5diQMYHOmZfQDHi9HDg4AVGxUqSpD4G\nNgCuvC/168B+rXs4I2Jt6wlgEfFS4IGZeXq3bczPz89PTHR7NoYkSStS3+CrewDcccDemfkmiocr\nzFI+BCQi1gJXlU/fup3iYQe9nqjFxMQE27ff2muRFW1yco3H7/EPu4yhGOdjB4/f41/Td5m6u9k/\nSvEYy8uBzwKnAM+JiBPKFvmrgcso7mW9OjN35uEWkiSNpVpb5mV3+gt6zL+Q4rnOkiRpiXycqyRJ\nDWeYS5LUcIa5JEkNZ5hLktRwhrkkSQ1nmEuS1HCGuSRJDWeYS5LUcIa5JEkNZ5hLktRwhrkkSQ1n\nmEuS1HCGuSRJDWeYS5LUcIa5JEkNZ5hLktRwhrkkSQ1nmEuS1HCGuSRJDWeYS5LUcIa5JEkNZ5hL\nktRwhrkkSQ1nmEuS1HCGuSRJDWeYS5LUcIa5JEkNZ5hLktRwhrkkSQ1nmEuS1HCGuSRJDWeYS5LU\ncIa5JEkNZ5hLktRwhrkkSQ1nmEuS1HCr69x4RKwC3gcEMAecnJnXtM0/CjgNuBM4NzM31VmPJEkr\n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\ntwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1138c8438>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"q_star = stats.norm(loc=0,scale=2)\n",
"c = 25\n",
"ex_rejection = MCRejection(E_29_10, q_star, lambda x: x, c)\n",
"ex_rejection.sample(10**3)\n",
"ex_rejection.estimate()\n",
"ex_rejection.pdf_plot()"
]
},
{
"cell_type": "code",
"execution_count": 299,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAgUAAAFxCAYAAADjx9tHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VOed9vHvqKKGkJAQolc9iN4MxlSDe42duCRuseM4\n682+6c27cTZ149i72cSJk41rbMeOE7e4YOPYGGN6MQJRxIPoSAj1irpm3j/mSAgZkIRmNCPp/lwX\nF5o5M2d+EgfNPU91eTweREREREICXYCIiIgEB4UCERERARQKRERExKFQICIiIoBCgYiIiDgUCkRE\nRASAsEAXINIXGWNGAoeAj621S9ocewa4C0iy1pac5/kfBLZba9/q5PPigZ8CS4AmwAM8Zq19upPn\nWQz83lo7pRPP+QmQba39S2deq5N19Qdet9Yuc25vA5ZYayv89ZoiPYlCgUjg1AJpxpjh1tpjAMaY\naGA+3jfjrlgK7O7ME4wxkcBq4HlghrXWbYwZAaw0xnistc90soZOfQ/W2v/s5PnPRyJwQavXnNkN\nrynSYygUiAROE/A34Hbgl859NwJvAN9qfpAx5j7g/wGNQD7wb9ba/U6LQgUwBRgOZAG3Al8EZgOP\nGGOagHeAXwGLgFAgA/iatbaqTT23AJXW2v9pvsNae9QYcxMQ4dRyDfAAEA4MAp6z1v7IaRn4LXAS\niAa+36r+/sBjwHTADawAHrDWulu/uPP97LTW/toYUwM8BFwKpAKPWmt/2/YHaIy5B7jPqScR+JW1\n9v+cYw8AdwINQDZwN/A0EO20EMx2fqZJ1toSp3XlVufx+5yfc4ExZhWwAW9YGwGssdbe2bYWkd5A\nYwpEAscDPIc3FDS7C2j5RG6MWQp8B1hsrZ0B/BVvaGg2E7gMSAeGAjdZa/8AbAW+Y619A/gB0GCt\nne2cIw9vSGhrNrCu7Z3W2u3W2s3OzW8Cd1pr5wDzgAeMMYnOsUnALc5r1LU6xe+AIqcrYTYwzfme\nziUSKLDWLgBuAh4yxkS0foAxJgb4EnCltXYW3jf0h51j1+ENBHOttVPxdtV8FW8wqLbWznRCicd5\n/N3A5cAsa+10vK0sz7Z6uTHW2sV4A9hSJwSJ9DoKBSIBZK3NANzGmBnGmGFArLV2D+ByHnI58Lfm\nsQXW2meBIc6YBIAV1tpGa20jsBPvp+Vmzee4BrjeGJNhjMkArgcmnKEcN+3/TrgOmG2M+RHwa+e+\nGOfvY9banDM85wrg9079DcD/AVe28zoAbzrP2Ya3pSKm9UFr7UngWuAaY8xPgf9o9ZhlwMvNYwWs\ntd+x1v6Ss7sCeMZaW+vc/i3eN//m1tS3nPNUAfs5/ecs0muo+0Ak8J4H7gAKna/hVH/8md6kQ/A2\nlwPUtLrfw6kg0Foo8HVr7XvQ8gm73xketxHvp+nTOJ+65wM/AbYDrwJr8DbFf6bVa7btjmhd79nq\nP5eaNrdP+96MMUPxNuv/yannFeBq53AjrcY0OF0YA87xWm1rDMX7+7H5NTvycxbp8dRSIBI4zW8s\nf8HbRH4z8GKbY+8BtxhjkqClmbvIWru/nXM3cuqN9z3g34wxEcaYELxvov91hue8CvQ3xnzHeRzG\nmLF4WwT2AOOBWOCH1trleGcoROB9Az2X93DChjOY8T7gn+08p60zvQnPxtvF8Atr7ft4Ww0wxriA\nD4AbjTGxzmN/gnecRiOnfxhq/XO+2xnoCfA1YLXTsiHSZygUiASOB8Baexzvm+4+a21Zm2MfAP8L\nfGiM2Ym3ReHq1o9pez7HW8B/G2PuwDvF8AjeAYa78P6//3bbYpw3wEuAycBOY8x24O/AT5xui0zg\nbWCvMeZjvGMIPgHGtfN9fg1IcerfgXdA5JlCiecsX5/pNniDRY4xxjr11AIngHHW2nfxjs1Yb4zZ\nAaTg7V7IA7YZY/Y4YyGaz/sU3iCx2RizG++gyOaxHh2pRaRXcGnrZBEREYEgGlPgDOh5GhiFt0ny\nF60XXjHGXAs8iHe60DPW2icDUaeIiEhvFUzdB7fj7StdhHdk8u+bDziB4dd4mzaXAPcZY5IDUaSI\niEhvFUyh4O94WwLAW1frAT7peJc/rXD6PdfiXYhFREREfCRoug+stdUAxpg44GW8g4Ka9QfKW92u\nBOLbO6fH4/G4XJo5JCIifUaX3vSCJhQAGGOGA6/h3Ujlb60OVeANBs3igDLa4XK5KCys9G2R0qcl\nJ8fpmhKf0jUlvpScHNel5wdNKDDGpODMZ7bWrmpzOAsYZ4wZAFTj7Tp4pJtLFBER6dWCJhTg3WRl\nAPCgs4SqB3gCiLHWPmmM+Rbeecku4ElrbV7gShUREel9evs6BR41y4kvqalXfE3XlPhScnJcl8YU\nBNPsAxEREQkghQIREREBFApERETEoVAgIiIigEKBiIiIOBQKREREBFAoEBEREYdCgYiIiAAKBSIi\nIuJQKBARERFAoUBEREQcCgUiIiICKBSIiIiIQ6FAREREAIUCERERcSgUiIiICKBQICIiIg6FAhER\nEQEUCkRERMShUCAiIiKAQoGIiIg4FApEREQEUCgQERERh0KBiIiIAAoFIiIi4lAoEBEREUChQERE\nRBwKBSIiIgIoFIiIiIhDoUBEREQAhQIRERFxKBSIiIgIoFAgIiIiDoUCERERARQKRERExKFQICIi\nIoBCgYiIiDgUCkRERARQKBARERGHQoGIiIgACgUiIiLiUCgQERERQKFAREREHGGBLqAtY8xc4CFr\n7cVt7v8GcC9Q4Nz1FWttdnfXJyIi0lsFVSgwxnwXuAOoOsPhWcAd1tqM7q1KRESkbwi27oP9wA1n\nOTYLeMAYs8YY84NurElERKRPcHk8nkDXcBpjzEjgr9bai9rc/yDwGFAB/AP4g7X2nXZOF1zfnIiI\niH+5uvLkoOo+aMdvrbUVAMaY5cAMoL1QQGFhpb/rkj4kOTlO15T4lK4p8aXk5LguPT9YQ8FpSccY\n0x/YaYxJB2qApcBTgShMRESktwrWUOABMMZ8Hoix1j5pjPk+8BFQC6y01q4IYH0iIiK9TtCNKfAx\nj5rlxJfU1Cu+pmtKfCk5Oa5LYwqCbfaBiIiIBIhCgYiIiAAKBSIiIuJQKBARERFAoUBEREQcCgUi\nIiICKBSIiIiIQ6FAREREAIUCERERcSgUiIiICKBQICIiIg6FAhEREQEUCkRERMShUCAiIiKAQoGI\niIg4FApEREQEUCgQERERh0KBiIiIAAoFIiIi4lAoEBEREUChQERERBwKBSIiIgIoFIiIiIhDoUBE\nREQAhQIRERFxKBSIiIgIoFAgIiIiDoUCERERARQKRERExKFQICIiIoBCgYiIiDgUCkRERARQKBAR\nERGHQoGIiIgACgUiIiLiUCgQERERQKFAREREHAoFIiIiAigUiIiIiEOhQERERACFAhEREXEoFIiI\niAigUCAiIiKOoAsFxpi5xphVZ7j/WmPMZmPMOmPMvYGoTUREpDcLqlBgjPku8AQQ2eb+MODXwCXA\nEuA+Y0xytxcoIiLSiwVVKAD2Azec4f50INtaW2GtbQDWAou6tTIREZFeLqhCgbX2daDxDIf6A+Wt\nblcC8d1SlIiISB8RFugCOqgCbzBoFgeUdeSJyclxfilI+i5dU+JruqYkWARrKHC1uZ0FjDPGDACq\n8XYdPNKRExUWVvq4NOnLkpPjdE2JT+maEl/qasAM1lDgATDGfB6IsdY+aYz5FvBPvIHhSWttXiAL\nFBER6W1cHo8n0DX4k0cJXHxJn+rE13RNiS8lJ8e1bWnvlKAaaCgiIiKBo1AgIiIigEKBiIiIOBQK\nREREBFAoEBEREYdCgYiIiAAKBSIiIuJQKBARERFAoUBEREQcCgUiIiICKBSIiIiI47w2RDLGhAED\ngTJrbZ1vSxIREZFA6HAoMMZMAe4AooB6vFsYxxtjPEAJ8Lh2LhQREem5OhQKjDF3ADXAD6y17jMc\njwS+YIw5ZK39yLclioiISHdoNxQYY6KAD87VCuB0ITxjjBnjy+JERESk+7Q70NBaW9M6EBhjHjbG\nXOR8vcAZX9D82IP+KVNERET87XxmH+wB9jpfbwJu9l05IiIiEijnM/tgJPCsMWYlsB5I9G1JIiIi\nEgjn01JwGPgSkAPcA0T6siAREREJjPMJBdVAk7X2FeAhvLMSREREpIfrdCiw1r4MpDo344EYn1Yk\nIiIiAeHyeDyBrsGfPIWFlYGuQXqR5OQ4dE2JL+maEl9KTo5zdeX57bYUGGP6GWPmduRkxpiLu1KM\niIiIBE67sw+stbXGmAZjzLeBd621e1ofN8a4gAuBxcBL/ilTRERE/K3D3QfOIkW34A0A/fC2MniA\nCuBDa+3b/iqyC9R9ID6lpl7xNV1T4ktd7T7o8DoF1tpG4AXnj4iIiPQynV68yBiTBkwA3nGCgoiI\niPQCnZqS6Ox58DbwQ+DvfqlIREREAqJDocDZOhm84wnSrbVzgJ8bY5YZY27zW3UiIiLSbTrafXC/\nMSYVSAe+bYxpvn8iMByNMxAREenxOhoKIoAovLMOolrdHwmE+7ooERER6X4dHVPwuLX2J8Bm4GfO\n18uBPwHP+qs4ERER6T4daimw1j7ufLkB2GuMKQVyrbU3Ah/5qTYRERHpRp2afWCt3QhcC/wX3oWM\nREREpJfo9DoF1loLWD/UIiIiIgHU6a2TRUREpHdSKBARERGgg90Hxpg7z3XcWvucb8oRERGRQOno\nmIILnL/TgXHAP4BG4BpgL6BQICIi0sN1dEri/wMwxqwGZlhrS53bPwXe8V95IiIi0l06O6ZgMFDe\n6nYtMMh35YiIiEigdHZK4lvASmPMq4ALuBX4q8+rEhERkW7X2cWLvgP8DjDAeOAha+1/+qMwERER\n6V6dXrwI74ZIFcAvgRt9VYgxxgX8AZiGt1viXmvtwVbHvwHcCxQ4d33FWpvtq9cXERHp6zoVCowx\nDwHDgFnAI8AXjTHTrLXf9kEtnwEirbUXGWPmAr927ms2C7jDWpvhg9cSERGRNjo70PBy4A6g1lpb\nBlwGXOmjWhYAKwCstZuA2W2OzwIeMMasMcb8wEevKSIiIo7OhgK387fH+Tuy1X1d1Z/TZzY0GmNa\n1/dX4F+Ai4EFxpirfPS6IiIiQufHFPwd+BuQ6PTx34HvZh9UAHGtbodYa1sHjt9aaysAjDHLgRl0\nYI2E5OS49h4i0im6psTXdE1JsOhUKLDW/soYczlwBBgB/Ke19m0f1bIO7wqJrxhjLgR2Nh8wxvQH\ndhpj0oEaYCnwVEdOWlhY6aPyRLy/vHVNiS/pmhJf6mrA7OxAw1ettZ8F3mt130pr7bIuVeH1OnCp\nMWadc/tuY8zngRhr7ZPGmO8DH+GdmbDSWrvCB68pIiIiDpfH42n3QcaY1/FOFRwK5LY6FAYcs9bO\n9095XeZRAhdf0qc68TVdU+JLyclxrq48v6MtBXcBicBvga+1ur8RyO9KASIiIhIcOrohUgVQYYy5\nBe8UxFi8yxyHAqOBH/mtQhEREekWnZ198CoQjXf75DXAIuANXxclIiIi3a+z6xQYvCP/XwceBuYA\nw31dlIiIiHS/zoaCfGutB9gLTLXWHse7nbKIiIj0cJ3tPthtjPkd8EfgBWPMEKCf78vyjarq+kCX\nICIi0mN0tqXgfuDv1to9eAcXDgY+7/OqfOSrj6yitr4x0GWIiIj0CJ0NBYnAdGPMj/AuM1wKfNbn\nVflISUUtq7bltv9AERER6XQoeAdvGHA5f2j1d9CJ6RfGis1HqatvCnQpIiIiQa+zYwqw1t7jj0L8\n4dqFY3npfcuqjFyumDsi0OWIiIgEtc6Ggn8YY+4FPsS7miEA1tqjPq3KR65fNIY3Pt7Pu5uOcPGM\noURGhAa6JBERkaDV2e6DeOB/gZXAaufPRz6uyWdioyO4ZNZwKqsbWJWhsQUiIiLn0tmWgs8Cg6y1\nNf4oxh8uvWA47289xopNR7h45lAiw9VaICIiciadbSk4CCT4oxB/iY0K55LZw6iobmC1WgtERETO\nqrMtBR5gjzFmF9CyMpC1dqlPq/Kxyy4YwQdbc3hn01EWz1BrgYiIyJl0NhT8wi9V+FlsVDjLZg1j\n+YYjrN5+nMsu0HYNIiIibXUqFFhrV/urEH+7fM4IPvgkh3c3HmHJ9CFEqLVARETkNB0KBcaYx621\n9xljVuHtQjhNsHcfgNNaMHMY72w8wuodx7l0tloLREREWutoS8GfnL9/fIZjnwoJweryOcNZ+UkO\n7zitBeFhai0QERFp1qFQYK39xPnya9ba0/Y6MMasBJb5ujB/iIuOYOmsoby78Sirtx/nErUWiIiI\ntOho98HrwDRgiDHmYKtD4UBQrmZ4NpfPGdHSWrBYrQUiIiItOrpOwV3AUuA9YAlwsfNnLrDYL5X5\nSf/oCJbOHEZZVT0f78gLdDkiIiJBo0OhwFpbYa09DPwX8DkgD3gC2AFc77fq/OSKOSOICA/hnY1H\naGh0B7ocERGRoNDZFQ1/C2zFGwyqgZnAD3xdlL/1j4lg6YxhlFbWsSbzeKDLERERCQqdDQUh1tqP\ngauBV621xziP7ZeDweVzRxARFsLyDWotEBERgc6HgmpjzLfxji942xjzdaDS92X5X3xMBEtmDKW0\nso61OzW2QEREpLOh4DYgBvistbYUGAx83udVdZMrW1oLDqu1QERE+rwOhQJjzP0A1tpcvN0G653b\nDwDf9V95/hUfG8mSGUMpqahjnVoLRESkj+toS8GXW339fJtji3xUS0BcOXcE4U5rQWOTWgtERKTv\n6mgocJ3l6zPd7lHiYyNZPH0IxWotEBGRPq6zYwrg03sd9Ji9D87myrkjCQv1zkRQa4GIiPRVHQ0F\nPf6N/1wS4iJZMn0IReW1rN91ItDliIiIBERH1xiY1GrPg6GtvnYBqb4vq/tdeeFIPtp+nLfXH+ai\nyYMJCz2fRhQJdm6Ph7LKOhL79wt0KSIiQaejoSDNr1UEgYS4SBZPG8LKbTls2HWChdOGBLok8bGa\nukaeeGsP2/cX8c2bpzFlzMBAlyQiElQ6unXyEX8XEgyuvHAEq3fk8vaGw8xTa0GvUlRew6OvZJJT\neBKAjbtPKBSIiLShd71WEvv3Y9G0IRSW1bJht8YW9Bb7c8r5+bNbySk8ydKZQ0mIi2TH/mINKhUR\naUOhoI2rLhxJWKiL5euP0OTWm0ZPt35XHg//dRtVNY3cdmkat19mmDk+meq6RrKPlQW6PBGRoKJQ\n0EZi/34snDqEgrIaNu7OD3Q5cp7cHg+vrj7Ak29nER4WyjdvnsayWcMAmJ6WBMC27KJAligiEnQU\nCs7gqgtHEhri4q31h9Va0APV1jfy2Gs7Wb7hCIMSovjhnbOYNDqx5bgZPoCoyDAysgvxeHr1bFsR\nkU5RKDiDgfH9WDhtCAWlai3oaUoqannoL9vIyC5iwogB/PDO2aQOjDntMWGhIUwbN5CSijqO5lcF\nqFIRkeCjUHAWVzutBW+rtaDHqKtv4hfPf8LRgioWTx/Ct26ZTmxU+BkfO3N8MgAZ2YXdWaKISFBT\nKDiLgfH9WDA1lfzSGjbvKQh0OdIBm7LyKa2sY9msYdx5uTnnlNJJoxMJCw1h2z6NKxARaaZQcA7N\nrQVvrj+M262+52D3UUYuLpd350uX69z7dEVFhjFxVAI5hVUUlNV0U4UiIsEtaEKBMcZljPmjMWa9\nMeZDY8yYNsevNcZsNsasM8bc2x01JQ2IYv6UVPJLqtmUpbEFwexQXgWHT1QybWxSh5cwnjHeOwth\n+z51IYiIQBCFAuAzQKS19iLgAeDXzQeMMWHO7UuAJcB9xpjk7ijqmnnOTIR1ai0IZh9l5AKwZMbQ\nDj9n+rgkXECGpiaKiADBFQoWACsArLWbgNmtjqUD2dbaCmttA7AWWNQdRSUNiOKiyYM5UVLN5r1q\nLQhG1bUNbMrKJym+H5PHJLb/BEd8bCRjh8azL6eMyup6P1YoItIzBFMo6A+Ut7rdaIwJOcuxSiC+\nuwq7+qJRhLjUWhCsNuzOp77BzeLpQwhpZyxBWzPSkvB4YMf+Yj9VJyLSc3R0l8TuUAHEtbodYq11\ntzrWv9WxOKBDa9QmJ8e1/6AOnGPZBcN5f/NR7PEKFs0Y1uVzim94PB4+zswjLNTFZy5OY0BcZKee\nv2zuKF5edYDdR0q5YVnHNgP1xTUl0pquKQkWwRQK1gHXAK8YYy4EdrY6lgWMM8YMAKrxdh080pGT\nFhZW+qS4ZTOHsnLLMV5YsRcztH+nP5GKf+w7Vsax/ErmpA+iobaewtrOdQNEAKkDo8mwBeQcLyMy\nPPScj09OjvPZNSUCuqbEt7oaMIOp++B1oM4Ysw74H+CbxpjPG2PutdY2At8C/ok3PDxprc3rzuIG\nDYhi3uQUjhedZOterVsQLJoHGF7ciQGGbc1MS6a+0c2eQyW+KktEpEcKmpYCa60HuL/N3ftaHV8O\nLO/Wotq45qJRbNiVz1vrDjN7wiC1FgRYRXU9W20BqQOjSRs+4LzPM2N8Mss3HGFbdiEz0rplUouI\nSFAKppaCoJeSEM28SSnkFp1km9Xc9kBbl5lHY5OHJTOGtrtY0bmMSo1jQGwEO/YXa0lrEenTFAo6\n6ZqLRuFywRvrDuHWDnsB4/Z4+Gh7LhFhIVw0eXCXzhXicjF9fDJVNQ3szylv/wkiIr2UQkEnpSRG\nc+HEweQWqrUgkPYcKqGwrJY56SnE9DvzpkedMdNZ3VALGYlIX6ZQcB6une9tLXhz3WG1FgTIquYB\nhjPPf4BhaxNGJhAVGcq2fYV49G8qIn2UQsF5GJwYzYUTU8gprCJDu+x1u5KKWnbsL2ZkShyjBvtm\nfndYaAhTxgykqLyWnMKTPjmniEhPo1BwnprHFrypsQXdbk1mHm6PhyUzhnRpgGFbM52ZBxnaIElE\n+iiFgvOUOjCGuekpHCuoYrv6obtNk9vNxzuOExUZytyJKT4995QxAwkNcbFNoUBE+iiFgi645qJR\nuPC2Fqgfunvs2F9MaWUd8yYNpl+Eb5fZiIoMY8qYgRwtqOLwiQqfnltEpCdQKOiCIUkxzJmYwtH8\nKrbvV2tBdzifLZI7Y6kzcHHl1hy/nF9EJJgpFHTRtU5rwRtr1VrgbwWl1ew6VML4YfEMS471y2tM\nHJ1ISkIUm7IKqNB2yiLSxygUdNGQpBguSB/E0fwqbb/rZ6u3Hwf810oA3oWMls4aRmOTmzU7jvvt\ndTrD7fZQqYAiIt1AocAHWloLNLbAbxoa3azJzCM2KpzZxr/7EyyYkkpkRCirMnIDvuyx2+3hd69m\n8t0/rqeovCagtYhI76dQ4ANDk2OZPWEQR05UknlArQX+8IktoKqmgQVTUwkPO/f2xl0VFRnG/MmD\nKamoC/g6FK98dIAdB4qpb/DOuhAR8SeFAh+5dv4oQGML/KV5BcPF04d0y+stmzUMgJWfBG7A4bqd\neazYfJSUxGiiI8P4eEcejU3asElE/EehwEeGJccy2yRz+EQlOw+qtcCXtuwtIDunnMljEklJiO6W\n10wdGMPEUQnYY2XkFFR1y2u2diC3nGdX7CUqMoyvf24q86ekUnGyXnsziIhfKRT40HXzRwPwxtrD\nai3wkfKT9Tz/niUiLITbLknr1tduaS3Y1r2tBSUVtfz+tZ00uT3c/5lJDE6MZskMbwtJ85RMERF/\nUCjwoWGDYpllkjmUV8GuQyWBLqfH83g8PLdiL1U1DXx2yVhSErunlaDZtLFJJMX3Y8PuE5ysbei2\n133mnSzKT9Zzy9LxTB49EPC2XEwYMYCsI6XkFWtvBhHxD4UCHzvVWqCxBV21cXc+GdlFmOEDWj61\nd6eQEBdLZw6jvsHNmh153fKahWU17D5cStrwAVw6+/TvuXkqZvPUTBERX1Mo8LHhg2KZmZbMweMV\n7FZrwXkrrazjhff3ERkeyt1XpxPiw42POmPB1FQiwkL4cFsObrf/Q96GXSe8rzsl9VObPc1MS6Z/\ndDjrduZR39Dk91pEpO9RKPCD65pnImjdgvPi8Xj487t7qa5r5Oal4xg0ICpgtcRGhXPhpBSKymvJ\n9PMAUo/Hw/pdJ4gID2HWGdZiCAsNYeG0IZysbWTL3gK/1iIifZNCgR+MSIljxvgkDuRWsOdwaaDL\n6XHWZOax82Axk0YlsKSbpiCey7JZwwH/T0/cn1tOQVkNs9KSiYo882ZPi6cNwQX8c8sxcgqrFDpF\nxKcUCvxEYwvOT1F5DS+tzCYqMpS7r0r/VBN6IAwfFEva8AHsPlRCTkGl315nvdN1cNHk1LM+JmlA\nFLMmDOJYQRU/emoz//HEJl77+AAlFbV+q0tE+g6FAj8ZOTiO6eOS2J9bzp4jai3oCLfHwzPv7KW2\nvolbl40nsX+/QJfU4hJnoOPydYf8cv6GxiY2ZxWQEBdJ+siEcz72y9ek85XrJjHLJFNSUcvb64/w\ny79so6qm+2ZIiEjvpFDgR9ctGAXAm2ot6JCPMnLJOlLKtLEDWTDl7J+WA2H6+CTiosNZt+M4bj/8\nW2ZkF1FT18iFk1IICTl360h4WChzJ6bw1Rum8NuvLeSKOSMorqjlybf3+KU2Eek7FAr8aNTg/kwf\nl0R2Tjl71VpwTgWl1fx91X5i+oVx15UTgqLboLWw0BCmjBlIaWUdx/J9v8JhS9fBpMGdel5kRCif\nWzKWSaMSyDxQzLsbj/i8NhHpOxQK/Ky5teCNdVrl8GzcHg9PL8+ivsHNbZemMSA2MtAlndHUsd6F\nhHYc8O1Sw+Un69l1sISRg+MYmhzb6eeHhLj48nWTSIiL5LWPD5KlACoi50mhwM9GDe7P1LED2Xes\njL1HywJdTlD6YGsO+3LKmZWWzNyJKYEu56wmj04kJMTl850wN+0+gdvjYf7kzrUStNY/OoL7PzOZ\nEJeLP72xq1MDD6trG9XtICKAQkG3uH6BdybCm2v9M0itJ8srPsmrqw8QGxXOHZeboOs2aC26Xzjp\noxI5dLyCiup6n513/a4ThIa4mNPFQDRuaDw3Lx1HRXUDj76aSV19+wsc5Rad5Fu/XxvU1+aG3Sd4\naWU2NXVi3W0gAAAgAElEQVSNgS5FpNdTKOgGo1P7M2XMQOyxMuxRNe02c7u93QYNjW7uvNzQPyYi\n0CW164L0FDzALh8tZHTkRCVHC6qYMmYg/aO7/v1fMmsYi6alcjS/iic6MPDwnQ2HqW90syojt9u3\nZa6ubeCj7bk0NH46vOSXVpN1pJTMA8U8+fYe/rnlGD95Zsun9n3Yc7iEFz/Y1y2rTYr0BQoF3aRl\nbEEQfyLrbis2H+XA8QrmTkxh9oRBgS6nQ2Y7n+Z91YXQfD0snTnUJ+dzuVzcfplhwogBbNtXyGur\nD571sYVlNWza410ZsbK6gR37u3fL7799uJ/nVlj+/uGB0+73eDz85uVMHvlrBr95eQehIS4WTE2l\noKyGp5ZnnRZ0Xvv4IB9szeHg8YpurV2kt1Io6CZjh8QzeUwie4+qtQAgp7CKf6w5SHxMBLdd2r1b\nInfFiJQ4BvaPZNfBEprcXftkvT+3nO37i0gbFs+k0Yk+qtA7U+Jfb5hCSkIU72w8wsc7zryB0orN\nR3F7PFw5dwQAazO7b6OlovKalhkXK7flkNlq8GZu0UnyS6pJiu9HUnw/7r4ynXuuSueCCYM4eLyC\ntZnezanKq+pawkB2jsbriPiCQkE3ut5Z5fDNdYcDW0iAVNU0sG5nHr97NZOfP7uVxiYPd10xgdio\n8ECX1mEul4upY5OormvkQO75fzr1eDy8ttr7CfnGxWN9PpYiNiqcr980jZh+YTy7Yi+f2NP3Sig/\nWc/azDyS4vtx4+IxjBocR+bBYkor63xax9m8u+koTW4PV8wZQVioiyffzqKwrAaA7dnegHDDojE8\nfP9FzHMGYN66bDyREaG8uvoADY1udrRqrdl3TKFAxBcUCrrR2KHeT4RZR0r7zC+x4vJa3t96jIdf\n3MY3Hl3LU8uzyMguYmB8P267NI3p45MCXWKn+WJq4p4jpew9WsaUMQNJGz7AV6WdZnBiNN+8eToR\n4aH86c3d7D58atfO97cco6HRzRVzRxAa4t1oyeOB9bv8v0V0QWk1a3bkkTygH59dMobPX5JGVU0D\nv3l5BydrG9i+v4gQl4spYwae9ryEuEgunj6UyuoGMrILW8JDdGQY+3PLg34GxbubjvDiB/s4WauV\nJyV4nXnXFfGb6+ePZvehEt5cd4jv3Doj0OX4nMfjIbfoJBn7Ctm2r4gj+af2Chg7pD8z0pKZMT6J\n1IExAayyayaMTCA8LITMA8XctGRcp59/WivBojG+Lu80Y4b052s3TuF/X97B71/dyWyTzJH8KnKL\nqugfHd6ycuTc9EG8tDKbtZl5XHXhSL/NAqmubeS3r2TS2OTmxkVjCQ0J4eIZQ8kvqeafW47xs2e3\nUlBaw4QRA87YgrRwWiorNh/lrXWHyS+tZkhSDKMGx7F+1wmOF51k2Hms89ARh/IqePH9fdxzdfp5\nXbullXW8vMr7b36ypoEvXzvJ1yWK+IRCQTcbNyyeSaMS2H24lOycMsYP88+nxO7kdns4cLycjH1F\nbNtXSIHTDBwa4mLS6ERmpiUzfVwSCXHBuShRZ0WGhzJhRAI7DxZTXF7LwPjO7dGwPbuIQ3mVzJ4w\niJGD4/xU5SnpoxL5l+sn89jrO1nnbM08dkg81y0YRUR4KOCdbjnLJLNxdz7ZOeV+ab3weDw8/tZu\n8oqrueyC4aetSXHzUm+4en/rMQCmj//01tEAqQNjSBsWz76cclzATUvGUn6ynvW7TvD6xwf50tXp\nRPfzXXeUx+PB5XLxwvv7OHi8gsff3MM9V6dzsqaBCe3sUdHaxj0nWr7esDufovJablw0BjOi4+cQ\n6Q4KBQFw3YLR7D5cyptrD/HtHtxa0Njk5pWPDrBxTz4VJ73z9iMjQpk9YRAzxycxdexAn/6CDiZT\nxw5k58FiMg8Wc/GMjs8ccLs9vLbmIC4X3LBwtB8rPN3MtGR+es8cPEDqwGhCQz7dczhv0mA27s5n\n275Cv4SCI/mVZB4oZsKIAdx88ektLCEuF7cuG8+CKansOFDE4nNsmX3J7OHsyynn5qXjmDYuiZq6\nRtbsOE5GdhGPv7WHb9w0zSf1llTU8uNntjB9fBJHTlS2fA//+fRmAH7/jUVE9+vYr9CM7CJcLrjn\nqnSeWp5Fdk45v3oxg2/ePI2lyf4PhiIdpTEFATB+2ADSR3pbC/bnlge6nPO2aU8+/9xyDI/Hw6Jp\nqXz9c1N59GsL+NfPTObCSYN7bSCAU+MKMvd3blzBpqx8cgtPMn9yard3oQxNjmVYcuwZAwHAhBEJ\nREaEsj27yC9Lcm/akw/ApbOHn3XTp2GDYrl63iginRaMM5k9YRCPfn0hl8/xzpqIigzjB7fPZNTg\nOHYeLG5ZWKqraxds3JNPVU0DazPzaHJ7mGVOb71oPWNi+YbDvPD+vjOeZ21mHvtzyhk7NJ75U1L5\nyT1zWo59vP38ZnycrG3g8Td3czTff1t5S9+kUBAgvWGVwzXOVLcf3jmbL16ZzrRxSYSHnf2XeW+S\nPCCK1IHRZB0ppb6h/ZUDwfsm9caaQ4SGuFrWrQgm4WEhTBmdSEFZDceLq316brfHw+asAqIiw5jc\nZgDh+Wg73iA0JIQ56Sl4PPDyh/t54PGNfPmRVWedjtkRm50QMzQ5hs8tGcv9108+7fiWvd4ZHQ2N\nTby6+iArP8n51ADi8pP1PP1OFgAznEG1wwfF8ujXFzIsOZaM7CI+2HyEPYdLKC7v+NLU7285xsY9\n+fz4mS0+X3Zb+jaFggBJG+5tLdh1qIQDPbC14ERJNftyykkfmUDygKhAlxMQ08YmUd/oxnZwJsnu\nwyUUlNUwf0oqSfHB+TNrng2yPbvQp+fdn1NOaWUds9KSCQ/zz6+d5k/y63adoMgZ13K+oSC/pJqj\nBVVMHTuQn31pLlddOJKQEBcP3jWbW5eNZ0SK9w0980DRaXuarNh09LTz7HTesCePSeTS2cNb7o+N\nCufqeSNxezz89m/b+e+XtvPdP67n6XeyOhQyd7ZaUfOp5Xs4UeLbECd9l0JBAF03fxQAb6zrea0F\na5yFbhZOSw1wJYFzqguhY5/U1u30TvdbODV4f2ZTxybhcsH2TnaLtGdTlvdTtz83vEoeENUycPOu\nKyYwYUQCB49XdGpzqGYZznTHmWmndxmMTu3PZRcM556r0gkLdfGnN3fzZqv/v627L7zn8YarW5eO\nJyz09F+3bbsjwNvV8NE5uhSKymt4+MVtHMqrZGRKHEtneqdo/vblHV1eTEsEFAoCyoxIYMKIAew6\nWNKjlmltcrtZv/MEMf3CmJV25lHifcG4YfFERYay40D7ffDVtY1kZBeRkhjNmCH9u6nCzouNCmf8\nsAEczK2g/KRvNn1qaHSzJauAuOhwJoz072ybe69O56s3TGbB1NSWN91t+zrf6rFjfxEuYNq4M6+j\nMSIlji9dPZGauiYO5FaQ2D+Sm5aMpcnt4cNPcqhraOKvH2STkV3EyMFxpA6M/tQ5wkJDmO6c//tf\nmMESZ3Dllr35Z72e3lx7uKVlYvzweG6/zLBwair5pTVsz/ZtN0JJRS15xSdpcrvJ2FeoDan6CIWC\nALuuZZXDntNakHmgmPKT9Vw4cXCfGUNwJmGhIUwalUhReW27zbdb9ubT0Ohm/uTBQb0TJHj7vj14\n3xh94RNbQFVNA/Mnp551kKOvDE2OZZbx7qMxY/z5hYLq2kayc8oZPaQ/8efYpGvuxBQumT0MgM8u\nGsuCqanEx0Tw5rrD3P8/q1umV96wcMxZ/83vu24iv/q3BZgRCdx5xQSmjBnIgdyKlkGZbeWXnrrO\n5qZ7W10uvcDbLfGPNQfPuLnU+Vi+4TDf+cN6/uOJTby9/gi/e20n//abjzV+oQ9QKAiwCSMTMMMH\nkHmguMe0FqzZ4TSD9+Gug2ZTx3o/6bW3mdC6XSdwARc5S/YGs+ZPr80rBrZVUlHLm+sOdXiA5aqM\nXAAWzzj7NEN/SIiLZOzQ/thjZZ3a6np/bhluj4eJo9rfj+LWZeP5yT1zmDd5MHHREXz9pqlMH5dE\nVGQow5Jj+emX5rR0M51Jv4gwJo4+dfy2y9KIDA/luffsp3birGto4uDxCkJDXDxw+0zGDo0HYFhy\nLBNHJZBbdJI31h4+ZzdCcXktuUUnP3W/2+3h9Y8P8h9PbOT/3tjFq6020mretMvjgd+8vOOMz5fe\nI2jWKTDG9AP+AgwCKoC7rLXFbR7zG2A+0DwP53prbY+fk3PdgtE88tcM3lx3yGdzrP2lrKqOzAPF\njEiJZUSK5ldPaV7yeH8RVzgbC7WVX1rN/pxyJo5KILF/5xY6CoSUxGiGJMWw61AxhWU1pw0kdbs9\n/N8bu9mfW05cVDgXzxx2znPlFFSRnVPO5NGJpCR8ugnd32alDeJAbgVPvrWHiPBQGpvcVFY38LnF\nY0hv9aZfWFZDXHQ4/SLCWgaOpg2Pb/f8IS4XwwedWkVx1OD+fO1zU2lodONy8alxBO0ZNCCKL145\ngaeWZ/HY67v42ZfmkOT8/PccLvHuFzF3xKcWPfuX6yfz7cfW8c7GI2RkF3LJ7OFMGpXAoIRo6hua\nqKppICEukof/uo3Cslr+/fZZjBt26vvbvr+It9YfBiDPmXkSFx1OWGgIpZV1XHPRKHYeKOZIfiUP\nPrmJH9w287S1LBoam3C5XJ3+fiX4BNO/4P1AprV2EfA88OAZHjMLuNxau9T50+MDAcCEEQNIGxZP\n5oFiDuUFd2vB+l0ncHs8LJzavZ/6glV8TARpwwdgj5WxOevMTb7rdnpXs5s/uee0rFwzbySNTR7+\n9uH+0+5f+UlOy9oam7IKzvTU0zS3EnRmgSdfmpnmbfXYdaiEbfsKyTxQzOG8Cn7zSmZLy9zJ2gYe\nfGoT//74Rkor68g+Vo7L5d3Z9HyFh4Wc9xvk3IkpfOGS8dQ1NPGz57byx3/soqGxiRffzwZOTW1s\nLTYqvGW30bziap5/z/LY67sA+NWLGXznD+v50q9WUVjmHXS5KiMHgMrqeqprG3lppffcF046NRD0\nmzdP45F/vYiH/mUeNy4aw4++OLtli/OHXtjWMoXyibf28JX/Xs2DT232yWDHo/mVbNqTr4GTARI0\nLQXAAuBXztfv0iYUGGNcwHjgcWPMYOApa+0z3Vuif7hcLq5fMJpHXtrOKx8d4Du3Tg/KfmePx8Oa\nzDzCQkNO++XR1911heEnf97CsyssY1L7t3yyA+/8/A278oiMCP3USPZgNndiCh9m5LJtXyG7D5Uw\naXQiBaXVvLr6ALFR4STGRZJ9rIySitqztn7U1DWyfvcJEvtHMnVc19cmOB+DEqIZNzSewrIavva5\nqSQPiGJ/TjmPvprJy6u8gSchLpL6Bjf1DfU8+OQmauubGJESR1Rk4H49zklP4fl/WiqrG9iytwAP\nUFxRy0WTB591afRF04YwcWQC3/u/DQAcK6gip6DqjB80NuzOp/xkPXsOn9rGfeKoBO67dhI3LRnH\nvmNljEyJw+VyMci5nl0uF/dfP4knQ0PYsPsE//7ERhoaT71x55dU88d/7OamJWP54xu7KCyr5bZL\nx3NRqzCcdaSU2Khwhg+KxePx8Kc3d7M5q4DYqHAmjU7kuvmj+PEzWwBYvX0A3/vCzC7/LKVzAnLV\nG2PuAb4JNA+xdQEngOYJ+5VA2yHaMcCjwK/x1r3KGLPFWrvL/xX734SRCUwZ4106d/X24ywJ0Cer\nc8nOKSe/pJoLJ6YQ04tXK+ys1IEx3HZJGs+8u5fH39rD92+b0TKgzh4to7iijgVTUomM6DmDMl0u\nF7ddksZP/7yFFz/Yx8KpQ/hwWw71jW6+eNUEamobef6f+9i6t4DL5owg60gpCXGRDE481UWwcfcJ\n6uqbuMrZiTFQvvv56bjdtPz8p49PYnRq/0+tLzFjfBJ7j5aREBfB5xaPDUSpLaL7hTF9XFLL1Mit\nzkJJzZ/UzyZpQBQ/v3cuH2Xk8sEnObzqbLx1wYRBjEiJ5ZJZwzlRUs1P/rzltEAAtHR/JcRFnnXq\nqMvl4t5r0rHHSimpOLXN9rxJg9l5sJht+wpPG9j55NtZhIeFcsGEQZRU1PLIXzMAePCu2ZwoqWaz\n09pUVdPApj35pw2wbL3+g3SfgIQCa+3TwNOt7zPGvAo0d1LHAW2viGrgUWttrfP4D4FpwDlDQXIP\nWlf827fP4quPrOLvq/azcNZwBgfZToIvOE2M1ywa26N+rr52pu/9hmVp7M+rZM32XD7IOM7tV6QD\n8JcPvD+zqxaO6XE/s+TkOC6fN4oVGw7z91X7CQ8L4YYl47hm0TjKq+p54YNsPskuYvCgOH7zUgYx\n/cL45VcXMHpIPB6Ph48z8wgNcXHD0jQSgmwsxWeWjOV/nTco8G7e9e93zyUyIhSPh7Muw+wvZ7o2\nvnfXHF5ZuY/Csho+zsglMiKURbNHnHMJ6OZzDUqO44NPctjhzBa4dtFYZjizMoYNHcDlF47kvY1H\nAPiXG6dyxbxRhHbie3702xdz+3+uAODhf1tI+uhESipquesn733qsW+uO0wj8MQ/Tv2q/tmzW9s5\n/xIS4voxoJdsotaTBFP3wTrgKmCr8/eaNsfTgJeMMTPw1r0A+HN7Jy0s7FnDDr5wyXieeGsPjzy/\nle99YQYhQdKNUFPXyJrtuSTF92NwfGSP+7n6SnJy3Fm/91uWjGHPwWL+/sE+RiXHMHJwHOt2HCcp\nvh+D4iJ65M/sqjnDqTpZx/BBscybNJjYqHCKiqoAvPt3HCrh0b9tJzIilJO1jTz4p/U8cPssyirr\nOHKikgsmDKKxroHCwoYAfyenmzg8nluWjiM0xMWLH2QzanAclRU1BOJf6FzX1NVzR1BWVceWPSeY\nNi6JirKOrVwYBnxuyVhe+egAoSEuBsaEn/YatywZy82Lx+DBO1iypLiq03X/6TtLyC+tJin21Lm/\nesMUnn4niy9cMp6k+H786sUMcgurTgsEw5JjyCk8NYPhqe9fTGF5LTsPFPPC+/tIGz6A2PAQGmrr\nKaz1zVoZfUlXP3y4/LHxyfkwxkQBzwKpQB3wBWttgTHmm0C2tfZt5+tbgXrgOWvtE+2c1tPTfhF7\nPB7+8PouPtlXyK3LxnPZBcPbf1I3WL09l2dXWG5YOJpr53ff7n7B5ly/wMG7nO9DL2wjPjaCy+eM\n4KWV2Vw3fxSfWTimG6vsHmsz83j6nSwiwkL4zq0zOJhXwUsrs3HhbaqvrW/ie5+f0akthrtbY5Ob\n59+zTB+XxIwAjflo75oC74DAfhGhnVoXxOPxsONAMf3CQwP2b3Aor4I/vL6LYmdVydkmmc9fksa3\nH1sHwO2XpbG01QyWorIaYp1ZIHJ+kpPjuvRJMmhCgZ/0uFAAUHGyngef8g54+vHdF3T7bnpn8vPn\ntnIor4JH7r+oR0yr85eO/AJ/a/1hXv/4IC68g2Ye+sqFDArAdDx/q6tv4rn3LPMmpzDZmWu/KiOX\nLVn5HCuoYvigWL77+RlBOWg2mHTkmuoNmtxuXLgICXFRUV1PiMv1qY2tpOu6GgoUx4JQ/5gI7rzc\n8Njru3jy7Sz+/Y6ZAR2olVtYxcHjFUwZM7BPB4KOuvrCkWQdLmHv0TLShsX3ykAA3taAL1878bT7\nLp4xNGDTDyW4tf4d1j/67CtFSmAF0zoF0sosM4h5k1I4lFfBuxuPtv8EP1qTGfwb+QSTkBAXX752\nEpNHJ3Ltgr7b1SIiPY9CQRD7wqVpDIiN4I21hziaH5jmxcYmN+t3nSAuOrxlW11pX0JcJN+6ZTqT\nOrBUrohIsFAoCGIx/cK5+6p0mtwennw7i8am7l/ha3t2EVU1DcybNFhLmIqI9HL6LR/kpowZyKJp\nQ8gprArIToofZ3r3dl84Tcsai4j0dgoFPcAtS8eRFN+P5RuOcOB4eftP8JGSilp2Hyxh7JD+DE0K\n/AwIERHxL4WCHiAqMox7rkrH44Gn3s7q8Ja1XbV2Zx4e1EogItJXKBT0EBNGJnDJ7GGcKKnmtY8P\ntv+ELnJ7PKzNzCMiPIQL2llvXUREegeFgh7ks4vHkpIYzftbjmGPlrb/hC7Ye6SUovJaLpgwKKC7\nxYmISPdRKOhBIsNDuffqdHDBU8uzqK1v9NtrnVqbQF0HIiJ9hUJBDzN2aDxXXTiSovJa/r7qgF9e\n42RtA5/YQgYnRjN+WLxfXkNERIKPQkEPdN380QxLjuGjjFx2HSz2+fk37s6nscnNwqmpWrdeRKQP\nUSjogcLDQrj3momEhrh45t29VNf6dlvaNZnHCXG5uGjyYJ+eV0REgptCQQ81IiWO6+aPorSyjhc/\nyPbZeY+cqORofhXTxg0kPjbSZ+cVEZHgp1DQg101bySjU+NYv+sE2/YV+uSca5pXMNQAQxGRPkeh\noAcLDQnhS1dPJCw0hOdW7KWiur5L56tvaGLj7nziYyOYMlYb+YiI9DUKBT3ckKQYblw0horqBp5/\nz+LxeM77XNv2FVJd18j8yamn7X0uIiJ9g37z9wKXXTCc8cPi+cQWsikr/7zPc2ptglRflSYiIj2I\nQkEvEBLi4ktXpxMRHsIL/9xHWVVdp89RUFZD1pFS0oYPICUx2g9ViohIsFMo6CUGJURzy8XjOFnb\nyJ/f3dvpboS1aiUQEenzFAp6kSUzhjJpVAKZB4pb3uQ7wu32sG5nHlGRoczW5kciIn2WQkEv4nK5\nuPuqdKIiQ/nrymyKyms69Lxdh0ooraxjbnoKkeGhfq5SRESClUJBL5PYvx9fuCSN2vomnnlnL+4O\ndCO0rE0wTWsTiIj0ZQoFvdBFkwczfVwSWUdKWbUt95yPraiuZ3t2EUOTYxg1OK6bKhQRkWCkUNAL\nuVwu7rrCEBsVzsur9pNfUn3Wx27YdYImt4eFU4do8yMRkT5OoaCXio+N5I7LDfWNbp5cvge3+9Pd\nCB6PhzWZeYSGuJg3KSUAVYqISDBRKOjFLpgwiDnpgziQW8F7m49+6vjB4xUcLzrJjLRk4qIjAlCh\niIgEE4WCXu72ywzxMRG8vuYgOYVVpx1rHmC4SGsTiIgICgW9XmxUOHddMYHGJg9Pvr2HxiY3ALX1\njWzKKiCxfyQTR2nzIxERUSjoE6aPT2LBlFSO5lexfMMRALbuLaSuvokFU1IJCdEAQxERUSjoM25d\nNp7E/pG8vf4wh09UsCbzOC5gwRR1HYiIiJdCQR8R3S+Mu69Kp8nt4bHXdpGdU076qASSBkQFujQR\nEQkSCgV9yKRRiSydOZTiiloAFk7VCoYiInKKQkEfc9OScaQkRBEfE8HMtKRAlyMiIkEkLNAFSPeK\njAjlh3fNprHRTXiYNj8SEZFTFAr6oJh+4YEuQUREgpC6D0RERARQKBARERGHQoGIiIgACgUiIiLi\nUCgQERERQKFAREREHAoFIiIiAigUiIiIiCPoFi8yxtwAfM5ae9sZjn0ZuA9oAH5hrV3e3fWJiIj0\nVkHVUmCM+Q3wC8B1hmMpwP8D5gFXAL80xmhpPhERER8JqlAArAPuP8uxOcBaa22jtbYCyAamdltl\nIiIivVxAug+MMfcA3wQ8eFsFPMDd1tqXjTGLz/K0/kB5q9tVQHw7L+VKTo7rarkip9E1Jb6ma0qC\nRUBCgbX2aeDpTj6tAm8waBYHlPmsKBERkT4u6AYansNm4OfGmAggCpgA7ApsSSIiIr1H0IcCY8w3\ngWxr7dvGmEeBtXi7HP7dWlsf2OpERER6D5fH4wl0DSIiIhIEgm32gYiIiASIQoGIiIgACgUiIiLi\nUCgQERERQKFAREREHEE/JdFXjDHzgK/gXT3x685SySJdZoy5GPiCtfbLga5FejZjzFLgVrxrsTxs\nrd0Z4JKkhzPGzMS7bxDA96y1hed6fF9qKbjP+fMU3v90Il1mjBkLzAAiA12L9ApR1tr7gP8BLgt0\nMdIrRAJfB97Bu6HgOfWKlgJjzFzgIWvtxcYYF/AHYBpQC9xrrT0IhFhr640xJ4ClASxXeoiOXFfW\n2gPAr40xzwWyVgl+HbyelhtjovF+svt+AMuVHqCD19QGY8yFwLeBm9s7Z49vKTDGfBd4glOf1D4D\nRFprLwIeAH7t3F/tLJGcCpzo9kKlR+nEddXsU9t9izTr6PVkjEkCfgf8yFpbFIhapWfoxDV1AfAJ\ncBXeYHBOPT4UAPuBG1rdXgCsALDWbgJmOfc/AfwJbxfCX7qzQOmR2ruuZrd5vJYGlXPp6O+p/wEG\nA780xtzYrRVKT9PRayoW7waEDwMvtHfSHt99YK193RgzstVdbbdYbjLGhFhrtwF3d2910lN14Lpq\ndK4rt/P4O7u1QOlROvF76q5uLk16qE5cU6uAVR09b29oKWirAu+2ys1afnGLdIGuK/ElXU/iaz65\npnpjKFiHt+8EZ3CFpvSIL+i6El/S9SS+5pNrqsd3H5zB68Clxph1zm11GYgv6LoSX9L1JL7mk2tK\nWyeLiIgI0Du7D0REROQ8KBSIiIgIoFAgIiIiDoUCERERARQKRERExKFQICIiIoBCgYiIiDgUCkQ6\nwRgz0hjjNsYsa3P/IWPMCB+c/5AxJrGr52nnNYYbY7KMMVuMMTH+fK1z1PCMMabL+0UYY2YYY37p\nfB0UywQbYxYbY8651rwx5hvGmKu7qyaRjlIoEOm8BuCJNm+ovloFrDtWE7sY+MRae4G19mQ3vJ4/\n/S/wkPN1MK3E1l4tjwE/NMaEd0cxIh3VG5c5FvG348D7ePcr/4pznwu8nxKBH1trL3ZuP4N3h7LV\nwD+Ag8AUYCvwEfBFYABwg7XWOud52BgzE/j/7Z17rFXVEYe/K4ZGtCRVaxPREEX5KaUoCBbB1xWs\niSYqNiFWQG0UNb4u8YXGWoX6jia+UETxhbRoa6JSFZVSAsZXVJCX/qIk0hiJrUpbqSRqvf1jzYHt\n9hy9mFBvzHx/7bP2WrNnZidnZs+snf0JcJrtVZJ2onz6exfgC+AS2wskXQ4MB3YFbrM9vaGkpD2B\nGa8+ImEAAAVWSURBVMD2wHqgg5LQ/A7YVtLtts+szB8FXBfy1wG/sv2RpKuAw4AfAR8Ax9n+u6S1\nwFzgIGAtcDtwLtAHONn24nhiXgGMoHz3fZLt+VVnSpoATArbXwXOCh3uAX4a0+6wfXdtXTvwnu1/\n1ca3oXwqfR/gv8CNtmdJ2hqYDoyMe9gJTLW9qLK2D+Xzsr1Ch3NtvyxpNHBD6LgGOCGOZ4a9OwOL\n6l85lNQPuCPuwSchb6ntzyQtDjn3kyTdhKwUJMnm0wmcDxxRbyNUzjdjEDDFdn9gGNDX9ghgDnBa\nZd4K20OAq4H7YuxmYKbtYcAxwIxKpeIHtgdWE4LgQeAm2/sA5wF/AlYBvwUeryYEwaXA6bb3pwT7\nIRHU+ts+wPZewGpgXMz/ScjZO34fa/tgYAolyDfY2vZ+wHjggQjOAEgaAEwEDgib/wFcSEkito91\nh8fvOkcDi5qMTwE+sP0zYBRwhaSBwBlAr9D318DQJmtPAeaGDyYDB0rqGb6cEL5cBpwEHAUssT0S\n6A+MkDS4Ju9+4ELbQykJ5JzKucVhQ5J0GzIpSJJvge31lGB2l6Tturhsre1lcfwu8Jc4XkN5Cm8w\nM67xJLC7pB8Co4GpkpYATwE9gH4x/6X6hSJh6Gf7sZD1EvAhoK/R7zHgUUm3Am/anm97NXCBpImS\nbqBUJar2zqvYsKCFPdNDh6WUJ/RBlXPtwB7Ai2Hb0ZQAuxzoL2keJZmY3ETfPSl+rNPOJh9+SKnQ\ntFOSi9kx/jc2+b/K/LB3NqUCcBulsvOu7eWx9je2p9meA8yX1AHcSqkGbPRN3INhwL1h2++BXpIa\nvlkTNiRJtyGTgiT5lth+ltJGuJFN1YFOopUQVHvGn9ZEfN5CdH38c0oScJjtwbYHAwdSyvIAG5rI\n2KqmR2OsZcvQ9s3AIcBblBbGJdHGeCZk/ZESYNsqa6q6dsWeHk1+P2x7SNj1c0qJfR0wELiFksgs\nkdS7JveLFtes/69tVblu9VzdP9h+HhhASXbGAn+mtFw2zpXUW1IfSecA1wPvh55v1GT2ADY0bAv7\nRoZthNxusTkySRpkUpAkm0/1j/8C4AhKTxlKz313ST3jLYKDWqz7OsYBSBpDeWLfQHmqPSvGBwCv\nA9u0EmD7Y2C1pGNjzXBKuX9FqzWSngd6276FsoFvCHAw8FfbM4A3gV9Qgt3m0LBnKGX/RPU77wuB\nMZJ+LKmN0n/viJ35D0a1pAP4mLJvospqoG/ld8O/CyhtACTtSGm3LKRUAY6P8Z2BQ6m1euJNhhNt\nz6Lsjxgcdu8oaa+YdhGlFTEKuDMqBm3AvlR8Y/vfwFuSGvaPpuwvabAb8HZzlyXJd0MmBUmy+WwM\nJBF8JxIVAdurgCeAlcBDfLnn3dniuC57YJSbOyi9aygBarik14E/ACd04c2B8ZQAu4zyJDum9mRf\n51LgPkmvhE2XAw8D+0p6jVIpeJISzLpqD8Aekl6ltBHG2u5szI92yhRKIF9OCa7XAk8D/5G0EngR\neMT2yprcuZQNkHUdpgI7hN0LgSujdXEXsD7G7wXe4atVlmnAL8P/jwBn2P6U4stZkpYCewPXUPZ5\nXCHpBeCy0Ge3mrzxwKlx366mVB8atFNaNknSbWjr7OxOb/EkSfJ9It4+mGz75S0kfzFwjO2PujD3\nSKDN9hPRingNGGr7n1tCt2/QpSfwHKWd8Nn/+/pJ0oqsFCRJsiXZ0k8dk2i+CbEZq4CLowqwELjs\nu0gIgrMpFYxMCJJuRVYKkiRJkiQBslKQJEmSJEmQSUGSJEmSJEAmBUmSJEmSBJkUJEmSJEkCZFKQ\nJEmSJEnwP3WYP6mJpGeVAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1178124e0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ex_rejection.phi_plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Metropolis-Hastings"
]
},
{
"cell_type": "code",
"execution_count": 247,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"class NormQStar:\n",
" \n",
" def __init__(self, scale=1):\n",
" self.scale = scale\n",
" \n",
" def pdf(self, x_prime, x):\n",
" y = (x_prime - x)/self.scale\n",
" return stats.norm.pdf(y)/self.scale\n",
" \n",
" def generate(self,x):\n",
" return stats.norm.rvs()*self.scale + x"
]
},
{
"cell_type": "code",
"execution_count": 251,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"class MCMH(MCRejection):\n",
" \n",
" def __init__(self, p_star, q_star, phi):\n",
" self.p_star = p_star\n",
" self.phi = phi\n",
" self.q_star = q_star\n",
" \n",
" def sample(self, num_samples, initial=0):\n",
" \n",
" self.num_samples = num_samples\n",
" \n",
" self.x_list = [] \n",
" x_old = initial # initialize\n",
" for i in range(num_samples):\n",
" x_new = self.q_star.generate(x_old)\n",
" a = self.p_star.pdf(x_new)*self.q_star.pdf(x_old,x_new) / (self.p_star.pdf(x_old)*self.q_star.pdf(x_new,x_old))\n",
" if a >= numpy.random.uniform(0,1):\n",
" self.x_list.append(x_new)\n",
" x_old = x_new\n",
"\n",
" def estimate(self):\n",
" \n",
" self.p_star_list = []\n",
" self.phi_list = []\n",
" self.e_phi_list = []\n",
" \n",
" for x in self.x_list:\n",
" \n",
" self.p_star_list.append(self.p_star.pdf(x))\n",
" self.phi_list.append(self.phi(x))\n",
" self.e_phi_list.append(sum(self.phi_list)/len(self.phi_list))"
]
},
{
"cell_type": "code",
"execution_count": 252,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"q_star = NormQStar(scale=2)"
]
},
{
"cell_type": "code",
"execution_count": 253,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nEbBfapt+Cs3TFAus0zrvHot83jZT9E78fXNg4beA59LWm9Gj1s/LKRTn+W/n3vdrsc/lAzvUphFi\ny1yVyczXNf+IfzoidqcIzG8Cv57FpWmPAq4D3tj8Y/tj7j3P/bfAERFxHcVAqS3AOZl5e3Ow2MXN\nwUl3A8+maPHNte3/JxFxNbA2M3/cnHZdy/pQtI6OabbUPhcRmyn+aN9CMVBqMTcDf9as+2bgpc3t\nL7SN+boWHLmcmV+OiHcCX2ke07bmMbHYes3APa75nh4JLLfb9QqKlutXmq+fQdGNvJUiSH6botei\n1ROAcxfZ3hwsekzPWmJt7b/Pbc3P099FxG4UXyhempm3LTS90zoL7GvBzxtF1/eHI+JfKMYKfJpi\nLMBS61/o87KJe9+vRT+XEbFYbRohY3NzXvkgrabm6OS/zszHVl3LSkXEXsAfZ+bre1x+d+CszPyj\ncisbHsP0eVF1Sm2ZN7v53g8ExbnOUzPzupb5pwEnUXwTheZlR2XWJKl3zVbttoj4peagrW6Oo7hS\nQFIfld3NfgzFZTeHNb99nkVxTmneFHBCZn675DqkvsnMK4BhamW9G/hdFu86ByAi9gVuyczsS1VD\nYgg/L6pA6d3sEbEmM3dFxMsoroU9sWXedcC1FANmLsnMt5ZajCRJQ6j00ezNID+fYkDGh9pmX0Qx\n4vQo4LAFRsVKkqQu+jYArnld6jeBA+av4YyI9fN3AIuIlwMPzcw3L7aNubm5ubGxxe6NIUnSUOoa\nfGUPgDsBeERmvoXi5goNmjcBiYj1wDXNu2/dSXGzg0531GJsbIxt23Z0WmSoTUyMe/wef9VlVGKU\njx08fo9/vOsyZXezf5ziNpZXAJ8DTgOeFxEnNVvkpwOXU1zLem1mruTmFpIkjaRSW+bN7vQXdZh/\nMcV9nSVJ0jJ5O1dJkmrOMJckqeYMc0mSas4wlySp5gxzSZJqzjCXJKnmDHNJkmrOMJckqeYMc0mS\nas4wlySp5gxzSZJqzjCXJKnmDHNJkmrOMJckqeYMc0mSas4wlySp5gxzSZJqzjCXJKnmDHNJkmrO\nMJckqeYMc0mSas4wlySp5gxzSZJqzjCXJKnmDHNJkmrOMJckqeYMc0mSas4wlySp5gxzSZJqzjCX\nJKnmDHNJkmrOMJckqeYMc0mSas4wlySp5gxzSZJqzjCXJKnm1pW58YhYA7wfCGAXcGpmXtcy/xjg\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x112949dd8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"q_star = NormQStar(scale=2)\n",
"ex_mh = MCMH(E_29_10, q_star, lambda x: x)\n",
"ex_mh.sample(10**3)\n",
"ex_mh.estimate()\n",
"ex_mh.pdf_plot()"
]
},
{
"cell_type": "code",
"execution_count": 254,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAgUAAAFxCAYAAADjx9tHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd42+d97/03AO4tTkmkKIrrFqk9LNmWl+QVx47j2E7s\nxHFWfdonTbPznCanTXtynjRN29OkadokzWxsZzqO7XjvJcuSrGEtkrfEKZGSuMW9gecPgBS1CRIk\nSODzui5eItbv9yUFAh/c0+HxeBARERFxBrsAERERmR0UCkRERARQKBAREREfhQIREREBFApERETE\nR6FAREREAIgIdgEi4cgYsxioAd6w1l531m2/AD4OpFtr2yZ5/K8D71prn/TzccnA/wGuA0YAD/Cf\n1tqf+3mca4H/sNau8OMx3wCOWGsf9udcftaVBDxmrb3ed3kPcJ21tnO6zikylygUiARPP1BsjFlk\nrT0GYIyJAzbhfTOeii3AIX8eYIyJBl4HHgLWWGvdxphc4GVjjMda+ws/a/DrZ7DW/r2fx5+MVOCy\ncedcOwPnFJkzFApEgmcE+B3wUeAffdfdCTwBfGn0TsaYPwc+CwwDjcBfWWsrfS0KncAKYBFQDtwL\nfAJYD/yLMWYEeAb4J+AawAXsBT5nre0+q557gC5r7b+OXmGtPWqM+SAQ5avlNuBrQCSQCTxorf07\nX8vA94AeIA7463H1JwH/CawG3MBzwNeste7xJ/f9PAestd8xxvQB3wZuBBYA/26t/d7Zv0BjzKeA\nP/fVkwr8k7X2R77bvgZ8DBgCjgCfBH4OxPlaCNb7fqfp1to2X+vKvb77H/b9npuMMa8Cb+MNa7nA\nm9baj51di0go0JgCkeDxAA/iDQWjPg6MfSI3xmwBvgJca61dA/wGb2gYtRa4CSgBsoEPWmt/AOwC\nvmKtfQL4KjBkrV3vO8YJvCHhbOuBt86+0lr7rrV2p+/iF4GPWWs3AFcAXzPGpPpuWwbc4zvHwLhD\nfB9o8XUlrAdW+X6mi4kGmqy1VwEfBL5tjIkafwdjTDzwZ8At1tp1eN/Q/9l32+14A8FGa+1KvF01\nn8EbDHqttWt9ocTju/8ngZuBddba1XhbWX457nT51tpr8QawLb4QJBJyFApEgshauxdwG2PWGGNy\ngARrbRng8N3lZuB3o2MLrLW/BBb6xiQAPGetHbbWDgMH8H5aHjV6jNuA9xtj9hpj9gLvB5aepxw3\nl35NuB1Yb4z5O+A7vuviff8es9bWn+cx7wH+w1f/EPAj4JZLnAfgT77H7MHbUhE//kZrbQ/wPuA2\nY8z/Af5m3H2uBx4ZHStgrf2KtfYfubD3AL+w1vb7Ln8P75v/aGvqk77jdAOVnPl7FgkZ6j4QCb6H\ngPuBZt/3cLo//nxv0k68zeUAfeOu93A6CIznAj5vrX0exj5hx5znftvxfpo+g+9T9ybgG8C7wKPA\nm3ib4u8Yd86zuyPG13uh+i+m76zLZ/xsxphsvM36/+Wr5w/Arb6bhxk3psHXhZFykXOdXaML7+vj\n6Dkn8nsWmfPUUiASPKNvLA/jbSL/EPDrs257HrjHGJMOY83cLdbayksce5jTb7zPA39ljIkyxjjx\nvol+6zyPeRRIMsZ8xXc/jDEFeFsEyoAiIAH4W2vt03hnKEThfQO9mOfxhQ3fYMY/B164xGPOdr43\n4fV4uxj+wVr7It5WA4wxDuAl4E5jTILvvt/AO05jmDM/DI3/PX/SN9AT4HPA676WDZGwoVAgEjwe\nAGvtcbxvuoettafOuu0l4LvAK8aYA3hbFG4df5+zj+fzJPB/jTH3451iWId3gOFBvH/3Xz67GN8b\n4A3AcuCAMeZd4PfAN3zdFvuBp4AKY8wbeMcQ7AYKL/Fzfg7I8tW/D++AyPOFEs8Fvj/fZfAGi3pj\njPXV0w+cBAqttc/iHZuxzRizD8jC271wAthjjCnzjYUYPe7P8AaJncaYQ3gHRY6O9ZhILSIhwaGt\nk0VERARmYUuBMWajbwrQ2de/zxiz0xjzljHmgWDUJiIiEspmVSgwxvy/wE/wTkcaf30E3n7NG/D2\nY/65MSZjxgsUEREJYbMqFOCd6vOB81xfgnf5005fv+dWvAuxiIiISIDMqimJ1trHxs2/Hi8J6Bh3\nuQtIvtTxPB6Px+HQzCEREQkbU3rTm1Wh4CI68QaDUYnAqQvcd4zD4aC5uWvaipLwk5GRqOeUBJSe\nUxJIGRmJU3r8bA0FZyedcqDQGJMC9OLtOviXGa9KREQkhM3WUDC6HvmHgXhr7U+NMV/COy/ZAfzU\nWnsimAWKiIiEmlBfp8CjZjkJJDX1SqDpOSWBlJGROKUxBbNt9oGIiIgEiUKBiIiIAAoFIiIi4qNQ\nICIiIoBCgYiIiPgoFIiIiAigUCAiIiI+CgUiIiICKBSIiIiIj0KBiIiIAAoFIiIi4qNQICIiIoBC\ngYiIiPgoFIiIiAigUCAiIiI+CgUiIiICKBSIiIiIj0KBiIiIAAoFIiIi4qNQICIiIoBCgYiIiPgo\nFIiIiAigUCAiIiI+CgUiIiICKBSIiIiIj0KBiIiIAAoFIiIi4qNQICIiIoBCgYiIiPgoFIiIiAig\nUCAiIiI+CgUiIiICKBSIiIiIj0KBiIiIAAoFIiIi4qNQICIiIoBCgYiIiPgoFIiIiAigUCAiIiI+\nCgUiIiICKBSIiIiIj0KBiIiIAAoFIiIi4qNQICIiIkCIh4JD1a3BLkFERGTOCOlQ8PX/2kZv/1Cw\nyxAREZkTQjoUDA272XO4JdhliIiIzAkhHQoAdpQ3BrsEERGROSGkQ0Fxbgrlte109gwGuxQREZFZ\nL6RDwdWrc3B7PLxT0RTsUkRERGa9EA8FC3GgLgQREZGJCOlQkJYci8lNobK+g9aO/mCXIyIiMquF\ndCgA2FCaBcDOCrUWiIiIXExEsAsYZYxxAD8AVgH9wAPW2upxt38BeAAYHSDwF9baI5c67nqTya9e\nOMyOskZu2bh4GioXEREJDbMmFAB3ANHW2iuNMRuB7/iuG7UOuN9au9efgybERrJsSSr7q1o50drD\ngrT4AJYsIiISOmZT98FVwHMA1todwPqzbl8HfM0Y86Yx5qv+HHijrwthR5m6EERERC5kNoWCJKBj\n3OVhY8z4+n4D/D/AZuAqY8x7J3rg1YXpREY42VHehMfjCUy1IiIiIWY2dR90AonjLjutte5xl79n\nre0EMMY8DawBnrnUQTMyvIfcsGw+b+07Tuegm8KclMBVLWFn9DklEih6TslsMZtCwVvAbcAfjDGX\nAwdGbzDGJAEHjDElQB+wBfjZRA7a3NwFwOr8NN7ad5znt9WQvLkw0LVLmMjISBx7TokEgp5TEkhT\nDZizqfvgMWDAGPMW8K/AF40xHzbGPOBrIfhr4DXgdeCgtfY5fw6+siCV2GgXO8sbcasLQURE5Byz\npqXAWusBPn3W1YfH3f5b4LeTPX5khIu1xRm8deAklfUdFC9SF4KIiMh4s6mlYNqNzULQssciIiLn\nCKtQULJ4HolxkeyqaGLE7b70A0RERMJIWIUCl9PJ+qWZdPUOUV7bHuxyREREZpWwCgUAG0vUhSAi\nInI+YRcKCnOSSU2KZs/hZoaGR4JdjoiIyKwRdqHA6XCwoSSLvoER9le1BbscERGRWSPsQgGoC0FE\nROR8wjIU5GYlkJUax77KFvoGhoNdjoiIyKwQlqHA4XCwsSSToWE37x5pCXY5IiIis0JYhgLQQkYi\nIiJnC9tQsCAtntysBA7VtNHdNxTsckRERIIubEMBeFsLRtwedtmmYJciIiISdGEdCjYs9XYh7CxT\nF4KIiEhYh4K05BiKcpKxR0/R3jUQ7HJERESCKqxDAcCGkiw8wDsacCgiImEu7EPBZUszcToc7CjX\nuAIREQlvYR8KkuKjKMmbR82JTprae4NdjoiISNCEfSiA8cseq7VARETCl0IBsLY4gwiXU7MQREQk\nrCkUAHExEawsSKOhpYf6pu5glyMiIhIUCgU+G0oyAS17LCIi4UuhwGdVYTrRUS52lDXi8XiCXY6I\niMiMUyjwiY50saYonZaOfqpPdAa7HBERkRmnUDDO2CwEDTgUEZEwpFAwzrIlqcTHRPBOeRNut7oQ\nREQkvCgUjBPhcrJ+aSYdPYPYo+3BLkdERGRGKRScZcPYQkbqQhARkfCiUHAWsyiF5IQodttmhkfc\nwS5HRERkxigUnMXpdLBhaRY9/cMcrGkLdjkiIiIzRqHgPDaWersQtOyxiIiEE4WC81iyIJHMlFj2\nHmlhYGgk2OWIiIjMCIWC83A4HGwozWRgaIR9lS3BLkdERGRGKBRcgBYyEhGRcKNQcAHZGQlkZ8Rz\noLqV3v6hYJcjIiIy7RQKLmJjSRbDIx52H24OdikiIiLTTqHgIjZoFoKIiIQRhYKLyEyJJX9hEmV1\n7XT0DAa7HBERkWmlUHAJG0uy8HhgV0VTsEsRERGZVgoFl3BZSSYONAtBRERCn0LBJaQkRGNyU6hs\n6KCloy/Y5YiIiEwbhYIJGF32+J1ydSGIiEjoUiiYgHUmE5fToS4EEREJaQoFE5AQG8nyJakcberm\nRGtPsMsRERGZFgoFEzTahaDWAhERCVUKBRO0uiidqAgnO8oa8Xg8wS5HREQk4BQKJigmKoJVhek0\ntvdxtLE72OWIiIgEnEKBH9SFICIioUyhwA8r8tOIjY5gR3kjbnUhiIhIiFEo8ENkhJN1xRm0dw1Q\nWd8R7HJEREQCSqHAT+pCEBGRUKVQ4Keli1NIiovknYomhkfcwS5HREQkYBQK/ORyOrlsaRbdfUNU\n1LUHuxwREZGAmVQoMMZEGGOyjDHRgS5oLthQmgmoC0FEREJLxETvaIxZAdwPxAKDQC+QbIzxAG3A\nj621JyZbiDHGAfwAWAX0Aw9Ya6vH3f4+4OvAEPALa+1PJ3uuqSrITiYtKZo9R5r52PAIkRGuYJUi\nIiISMBMKBcaY+4E+4KvW2nM60n0tBh8xxtRYa1+bZC13ANHW2iuNMRuB7/iuwxgT4bu8zlfHW8aY\nJ6y1zZM815Q4HQ42lGTx7I6j7K9qZZ3JDEYZIiIiAXXJ7gNjTCzwkrX2D+cLBADW2gFr7S+Ao1Oo\n5SrgOd/xdgDrx91WAhyx1nZaa4eArcA1UzjXlGkWgoiIhJpLhgJrbd/4bgFjzD8bY670fX+V71P8\n6H2rz3eMCUoCxk/+HzbGOC9wWxeQPIVzTdmizAQWpMWxr6qVvoHhYJYiIiISEBMeUzBOGVDh+34H\n8CHg1wGopRNIHHfZOa5lohNvMBiVCJyayEEzMhIvfadJ2rw+l18/X0FVYzeb1y2atvPI7DKdzykJ\nT3pOyWwxmVCwGPilMeZlYBuQGqBa3gJuA/5gjLkcODDutnKg0BiTgneA4zXAv0zkoM3NXQEq71zL\nF6cA8NKOOpbnpkzbeWT2yMhInNbnlIQfPackkKYaMCcTCmqBH+J9Y/4UcGRKFZz2GHCjMeYt3+VP\nGmM+DMRba39qjPkS8ALgAH46lZkOgTI/NY7FWYkcqmmju2+IhNjIYJckIiIyaZMJBb3AiLX2D8aY\nXcB7A1GItdYDfPqsqw+Pu/1p4OlAnCuQNpZmUfdqF7sqmrhuTXawyxEREZk0vxcvstY+AizwXUwG\n4gNa0RyzoUQLGYmISGiYTEsB1tqDvn/3AfsCWtEck5oUQ3FOMoePnaK9a4B5iWG5yKOIiISAiaxT\nEONbTOiSjDGbp17S3LOxNAsP8E65WgtERGTumsg6Bf3AkDHmy8aY0rNvN8Y4jDFXGGO+CtRMR5Gz\n3bqlmTgdDnYoFIiIyBw2oe4Da+0eY8x+4B5jzKeBGLyBwoN3DYFXrLXfnr4yZ7ekuChK8+ZxsKaN\nxvZesubFBbskERERv014TIG1dhj4le9LzrKxNIuDNW3sLGvkfZuWBLscERERv/k9+8AYU2yMuX38\n8sYCa4sziHA52VHehMfjCXY5IiIifvMrFPj2PHgK+Fvg99NS0RwVGx3BqoI0jrf0UN/cE+xyRERE\n/DahUODbOhngcqDEWrsB+KYx5npjzH3TVt0cM7pz4k4NOBQRkTlool0AnzbGLMC7hfGXjTGj15cC\ni9A4AwBWFqQRHeViR1kjd16Tj8PhCHZJIiIiEzbR7oMoIBbvrIPYcV/RgBb894mKdLG2KJ2Wjn6q\nj3cGuxwRERG/TDQU/Nha+w1gJ/D/+b5/Gvgv4JfTVdxcNNqFoGWPRURkrpnoOgU/9n37NlBhjGkH\nGqy1dwKvTVNtc1JpXioJsZG8U9HEvdcX4XSqC0FEROYGv2YfWGu3A+8DvgXcMy0VzXERLifrTQYd\nPYNUHG0PdjkiIiIT5vdaA9ZaC9hpqCVkbCzN4rV3j7OjrJHSvNRglyMiIjIhfi9eJJdWtCiFlIQo\ndttmhkfcwS5HRERkQhQKpoHT4WBDSRa9A8McrG4LdjkiIiITMqHuA2PMxy52u7X2wcCUEzo2lmbx\nwjvH2FHeyOqi9GCXIyIickkTHVNwme/fEqAQeBwYBm4DKgCFgrPkzU8kMyWWvUeaGRgcITrKFeyS\nRERELmpC3QfW2s9aaz+Ld6GiNdbaL1hrvwJsAPQx+DwcDgcbSrMYHHLzbmVLsMsRERG5JH/HFMwH\nOsZd7gcyA1dOaNFCRiJT19U7yMm23mCXIRIW/J2S+CTwsjHmUcAB3Av8JuBVhYjs9HhyMhI4UN1K\nT/8Q8TFaEVrEXz95qoyD1W3cesVi7rh6CS6nxkeLTBd/Fy/6CvB9wABFwLettX8/HYWFio2lmYy4\nPeyxzcEuRWTOGR5xY4+eAuDpt+t4YmtNkCsSCW2TidyxQCfwv4B5gS0n9Gwo8XUhaDtlEb8da+pm\naNjNxtIsUhKieGHnMdq7BoJdlkjI8isUGGO+DdwC3Im36+ETxph/nY7CQkVGSiwFC5Mor2uno1sv\nZiL+qGzwDmFakZ/K+69awuCwmz+9pdYCkenib0vBzcD9QL+19hRwE96QIBexoTQLjwfeqWgKdiki\nc0qVLxQUZCdz1coFZKXGsXX/CTp7B4NcmUho8jcUjK7Z6/H9Gz3uOrmADUszcTjUhSDir8qGDhLj\nIslMicXldLJ5TTYjbg/bD+lvSWQ6+BsKfg/8Dkg1xnwBeAPNPrik5IRolubOo6qhk5ZTfcEuR2TK\nBoZGpuW45XXt/OiJgzz6ehVPbqulrXOAwuxkHA7vFuSXL8vC5XSwdf8JPB7PJY4mIv7ya0qitfaf\njDE3A3VALvD31tqnpqWyELOxNIvyunZ2VjTx3ssXB7sckUl7c/9xHnzO8tf3raUwOzkgx/R4PDz6\nejXPbK8757blS07vNJoUF8XqwnR2H26m9mQXSxYkBeT8IuLlVygwxjxqrb0LeH7cdS9ba68PeGUh\nZp3J4KHnLTvKGhUKZM7yeDy8sPMYI24Pz+84SuGdKwJy3KON3TyzvY7MebF88palDLs9DA6OkDkv\nloXp8Wfcd/PabHYfbubXLx7max9dh9PpCEgNIjLxDZEeA1YB2caY6rMef2w6Cgs18TGRrMhP493K\nFo639JzzQicyF1Q2dNDQ0gPAniPNtHb0k5YcM+Xjbj1wAoB7txRhci8+07k0L5UNJZnsLG/i5d31\n3HjZoimfX0S8Jjqm4OPAFuA5YPO4ryuAa6entNCzodS7IrSWPZa56vV3jwNwxbL5eDzw6t6GKR9z\naNjN9kMnSYqPYnl+6qUfAHzkhmLioiN4clstA4PTM75BJBxNdEOkTmttLXAPsBa4Bm8YuAn4u2mr\nLsSsKcwgKtLJjvJGDZKSOaenf4h3KprInBfLx95jSIiN5I19xxmc4qDDfZUt9PQPc8WyLCJcE/uc\nkhQfxQ3rc+juG+LR16t4+AVLS4cG8YpMlb97HzwKxOHdPvlNvOHgiUAXFaqio1ysLkxnZ3kTdY1d\n5M3XICmZ3Xr7h9hR1ojL5aTet7rgtasWEh3p4ppVC3lmex07y5u4auWCSZ9ju6/lbNMK/45xw/pF\nPL/zGC/trge8SyJ/4paSSdchIv5PSTR4uxEeA/4Z79bJ6tDzg3ZOlLlgeMTNi7uO8dX/2s5DLxzm\nv5+t4KXd9bicjrE372tXLwSmtv6Gx+OhsqGDtKRocjIS/HpsQmwkt125mNSkaOJjIthtmxke0bIp\nIlPhbyhotNZ6gApgpbX2ON7tlGWCli9JIy46gp3lTbjVhSCzkMfj4fuPHuA3Lx1hxO3mA9fk88Bt\nJdx1bT6f+cAKkuKjAO8S3rlZCVTUtdPbPzypc7V3DdDZMzjpVrNbr8jj//7lJq5cvoCe/mEO1bRN\n6jgi4uVv98EhY8z3gR8CvzLGLASmPvQ4jERGOFlrMti6/wRHjp265EhrkZl2qLaNA9WtFC9K4S8/\nsJykuKgL3ndtUQZHG7s5UN061grmj9qTXQDkLUicdL3gHcT74q5j7CxvZFVh+pSOJRLO/G0p+DTw\ne2ttGd4BhvOBDwe8qhA31oVQrr0QZHZxezw8+pp31vFHbii6aCAAWF3kfQPee2RyW4PXnOgEmPL4\nmvwFSSTFR1Hh22ZZRCbH31CQCqw2xvwdsAZoB+4KeFUhriR3HknxUeyqaFIfqMwquyq8g2AvL80i\nN+vSn94XZSaQnhzDgerWST2XA9VS4HA4KFiYRHvXAG2d/VM6lkg48zcUPIM3DDh8X4z7VybI6XRw\n2dJMuvuGKK9rD3Y5IoB3cOFjb1Tjcjq44+olE3qMw+FgTVEGfQMjVBz177ns8XioPdFJZkos8TGR\nkyn5DAW+JZerj3dO+Vgi4crfMQVYaz81HYWEm42lWby8u54dZY2syE8Ldjki7KpoorG9j81rs8mc\nFzfhx60pSufFXcfYc7iF5Usm/lxu6einp3+YZUsmtmDRpRQs9HZBVB/vZP3SzIAcUyTc+BsKHjfG\nPAC8AowNN7bWHg1oVWGgYGESaUkx7DnczODQCFGRrmCXJGGuzNdqde2qhX49rmhRMknxUewsa+Se\nLYVET/C5HKjxBKPy5ifhcEDV8Y6AHE8kHPnbfZAMfBd4GXjd9/VagGsKCw6Hgw2lmfQPjrC/qjXY\n5YhQ1dBBTJTL7/UCXE4n165aSO/AMNsPnZzw4yobvG/eS6Y4nmBUdJSLRRkJ1J7s0lgdkUnyNxTc\nBWRaa5eM+8qfjsLCwcaS0VkIWshIgqu7b4gTrb0ULEya1K6D163JxuV08PLuhgkv4V1Rd4rICCf5\nCwOz/TJAfnYyQ8Nu6pu7A3ZMkXDibyioBjSxPkAWZSawIC2OfZWt9A1MbvEXkUCo8n1qHx2s5695\nidGsLc6gvrmbw8cuPS2wu2+I+uZuCrOTiYzw92XowkbHFVQ1aLChyGT4+9foAcqMMVuNMa+Mfk1H\nYeHA4XCwsTSL4RH3pOd5iwTCaFN+4SRDAcD163IAeHnPpXdOtL71BExuyqTPdz75Y4MNNa5AZDL8\nHWj4D9NSRRjbWJrF42/WsKOsiSuXT35TGZGpqGrowMHpN9XJKMpJZkFaHO8eaWFgcIToqAsPOLS+\n6YtLA7yiZ1ZqHPExEVRpWqLIpPgVCqy1r09XIeEqa14cefMTKatto6t3kMRLrCAnEmgjbjfVJzpZ\nmBFP3BTWCxhds+CZ7XWU17WPrXZ4PhVH24mKcLJkQWB3CnU6HCxZmMTBav09iUzGhLoPjDE/9v37\n6vhuA3UfBMaGkixG3B52WXUhyMyrb+phcMg9pa6DUasKvesU7K9queB9unoHqW/uoSDA4wlGFfgG\nLlbWqwtBxF8TbSn4L9+///s8t2mrvynaUJLJI69WsqOskc1rsoNdjoSZQIwnGFWwMJn4mAj2VbXi\n8XhwOM6dyVBW6+s6WDw9Y5aX5qbwhO88a4ozpuUcIqFqQqHAWrvb9+3nrLVn7HVgjHkZuD7QhYWT\n1KQYihalcOTYKdo6+0lN0saTMnMqpzjzYDyn08GKgjS2H2rkWFP3efdP2OdrRVhVMD0reRZkJxMd\n6eJQrbZRFvHXhEKBMeYxYBWw0BhTPe6mSECrGQbAxtIsDh87xTsVTdy8ITfY5UgYqazvICE2kqx5\nsQE53qqCdLYfamRfZcs5oWDE7eZAVSvzEqNZlOnfIkkTFeFyYnJT2F/VqpAt4qeJduh9HNgCPA9c\nB2z2fW0Erp2WysLMepOBy+nglT31DA6NBLscCRPtXQO0dvZTmJ183qb+yVien4rT4eDdynNX6qxq\n6KSnf5hVhekBO9/5LMvz7qdwqEatBSL+mFAosNZ2WmtrgW8BdwMngJ8A+4D3T1t1YSQxLorr1+XQ\nfKqfp9+uC3Y5EiZGpwYW5QRuVcH4mEhK8+ZRc6LznMF+0911MKrUt8mSuhDCW3ffEE2n+mho6Ql2\nKXOGv+sUfA/4n3iDQS+wFvgj8OhUCzHGxAAPA5lAJ/Bxa23rWff5N2AT0OW76v3W2i5CxPuvWsI7\nFU08u6OOK5bPZ37qxHeqE5mM0a27S/ICO+jvtivzOFjTxuNbq/nKvWvGrt9f2UpUhJOSaRpkOGph\nWhwpCVGU1bbj9nhwTmOrhMxOHo+H//2LnbR1DgDw0ZuK2bI2Z8rHfXVPPe3dg+RmJpAUH0XxosAu\nwBVs/s4Hclpr3wBuBR611h5jEtsvX8Cngf3W2muAh4Cvn+c+64CbrbVbfF8hEwgAYqMj+PD1RQyP\neHjoeTvhNeRFJqu8rp246AhyMwOzKdGo4kUplObNo6y2fWzZ47bOfhpaeli6eN607wrqcDhYlpdK\nd98Qxxq1D0I4OtnWOxYIAB57o5qe/iHc7gu/rh5t7OLvfraD5lN9Z1w/NDzCsaZuKus7eOiFwzy1\nrZYfPH6Qb/9qD129g9P2MwSDv2/ovcaYL+MdX/BXxpjPc/pT+1RdBfyT7/tnOSsUGGMcQBHwY2PM\nfOBn1tpfBOjcs8Y6k8GK/DQOVLeyo7yRy0vnB7skCVEtp/po6ehnTVH6pDZBupQ7rsqnrHY3f3qr\nhq/cu2ZsKmKpr79/upUuSeWtgycpq21j8fzAhh6Z/Q5We7uOinKSKcxJ5tntR/n897bicMBf3L6M\n9Uszz7gI+t7aAAAgAElEQVT/0PAI//sX7wDwH388wJa12Ww9cOKS+2g89LzlLz+wYnp+iCDwNxTc\nB/wZcJe1tt335vxhf09qjPkU8EVOr3HgAE4Cox2QXcDZS53FA/8OfMdX96vGmHestQcvdq6MjLn3\nYvC5e9fwmX9+hUderWLLhjziYye/ypwE3lx8Tp3PPt8gvPXL5k/Lz5SRkcjyt2s5WNWK2+WiutH7\n+WHTmpwZ+R1evS6SnzxZxpHjnXxslv+fhcpzKpjaOvv54ndf4z1XLOHDNxkO+brGvv5nl5MQF8nb\nBxs51T0AHryf8j9zFcvyT49tefCZsrHvjzV188vn7AXP9fO/vYltB47zh5ePsMs20zPsIS/Aq3MG\ny0SnJH7aWvtDa22DMeZRa+0hAGvt13z9/F/w56TW2p8DPz/rHI8Co38ZicDZW631Av9ure333f8V\nvNMkLxoKmpvnXg+DC7j1isU89mYNP/njfu67qTjYJYlPRkbinHxOnc/OgycAWJQWN20/0/riDA5W\ntfLs1ir22iaS4iKJc83c32VORgKHqls5fuIUkRHT22UxWTP1nBoecePxMC2rSAabx+PhKz/YRnvX\nAL9+voLu7n7KalrJzUpgeGCIUwND3LIxl9+8fGTsMV/9z62U5s3j9k1LyF+YxEs7vbPrb9mYy7M7\nLjzT/hO3LIXhYa4sySQuwsm/P7qfF9+u4Y6r86f955yIqQbMibYU/A/gh77vH8I7wHDUNVOq4LS3\ngPcCu3z/vnnW7cXAb40xa/DWfRXw3wE696zzno2LeftQI6/srWfTyvnkzQ+NFCqzg8fjobyuncS4\nSLLT46ftPOtMBg+/YHnhnWN09Q6xoSRzWqcinq00b553O+f6jrFpiqGu+VQfr+yp5/ZNS4iNPv0S\n/8vnKninvIkv3bM65AbH1Tf30N51evzAn96qBc7sqrrxskWY3BTiYiL4nz98G/CuejnarQWwacV8\n7r6ugIaWHiIjnFy9ciHzU2NJT47F4YCe/mESxrXcripM45O3LJ32gbMzaaKR0XGB7893ebJ+CCw3\nxrwJPAB8A8AY80VjzG3W2grgl8B24BXgv6215QE696wTGeHk/puK8XjgwefsRQfHiPjrZFsvp7oH\nWZo7b1rfpONjIlmRn0ZX7xAwc+MJRi3zTU0sC5P1Cnr6h/ibn+zg+Z3HeHl3/dj1dSe7eOvASQaH\n3fzh9aogVjg9DlZ7J6rdduXiM64vPWtWTW5WIunJsfznF8//WXb5kjQcDgdf+OAqPvOBFawsSCNz\nXhxOpwOHw3FGIADvgNarVy0kPSUwC3/NBpOZOXD2u1NA3q2stX3Ah85z/XfP+v67Z98nVJXkpXJ5\naRbbyxp57d2GgEynEQGoOOrtnZuJTziXL5vP3iMtM3a+8YoXpRDhcvDirnoOVLdy2dJMluennXd3\nRrfHw4PPWQqzk7lq5dzcxvyVPQ0Mj7gB+OMb1fQNDnP3tQU8+Pzp/vHK+g7auwaYlxgdrDID7qAv\n9N2wbhEfuDqfT3/ndQaH3BTlnL9FJDY6gi98cCURLicHq9t4budREmIjWZ4fHq1JFzPRUKCPqUFy\nz5ZC9lW18ujr1awrziA5IXT+kCV4xtYnmIE36VUFacRFR5AYH0XGDH+iio50sWVtDrttM43tfTz2\nZg2PvVnDX96x/JzR5zUnOnlj33H2HG5mY2nWnOx731/VgsMB999sePA5y7Pbj9LdO0TNiU6yUuO4\ncX0OD79wmNf2NvCBa2ZHH/hUjbjdVDZ0kJPhXTcA4Nt/cQW9/cNEX2Tq68oC79bepXmpfOCafNxu\nD9FRs3PcyUyaaChYNm7Pg+xx3zuAuRmp54jkhGjuvCafX714mN+9Wsmfv29ZsEuSOc7t9lBR1868\nxGgyA7TfwcVERbr46kfXEukKzpvsvdcXce/1RfT2D/FuZQs/e6qcZ7bXsc5knNF1svewtzWju2+I\nvUea2VCSFZR6J2NgcIQfP3mIqoZOSvPmcd3qbBzAL5+zvLnfO6D0vhuKKFqUwp+21vDS7mPccnku\nMVGBWmYmeJra+xgadrN4/um9NFISoknx4wPUXAyA02Wiv4liTu93MP776wAzLZXJmM1rssmbn8j2\nQ42Ua9lWmaLdh5vp7htiZUHajA36y8lIICvIK3TGxURy5fIFrC5Kp/ZkFw/886u8U9E0dvveI824\nfOs1jL6RzlZH6r2bpw0MjlB3sot3KprGumjuuMrbAnDZuJaQRZkJLM9PIzrSxdWrFtI3MEL5uAF2\nc1lDs3cJ4+z06dlgK9xMdOtkLcYfRE6ng/tvNnzzl7t46IXDfONTG5RsZVI8Hg9Pb6vF4SBsd+O8\nZeNi9h5pweOBR16tZG1xOi2n+jnR2suaonROdQ9SXttOR88gyb7m6GBq7xqgqqFjrGXD4/Hwjw/v\nASAqwsngsHvsvg/cVkKhbx+LuJhIfvTla3lpdz2blp9eBG1lQRpPv13HgepW1hRnzOwPE2AHa1r5\nwePeWenZGdM3iyac6J1ljliyIInNa7M52dbLczu1W7VMzoHqVo42dXPZ0syw3VujMCeZH335Wq5b\nk01LRz+7KprHPmWvLkpnY2kWbo+HXeNaEYLp4RcsP3j84Njffe3J02sajA8EAGuKznyTj4p08d7L\nF58xFil/YRJx0RG89u5xTrTOzY2CevqH+Nz33uQ7v9s3dt10Tq0NJwoFc8id1+STFB/FU9tqaTpr\nbW6RS/F4PDy1zdvo997LF1/i3qEtKtLFTZctAmBHWSN7jjTjcMCqwnQ2lGTicjp4+u1auvuGglqn\n2+0ZCyxPbfPWU9ngXfh1dWE6ES4nKQne1ox1xRlnrEtwIS6nk5s3eH/2rbOom+RoYxfPbq9jYPDS\nW8c/+nr1Gf83cdERITWbIpjm/iiTMBIXE8m9Wwr58ZNl/PrFw3z+7pUzuhCMzG2Hj52isqGDVQVp\n5GZpWd35qXFkpMRQXtfO4NAIhTnJJMV532Bvv2oJj71Rze9ePsKf3VYatBrrGk+3CvQNjLDt4Enq\nm7wbPN11XQGfvmM5LpcDW9dOQfbEt7++aUMuz+08yhv7jnPblXkTChPT6fV3G8aWFX7ktSry5ify\nkRuKx7pCznagyrsuwbIlqRTlJHPVigV6LQwQtRTMMRtLsyhZPI/9Va3sOdwc7HJkDnnqbW8rwa1X\n5gW3kFmkZPE8BoZG8ACXl56ebXDr5YvJyUhg28GTHG2cuWWte/uH+elTZVQf927CU+YbWPyRG4qI\ncDl4bkcdZXVtREY4mZ8aS2SEE6fDQUleql87T45O1ezpHz5jRb+Z0D84zA8eO8CrexvweDx86tuv\nnLPPQO3JLh564fx7D7R3DdDa2c+yvHl8+Z7V3L5pCalJMTNRelhQKJhjHA4HH72pmAiXg1+/dIT+\nweFglyRzQHvXAIdq2ijOSabQj0+UoW5prnedBpfTwWXjpiA6nQ4+tKUAD/D7VytnbBvzZ3fUse3g\nSb754C52VTRxyLcoz4aSLG67Io9T3YO0dQ6QkxGPyzm1l+/Vhd55+geqW864vrd/eEJN+JP1s6fK\n2WWbeeh5yxv7jo9df+c1+Xz+7pVjl481ddPY1nvO47f59uxY4VtnQAJLoWAOWpAWz3s2Lqa9a4An\nttYEuxyZA6qPe/uhl4/bFU68LQWREU7WL808Zwnb5UvSWL4klbLadvZVts5IPdsPnRz7/gePH6Ti\n6CkyU2JJio/iRt8YCCAgi0AtWZBEQmwk+6tax0LPwOAIf/fzHXz7V3umtLS62+O5YJA61tw99v1o\nC8H1a3O47co8Vhakcf26HHJ8Mwn+8NrpJZlH3O6xPTsALl82d9aRmEsUCuao265YTEZKDC++U8+x\npu5LP0DCWpWvObpgoTbWGi85IZp/eGAjn3jP0vPe/qHNhbicDn72dBkt0zy4t62zn9bOAVbkp/GZ\nDywnwuXtI4+L8fb3x0ZHsHlNNgAmd+orUTqdDpbnp3Kqe3DsNWSXbaKtc4C6xi4OTXJNlIGhEb76\no7f55oO7zgkGvf1DNLX3sTQ35YyFsz64uQDwtoTed2MxX7pnNeBdU+NQbRstp/r47L+9ybce3k1Z\nbTs5GfFj4z8ksBQK5qioSBf33Whwezw89LzFPUPNmzI3VTd04ICQ2fM9kNJTYi+4vG1OZgIfvqGI\nnv5hXn234bz3GRoeobWj369z9vYPs73s5BmPO1zv3Y9iaW4K60zm2Fa8Jvf0+v333VjMl+9ZzdUB\n2pthpa/l6IBvQ6F3K093JTy5rXbsdaW3f4g/vlHF4WNn72h/2qt7G3inooma4520dPRTc6KL+uYz\npzzW+KZT5i9M5j2+dTJyMxPOGQ+RkhDNtasXems60oI9dor+wRGqGrzhdkGaph9OF80+mMNWFqSx\nzmSw2zazdf8Jrlm1MNglySw0POKm9mQX2RnxQR9lPhdtWrGA371Syf6qVj54XeE5tz/8wmG2HTzJ\n33xs3YS3OH9qW+3YugMfv7WUrKRoHvU1la/wvVG/Z2MuC1LjKF1yepMep9MxtvNjICzPT8PpcPDo\n69UsTItnX2ULC9PjWZAax+7DzTzyaiX3bCli64GTPLWtjqe21fH1j68f21Cqs3eQn/zpEIfGDVbc\nUHJ6JcVnttfxF7cv41S3dwGm/3zMu9BQYXYyKwvSiIxwXnDnzPtuLObtQyepqGs/Z4nsy87at0IC\nR68Qc9yHry/iYE0bj7xayZqidBLVpCZnaWjuYXDYTf5CDTCcjOhI19iMn5ZTfWdsk9vVOzi2JPIP\nHz/IX9y+nPwJdNEcqPF+Mo+PieCXT5eNXX/dmmxyMr3L9TodjmlfcTAhNhKTm0J5XTvf/+MBAG7e\nsIg1RRnUN3fz/M5jnGztpXlci8aPnyzjgVtL2GWbvANYz5q9sLPcu+hThMvJjrJGFmUmnDE2AKAg\nOwmn08GmFRdu8YhwOSnKSeFQTRsDQyM4HQ7+/fNX0dLRrym100jdB3NcalIMd1y1hJ7+YR55LfT2\nSZepq/INMtR4gslb5Rupv6/qzAGHbx9qHPu++VQ/3/39u7R0XHzsQcupPhqae1i+JJVvPrCRuzYX\nsn5pJl/60Cruv6k48MVfwj1bzmz9WFWYTkJsJA+8z7s+w76qVo639LDOZFCyeB6Nbb38w0O7eX7n\nsbEAcP/NhhvW54y1IKQmRfP+q/IAzgkEN29YNOEPL6OtJi0d/RRkJxEXE6lAMM0UCkLADetzyMlI\nYOv+Exypv3Cfn4Sn0X7YfE1FnLRVBd43p31VZ07f21XRhMMB//bZq7j/pmJ6+of54+vV5zvEmD+9\nVQt4R88nJ0TziduW8Zd3LGd5/sxtUDVeblYiP/jSNawrzuD2TXljA/gKFibztY+uBcDhgI/eWMzn\n7155zmqYKwvS2Lwmm4/cUMzn7lrByoI0/uzWUm66LPecsQ+lefP40OZzu2AuZHRcAcDly+Zf5J4S\nKOo+CAEup5OP3Wz41sO7efB5y99/4jIigrRNrcw+1cc7iI12sSAtPPc6CITUpBgWZSZQUddO/+Aw\n0ZEunthaQ2VDB0tzU0iKj+K6Ndm8ureBneVN3HltPunJ504bHBwaYWd5I1nzYrm8dPa8ycVERfCZ\nO1ecc31RTgpfvW8tQ8Pusf0T7r6ugDuvyaejZ5AntlZzw7rTUyWTE6L5wgdXjV2+Z0sR+6tbWVuU\nQWleKqV58/wKPtGRLv72Y+vZXnaSKxUKZoTeOUJEYU4y16xaQENzDy/tqg92OTJLdPcN0djeR/6C\nJJxaBnZK1hSlMzzi4Z3yJuoau8Y+8V/nmybocDi48bJFuD0e3j548rzHqDjazuCwm7XFGTidc+P/\no3hRyjmDG51OB/MSo/nELSVjYyDOJy4mgn/9zCY+elMx68zE9mY4W/7CJD5yQ/EFZ4hIYCkUhJC7\nryskITaSJ7bW0Nbp3xQpCU2jixZpkOHUXbNqIU6Hgxd2HWO39S4x/sBtJWwYtxLiepNJhMvJY2/W\n8OKuY+ccY3RJ4RVhtIiU0+HQvgRziEJBCEmIjeSDmwsYGBrh1y8dCXY5MguMjifwZ7McOb/UpBg2\nlmbS0NzD02/XERnhZF3xmVPjYqMj2Fjqve7xN6vPWRXwaGOXb70IDZaT2UmhIMRsWrGAopxk9hxu\nZl9ly6UfICHtdEuBZh4EwkduLGZhejxOh4NbL1983ibtT95SwmVLM+kbGKH6ROfY9W6Ph7rGLrJS\n44iJ0nAumZ0UCkKM0+Hg/psNLqeDX714mIGh6dvYRGY3t8dD9YlOslLjzlnXXyYnPiaSr398Pf/2\nuau4/aol572P0+lgnfGuL/Cth3aPLSHccqqPvoERFs9XK4HMXgoFISgnI4EbL1tES0c/T22rDXY5\nEiQnWnroGxjR+gQBFh3pumTIWlWQTkaKdzvf0UGHRxu94SA368ID80SCTaEgRN2+KY/UpGie23GU\n4y09l36AhJyKo941K4oXpVzinhJo0VEuvvnARqIjXew53IzH13UAsFiL78gsplAQomKiIvjIDcWM\nuD08/IKdsf3gZfY4VOPd5a40b+o76on/IiNcrCpMo+lUH9XHO6nzbQakFflkNlMoCGFritJZVZBG\nxdFTbB+3HKuEvhG3m4qj7WTOiz3vIjoyM65e6V2R78lttRxp6CA9OUbjO2RWUygIYaN7k0dFOPnd\nK0fo6R8KdkkyQ2pOdNE/OHLBHehkZpTkzWN+ahz7q1oZGBzhZt92wSKzlUJBiEtPieV9m/Lo7B26\n5JrsEjrKan1dB4vVdRBMToeDe68vxOGA9UszuW6NtjeX2U2TZcPAzRty2XbwJK/tbWDTigWasx4G\nymrbcQBLFQqCbmVBOt///NXExajbQGY/tRSEgQiXk/tvMniAh56356yyJqGlf3CYqoYOFs9PVP/1\nLKFAIHOFQkGYWLp4Hlcsm09dYxev7NGGSaHs8LEORtwejScQEb8pFISRe7YUEhcdwWNvVnOqeyDY\n5cg0GRtPoKmIIuInhYIwkhQfxV3XFdA3MMJvX9aGSaGqrLaNyAgnRTnaBElE/KNQEGauXb2QJQuS\n2FneRHlde7DLkQDr6B6gvrmH4pxkIiO0/7yI+EehIMw4HQ4+elMxDuBXLx5meMQd7JIkgEaDnsYT\niMhkKBSEoSULkrhm9UKOt/Twym4NOgwlVQ3erXqLc7XfgYj4T6EgTN11bQHxMRE8vrWGDg06DBkN\nLd04gJx07cQnIv5TKAhTCbGR3HltAf2DI/z+1apglyMB0tDSQ3pKDNFRGk8gIv5TKAhj165ayOKs\nRN4+dJLDx04FuxyZos7eQbp6h8hWK4GITJJCQRhzOh3cd1Mx4B10qJUO57bjzT0ALEyPD3IlIjJX\nKRSEucLsZDatmM+xpm5e3dsQ7HJkChpavKEgW6FARCZJoUC4+7pCYqMjeOyNajp7B4NdjkzSWCjI\nUCgQkclRKBCS46O44+ol9A4M88fXNehwrjre3I3DAQvS4oJdiojMUQoFAsCWtdlkZ8Tz5r4TVB/v\nDHY54iePx0NDSw+ZKbFayVBEJk2hQABwOZ189MZiPMDDL1jcHg06nEs6ewbp6R/WIEMRmRKFAhlj\ncudxeWkWtSe72Lr/RLDLET/UazyBiASAQoGc4YObC4mOcvGH16ro7hsKdjkyQaPTEbVGgYhMhUKB\nnGFeYjS3b8qju2+Ix96sDnY5MkGajigigaBQIOe4cf0iFqTF8dreBupOdgW7HJmA4y09OB0OslI1\n80BEJk+hQM4R4XLykRuK8Xh8Kx1q0OGsNjrzICs1lsgI/UmLyOTpFUTOa9mSVNaZDCobOnj74Mlg\nlyMX0d41QN/AsLoORGTKFArkgu7dUkRUhJNHXquit3842OXIBRxv0Z4HIhIYCgVyQWnJMdx6ZR6d\nPYM8sbUm2OXIBZxe3lgzD0RkamZdKDDGfMAY86sL3PY/jDHvGGO2GWNunenawtF7NiwiMyWWl3fX\nU9/cHexy5Dwa1FIgIgEyq0KBMebfgH8AHOe5LQv4LHAF8B7gH40xkTNbYfiJjHDxkRuLcHs8/PrF\nw3g06HDWaWjuweV0kDUvNtiliMgcN6tCAfAW8OkL3LYB2GqtHbbWdgJHgJUzVlkYW1mQzurCdCqO\nnmJneVOwy5FxPB4Px1t7mJ8WR4Rrtv05i8hcExGMkxpjPgV8EfDgbRXwAJ+01j5ijLn2Ag9LAjrG\nXe4Gkqe1UBlz7w1FHKxp43evHGFVYRoxUUF56shZmjv6GRgc0cwDEQmIoLyyW2t/Dvzcz4d14g0G\noxKBU5d6UEZGop+nkfPJyEjk7i1F/PZFy8t7j/OJ25YFu6SgmU3PqcMnvItLleanz6q6xD/6v5PZ\nYi593NsJfNMYEwXEAkuBg5d6UHOzVuQLlGtXzufFHXU8/noVawvTWJAWfp9OMzISZ9Vz6uCRZgDS\nEqJmVV0ycbPtOSVz21QD5qzvhDTGfNEYc5u1thH4d2Ar8BLwv6y1g8GtLrxER7q49/oiRtwadDhb\nHG30vpksytJ0RBGZulnXUmCtfR14fdzl7477/mfAz4JRl3itLU5n+ZJUDta0sedwC+tMRrBLCmvH\nmrqZlxhNUlxUsEsRkRAw61sKZHZxOBx8+IYiXE4Hv335MANDI8EuKWx19g7S3jXAoky1EohIYCgU\niN8WpMVz04ZFtHYO8MzbdcEuJ2wda/QuJpWbpUFqIhIYCgUyKe+7Mo95idE8u+MoTe29wS4nLI2O\nJ8hVS4GIBIhCgUxKTFQE92wpZHjEze9eqQx2OWHpaJOvpWC+WgpEJDAUCmTSLluaSVFOMnuPtGCP\ntge7nLBztLGL2GgX6ckxwS5FREKEQoFMmsPh4J4tRQD89uVK3JqiOGMGBkc42drLosxEnI5ztgoR\nEZkUhQKZkvyFSVxemkVdYxfbD50Mdjlho765Gw8aTyAigaVQIFN217UFREY4efT1ak1RnCFj4wk0\n80BEAkihQKYsLTmGmy5bRHvXAC/sPBrscsLC2MwDrWQoIgGkUCAB8d7LF5MUF8kz249yqnsg2OWE\nvKON3bicDhZqd0QRCSCFAgmI2OgI7rg6n4GhER5/szrY5YS0Ebeb+uZustPjiXDpT1hEAkevKBIw\nV69aQHZ6PG/uO8ExX5+3BN7Jtj6Ght0aTyAiAadQIAHjcjr50JZCPMDvXjmiXRSniXZGFJHpolAg\nAbUiP43lS1Ipq23nQHVrsMsJSaN7HixWS4GIBJhCgQTch7YU4nDA716pZMTtDnY5IafyeAcOICdD\nLQUiElgKBRJwORkJXLNqISdae3nj3ePBLiekdPUOUtXQQUFOMnExEcEuR0RCjEKBTIs7rs4nOsrF\n41tr6O0fDnY5IWN/VSseD6wpTA92KSISghQKZFokx0dx6+WL6eod4unttcEuJ2S8W9kCwCqFAhGZ\nBgoFMm1uumwRqUnRvPhOPS2n+oJdzpw3NOzmYE0bmfNiWZAWF+xyRCQEKRTItImKdHHXtQUMj7j5\nw+tVwS5nzrNH2xkYHGF1YToO7YwoItNAoUCm1cbSLPLmJ7KzvImqho5glzOn7fV1HaxW14GITBOF\nAplWToeDe68vAuC3WtBo0jweD/sqW4iPiaAwJznY5YhIiFIokGlXvCiFdcUZVDV0sss2B7ucOelY\nUzdtnQOsKEjTfgciMm306iIz4u7NBbicDh55tZKhYS1o5K93j6jrQESmn0KBzIiseXFcvy6Hlo5+\nXt5dH+xy5py9lS24nA6WL0kLdikiEsIUCmTGvG9THvExETy5rZau3sFglzNntHcNUHeyi+JFKVrF\nUESmlV5hZMbEx0Ry+6Yl/OblI/xpay333VR8wft29Q5yrKmbo43dHGvqoqGlh/wFSdx9XWHYvTHu\nG511UKSuAxGZXuH16ipBt3ltNq/sqefVvQ1sWZdNVmocTe19HG3s4lhT99hXe9fAGY9zOhwcbexm\nf3Urf/beEkryUoP0E8y8QzVtAKwqUNeBiEwvhQKZUREuJx/cXMh//PEA//TrvQwMjjAwNHLGfeYl\nRrOyII3crAQWZSaSm5lAalIMT79dy1Pb6viX377L9etyuPu6AqIjXcH5QWZQ1fEOkuOjyEiJDXYp\nIhLiFApkxq0pSmd5firlte0sSIvzvvFnJbAo0/uVGBd13sfdcXU+qwrT+elTZby8u56DNW08cFsJ\nBQtDd95+W2c/p7oHWVOkVQxFZPopFMiMczgcfPGDqxhxe/yec79kQRJ//4nL+OMb1bz4zjG+9dBu\nbr1iMbdvWhKS8/erj3cCkL8wKciViEg4CL1XUZkTHA7HpN/EoyJd3Ht9Ef/zI2tIS4rhqW11fPOX\nu6hv6g5wlcF3OhSEbmuIiMweCgUyZ5nceXzjUxu4ZtUCjjZ1839++Q7PbK/D7Q6dpZSrj3fgAPLm\nJwa7FBEJAwoFMqfFRkfwiVtK+PzdK4mLieQPr1Xx/Uf3Mzwy91dNHHG7qW3sYmFGPLHR6ukTkemn\nUCAhYVVhOt98YCOlefPYV9XKT58qm/MtBg3NPQwOuSnQeAIRmSEKBRIyEmIj+exdKynKSWZneRMP\nPm8DuitjzYlOTrT0BOx4l6LxBCIy0xQKJKRER7r4/N2ryM1K4I19x3nk1aqABIP2rgG+9dBuPv+d\nVymvaw9ApZdWdbwDgPwFaikQkZmhUCAhJy4mgi99aDXzU+N4budRnn67bsrHfGPfcUbcHvoGRvju\n7/ex98j0bwFdfbyT6CgXC9Pjp/1cIiKgUCAhKik+iq/cu5q0pGj++Eb1lHZmHHG7eWPfcWKiXPyv\nT2zA6YT//ONB3j54MoAVn6m3f5iTrb0smZ+I06lFi0RkZigUSMhKTYrhK/euISk+il+9eJhtB09M\n6jj7Kltp7xrgyuXzuWLFAr5y7xpiolz8xLey4nSoOdmJB40nEJGZpVAgIS0rNY4v37OauOgIfv50\nBXCwgG8AAA4LSURBVHsO+9/s/9reBgCuW50NQGF2Mn9939qxsPHkttqADmgEqG7wjSfQzAMRmUEK\nBRLyFmUm8MUPrSIywsmPnjhIWW3bhB/bdKqPgzVtFOYkk5OZcMYxv3bfWtKSonnsjWp+8/IRRtyB\nWxtByxuLSDAoFEhYKMhO5q/uWgHA9x89QN3Jrgk97nVfK8HmNdnn3JaVGsfXPrqOBWlxvLSrnn/6\n9V7aOvunXKvH46H6RCdpSdGkJERP+XgiIhOlUCBhY1leKn9x+3IGhkb44eMH6RsYvuj9h4bdvLn/\nBAmxkaw3Gee9T2pSDH9z/3ouW5pJZX0Hf//znbxb2TKlOls6+unqHWKJxhOIyAxTKJCwss5k8N7L\nF9N0qo//frbiomMBdh9uortviKtWLCAywnXB+8XFRPD/vH/Z/9/evcdZVdV9HP+cGRhgRNIJwkRC\nuf0EjJsQIAgMUjxpL3XyyUwNtbz1lKFPmfmUptaTl1eU4iWTFG+Uj1pWJlGhEKhJxh3FX1wSQ1BR\nVESQy8w8f6w1cDqcmTnDnDlzzsz3/Xr58ux99l57rT2Ls397rbX3YvJ/GDt3VzHt0eU89OTqA37V\nck3Xgd5kKCK5pqBAWp2KsUfR+4gP8fxLb+wdRJjOvMXhu3FDDq83zUQiwfjB3bjqnGEcVlbKn57/\nFzfMXIy/8naDX7e896VFCgpEJMcUFEirU1xUxMUnD6Bjh7b88snVaccXvLp5G//Y8C4DjjyUroeW\nZpx294905OpzhzFqwGGs27iVG3+xhMtue5oZs1axbM2b7N5Td+vBnsoqVqzbQnFRgh5dNTOiiOSW\nggJplco6tef8z/RjT2V12vEF85ZuBGB8mgGG9Wlf0obzP9OPy88YzPgh3ShKJFiwfBO3PLqcKdMW\nMHvhK7XuO+u59by+ZTtjBn6Ukra1d1mIiDQFBQXSag3s1ZlPj/zYfuMLdu6q5NmVmzikYwmDenc+\noLQTiQT9jixj8iRj6tdG8z9nH8ukT3SnpG0xD89dw4LlG/fb59XN23j8mZc5pGMJnxvfu1FlExE5\nEAoKpFWrOL7nfuMLFq56nR07Kxk76HDaFDf+n0hRIkHvIz7E5yf04dtnDeWg9m24f7bzQtL7Eqqq\nqpnxh5eorKpm8qSjKW3fptHHFRFpKAUF0qq1Kd5/fMG8Ja+SSMDYQfUPMGyow8pKueS0gSQScMdj\nK9jwxjYA5izawLqNWxnRvyuD+xxY64SISGMpKJBWL3l8wU8eWcbLr73H4N6dKevUvkmO17f7IXz5\npP7s2FnJzY8u4x//eodfz19Lxw5t+cLEPk1yTBGRTCgoEGHf+IKt7+8CDmyAYUOM6N+V08b1ZMvW\nndw4czG7dldx5sQ+dCotadLjiojURR2XIlHF8T1Z/9p7vP/BHgYcVdbkxztxZA82v/MB85dtZGCv\nDzOif9cmP6aISF0S2Z7drbHMrAL4T3c/K813NwOjgZoHy09x97peYl+9eXNm77gXAfY+gZBIJNJ+\n36XLwWSzTlVWVbFszVv063EoHdopRm+Nsl2npHXr0uXg9D9eGcqrX6F40f8UsLSWTY4FJrl75tPc\niTRAbcFAUykuKmJo3/TzKoiI5Fq+jSl4BvhKui/MLAH0Ae4ys6fN7Lyc5kxERKSFa5aWAjP7EnAZ\nUA0k4v/Pc/dHzGxcLbsdBEwDfkzI91wze97dV9ZxqESXLnpVrGSX6pRkm+qU5ItmCQrc/R7gngbu\nth2Y5u4fAJjZU8AgoK6gQERERDKUb90HdekLPG1mCTNrC4wBFjdznkRERFqMvBpomI6ZXQasdvff\nm9l9wHPALuBed1/VvLkTERFpOfLukUQRERFpHoXUfSAiIiJNSEGBiIiIAAoKREREJFJQICIiIoCC\nAhEREYny/pHEbDGzUcBFhLcnTnH3rc2cJWkhzKwcONPdL2juvEhhM7MJwBlAB+Amd1/RzFmSAmdm\nQ4FL4uK33H1zXdu3ppaCC+N/dxP+0Yk0mpn1AoYA7Zo7L9IidHD3C4GphMnhRBqrHTAFmAWMqm/j\nFtFSYGYjgBvcvTxOnHQH4RXIHwDnu/s6oMjdd5nZa8CEZsyuFIhM6pW7rwV+bGb3N2deJf9lWJ+e\nMLNSwp3dFc2YXSkAGdapv5rZSOAbwOn1pVnwLQVmdjkwnX13aqcC7dz9OOBKwgRKANvNrAT4KPBa\nzjMqBaUB9apGbudcloKSaX0ys87ArcDV7v5mc+RVCkMD6tRwYBFwIiEwqFPBBwXAGqAiaXkMMBvA\n3RcCx8b104GfEboQHsxlBqUg1VevhqVsr1eDSl0y/Z2aChwGXG9mn81pDqXQZFqnOhImILwJmFlf\nogXffeDuj5lZj6RVnYB3k5YrzazI3RcD5+U2d1KoMqhXe2K9qorbT85pBqWgNOB36pwcZ00KVAPq\n1FxgbqbptoSWglRbgeTJyff+cIs0guqVZJPqk2RbVupUSwwKniH0nRAHV+iRHskG1SvJJtUnybas\n1KmC7z5I4zHgk2b2TFxWl4Fkg+qVZJPqk2RbVuqUpk4WERERoGV2H4iIiMgBUFAgIiIigIICERER\niRQUiIiICKCgQERERCIFBSIiIgIoKBAREZFIQYFIA5hZDzOrMrMTUtb/08w+loX0/2lmZY1Np55j\ndDezVWb2vJkd1JTHqiMPM8ys0fNFmNkQM7s+fs6L1wSb2Tgzq/Nd82Z2qZmdlKs8iWRKQYFIw+0G\npqdcULP1FrBcvE2sHFjk7sPd/f0cHK8p/QS4IX7Opzex1ZeX24HvmlnbXGRGJFMt8TXHIk1tI/Bn\nwnzlF8V1CQh3icA17l4el2cQZij7C/AbYB3wceDvwDzgXOAQoMLdPaZzk5kNBbYDF7r7i2b2EcLU\n30cAVcCV7v6UmX0PGAl0B25z9ztrMmlmfYC7gDJgGzCFENB8HzjIzO5w9/9K2v4E4MaY/tvAF9x9\ni5n9LzABOBR4E/isu79hZpuAx4HjgU3AHcDXgW7Aue6+IN4xrwSOI8z7fqm7z0k+mWb2ReDSWPZF\nwFdjHu4BBsTNfuruP0/ZrxzY6O7vpqzvQJgqfRBQCUx19wfMrA1wJzA6/g2rgevcfX7Svt0I08uW\nxjx83d3/ZmYTgR/FPK4Hzoyf747lPRyYnzrLoZn1An4a/wbbY3pL3X23mS2I6dyHSJ5QS4FIw1UD\n3wAmpXYjJH2fzkDgWnfvCwwHerj7ccBDwIVJ261096HAD4F747pbgLvdfThwCnBXUktFO3c/Jjkg\niB4Ebnb3QcB/A48CLwJXA79LDgii7wAXufsnCBf7ofGi1tfdR7n70cBa4Ky4fdeYTr+4fKq7jwWu\nJVzka7Rx92OBs4H748UZADPrD1wAjIpl3gxcTggiyuJ+n4zLqU4G5qdZfy3wprt/HDgBuMbMjgEu\nBkpjfs8DhqXZ98vA4/EcXAGMMbOSeC6/GM/lcuAc4CRgibuPBvoCx5nZkJT07gMud/dhhADyoaTv\nFsQyiOQNBQUiB8DdtxEuZtPNrGOGu21y9+Xx8wbgyfh5PeEuvMbd8RizgJ5mdjAwEbjOzJYAfwCK\ngV5x+4WpB4oBQy93/21MayHwFmB15O+3wG/M7FbgJXef4+5rgW+a2QVm9iNCq0RyeWcnleGpWspz\nZ8zDUsId+sCk78qB3sBzsWwnEy6wK4C+ZjabEExckSa/fQjnMVU5+87hW4QWmnJCcDEzrn+Ffec/\n2ZxY3pmEFoDbCC07G9x9Rdz3u+5+u7s/BMwxsynArYTWgL3nJv4NhgMzYtl+AZSaWc25WR/LIJI3\nFBSIHCB3/zOhG2Eq+1oHqoldCVFyn/GulCT21JJ06vo9hCBggrsPcfchwBhCszzAjjRpFKXko2Zd\nrV2G7n4LMA5YTejCuDJ2Y/wppvUI4QKbSNonOa+ZlKc4zfLD7j40lmsEoYn9beAYYBohkFliZp1S\n0q2q5Zipv2tFScdN/i71/ODuzwL9CcHO6cDvCV0ue7c1s05m1s3MLgFuAl6P+VyVkmYxsKOmbLF8\no2PZiOnmxeBIkRoKCkQaLvmH/5vAJEKfMoQ+955mVhKfIji+lv3qchaAmVUQ7th3EO5qvxrX9weW\nAR1qS8Dd3wPWmtmpcZ+RhOb+lbXtY2bPAp3cfRphAN9QYCww193vAl4CPkW42DVETXmGEcZPJM/z\nPg+oMLMuZpYg9L9PiSPzH4ytJVOA9wjjJpKtBXokLdec36cI3QCYWWdCd8s8QivAGXH94cB4Urp6\n4pMMk939AcL4iCGx3J3N7Oi42bcIXREnAD+LLQYJYDBJ58bdtwKrzaym/BMJ40tqHAWsSX/KRJqH\nggKRhtt7IYkX3wuILQLu/iLwBPAC8H/8e593dS2fU9M+JjY3TyH0XUO4QI00s2XAL4EzM3hy4GzC\nBXY54U62IuXOPtV3gHvN7O+xTN8DHgYGm9liQkvBLMLFLNPyAPQ2s0WEboTT3b26ZvvYnXIt4UK+\ngnBxvQH4I/C+mb0APAf8yt1fSEn3ccIAyNQ8XAd8OJZ7HvCD2HUxHdgW188AXmb/VpbbgdPi+f8V\ncLG77yKcywfMbCnQD7ieMM7jGjP7K3BVzM9RKemdDZwf/24/JLQ+1CgndNmI5I1EdXU+PcUjIi1J\nfPrgCnf/WxOlvwA4xd23ZLDtiUDC3Z+IXRGLgWHu/k5T5K2evJQATxO6E3bn+vgitVFLgYg0paa+\n67iU9IMQ03kR+HZsBZgHXNUcAUH0NUILhgICyStqKRARERFALQUiIiISKSgQERERQEGBiIiIRAoK\nREREBFBQICIiItH/A2crcGdrfkBsAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1163bd9e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ex_mh.phi_plot()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.0"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment