{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "<center>\n", " <img src=\"./images/adsp_logo.png\">\n", "</center>\n", "\n", "### Prof. Dr. -Ing. Gerald Schuller <br> Jupyter Notebook: Renato Profeta\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "# Frequency Warping and Minimum Phase Filters" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/-kmD8XO4H8M\" frameborder=\"0\" allow=\"accelerometer; \n", "encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/-kmD8XO4H8M\" frameborder=\"0\" allow=\"accelerometer; \n", "encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "**Example:** Design a warped low pass filter with cutoff frequency of $0.5 \\cdot \\pi$ ($\\pi$ is the Nyquist frequency). Observe: here this\n", "frequency is the end of passband, with frequency warping close to the Bark scale of human hearing." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "First as a comparison: design an unwarped filter with 4 coefficients/taps with these specifications:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/abEz2p1yDIU\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/abEz2p1yDIU\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cunw (Remez Unwarped) [0.00513655 0.00037423 0.00037423 0.00513655]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Imports\n", "import scipy.signal as sp\n", "import matplotlib.pyplot as plt\n", "\n", "#remez is normalizing to sampling frequency=1!\n", "cunw = sp.remez(4,[0, 0.025, 0.025+0.025, 0.5],[1,0],[1, 100])\n", "print('cunw (Remez Unwarped)', cunw)\n", "\n", "#impulse response:\n", "plt.figure()\n", "plt.plot(cunw)\n", "plt.xlabel('Sample'),\n", "plt.ylabel('value')\n", "plt.title('Unwarped Filter Coefficients')\n", "plt.grid()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x576 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy.signal import freqz\n", "import numpy as np\n", "\n", "w, h_response = freqz(cunw)\n", "\n", "fig=plt.figure(figsize=(10,8))\n", "fig.suptitle('Frequency Response', fontsize=16)\n", "plt.subplot(2,1,1)\n", "plt.plot(w, 20 * np.log10(abs(h_response)), 'b')\n", "plt.ylabel('Amplitude (dB)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()\n", "plt.subplot(2,1,2)\n", "angles = np.angle(h_response)\n", "plt.plot(w, angles, 'g')\n", "plt.ylabel('Angle (radians)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Here we can see that this is not a good filter.\n", "\n", "The passband is too wide (up to about 0.15), and there is almost no stopband attenuation (in the range of 0.5 to 0.9). So this filter is probably **useless** for our application.\n", "\n", "Now design the FIR low pass filter (4th order), which we then want to frequency warp in the next step, with a warped cutoff frequency. \n", "\n", "First we have to compute the allpass coefficient „a“ for our allpass filter which results in an approximate Bark warping, according to [1]: https://ccrma.stanford.edu/~jos/bbt/bbt.pdf, equation 26.\n", "\n", "$$\\large\n", "a=1.0674 \\cdot \\left( \\dfrac{2}{\\pi} \\cdot \\arctan{ \\left( 0.6583 \\cdot f_s \\right)} \\right)^{-0.1916} $$\n", "with $f_s$, the sampling frequency in kHz. Our warped design is then:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "<iframe src='https://ieeexplore.ieee.org/document/799695', width=1000, height=500></iframe>\n" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "<iframe src='https://ieeexplore.ieee.org/document/799695', width=1000, height=500></iframe>" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a: 0.8595596989912291\n", "fcw: 1.612009047506399\n", "fcny: 0.25655920821950134\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "def warpingphase(w, a):\n", " #produces (outputs) phase wy for an allpass filter\n", " #w: input vector of normlized frequencies (0..pi)\n", " #a: allpass coefficient\n", " #phase of allpass zero/pole :\n", " theta = np.angle(a);\n", " #magnitude of allpass zero/pole :\n", " r = np.abs(a);\n", " wy = - w - 2 * np.arctan((r*np.sin(w - theta))/(1 - r*np.cos(w - theta)))\n", " return wy\n", "\n", "#warping allpass coefficient:\n", "a = 1.0674*(2/np.pi*np.arctan(0.6583*32))**0.5 - 0.1916\n", "print('a:',a)\n", "# with f_s=32 in kHz. from [1]\n", "# The warped cutoff frequency then is:\n", "fcw=-warpingphase(0.05*np.pi,0.85956)\n", "print('fcw:',fcw)\n", "# filter design:\n", "# cutoff frequency normalized to 2 pi for remez:\n", "fcny=fcw/(2*np.pi)\n", "print('fcny:',fcny)\n", "\n", "c = sp.remez(4, [0, fcny, fcny+0.1, 0.5],[1, 0],[1, 100]);\n", "#The resulting Impulse Response:\n", "plt.figure()\n", "plt.plot(c);\n", "plt.xlabel('Sample')\n", "plt.ylabel('value')\n", "plt.title('Filter Coefficients in Warped Domain')\n", "plt.grid()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/W0Pvs_ZzAd4\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/W0Pvs_ZzAd4\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "hide_input": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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NgCjCj2yUxq3li2hZ8+w1WTTptDUmprEffABrFgB778PL70Ey5dvmcw1bRoSueTELTmZ23HHcF6JnIhIcYtFkubuDwMPV3NuHDCufiMSyU5JCbRvH7b+/au/btOm0KS6fHlI3JYv33ybOxeeeGLLaU+aNoUePaBt273Ya6+QNO60U9Vr9+6askREpKGLRZIm0liVlITmzR12gIED01/jHqYpSSRuS5fC4sVhGpPXXy9h6tRQO+e++X27ddsyedt5Z9h113BONXEiIvGmJE0k5szCZL5t28KAAZufq6h4jfLyctatg2XLqpK3JUuq3j//PEycuPlKFc2bQ69esMsuYdt116r3vXqF0a0iIlJYStJEikDz5lVJVjobNoRauPfeg3ffDdvCheH1+ec3H7VqFppSE/dLJHF9+kDv3qFfnoiI5J+SNJFGoGnTqgEPhx22+Tn3ML1IInlLTuAmT4aPP6661iw0m/btW7X16xdeu3bV9CIiIrmkJE2kkTOr6he3//5bnv/qq5C0vfMOvPUWvP122F54ISz9ldC6dahtSyRtyQlcaWn9fR8RkWKhJE1EarTttrDPPmFL5h5GpCaStrffDknciy+GPnCJgQwlJaG5dMCAMNI18dqnj0agiojUREmaiGwVs6r52w4/fPNz33wD//0vvPkmzJ8ftnnz4JFHwrQjEBK0Pn22TN522UUjT0VEQEmaiORBy5aw555hS7ZmTahtSyRt8+fDzJnwz39WXVNaCrvtBnvtFWrv9t47vG/Tpn6/g4hIoSlJE5F6U1oakq699978eGVlVa3bvHnwxhswZQrcfXfVNb16VX02sfXoocEKIlK8lKSJSMG1bg2DB4ct2QcfwJw5m2+PPFLV32377asStn32gbKyMFChpKT+v4OISK4pSROR2OrSJWxHH111rLIy1LQlJ2433xyaUiEMdBg0qCrpGzw4TBuiGjcRaWiUpIlIg9K6dZgqJHm6kA0bQl+3WbPglVfCdv31sG5dON+hQ6hlS07cOncuTPwiIplSkiYiDV7TpmF06IABcNZZ4di6daHGLZG0vfIKPPNM1ejSHj1CotexYzdatQpNppoSRETiREmaiBSl5s1Ds+egQXDeeeHY6tWhefSVV2DGDJg+HZYu7c1NN4URqYMHh8TtgAMSCVxhv4OING5K0kSk0WjVCg48MGwJDzwwHdif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\n", "text/plain": [ "<Figure size 720x576 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy.signal import freqz\n", "import numpy as np\n", "\n", "w, h_response = freqz(c)\n", "\n", "fig=plt.figure(figsize=(10,8))\n", "fig.suptitle('Frequency Response', fontsize=16)\n", "plt.subplot(2,1,1)\n", "plt.plot(w, 20 * np.log10(abs(h_response)), 'b')\n", "plt.ylabel('Amplitude (dB)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()\n", "plt.subplot(2,1,2)\n", "angles = np.unwrap(np.angle(h_response))\n", "plt.plot(w, angles, 'g')\n", "plt.ylabel('Angle (radians)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "This is the filter we obtain from the c coefficients if we don't replace the delays by allpasses. Here we can see that in the warped domain, we obtain a reasonable low pass filter.\n", "\n", "In the passband from 0 to somewhat above 1.6 it has a drop of about 10 dB, and in the stopband we obtain about - 30 dB attenuation, which is much more than before (it might still not be enough for practical purposes though)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Now we use the same c coefficients, but replace the Delays in the FIR filter with Allpass filters (in this way we go from\n", "frequency response $H(z)$ to $ H_{warped}(z)=H(H_{ap}(a,z)^-1)$ \n", "\n", "<center>\n", " <img src='./images/lecture10_allpass.jpg' width=\"600\">\n", "</center>" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "# Warping Allpass filters:\n", "#Numerrator:\n", "B = [-a.conjugate(), 1]\n", "#Denominator:\n", "A = [1, -a]\n", "# Impulse with 80 zeros:\n", "Imp = np.zeros(80)\n", "Imp[0] = 1\n", "x = Imp;" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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/WruFBEREUkgJWkiIiIiCaQkTURERCSBlKSJiIiIJFCsSZqZDTazmWY228yGlXLczOyO6PhkM9stjjhFREREqltsSZqZ1QLuAg4BegM/N7PeGacdAnSPtrOAe6o1SBEREZGYxFmTtgcw293nuvs6YBQwJOOcIcBID94DmppZ2+oONNPlr1/OmIVj4g5DREREClic86S1Bz5Le70Q+HEFzmkPLM68mJmdRahto3Xr1hQXF+cy1k08N/k5Nm7cmNd7bA1WrFihMsySyjB7KsPsqQyzo/LLXqGWYZxJmpWyz6twTtjpPgIYAdC/f3/P56R2e36/J49PfrxGT5yXBDV98sEkUBlmT2WYPZVhdlR+2SvUMoyzuXMh0DHtdQdgURXOqXa9WvZi+frlLFm5JO5QREREpEDFmaR9AHQ3s65mVhcYCozNOGcs8KtolOeewHfuvllTZ3Xr3SqMb5ixdEbMkYiIiEihii1Jc/f1wHnAy8AMYLS7TzOzc8zsnOi0F4G5wGzgXuA3sQSboVerXgDMWKIkTURERPIj1gXW3f1FQiKWvu/vac8dOLe649qSjtt2pH5RfaYvmR53KCIiIlKgtOJAFZgZnRp2UnOniIiI5I2StCrq3KizkjQRERHJGyVpVdS5YWcWLl/I8rXL4w5FRERECpCStCrq3LAzAB8v/TjmSERERKQQKUmrok4NOwEa4SkiIiL5oSStito3aE+dojrqlyYiIiJ5oSStimpZLXq06KEkTURERPJCSVoWerXqpbnSREREJC+UpGWhd8vezF02lzXr18QdioiIiBQYJWlZ6NWqFxt9I598/UncoYiIiEiBUZKWhV4tozU81S9NREREckxJWhZ6tOiBYeqXJiIiIjmnJC0LDeo0oFuzbqpJExERkZxTkpalXq16aUJbERERyTklaVnq1bIXs76exfqN6+MORURERAqIkrQs9WrZi7Ub1jJv2by4QxEREZECoiQtS71b9QY0wlNERERyK5Ykzcyam9mrZvZJ9NisjPPmm9kUM5toZh9Wd5wV0bNlT6DwF1pfvnY5F7x0AQMeGMDvXv4dC5cvjDskERGRghZXTdow4HV37w68Hr0uyyB37+vu/asntMppUr8J7bZpV/A1aX945Q8M/2A46zeu564P7qLn8J48Me2JuMMSEREpWHElaUOAh6LnDwFHxRRHTvRu1bug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\n", "text/plain": [ "<Figure size 720x576 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Y1(z)=A(z), Y2(z)=A^2(z),...\n", "# Warped delays:\n", "y1 = sp.lfilter(B,A,x)\n", "y2 = sp.lfilter(B,A,y1)\n", "y3 = sp.lfilter(B,A,y2)\n", "\n", "# Output of warped filter with impulse as input:\n", "yout = c[0]*x+c[1]*y1+c[2]*y2+c[3]*y3\n", "\n", "# frequency response:\n", "from scipy.signal import freqz\n", "import numpy as np\n", "from matplotlib.ticker import FuncFormatter, MultipleLocator\n", "\n", "w, h_response = freqz(yout)\n", "fig=plt.figure(figsize=(10,8))\n", "fig.suptitle('Frequency Response', fontsize=16)\n", "plt.subplot(2,1,1)\n", "plt.plot(w, 20 * np.log10(abs(h_response)), 'b')\n", "plt.ylabel('Amplitude (dB)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()\n", "plt.subplot(2,1,2)\n", "angles = np.unwrap(np.angle(h_response))\n", "plt.plot(w, angles, 'g')\n", "plt.ylabel('Angle (radians)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Here we can now see the frequency response of our final warped low pass filter.\n", "\n", "We can see that again we have a drop of about 10 dB in the passband, now from 0 to 0.05pi, and a stopband attenuation of\n", "about 30dB, which is somewhat reasonable." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Impulse response:\n", "plt.figure()\n", "plt.plot(yout);\n", "plt.xlabel('Sample')\n", "plt.ylabel('value')\n", "plt.title('Impulse Response of Warped Lowpass Filter')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ "This is the resulting impulse response of our warped filter. \n", "\n", "What is most obvious is its length. Instead of just 4 samples, as our original unwarped design, it easily reaches 80 significant samples, and in principle is infinite in extend. \n", "\n", "This is also what makes it a much better filter than the unwarped original design!" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "**References:**\n", "\n", " - [1] Julius O. Smith and Jonathan S. Abel, \n", " “Bark and ERB Bilinear Transforms,” \n", " IEEE Transactions on Speech and Audio Processing, vol. 7, no. 6, \n", " pp. 697 – 708, November 1999.\n", " - [2] S. Wabnik, G. Schuller, U. Kraemer, J. Hirschfeld: \n", " \"Frequency Warping in Low Delay Audio Coding\", \n", " IEEE International Conference on Acoustics, \n", " Speech, and Signal Processing, Philadelphia, PA, March 18–23, 2005" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Minimum Phase Filters" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/pBhujbXISVw\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/pBhujbXISVw\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Remember linear phase filters. Its phase function is linear:\n", "\n", "$$\\large\n", "\\phi(\\Omega) = -\\Omega \\cdot d $$\n", "\n", "with a group delay of constant d. The impulse responses of linear phase filters have the property of being (even) symmetric around some center.\n", "\n", "**Example:**" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(c);\n", "plt.xlabel('Sample')\n", "plt.ylabel('value')\n", "plt.title('Filter Coefficients in Warped Domain')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Here we have a 4 sample impulse response, and starting at 0, we have a symmetry around d=1.5, hence we have a constant delay of this system of d=1.5 samples.\n", "\n", "Another example for a linear phase filter is a piece of a sinc function." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hsinc=np.sinc(np.linspace(-2,2,11))\n", "plt.figure()\n", "plt.plot(hsinc)\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "This FIR filter has a constant delay factor of d=5.\n", "\n", "The delay factor d is the center of the impulse response, and we can factor it out from the DTFT of the symmetric impulse response:\n", "\n", "$$ \\large\n", "H \\left( e^{j\\Omega} \\right) = \\sum_{n=0}^{2d} h(n) \\cdot \\left( e^{-j\\Omega n} \\right)\n", "$$\n", "\n", "We factor out the center exponential,\n", "\n", "$$ \\large\n", "H \\left( e^{j\\Omega} \\right) =\\left( e^{-j\\Omega d} \\right) \\cdot \\sum_{n=0}^{2d} h(n) \\cdot \\left( e^{-j\\Omega (n-d)} \\right)\n", "$$\n", "\n", "since $h(d-n)=h(d+n)$ we get:\n", "\n", "$$ \\large\n", "H \\left( e^{j\\Omega} \\right) =\\left( e^{-j\\Omega d} \\right) \\cdot \\sum_{n=0}^{d} h(n) \\cdot \n", "\\left( e^{-j\\Omega (d-n)} + e^{j\\Omega (d-n)} \\right)\n", "$$\n", "\n", "$$\\large\n", "H \\left( e^{j\\Omega} \\right) =\\left( e^{-j\\Omega d} \\right) \\cdot \\sum_{n=0}^{d} h(n) \\cdot \n", "2 \\cdot \\cos{(\\Omega(d-n))}$$\n", "\n", "Hence the phase is\n", "\n", "$$\\large\n", "angle \\left(H \\left( e^{j\\Omega} \\right) \\right) = \\phi (\\Omega)=-d\\cdot\\Omega $$\n", "\n", "Hence here we showed that any **symmetric** filter has a **linear phase**, and that the center sample corresponds to the signal delay.\n", "\n", "Now we can plot its zeros in the complex plane of the z-transform:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def zplane(B,A):\n", " # Plot Poles and Zeros\n", " from matplotlib import patches\n", " plt.figure(figsize=(10,8))\n", " ax = plt.subplot(111)\n", " r = 2.5; plt.axis('scaled'); plt.axis([-r, r, -r, r])\n", " #ticks = [-1, 1]; plt.xticks(ticks); plt.yticks(ticks)\n", " # Unit Circle\n", " uc = patches.Circle((0,0), radius=1, fill=False, color='black', ls='dashed')\n", " ax.add_patch(uc)\n", " ax.spines['left'].set_position('center')\n", " ax.spines['bottom'].set_position('center')\n", " ax.spines['right'].set_visible(False)\n", " ax.spines['top'].set_visible(False)\n", " plt.xlabel('Re', horizontalalignment='right', x=1.0)\n", " plt.ylabel('Im', y=1.0)\n", " plt.title('Complex z-Plane', loc='right')\n", " plt.grid()\n", " plt.plot(np.real(A),np.imag(A),'rx')\n", " plt.plot(np.real(B),np.imag(B),'bo')" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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tGPHDqWkpNiOAj+UmZmpRx99VHXq1LEdBX6EgTEoNaGhoVqxYoXtGPBTEyZMUMuWLXXDDTfYjgI/wpogSpUxRnfeeacWLVpkOwr8zLp16/TXv/7Vdgz4GUoQpa5Pnz4aNGiQMjIybEeBn0hJSdH777+vZs2a2Y4CP0MJotT16NFDkZGRDJJBqZg/f77at28vz/NsR4EfYp8gysSbb76pr7/+2nYM+LijR4/q/vvv19SpUzk7DMoEa4IoE7Vr11a3bt00adIkpaen244DH/Xkk0+qa9euio6Oth0Ffoo1QZQZY4wSExO1ZcsWjRs3znYc+KDHHntMtWvXth0Dfow1QZSpN998Ux9++KGWL19uOwp8yNGjRzVkyBA1atRI1atXtx0HfowSRJmqXbu2/va3v2n27Nm2o8CHPProo8rOzubUaChzbA5FmevVq5d69eql5ORkNWjQgAEOKNTUqVO1dOlSJSUl2Y4CB7AmiHLTv39/vfjii7ZjoILLyMjQnDlz2AyKcsGaIMrNu+++qzZt2ujqq69WTEyM7TioYJKTk7V27Vr9+c9/th0FDmFNEOXmoosu0ieffKLhw4crOzvbdhxUIOnp6erRo4c2bdpkOwocQwmiXLVp00Zr165VYGCgUlNTbcdBBeB5nu699141bdpUf/nLX2zHgWMoQZS7ypUr67333lOPHj1YI4SOHj2qatWqacqUKQyaQrmjBGHFn/70J1WuXFlDhgzhnJAOW7BggYwxevvtt1WlShXbceAgShBWBAYGaubMmVq7dq0+++wz23FgQUJCgmJjY5WcnGw7ChzG6FBYU716dS1evFghISFKTk7WxRdfbDsSysmXX36p/v37a+7cubr66qttx4HDWBOEVaGhoZKkP/zhD3ruuecsp0F52b17tz799FNdd911tqPAcawJwjpjjGbPnq2OHTvq+PHjev755xkg4afmz5+vgwcPql+/frajAJJYE0QFUa9ePSUmJmrNmjX66aefbMdBGfjss8/0xz/+UeHh4bajACdRgqgwateurS+++ELnn3++Jk2axOETfmT+/PkaMGCAvvjiC91www224wAnUYKocDIyMvTZZ5/p97//vQ4ePGg7DkogNzdXR44cUatWrbRw4UJde+21tiMBp6EEUeGEhYUpISFBkZGRatOmjSZNSlV4uBQQIIWHS/HxthOiOFJSUnTbbbdp9OjRqlOnDqNAUSExMAYVUmBgoMaOHauQkPv0yCPVlJ6eN33HDmnAgLzbsbH28qFw27ZtU0xMjKKiovTyyy/bjgMUiDVBVGjTpl2p9PTTR4qmp0sjR1oKhGJZvXq1HnzwQU2YMEGVKlWyHQcoEGuCqNB27jy76bDH8zy98cYbqlatmvr37287DlAslCAqtIYN8zaB/trFF3uSOJawoti9e7cGDhx48iB4wFewORQVWlycFBJy+rSQEOmiiybo0UcfVfovOwth1YgRI3Tttdfqm2++0SWXXGI7DlBslCAqtNhYafJkqVEjyZi8z5MnS3Pm/I/27NmjiIgIrVixwnZMJ+3Zs0d33323du/erWnTpmn06NEKDg62HQs4K5QgKrzYWGn7dik3N+9zbGzegfUffvihxowZo+TkZHmep8zMTNtRneB5nt5//31FREToiiuuUJ06dTjNHXwW+wTh03r16iVJWrJkie6//379/e9/V8eOHS2n8l+e52n//v2aMmWK5s+fr5YtW9qOBJQIa4LwC+3bt9fYsWM1cOBAde7cWUeOHLEdya/s379fDz74oO677z7Vr19f//73vylA+AVKEH6jR48e2rBhg/r166caNWpowYIF2rZtm+1YPu+VV15R06ZNFRgYqDFjxtiOA5QqShB+JTg4WL1795YxRlu2bNH111+vBx54QHv37rUdzadkZmZq1qxZkqQmTZpo9erVev3111WnTh3LyYDSRQnCbw0ePFibN29WaGiohg4dKkkcUlGE9PR0TZkyRY0bN9b06dOVnp6ubt26cfkj+C0GxsCv1apVS6+88oo8z1NOTo6uueYatWzZUoMHD1aHDh0Y1Zhv69atuvTSS/XRRx9pzpw5io+PV7t27WzHAsoca4JwgjFGgYGBWrdunTp27KiHHnpITz75pCQpKyvLcjo7Tpw4odmzZ+uWW25Ru3bt9MMPP6hfv35KSEigAOEMShBOCQsL0wMPPKD169frqaeeUmpqqho2bKgBAwYoKSlJnufZjljmdu3apYyMDH355Zd6+eWXdc8992jnzp268sorbUcDyh0lCCcZYxQaGqqwsDB9++23atiwoXr37q2xY8dKkpYuXepXa4g7d+7Us88+q8jISLVo0UJr1qxRly5dtHz5csXGxqpy5cq2IwJWUIJwXv369TVq1Cht3bpVDz/8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\n", "text/plain": [ "<Figure size 720x576 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "zplane(np.roots(hsinc), 0)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Observe the zeros near 1.9 and near 0.5, and on the unit circle.\n", "\n", "Its zeros are computed with the command “roots”, and their magnitude with “abs”:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "array([4.85372863e+15, 1.93092871e+00, 9.99999925e-01, 9.99999925e-01,\n", " 1.00000011e+00, 1.00000011e+00, 9.99999953e-01, 9.99999953e-01,\n", " 5.17885523e-01, 2.06057359e-16])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "abs(np.roots(hsinc))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Here we can see that we have one zero at location 0, and one at infinity, 6 zeros are on the unit circle, one at distance 1.9309 from the origin, and one is at distance 5.1789e-01=1/1.9309.\n", "\n", "Hence for those 2 zeros we have one zero inside the unit circle at distance r, and one outside the unit circle at distance 1/r.\n", "\n", "Linear phase systems and filters have the property, that their **zeros are inside and outside the unit circle** in the z-domain. \n", "\n", "For stability, only poles need to be inside the unit circle, not the zeros. But if we want to invert such a filter (for instance for equalization purposes), the zeros turn into poles, and the **zeros outside the unit circle** turn into poles outside the unit circle, making the **inverse filter unstable!**" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ "To avoid the instability of the inverse filter, we define **minimum phase filters** such that their **inverse is also stable!**\n", "\n", "This means, all their **zeros need to be inside the unit circle** in the z-domain.\n", "\n", "We can write all linear filters as a concatenation of a minimum phase filter with an allpass filter,\n", "\n", "$$\\large\n", "H(z) = H_{min}(z) \\cdot H_{ap}(z) $$\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/Uvv7lycNb50\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/Uvv7lycNb50\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This can be seen from a (hypotetical) minimum phase system $H_{min}(z)$, which has all its zeros inside the unit circle. \n", "\n", "Now we concatenate/multiply it with an allpass filter, such that its **poles coincide** with some of the **zeros** of the minimum phase filter inside the unit circle. These poles and zeros then **cancel**, and what is left is the zeros of the allpass filter outside the unit circle at a **reverse conjugate position** 1/a' , if “a” was the position of the original zero. \n", "In this way, we can **„mirror out“ zeros from inside the unit circle to the outside.** \n", "\n", "The **magnitude response does not change**, because we used an allpass (with magnitude 1) for mirroring out the zeros. As a\n", "result we have a system with the **same** magnitude response, but now with **zeros outside** the unit circle.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assume we would like to equalize or compensate a given transfer function, for instance from a recording. As we saw above, this transfer function can be written as the product\n", "\n", "$$\\large\n", "H(z) = H_{min}(z) \\cdot H_{ap}(z) $$\n", "\n", "Only $H_{min}(z)$ has a stable inverse. Hence we design our compensation filter as:\n", "\n", "$$\\large\n", "H_c(z)=\\dfrac{1}{H_{min}(z)} $$\n", "\n", "If we apply this compensation filter after our given transfer function, for instance from a recording, we obtain the overall system:\n", "\n", "$$\\large\n", "G(z) = H(z) \\cdot H_c(z) = H_{ap}(z) $$\n", "\n", "This means the overall transfer function now is an allpass, with a constant magnitude response and only phase changes.\n", "(see also A. Oppenheim, R. Schafer: “Discrete Time Signal Processing”, Prentice Hall)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/vtP8lTyrJm4\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/vtP8lTyrJm4\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "How can we obtain a minimum phase version from a given filter? We basically “mirror in” the zeros from outside the unit\n", "circle. Take our above example of the piece of the sinc function filter." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/MqlapLy_lr8\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/MqlapLy_lr8\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "array([-4.85372863e+15+0.j , 1.93092871e+00+0.j ,\n", " -9.53697827e-01+0.3007662j , -9.53697827e-01-0.3007662j ,\n", " -6.11572262e-01+0.79118872j, -6.11572262e-01-0.79118872j,\n", " -7.11596856e-02+0.99746489j, -7.11596856e-02-0.99746489j,\n", " 5.17885523e-01+0.j , -2.06057359e-16+0.j ])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rt=np.roots(hsinc)\n", "rt" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "We see the zero at 1.93 which we need to mirror in (we neglect the zero at infinity, which comes from starting with a zero sample). To achieve this, we first take the z-domain polynomial of the impulse response, and cancel that zero by dividing by the polynomial with only that zero, $1-1.93\\cdot z^−1$ .\n", "\n", "Fortunately we have the function “deconvolve”, which is identical to polynomial division, to do this:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "b: [-3.89817183e-17+0.j -1.89206682e-01+0.j -5.21259495e-01+0.j\n", " -7.72642602e-01+0.j -7.35091052e-01+0.j -4.19408415e-01+0.j\n", " -5.30210197e-02+0.j 1.31492512e-01+0.j 9.79877853e-02+0.j\n", " 7.45511113e-07+0.j]\n", "r [ 0.00000000e+00+0.j 0.00000000e+00+0.j -5.55111512e-17+0.j\n", " -5.55111512e-17+0.j 0.00000000e+00+0.j 0.00000000e+00+0.j\n", " 0.00000000e+00+0.j 0.00000000e+00+0.j 0.00000000e+00+0.j\n", " 0.00000000e+00+0.j 1.43952881e-06+0.j]\n" ] } ], "source": [ "import scipy.signal as sp\n", "[b, r] = sp.deconvolve(hsinc, [1,-rt[1]])\n", "print('b:',b)\n", "print('r',r)" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ "Here, r is the remainder. In our case it is practically zero, which means we can indeed divide our polynomial without any remainder, which we expect since the zero we divide by was in the polynomial, so that we can always factor it out.\n", "\n", "After that we can multiply the obtained polynomial b with the zero inside the unit circle, at position 1/1.93, by multiplying it with the polynomial with only that zero\n", "\n", "$1−\\dfrac{1}{1.93} \\cdot z^{−1} :$" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "array([-3.89817183e-17+0.j, -1.89206682e-01+0.j, -4.23272096e-01+0.j,\n", " -5.02689862e-01+0.j, -3.34950643e-01+0.j, -3.87154099e-02+0.j,\n", " 1.64184521e-01+0.j, 1.58951330e-01+0.j, 2.98897187e-02+0.j,\n", " -5.07457087e-02+0.j, -3.86089404e-07+0.j])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hsincmp = sp.convolve(b,[1,-1/rt[1].conjugate()])\n", "hsincmp" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "This **hsincmp** is now our minimum phase version of our filter!\n", "\n", "Now we can take a look at the impulse response:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(np.real(hsincmp))\n", "plt.xlabel('Sample')\n", "plt.ylabel('Value')\n", "plt.title('Impulse Response of the Minimum Phase Filter')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Observe that our filter now became nonsymmetric, with the main peak at the beginning of the impulse response!\n", "\n", "The resulting frequency response is obtained with:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "hide_input": true }, "outputs": [ { "data": { "text/html": [ "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/h0tJwGCwBOw\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>\n" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/h0tJwGCwBOw\" frameborder=\"0\" allow=\"accelerometer; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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VFZWMnjw4Lzfp5ypDLOj8sueyjB7KsPsqQyzV8plaGafVHdMTZkiIiIiMaHETERERCQmlJiJiIiIxIQSMxEREZGYUGImIiIiEhNKzERERERioiymy5B4WLUKliyBZcvg22/Tb++804WJE7+7f+VKWLMmbGvXbnie7rU7mNW+NWkCzZvXvLVqBW3awKabhsfk54nHDh2gRYtil66IiDQESsyE9euhqgq++QaWLg3J1ZIlG55num/16kzu1vf/njVrBptsEpKj5s2hadOwNWmy4XnTpuGc5H1mITmrbVu7NiSLy5bBwoXheeq2fDmsW1d71K1aQadOYevYccPzTp1giy2gSxfo2jU8duoUYhQREakrJWZlYN26kBx9883G25Ilme1bujQkZzVp1CjUILVtu+Fxiy1gm2023peoZWrVKiRUyVurVvDOO//l4IP3pmXLkGwVmzusWBGSt2XLQlkkP1+6FL7+OiR2yducOeFx6dLvXrNZs5CgJZK1nj1hq602bFtuGc4RERFJFYM/jQ2Le6ipWblyw1ZVFRKBTB+XLds4wVq2rPb7broptGu3YeveHXbYYeN9ieQqsSUnW61a5aYW6JNP1tCmTfbXyRWzDYljRUXd379qFXzxBcyfD599Frbk51OmwOOPb1yb2KhRKP9EorbttrDddtCvH/ToEY6LiEjDpMQsA1VVcMYZsGBBfzp0CDVUydv69d/dl5p8JbZVq+p270aNoHXrUAuVeGzTBrbeOiRNyYlVu3bp97VpA40b56dsGrrmzUMy1aNH9eesXx+StY8++u725JNw550bzm3ZMiRq/fptSNZ23jnUuql5VESk/Ckxy8D69TB9OqxYsQlffx2SnOStUaPw2LRp6CTeuHH4g92iRWZbauKV/Niypf4gl7pGjaBbt7Dtt993jy9eDO++G7ZZs8Lja6/Bv/614Zx27WCXXWCzzXozf3543revEm4RkXIT28TMzA4DrgcaA3e4+5+KFcumm4Y/lpWVE0p2wVSJrw4dYO+9w5asqiokalOmwOTJYXv99a6MGROOt2oFu+0Ge+0FgwaFrWPHwscvIiK5E8vEzMwaAzcBBwPzgAlm9oS7zypuZCKF07o17L572BLGjXuNior9mTwZJk6EN9+EP/95w8jSvn1DorbXXjBkCPTurRpXEZFSEsvEDNgdmOPuHwGY2WhgKKDETBq0Jk2cHXYIAzdOPTXsW748JGnjx8Mbb4R+a/fcE45tuSUccMCGrWvXooUuIiIZMHcvdgzfYWbHAYe5+4+j1z8C9nD3nyWdMwIYAVBRUbHr6NGj8x5XVVUVrVu3zvt9ypnKMDuZlJ87fPrpJrzzTjsmT27PlCntWLq0KQDdu3/LgAFfs8cei9hll29o0aKWeVLKkH6D2VMZZk9lmL1SLsMhQ4ZMcveB6Y7FtcYsXePLRhmku98O3A4wcOBAL0Tfr8rKSvUxy5LKMDt1Kb9TTgmP69fDtGnw4ovw0kubMG7cJjz+eFdatAi1aEccEbaaRpaWE/0Gs6cyzJ7KMHvlWoZxnTFpHtA96XU3YH6RYhEpaY0ahSk3fvlLePppWLQInn8eRoyA2bPh3HPDdBw77ABXXAEzZoRaNxERKby4JmYTgD5m1svMmgEnAk8UOSaRstC8ORxyCFx/PXzwAbz3Hlx7bRgdetVVIUHr1w8uuwymTlWSJiJSSLFMzNx9LfAz4HngXWCMu88sblQi5ccsLKt14YXwyithItybbw7LSf3xj6Gmbdtt4eqr4eOPix2tiEj5i2ViBuDuz7h7X3fv7e4jix2PSEPQuTOcc07oj/bFF3D77WEk5+WXQ69eMHgw3HVX+jVCRUQke7FNzESkuDbbDM46C156KdSWjRwJn38OZ54Z1hU96aSwQoGaOkVEckeJmYjUqkcP+O1vQ3+0N9+E008PAwn22y/0SbvpJtWiiYjkghIzEcmYGeyxR+iH9tlncMcdYb3Xn/0s9Ev7yU/CgAEREakfJWYiUi+tWoVmzYkT4e23YfhwuO++MGDg4INh7Fg1c4qI1JUSMxHJ2m67wd13h1q0a66BmTPh0ENhl13g/vthzZpiRygiUhqUmIlIznToAL/5DcydG0ZvrlkDP/oRbL013HYbrF5d7AhFROJNiZmI5Fzz5mGAwPTp8NRTof/Z2WdD374wapRq0EREqqPETETyplGjsA7nG2/As8+GedJGjAgJ2l13wbp1xY5QRCRelJiJSN6ZwWGHwfjx8MwzYY60M88MfdCef77Y0YmIxIcSMxEpGDM4/HB46y14+GH49tuQsB16KEybVuzoRESKT4mZiBScGRx7LMyaBdddBxMmhGk2zjoLFi4sdnQiIsWjxExEiqZZMzj/fPjwQ7jgArjnnrCo+h13wPr1xY5ORKTwlJiJSNG1bw/XXgvvvAP9+4eas332UfOmiDQ8SsxEJDa23x5eeQXuvRfmzIFdd4Urr9T8ZyLScCgxE5FYMYNTTgkLpp9wAlxxBey+O0yZUuzIRETyT4mZiMRShw5hOafHHoMvvgjLPl19teY+E5HyVpTEzMyGm9lMM1tvZgNTjl1iZnPMbLaZHVqM+EQkPoYODWtvDh8Ol18OBx4Y1uQUESlHxaoxmwEMA15N3mlm/YATgf7AYcDNZta48OGJSJx07AgPPBD6nk2cCDvtFJZ6EhEpN0VJzNz9XXefnebQUGC0u69y97nAHGD3wkYnInF1yikwaRJ07w5HHQUXXQRr1xY7KhGR3DF3L97NzSqBi9x9YvT6RuBNd78/en0n8Ky7P5zmvSOAEQAVFRW7jh49Ou/xVlVV0bp167zfp5ypDLOj8gtWr27ELbf05rHHurLrrou5/PJZbLppZhmayjB7KsPsqQyzV8plOGTIkEnuPjDdsSb5uqmZjQM6pzl0qbs/Xt3b0uxLmzm6++3A7QADBw70wYMH1yfMOqmsrKQQ9ylnKsPsqPw2OOQQuPtuOPvsDlx44T48/niYA602KsPsqQyzpzLMXrmWYd4SM3c/qB5vmwd0T3rdDZifm4hEpNycfjpsuy0MGwZ77hn6oR11VLGjEhGpv7hNl/EEcKKZNTezXkAf4O0ixyQiMTZoUBgQsO228P3vw223FTsiEZH6K9Z0GceY2TxgEPC0mT0P4O4zgTHALOA54Fx316xFIlKjrl2hshIOOwzOPht+/3soYvdZEZF6y1tTZk3c/VHg0WqOjQRGFjYiESl1rVqFyWh/8hO46ipYsABuvhkaxa1dQESkBkVJzERE8qFpU7jzTqiogD/9KayxOWoUNNZsiCJSIpSYiUhZMYM//hGaNw8LoK9dG0ZvKjkTkVKgxExEyo5ZWPy8SRO47LKw75571KwpIvGnxExEytbvfhceL7ssLIp+3XXFjUdEpDZKzESkrF16KSxaBP/4B2y2Gey9d7EjEhGpnir2RaSsmcG118LJJ4catKee2qLYIYmIVEuJmYiUvUaN4K674PDD4R//6ENlZbEjEhFJT4mZiDQITZvC6NHQrdsKjjsOPvqo2BGJiHyXEjMRaTA23RRGjpzB+vUwdCgsW1bsiERENqbETEQalK5dVzBmDLz7LpxxhpZuEpF4UWImIg3OQQeFSWgffliLnotIvCgxE5EG6aKL4NBD4fzzYdq0YkcjIhIoMRORBqlRI7jvPmjfPkylsWpVsSMSEVFiJiIN2Oabwx13wPTpcPXVxY5GRESJmYg0cEccAaefDn/6E0yYUOxoRKShq3VJJjMbCOwLdAFWADOAce6+OM+xiYgUxHXXwdixMGJESM6aaLE6ESmSav/zY2anAecBc4FJwGygBbAP8GszmwFc5u7/q+tNzeyvwFHAauBD4HR3/yY6dglwJrAOOM/dn6/r9UVE6qJt27CW5vDhcMst8POfFzui+lm6NDTLfvIJ/O9/8NlnUFUFy5eHPnRNm0KLFrDJJlBRAV26QNeusO22sNVWSkhF4qCmf4atgL3dfUW6g2a2M9AHqHNiBrwAXOLua83sz8AlhGSvH3Ai0J9QQzfOzPq6+7p63ENEJGPHHgsHHxzW0zz++JC4xN2iRfDss6G2b8IEmD1743nZ2rYNk+q2ahUSstWrYeXKkKwtXAjr1284t1kz2G472HNP2Gcf2Hdf6NGj8J9JpKGrNjFz95tqeqO7T6nvTd19bNLLN4HjoudDgdHuvgqYa2ZzgN2B8fW9l4hIJszgn/+EHXaA3/4W7ryz2BGl9+238NBDcPfd8N//huRqs81g0CD44Q9hl12gd2/o3h1at67+OmvXwpdfwqefhsl2Z82CqVPhgQc2zO3Wrx8cdRQcfXS4vllhPqNIQ2ZezbTXZtYCOAH4GngSuJjQ1+xD4Gp3X5iTAMyeBB5y9/vN7EbgTXe/Pzp2J/Csuz+c5n0jgBEAFRUVu44ePToX4dSoqqqK1jX9l05qpTLMjsove7WV4U039eaRR7px110T6NHj2wJGVrOvvmrOmDHdeO65zlRVNaVHj+Xsv/9XDBq0iL59l9EoR0O51q2DuXNb8c477Rk/viPTprVl3bpGbLHFCg45ZAEHH/wFbdsu1O8wS/q3nL1SLsMhQ4ZMcveB6Y7VlJiNAdYQmjTbEzr9P0noY7azux9Z003NbBzQOc2hS9398eicS4GBwDB3dzO7CRifkpg94+7/qeleAwcO9IkTJ9Z0Sk5UVlYyePDgvN+nnKkMs6Pyy15tZfjVV6HG6eCD4T81/penML7+Gq66KvR9W78ejjsOzj47NDUWogZryRJ44okw59uLL4am0kGDFjJyZCcGD1YtWn3p33L2SrkMzazaxKymPmb93H17M2sCzHP3/aP9z5nZ1Npu6u4H1RLUqcCRwIG+ITucB3RPOq0bML+2e4mI5Mpmm4VVAX7/e3jrLdhjj+LE4R6aFS+8MPQHO+00uPzywvf7atsWfvSjsM2bB6NGwQ03bMoBB4Rm0yuvhCOPVIImkis1VX6vBnD3tXw3OcqqM76ZHQb8Gjja3ZPbCp4ATjSz5mbWizC44O1s7iUiUlcXXhgStCuvLM79lyyBE08MKxL07AkTJ4Y+b8XujN+tWyiThx56kzvugGXLQv+zvfaCysrixiZSLmpKzLqZ2Q1m9s+k54nXXbO8741AG+AFM5tiZrcCuPtMYAwwC3gOOFcjMkWk0Fq3hl/8Iox4LPQ6mrNmwYABoRn1mmvgjTdCzVScNGu2njPPDLHefnsYQDBkCPzgBzBfbRwiWakpMfsVYf6yiUnPE68vzuam7r61u3d3952j7eykYyPdvbe7b+Puz2ZzHxGR+jrnnDDNxN/+Vrh7vvIK7L13GHn56qvwm99A48aFu39dNW0KZ50FH3wAV1wBjz4a5kS78caNp+IQkcxVm5i5+701bYUMUkSk0Dp0CEnHgw+GyVrz7fnn4ZBDYIstYPz40DxYKlq2DH3ypk8P02r8/Odw+OHw+efFjkyk9FSbmJnZk2b2RHVbIYMUESmGCy4Ij//8Z37v8/rrcMwxYYLX118P/cpKUZ8+8NxzYQTpa6/BjjvCk08WOyqR0lLTqMxEBf4wwrQX90evfwB8nMeYRERiYcstYehQuPdeGDkyzI6fa++9FxZS7949zODfoUPu71FIZmE6j/33D33Ojj4arr4aLr204Y7cXL4cPvoI5s4Nk/p+/TVMmdKLZ57ZsFJD69bQrl3YunWDXr3Cb6Jp0+LGLoVX08z/rwCY2dXuvl/SoSfN7NW8RyYiEgNnnhk64j/5ZFi2KZeqqmDYsJDwvfACbL55bq9fTNttB2++GZqDL7ssrC5w551haahytmZNGLAxfjy8/XZYKmvevO+e16jRljRvvuH1ijSLHzZuHPrs7bJLGBCy336w887x7nco2ctkydrNzGwrd/8IIJrGYrP8hiUiEg+HHBJqMO68M7eJmTv8+MdhfcuxY0PtXLlp0SJMTNuvX1jm6qOP4OmnS79WMFVV1YbkfezYMI0IwNZbh4mA+/cPkxb37h3WYO3QASZMeIUhQwb/3zXWrg2L0C9eHEa5zp0LH34Ylsl66SW4P2qzat8+jID9/vdDbWTbtoX/vJJfmSRmFwCVZvZR9Lon0VJIIiLlrnFjOP10+MMfwh/M7t1rf08mRo8Oa17+8Y9w4IG5uWYcmcEll8A224SmzQMOCMlLqdcOuoeasVGj4OGHQ3Nl165h/rnDDw9NuTUloKnNuk2ahPM7dAgJ3ZAhGx+fPx9efjkkaWPHwiOPhJrWQw8NtbpHHBGuIZlzDwNU5s+HRYvCRM7LloXv8aijihdXrV+juz9nZn2AbaNd70WLjIuINAinnx76Sd17L/zud9lfb/FiOP982G03uDiryYdKx7Bh8NRToc/e/vuHqUFKMTlzD/Pb/fGPYRH5Nm1CwnnaaWEkbb760XXpAiedFLb160Mz6b//HRL8J58MtbojRsBPfwodO+YnhlK2YgVMnhzK7e23YebMUCP5bZrlcA87LKaJmZnt4+6vA0SJ2NSU45sCW7r7jPyGKCJSXL16hSaphx7KTWJ28cXh/9Cff75h9Rc6+OAwavOww8L28sul1RQ3fjycd15YiaF79zBa9/TTw3x3hdSoEey5Z9j+/OeQ8N58c1iy6y9/CTFeeKEStI8/Duu8Pvdc+K2tXBn2d+8OO+0EBx0Uaie7dYNOnUJ5bbppGIhRTDXVmB1rZn8hzMA/CfgKaAFsDQwBegC/zHuEIiIxMHx4+IP37ruhY3t9vfNO6K920UWhI3dDs99+oRnu6KNDrcQLL7BRJ/g4WrAAfv3rUGPapUv4/k4+OT+jdOuqSZPQ3+z734cZM0LN7jXXwA03hP+JuOCCeMRZKEuWwJgx8P/+X5iyBcI0LiNGhC4Du+8OnTsXN8ba1DTB7AXAEcDnwHDgauBCwvqVt7n7fu4+oSBRiogU2bHHhmaqhx/O7jpXXRVqiS69NDdxlaLDDguDAl57DX7ykw1TRsTRww+HRPyBB8JKDLNnwxlnxDPZ2X77UKs7fXroy/eb34S55F54odiR5d8nn4RawkST7ldfhSluPvgA3n8frr8+/M9A3JMyqHlJJtz9a3cf5e6nufuh7v59d78k0cQpItJQdOkCe+wRmo3qa+pUeOyx0L+sXbvcxVaKTjwxLON0772FXfYqUytXhlGzw4eH5q5p00JNVLGbuTLRvz88/ngYAbt2bRhZfNZZYYBCufn009C/r3fv0LQ8dCi89VZYx/W3vw3fXampMTETEZENjjgidBxesKB+77/qqtCH5Re/yG1cperyy+H440PNzqsxmh1z/nwYPDg0WV5ySejkv+22tb4tdr73vdC8+etfh88yYEDoH1cOliyBUaN60bdvGADxi1+EKUbuvz80V5byZMZKzEREMnTkkeHxmWfq/t4PPgh9q847L8xFJeGP5x13wFZbhdGGixYVO6LQ7LXnniGh+c9/wujLUp59v0UL+NOfwjQb334b1jK95ZZiR5WdZ58NtYIPPNCD4cPDd3bttaEZsxwoMRMRydBOO4VFxuvTZy2MKE4AACAASURBVOe220JH7XPPzX1cpaxNm9AvasGC0HRYzP5m06aF0bcrV4b+b8OGFS+WXBs8OHy+Qw4JU2r89KehmbOULFkS+vd973uhK8DNN0/ivvvKb3LmWhMzM9vEzC4zs1HR6z5mdmT+QxMRiRezMPHnSy/VLYFYtQruvjuMnCuFzseFNmBA6L/12GNhbq5imD07dJhv1iwkZbvsUpw48ql9+zB9xK9+FWrNjj02/VJQcTR1avid3Hdf6Ds2aRJst92yYoeVF5nUmN0NrAIGRa/nAX/IW0QiIjE2ZEio3Xnvvczf89xzYVLZM87IX1yl7vzzYeDA0NT79deFvfdnn4WapMaNw3xX22xT2PsXUuPGYa6zm24KE9MefviGJaTiavTo0LycqMkcOTL+U6xkI5PErLe7/wVYA+DuK4AS7lYnIlJ/BxwQHl96KfP3PPhgmMDyoIPyE1M5aNw4LG+0cGGo0SmUb78NgzoWLw59l0pxFF99/PSnoaP866+HkYxxrDlzDyN2f/CDsErG5Mmhj1y5yyQxW21mLQEHMLPehBq0ejOzq81smplNMbOxZtYl6dglZjbHzGab2aHZ3EdEJNd69Qpr6f33v5md/+23oflo+PDS7kReCDvvHCZEvesumDIl//dzh3POCX2vxowJTWUNyQ9/CPfcA5WVcNxxsGZNsSPawD2MiP3Vr8K/nbFjwwLwDUEmidnvCbP/dzezfwEvAtmu7vZXd9/R3XcGngIuBzCzfsCJQH/gMOBmM2tAC5aISNyZhfnM3nors/NfeinURpRTR/J8uvTS0Bfq17/O/71GjQp9li6/PDTpNUQnnwy33hpGGv/85/GY7Nc9/A7+/OeQOI8eHUaXNhS1Jmbu/gIwDDgNeBAY6O6V2dzU3ZcmvWxFVBsHDAVGu/sqd58LzAF2z+ZeIiK5tuee8NFHYXbx2jz9dJiUdN998x9XOWjXLvxRHjsWxo3L330+/DD0azv4YLjssvzdpxSMGBHmkrvtNrjxxmJHEwaCXHNNiOvGG8PaoA1JTYuYp1bqfh49bmlmW7r75GxubGYjgVOAJYS1NwG6Am8mnTYv2pfu/SOAEQAVFRVUVlZmE05GqqqqCnKfcqYyzI7KL3u5KMNmzdoCu3DHHdMZNKj6ybfc4ZFH9mTnnZcxfvzMrO4ZJ/n+HW6/vVFRsQfnnruGW2+dlPPJQt3hl7/cCbM2nHXWBF57LaveOfUSt3/LBx8Mr7/en/PP78T69VPYaaclRYnjpZc25+qr+3HQQQs44YR3a5x4OG5lmDPunnYDXo628YSO/xMJi5mvAV6v7n1J7x8HzEizDU057xLgyuj5TcDJScfuBI6t7V677rqrF8LLL79ckPuUM5VhdlR+2ctFGVZVuTdu7H7ZZTWfN3u2O7jfemvWt4yVQvwOR40KZffii7m/9h13FP97ieO/5aVL3fv0ce/e3X3x4sLff/x49+bN3ffd133lytrPj2MZZgqY6NXkNDUtYj7E3YcAnwAD3H2gu+8K7EJoYqwt4TvI3bdPsz2ecuoDwLHR83lA96Rj3YD5td1LRKSQWrWCPn1Cp/GavPZaeNxvv/zHVG5OPhk23zzM6J5LS5eG/mv77hvWj5QN2rQJi7V/8UUom0L2N1u8OCzP1aVLWCGjnKfDqE0mLbfbuvv0xAt3nwHsnM1NzaxP0sujgcSMQE8AJ5pZczPrBfQB3s7mXiIi+bDDDjB9es3nvPZamCajFNdZLLYWLUJn9GeegZk5bAX++9/D0k9//3vD67uUiYEDwzxh//lPWJGhENzDqg+ffx7u2alTYe4bV5n8LN81szvMbLCZ7R+tAPBulvf9k5nNMLNpwCHALwDcfSYwBphFGAl6rruvy/JeIiI5t8MOYQDA8uXVn/P667DPPqW9oHIxnXMOtGyZu1qzL78M1xo+PCQgkt6FF4byueCCsAxSvo0aBY8+Gtb03G23/N8v7jJJzE4HZhKSp/MJSdPp2dzU3Y+NmjV3dPej3P2zpGMj3b23u2/j7s9mcx8RkXzZYYfwWF1tzldfhZF/e+9duJjKTceOcOqpYYLeb77J/np//GOYuuTqq7O/Vjlr3DhMofHll2GEbD598QVcfHFYUeOCC/J7r1KRyXQZK939Onc/Jtquc/eVhQhORCSuEolZdc2ZiQlSG9qkpbl21llhKZ4HHsjuOt98E2pmTj65vJdcypVdd4Wf/Qxuvrn2vpTZuPDCkCzfequalhMyWcR8rpl9lLoVIjgRkbjq1Ss0s71bTceOqVPD4047FS6mcjRgQFgR4M47s7vOPfeEVRjOOy8nYTUIV1wBbdvmb563ceNCbegll0Dfvvm5RynKJD8dCOwWbfsCNwD35zMoEZG4a9QoJGcfVfO/qVOnhqWbOnYsbFzl6JRTwjqJH3xQv/evXx8W7d5rL9Vg1kX79nDRRWFJsbdzPAzPPYyO7dUrTG4rG2TSlLkoafvM3f8BHFCA2EREYm2rrapPzKZMCTU9kr3jjw8DKOo7SnDsWJgzJzTNSd2cd14YJZnrWrPHHgvJ9u9/37CWW8pEJk2ZA5K2gWZ2NtCmALGJiMRa796hg3/qfE+rV8N776kZM1e6dg2jW+ubmN18c1gA+9hjaz9XNtamTajZGjs2d7Vm69eH9Un79oWTTsrNNctJJk2Z1yZt1wADgOPzGZSISCnYaiuoqoKFCzfe//HHsHatOpnn0jHHwIwZoWzrYtEiePbZ0BzarFleQit7I0aE9V5vuik313v44fBdXnEFNKl2YciGK5PE7MzEKgDufrC7jwBW5zswEZG422qr8JjanPnhh+Gxd+/CxlPOjjwyPD71VN3e98gjIUn+wQ9yH1NDsemmIbEdPTpMA5Otf/wjrJxxvKp40sokMXs4w30iIg1KdYlZ4nXiuGSvT59QA/nkk3V730MPhSYz9ffLzrnnhib6bEfHTp0K48fD2WeH+dLku6pNzMxsWzM7FmhrZsOSttMAddUTkQavV6/wmK7GbJNNoHPnwsdUzg47DF59FVatyuz8JUvglVdCM6hWX8hOv35hEthbbgk1kPV1662hs/9pp+UstLJTU43ZNsCRQDvgqKRtAKClX0WkwWvZEjp0CGv8Jfvww1BbpmQgt4YMCZPNvvVWZue/8EJIIo44Ir9xNRQ//Sn873/w8sv1e/+yZXD//XDCCeHfjaRXbbc7d38ceNzMBrn7+ALGJCJSMioqwrIyyT76SM2Y+bDffiHZffnl8Lw2Tz8d5uIaNCj/sTUERx4Z+ps98AAcfHDd3//AA2GwzDnn5D62clJTU+bF0dMfmtkNqVuB4hMRibWKCliwYMNr95CYqeN/7rVvD7vsklmNjXuYWf7AAzXyL1datIBhw8KAipX1WJjxgQdCk+juu+c+tnJSU1NmYqGRicCkNJuISIOXmph9/XVY+qd79+LFVM723RcmTKi9n9PHH8O8eTB4cCGiajhOOAGWLoWXXqrb++bPh9deC+9XE3/NamrKfDJ6vLdw4YiIlJbOnTdOzL78MjxWVBQnnnK3225w/fUwaxbsuGP1573ySnjcf//CxNVQDBkS5jR74gn43vcyf99//hNqMYcPz19s5aLaxMzMngS8uuPufnReIhIRKSEVFaEGYcWKMBggkZhtvnlx4ypXiWawt9+uOTF79dXQwbxfv8LE1VA0bw6HHhqmLbn55rBmbCaeeipMd7LddvmNrxzU1PL+t4JFISJSohI1YwsWQM+eSszybeutoV27kJj9+MfVn/fmm7D33pknDpK5I48MNWDTpmU2P9zy5VBZqbVKM1XtT9bdX0lswHjga2AxMD7alzUzu8jM3Mw6Je27xMzmmNlsMzs0F/cREcmX5MQMlJjlm1lozpwwofpzli8Pa5Xuumvh4mpIDjwwPGY6bcZLL4XJaevS9NmQZbKI+RHAh8ANwI3AHDM7PNsbm1l34GDgf0n7+gEnAv2Bw4CbzUxzA4tIbFWXmHXqlP58yd6OO8K778K6demPT5kS+jMNGFDYuBqK7t3DSgyZDgAYNy408++zT37jKheZLmI+xN0Hu/v+wBDguhzc+zrgYjbuxzYUGO3uq9x9LjAH0MBaEYmtxOz+ibnMvvwSOnbUFA351K9fmP1/7tz0xydPDo+qMcufAw4IAywyWQXg1Vdhr71C/zSpXSb/6fjS3eckvf4I+DKbm5rZ0cBn7j7VNh432xV4M+n1vGhfumuMAEYAVFRUUFlZmU1IGamqqirIfcqZyjA7Kr/s5boM16wxYH/eemsufft+wsyZ/WndehMqK2toaytxxf4drlzZBtiV0aOns88+i75z/JlntqF9+47Mnv0G779f+PgyUewyzNbmm2/OsmX9uPvuifTpU1XteVVVTZg6dW9OPfVjKis/yWkMpV6G1ckkMZtpZs8AYwi1W8OBCWY2DMDdH0n3JjMbB6RbKe5S4LfAIenelmZf2pGh7n47cDvAwIEDfXABJquprKykEPcpZyrD7Kj8spePMmzRAjp16sXgwb1wD4MAyvl7KvbvcMCAsKh248Y7pJ2n7KKLQj+0IUPSHIyJYpdhtnr0gKuvhnXrBtY4V9zTT4dm5VNPDf8+cqnUy7A6mTRltgAWAPsDg4GvgA6EdTOPrO5N7n6Qu2+fuhFq3HoBU83sY6AbMNnMOhNqyJKnZewGzK/zpxIRKaDWrcNSMxCaMtXxP7823TT0c5o167vH3OH998PUDJI/PXuGfpRvv13zeePHh2Z9zfafuVprzNz99Fze0N2nA//3n60oORvo7gvN7AngATP7O9AF6APU8rWLiBRXq1ZKzAqtX7/0idmCBWGx7L59Cx9TQ2IWkq3aErPJk6F/f9hkk8LEVQ5qTczMrBfwc6Bn8vn5mGDW3Wea2RhgFrAWONfdqxl3IyISD4kas7Vrw5JMGpGZf716pZ8yY/bs8KjELP923x2efTYkwm3afPe4O0yaBEccUfjYSlkmfcweA+4EngTW5zoAd++Z8nokMDLX9xERyZfWrcPcWcuXh9fp/khJbvXoAYsXh4S4desN+xOd/dWUmX877xySr5kzYc89v3v8889DDbKmLambTBKzle5+Q94jEREpUYmmzBUrwms12+Rfjx7h8ZNPQlNZwvvvh2kZtIh8/iXKfdas9IlZYtoSJWZ1k0nn/+vN7PdmNsjMBiS2vEcmIlIiEk2ZicSsZcvixtMQJCdmyd5/PyzbpKWY8q9XrzAieebM9MenTAmPNa1pKt+VSY3ZDsCPgAPY0JTp0WsRkQYv0ZT57bfhtRKz/OvZMzymJmaffrrhmORX48aw7bbpB2FASJK7d9+4qVlql0lidgywlbuvzncwIiKlSDVmhde5MzRr9t3EbP58GDiwODE1RP37h5n903n/fQ3CqI9MKnunAu3yHYiISKlK7WOmxCz/GjUKtTHJidmaNaGzeZcuxYuroenfP9RSLlu28X73MEJWiVndZVJjVgG8Z2YTgFWJnfmYLkNEpBSlNmWq839h9OixcWK2YEFICJSYFU7v3uFx7tyN+5ItWgTffKPErD4yScx+n/coRERKWOvWISFYvDi8Vo1ZYXTuDG+9teH1/GidGCVmhZM8CCM5MUtMW6LErO4ymfn/leTXZrY38EPglfTvEBFpWFq1Co9ffhkelZgVRseOoWYmQYlZ4dU0OhaUmNVHJjVmmNnOhGTseGAu8J98BiUiUkoSo84WLgyPSswKo1On0Fy2dm1Yj1GJWeFtvnmYN+5//9t4/9y5YdmmROImmas2MTOzvsCJwA+ARcBDgLn7kALFJiJSEhKJ2VdfhUf1MSuMjh3D4+LFIUGYPz9M4bDZZsWNqyFp1Ai23DL96NjNN4emTYsTVymraVTme8CBwFHuvo+7/xPQupUiIilSEzPVmBVGYk3SRE3l/Pmh31njxsWLqSFKHYQB4btQzWX91JSYHQt8AbxsZqPM7EDAChOWiEjpSPQxU2JWWIkas0Q/s88/D4mZFJYSs9yqNjFz90fd/QRgW6ASuACoMLNbzOyQAsUnIhJ7yTVmTZqETfIvtcZsyRLo0KF48TRUPXrAF1/AypUb9s2fD127Fi+mUlbrBLPuvtzd/+XuRwLdgCnAb/IemYhIiUhOzNS/rHBSa8yWLoU2bYoXT0OVqBlbsCA8aqLf7NRpmVd3X+zut7m71skUEYkkmjIXLVIzZiElErNEjdnSpbDppsWLp6FK16QMSszqq06JmYiIfFfyIs1KzApnk01CeSfXmCkxK7zUxEzTlmSnKImZmV1hZp+Z2ZRo+17SsUvMbI6ZzTazQ4sRn4hIXbRqFaYNACVmhdapU6gxcw/rNSoxK7xEX7/UxEx9zOqnmF1Ur3P3vyXvMLN+hLnT+gNdgHFm1tfdNU2HiMRWo0ZQURGacNTHrLASs/9/+y2sX6/ErBiqqzHbYovixFPq4taUORQY7e6r3H0uMAfYvcgxiYjUKtFsoxqzwkrUmC1dGl6r83/hJUbCJvr6ff31xvulbopZY/YzMzsFmAj80t2/BroCbyadMy/a9x1mNgIYAVBRUUFlZWV+owWqqqoKcp9ypjLMjsove/kqw+bNtwc6sXLlYiorp+X8+nESp9/hihXbs2BBC154YSawB/PmzaKy8stih1WrOJVhLrRqtQ9Tp35BZeUcZs7ciubNu/Lf/76W13uWWxkm5C0xM7NxQLqp/i4FbgGuBjx6vBY4g/QT2Hq667v77cDtAAMHDvTBgwdnH3QtKisrKcR9ypnKMDsqv+zlqwx32AHeeAO6dOlQ9t9RnH6HXbuGmprtttsDgD337Mfgwf2KHFXt4lSGudC5M7Rs2Y3Bg7vx4IPQvj15/3zlVoYJeUvM3P2gTM4zs1HAU9HLeUD3pMPdgPk5Dk1EJOcSTZmaXLawWrSAVatCx39QH7NiSfT1gzDRr76H+ivWqMzkLoHHADOi508AJ5pZczPrBfQB3i50fCIidZXo6Jzo6ySF0bx5SMwS5a6EoDiSEzNNW5KdYv2/3V/MbGdCM+XHwE8A3H2mmY0BZgFrgXM1IlNESkGixizR8VkKIzUxU+f/4ujYEd59NzxXYpadoiRm7v6jGo6NBEYWMBwRkawpMSsO1ZjFQ6dOG9eY9e5d3HhKWdymyxARKUmJpsxvviluHA1NIjFTH7Pi6tgxfAerV6vGLFtKzEREcmCzzaBHD7jxxmJH0rA0bw5r14aaymbNwmspvHbtwuOSJUrMsqXxQyIiOdC4MXz8cbGjaHgSidhXXykZKKbE95BoVtZ3UX+qMRMRkZKlxCweEt/DN9/AunX6LrKhxExEREpWIiFYuFAjMoupWbPw+NVX4bFt2+LFUuqUmImISMlKJGaLFkHr1sWNpSFLrrkE1ZhlQ4mZiIiUrERCsHgxtGpV3FgaMiVmuaPETERESlaLFuHxm29gk02KG0tDltqUqcSs/pSYiYhIyUrU1KxfrxqzYkru6wdKzLKhxExEREpW8rxlqjErHjVl5o4SMxERKVlKzOIhtSlTI2TrT4mZiIiULCVm8ZD4HhJrxapZuf6UmImISMlKTsyUDBRPosZsyZLwmBiUIXWnxExEREqWasziIfE9LFkSnjdSdlFvKjoRESlZSsziIXlJppYtixtLqVNiJiIiJUtNmfGQaMpcv16JWbaUmImISMlSjVk8JH8P6l+WnaIlZmb2czObbWYzzewvSfsvMbM50bFDixWfiIjEX3ISoMSseBI1ZqAas2w1KcZNzWwIMBTY0d1Xmdnm0f5+wIlAf6ALMM7M+rr7umLEKSIi8aamzHho1AiaNIG1a5WYZatYNWbnAH9y91UA7v5ltH8oMNrdV7n7XGAOsHuRYhQRkZhr0gTMwnPVmBVXIklWYpadotSYAX2Bfc1sJLASuMjdJwBdgTeTzpsX7fsOMxsBjACoqKigsrIyrwEDVFVVFeQ+5UxlmB2VX/ZUhtmLWxk2bbovq1c3ZsaMt1m27Ntih5ORuJVhLjRqtDfQlJUrF1NZOS3v9yvHMoQ8JmZmNg7onObQpdF92wN7ArsBY8xsK8DSnO/pru/utwO3AwwcONAHDx6cg6hrVllZSSHuU85UhtlR+WVPZZi9uJVhy5awejUMGbI7W25Z7GgyE7cyzIVWrWDZMujSpUNBPls5liHkMTFz94OqO2Zm5wCPuLsDb5vZeqAToYase9Kp3YD5+YpRRERKX6IJTU2ZxaWmzNwoVh+zx4ADAMysL9AMWAg8AZxoZs3NrBfQB3i7SDGKiEgJUGIWD4mRmZouIzvF6mN2F3CXmc0AVgOnRrVnM81sDDALWAucqxGZIiJSE9XUxIO+h9woSmLm7quBk6s5NhIYWdiIRESkVDVvHmrLLF0vZSkYJWa5oZn/RUSkpCUSMymuRFOmErPsKDETEZGS1ry5JpeNA9WY5YYSMxERKWktWqjGLA5UY5Ybxer8LyIikhNt2sCKFcWOQhI1ZhqVmR0lZiIiUtL++ldYtarYUYiaMnNDiZmIiJS0vn2LHYGAmjJzRX3MREREJGuqMcsNJWYiIiKSNSVmuaHETERERLKmpszcUGImIiIiWVONWW4oMRMREZGsaRHz3FBiJiIiIllTjVluKDETERGRrCkxyw0lZiIiIpK19u2hSZOwEoPUnyaYFRERkaydfDIMGACbblrsSEqbasxEREQkay1bwq67FjuK0leUxMzMHjKzKdH2sZlNSTp2iZnNMbPZZnZoMeITERERKYaiNGW6+wmJ52Z2LbAket4POBHoD3QBxplZX3dfV4w4RURERAqpqE2ZZmbA8cCD0a6hwGh3X+Xuc4E5wO7Fik9ERESkkMzdi3dzs/2Av7v7wOj1jcCb7n5/9PpO4Fl3fzjNe0cAIwAqKip2HT16dN7jraqqonXr1nm/TzlTGWZH5Zc9lWH2VIbZUxlmr5TLcMiQIZMSuU+qvDVlmtk4oHOaQ5e6++PR8x+wobYMwNKcnzZzdPfbgdsBBg4c6IMHD65/sBmqrKykEPcpZyrD7Kj8sqcyzJ7KMHsqw+yVaxnmLTFz94NqOm5mTYBhQPIYjnlA96TX3YD5uY9OREREJH6K2cfsIOA9d5+XtO8J4EQza25mvYA+wNtFiU5ERESkwIo5weyJbNyMibvPNLMxwCxgLXBuJiMyJ02atNDMPslPmBvpBCwswH3KmcowOyq/7KkMs6cyzJ7KMHulXIY9qjtQ1M7/pcbMJlbXWU8yozLMjsoveyrD7KkMs6cyzF65lqFm/hcRERGJCSVmIiIiIjGhxKxubi92AGVAZZgdlV/2VIbZUxlmT2WYvbIsQ/UxExEREYkJ1ZiJiIiIxIQSsxRmdpiZzTazOWb2mzTHzcxuiI5PM7MBxYgzzjIow8FmtsTMpkTb5cWIM87M7C4z+9LMZlRzXL/DGmRQfvoN1sLMupvZy2b2rpnNNLNfpDlHv8MaZFiG+i3WwMxamNnbZjY1KsMr05xTXr9Dd9cWbUBj4ENgK6AZMBXol3LO94BnCctH7Qm8Vey447RlWIaDgaeKHWucN2A/YAAwo5rj+h1mV376DdZehlsAA6LnbYD39d/DvJShfos1l6EBraPnTYG3gD1Tzimr36FqzDa2OzDH3T9y99XAaGBoyjlDgfs8eBNoZ2ZbFDrQGMukDKUW7v4qsLiGU/Q7rEEG5Se1cPfP3X1y9HwZ8C7QNeU0/Q5rkGEZSg2i31ZV9LJptKV2ji+r36ESs411BT5Nej2P7/4jyuSchizT8hkUVU0/a2b9CxNaWdHvMHv6DWbIzHoCuxBqK5Lpd5ihGsoQ9FuskZk1NrMpwJfAC+5e1r/DYi7JFEeWZl9qZp7JOQ1ZJuUzGejh7lVm9j3gMcK6qJI5/Q6zo99ghsysNfAf4Hx3X5p6OM1b9DtMUUsZ6rdYCw9LM+5sZu2AR81se3dP7j9aVr9D1ZhtbB7QPel1N2B+Pc5pyGotH3dfmqiadvdngKZm1qlwIZYF/Q6zoN9gZsysKSGh+Je7P5LmFP0Oa1FbGeq3mDl3/waoBA5LOVRWv0MlZhubAPQxs15m1oyw0PoTKec8AZwSjQLZE1ji7p8XOtAYq7UMzayzmVn0fHfC73BRwSMtbfodZkG/wdpF5XMn8K67/72a0/Q7rEEmZajfYs3MbLOopgwzawkcBLyXclpZ/Q7VlJnE3dea2c+A5wmjC+9y95lmdnZ0/FbgGcIIkDnAt8DpxYo3jjIsw+OAc8xsLbACONGjoTUSmNmDhNFancxsHvB7QqdX/Q4zkEH56TdYu72BHwHTo/49AL8FtgT9DjOUSRnqt1izLYB7zawxIWkd4+5PlfPfZc38LyIiIhITasoUERERiQklZiIiIiIxocRMREREJCaUmImIiIjEhBIzERERkZhQYiYiWTEzN7Nrk15fZGZXFDiGe8zsuOj5HWbWL8vr9TSzGdXsX2FmU5K2ZtncS0QkmeYxE5FsrQKGmdk17r6wrm82sybuvjZXwbj7j3N1rWp86O47V3cw159HRBoW1ZiJSLbWArcDF6QeMLMeZvaimU2LHreM9t9jZn83s5eBP5vZFWZ2r5mNNbOPzWyYmf3FzKab2XPRsjaY2eVmNsHMZpjZ7YkZ01PuWWlmA83s6KRardlmNjc6vquZvWJmk8zseTPbImn/VDMbD5xblwKI4r/dzMYC91lYdPmvUazTzOwn0XlmZjea2Swze9rMnkmq6fvYoqV4ovgro+etzOyu6FrvmNnQaP9pZvZIVD4fmNlfkuI5zMwmR5/nRTNrFJ2zWXS8kZnNMS39IxI7SsxEJBduAk4ys7Yp+28E7nP3HYF/ATckHesLHOTuv4xe9waOAIYC9wMvu/sOhNnQj0hcz913c/ftgZbAkdUF5O5PuPvOUe3WVOBvUYL3T+A4d98VuAsYGb3lbuA8dx9Uy2ftnZTw3ZS0f1dgqLv/EDiTsCzMPrwONAAAIABJREFUbsBuwFlm1gs4BtgG2AE4C9irlnsBXAq8FF1rCPBXM2sVHdsZOCG63glm1j1KvkYBx7r7TsBwd19PKNOTovcdBEytTw2niOSXmjJFJGvuvtTM7gPOIyRSCYOAYdHz/wf8JenYv919XdLrZ919jZlNJyzn9Vy0fzrQM3o+xMwuBjYBOgAzgSdrii06f4W732Rm2wPbAy9ElW2Ngc+jhLKdu7+SFOvh1VyyuqbMJ9w98dkPAXZM1IYBbYE+wH7Ag9Hnnm9mL9UUe9K1jjazi6LXLYiW9AFedPcl0eecBfQA2gOvuvtcAHdfHJ17F/A48A/gDEIiKiIxo8RMRHLlH8Bkav6Dn7wG3PKUY6sA3H29ma1JWi9wPdDEzFoANwMD3f3TaIBBi5oCMrMDgeGEhAjAgJmptWIWFknOdn265M9jwM/d/fmU+3yvhvusZUMrRvLnMkLt1+yUa+1BVGaRdYT/plu6e0RltsDMDgD2YEPtmYjEiJoyRSQnopqZMYRmvIQ3gBOj5ycBr2dxi0SystDMWhMWf66WmfUgJHLHJ9VkzQY2M7NB0TlNzay/u38DLDGzfZJizcbzhIWpE33j+kbNj68CJ0Z90LYgNE0mfExoDgU4NuVaP0/0pzOzXWq593hg/6jpFDPrkHTsDkKT5piU2koRiQklZiKSS9cCyR3KzwNON7NpwI+AX9T3wlHyNIrQtPkYMKGWt5wGdAQejfqDPePuqwkJ3Z/NbCowhQ39vE4Hboo6/69Id8E6uAOYBUy2MO3GbYTarEeBD6LPcAvwStJ7rgSuN7PXCLVfCVcDTYFp0bWurunG7v4VMAJ4JPqMDyUdfgJojZoxRWLLNrQWiIhIIZnZPcBT7v5wge43ELjO3fctxP1EpO7Ux0xEpAEws98A56C+ZSKxphozERERkZhQHzMRERGRmFBiJiIiIhITSsxEREREYkKJmYiIiEhMKDETERERiQklZiIiIiIxocRMREREJCbKYoLZTp06ec+ePfN+n+XLl9OqVau836ecqQyzo/LLnsoweyrD7KkMs1fKZThp0qSF7r5ZumNlkZj17NmTiRMn5v0+lZWVDB48OO/3KWcqw+yo/LKnMsyeyjB7KsPslXIZmtkn1R1TU6aIiIhITCgxExEREYkJJWYiIiIiMaHETERERCQmlJiJiIiIxIQSMxEREZGYUGKWgfW+nuH/Hs7Tnz/N0lVLix2OiIiIlCklZhn4bOlnTF8wnb+9/zc6/60zJz1yEmM/HMu69euKHZqIiIiUkbKYYDbfurftzrvnvsstT97CjMYzeHDGgzww/QG6tunKyTuezKk7ncp2m21X7DBFRESkxMWyxszMWpj9//buOzyK6m3j+PdJgUjvSG+K0gQhEEICJHSk9947KIioPxuKIiqIiiKI9Cq9Sa+hJDQBqSKigoAUBUSI1CTn/SMb3hghbTeZ3c3zua65yGY3M3dOZsOTM2fOkX0iclhEjovIu06QidJZSjOx0UQuDrvIotaLqPB4BcbuGkvpiaXxm+rHxO8mcu32NaujKqWUUspFOWVhBtwFahljygMVgAYiUtXiTA/4ePnQpkwbVndczfmXzvNJvU+4E3GHQWsHke+TfLRe1JpVJ1dxP/K+1VGVUkop5UKcsjAz0cJtD71tm7Ew0iM9nulxXvJ/icP9D/N9v+8Z4DuAHb/toOmCphT8rCBD1w/l8KXDVsdUSimllAsQY5yy3kFEPIEDwBPABGPM/+I83xfoC5A3b95KCxYsSPFM4eHhZMqUKcHXRURFsPfaXjZc3sDuq7uJMBGUyFiC+o/Xp3ae2uRIlyPFszqrxLahejhtP/tpG9pP29B+2ob2c+U2DA4OPmCM8X3Yc05bmMUQkWzAcuAFY8yxh73G19fX7N+/P8WzJGcl+6u3rrLg2AJmHZ7Fdxe+w1M8afhkQ3o924tGTzbC29M7ZcI6qeS0ofp/2n720za0n7ah/bQN7efKbSgijyzMnPJSZmzGmOvANqCBxVGSJWeGnAyqMoh9ffZxfOBxhvkP48CFA7RY2ILC4wrzxpY3+PWvX62OqZRSSikn4JSFmYjktvWUISKPAXWAH61NZb/SuUszuu5ozg49y8r2K/HN78vosNGU+KIEdWbXYeGxhdyNuGt1TKWUUkpZxFnnMcsHzLKNM/MAFhljVlucyWG8PLxo+lRTmj7VlPM3zjPj+xlM+34a7Ze2J1eGXHR9pit9KvXh6VxPWx1VKaWUUqnIKXvMjDFHjDHPGmOeMcaUNca8Z3WmlFIwS0GG1xzOL4N/YX2n9dQsUpMv9n1BqQmlqD6jOvOPzude5D2rYyqllFIqFThlYZYWeXp4Uv+J+ixpu4TzQ88zus5oLt68SMdlHSn8WWGGbx3O+RvnrY6plFJKqRSkhZkTypspL68GvMpPL/zEuk7rqFygMqN2jqLouKK0XtSakNMhOPvdtEoppZRKOi3MnJiHeNDgiQas6rCKXwb/wkv+LxFyJoRas2tR9quyTPxuIjfv3rQ6plJKKaUcRAszF1EsezHG1B3D+aHnmdFsBhm8MzBo7SAKfFqAlza8xJnrZ6yOqJRSSik7aWHmYh7zfozuFbrzXZ/v2Nt7L02easL4feMp8UUJ2i5uy97ze62OqJRSSqlk0sLMhVUpUIV5LedxeshpXvZ/mY2/bKTqtKoETg9k2YllREZFWh1RKaWUUkmghZkbKJilIKPrjubc0HN83uBzLty8QKtFrSj5ZUnG7x1P+L3whHeilFJKKctpYeZGMqfPzGC/wZx64RRL2iwhb8a8DF4/mEKfFeLtkLe5cuuK1RGVUkopFQ8tzNyQp4cnrUq3YlevXezquYugokGM3DGSIuOK8NKGl/j9xu9WR1RKKaXUQ2hh5ub8C/mzvN1yjg04RqtSrfhi7xcU+7wYfVf15edrP1sdTymllFKxaGGWRpTJU4bZLWZz6oVT9KnYh9mHZ/PUl0/RYWkHjlw+YnU8pZRSSqGFWZpTLHsxJjSawJkXz/Cy/8us/mk15SeVp9WiVhy9fNTqeEoppVSapoVZGvV4pscZXXc0Z188y9s13mbzr5t5ZtIztF3cluN/HLc6nlJKKZUmaWGWxmV/LDvvBr/L6SGnebP6m6z7eR3lvipH+yXtOfHnCavjKaWUUmmKFmYKgByP5eD9Wu9zZsgZXgt8jdU/rabMxDJ0XNqRk1dOWh1PKaWUShO0MFP/kjNDTj6o/QGnh5zmlWqvsPLkSkpPLE3vb3tz/sZ5q+MppZRSbk0LM/VQuTPmZnTd0ZwecprBVQYz58gcnhz/JK9uepVrt69ZHU8ppZRyS1qYqXjlyZiHzxp8xsnnT9K2TFvG7hpL8c+L8+HOD7l1/5bV8ZRSSim3ooWZSpSi2Yoyq/ksjgw4Qo0iNXhj6xs88cUTTNo/ifuR962Op5RSSrkFLcxUkpTNU5ZvO3zLzh47KZ69OAPWDKDMxDKs/HElxhir4ymllFIuTQszlSyBhQPZ2WMnqzqswsvDi+YLm1N7dm0OXTpkdTSllFLKZWlhppJNRGhcsjGH+x9mwnMTOHL5CBW/rkivlb24ePOi1fGUUkopl+OUhZmIFBKREBE5ISLHRWSI1ZnUo3l7ejOw8kB+Hvwzw/yHPbiDc+T2kXqDgFJKKZUETlmYARHAMGNMKaAqMEhESlucSSUgm082Pq73MScGnaDBEw14e9vbPPXlU8w9MpcoE2V1PKWUUsrpOWVhZoy5aIw5aPv4JnACKGBtKpVYJXKUYEnbJezovoPHMz1Ol+Vd8J/mz3e/f2d1NKWUUsqpOWVhFpuIFAWeBfZam0QlVfUi1dnbey+zm8/m7N9n8Zvqx9iTY7ly64rV0ZRSSimnJM48xYGIZAK2A6OMMcviPNcX6AuQN2/eSgsWLEjxPOHh4WTKlCnFj+OO/on4h9m/zWbp+aVk8MpAz6I9aZK/CZ7iaXU0l6LnoP20De2nbWg/bUP7uXIbBgcHHzDG+D7sOactzETEG1gNbDDGfBrfa319fc3+/ftTPNO2bdsICgpK8eO4s5lrZjLn6hy2nt5Khccr8GXDLwkoHGB1LJeh56D9tA3tp21oP21D+7lyG4rIIwszp7yUKSICTANOJFSUKddSNGNRNnfZzKLWi7hy6wqBMwLptqIbl8IvWR1NKaWUspxTFmZAANAFqCUih2zbc1aHUo4hIrQp04YfB/3I64GvM//ofEqOL8m4PeOIiIqwOp5SSillGacszIwxocYYMcY8Y4ypYNvWWp1LOVbGdBn5oPYHHBt4jIDCAQzdMBS/qX7sv5Dyl6WVUkopZ+SUhZlKW0rmLMnajmtZ1HoRF25ewG+qH0PWDeHG3RtWR1NKKaVSlRZmyinEvrw5wHcA4/eNp/SE0iw/sVwXR1dKKZVmaGGmnEpWn6x8+dyX7O61m5wZctJyUUuaL2zO2b/PWh1NKaWUSnFamCmn5FfQj/199vNx3Y/Z/OtmSk8ozae7P9WbA5RSSrk1LcyU0/L29Oblai/zw8AfCCoaxLCNw/Cb6sfhS4etjqaUUkqlCC3MlNMrkq0IqzqsYnGbxfx+43d8p/gyfOtw7kbctTqaUkop5VBamCmXICK0Lt2aHwb9QMdyHXl/5/tUnFyRved1CVWllFLuQwsz5VJyPJaDWc1nsbbjWm7cvYH/NH9e2vASt+7fsjqaUkopZTctzJRLavhkQ44PPE6/Sv34bM9nlPuqHCGnQ6yOpZRSStlFCzPlsrKkz8JXjb8ipFsIglBrdi36r+6vE9MqpZRyWVqYKZcXVDSIIwOOMMx/GFMOTqHMxDKsO7XO6lhKKaVUkmlhptxCBu8MjK03ll09d5ElfRae++Y5+q7qy827N62OppRSSiVasgszEfEXkQkickRE/hSRsyKyVkQGiUhWR4ZUKrH8CvpxoO8BXq32KlMPTuWZSc+w/cx2q2MppVSaEBEVwW/Xf7M6hktLVmEmIuuA3sAGoAGQDygNvAX4ACtFpKmjQiqVFD5ePoyuO5rQnqF4eXgRNCuIoeuHcvv+baujKaWUW5t1aBbFPi/GV999ZXUUl5XcHrMuxphexphvjTEXjDERxphwY8xBY8wnxpggYJcDcyqVZNUKVeNQv0M8X/l5xu0dx7NfP8u+3/dZHUsppdzW9TvXMRgGrh3I+zvexxhjdSSXk6zCzBhzBUBEMoqIh+3jkiLSVES8Y79GKStlTJeR8c+NZ3OXzdy6fwv/af68tfUt7kXeszqaUkq5nUgTCUDr0q0ZHjKclza8RJSJsjiVa7F38P8OwEdECgBbgB7ATHtDKeVotYvX5uiAo3Qr341RO0dRZUoVjlw+YnUspZRyKzFF2OzmsxlcZTDj9o6j+4ru3I+8b3Ey12FvYSbGmFtAS2C8MaYF0WPNlHI6WX2yMr3ZdFZ1WMXlfy7jO9mXj0I/IjIq0upoSinlFmJ+n3p5eDGuwTjeC3qPOUfm0GpRKx3nm0h2F2Yi4g90AtbYPudl5z6VSlGNSzbm2IBjNH+6Oa9veZ1as2tx9u+zVsdSSimXF3Mp09PDExFheM3hTHxuIqt/Wk39ufX5+87fFid0fvYWZkOA14HlxpjjIlIc0HVxlNPLmSEnC1svZFbzWXx/8Xue+eoZvjn6jdWxlFLKpcVcyhTkwecGVB7A/Fbz2XN+DzVn1uRy+GWr4rkEuwozY8wOY0xTY8xo2+NfjTGDHRNNqZQlInQt35XD/Q9TJk8ZOi3rRKdlnbh+57rV0ZRSyiVFRkXiIR6IyL8+365sO1Z1WMWpa6cInBHI6b9OW5TQ+dlVmNnuxJwsIhtFZGvM5qhwSqWGYtmLsb37dt4Leo+FxxZSflJ5dvy2w+pYSinlcqJMFB7y8NKi/hP12dxlM1dvXSVgegDH/jiWyulcg72XMhcD3xM9sewrsTalXIqXhxfDaw4nrGcY3h7eBM0M4o0tb+i0Gkq5iLsRd3VwuROINJF4iucjn/cv5M+OHtF/+NaYUYPd53anVjSXYW9hFmGM+coYs88YcyBmszeUiEwXkT9ERMtplar8CvpxqP8hej7bkw9DP6TatGqcvHLS6lhKqQT0+rYXT335FD9e+dHqKGlafD1mMcrmKUtYzzByZshJnTl12PDzhlRK5xrsLcxWichAEcknIjliNgfkmkn0Uk9KpbpM6TIxtelUlrZdyunrp3n262eZtH+SzmCtlBP7458/OHfjHIHTA9l7fq/VcdKsyKhIPD0e3WMWo1j2YoT2CKVkzpI0md+EBccWpEI612BvYdaN6EuXu4ADtm2/vaGMMTuAa/buRyl7tCzVkqMDjhJYOJABawbQYmELrt66anUspdRDRJpInsjxBFl9slJrdi3thbFIYnrMYuTNlJdt3bbhX8ifjks76vqaNvbelVnsIVtxR4VTymr5M+dnfef1fFrvU9aeWkuFryvojQFKOaEoE0X+zPkJ6xnGkzmepPH8xsw/Ot/qWGlOQmPM4srqk5X1ndbTuGRjBq4dyMjtI9P81QmxtwFEpCzRs/37xHzOGDPbzlyISFFgtTGm7COe7wv0BcibN2+lBQtSvhs0PDycTJkypfhx3Jkrt+HJmycZeWIkF29fpGuRrnQu0jlJv4AcwZXbz1loG9rPGdtwyKEheIonn5b/lPCIcN489iZH/j7C8yWep1XBVlbH+w9nbENHGHdqHNv+3MaKaiuS9HWRJpIxJ8ew8fJGWhVoxcASAxPseXPlNgwODj5gjPF96JPGmGRvwDtETyh7GZgBXAKW2LPPWPsuChxLzGsrVapkUkNISEiqHMeduXob3rhzw3Re1tkwAlNzRk1z7u9zqXp8V28/Z6BtaD9nbMOAaQGm9qzaDx7fvn/bNF/Q3DAC8+aWN01UVJSF6f7LGdvQEfqv6m/yfJwnWV8bGRVphq4fahiB6byss7kXcS/e17tyGwL7zSNqGnvHmLUGagOXjDE9gPJAejv3qZTTypw+M3NazGFW81nsv7Cf8pPK8+3Jb62OpVSaF2n+Pejcx8uHxW0W0/vZ3ozaOYp+q/sRERVhYcK0IamXMmPzEA8+qfcJo2qNYu6RubRc1DJNToFib2F22xgTBUSISBbgD8DuMWYiMh/YDTwlIudFpJe9+1TKkbqW78rBfgcpkrUIzRY0Y/C6wdyJuGN1LKXSrCgT9Z+CwMvDi8lNJvNm9TeZcnAKbRa30fdpCkvK4P+HERHeqP4GkxpNYs1Pa6g/t36aW43F3sJsv4hkA6YQfUfmQWCfvaGMMR2MMfmMMd7GmILGmGn27lMpRyuZsyS7e+1miN8Qxu8bj/80f53zTCmLxCwFFJeI8H6t9/m8wees+HEFDeY20IW0U1Dcnsvk6ufbjwWtF7Dn/B6CZgalqfU17b0rc6Ax5roxZhJQF+hmu6SpVJqQ3is94xqMY1WHVZz7+xyVJldi1qFZaf6uIqVSW0IFwWC/wcxrOY+wc2HUnFmTS+GXUjFd2mFvj1lsbcu0/df6mmeun3HIfp1dslpPRJ62/VsxZgNyAF62j5VKUxqXbMzh/ofxze9L95Xd6baiG//c+8fqWEqlGYkpCDqW68jqDqs5de0UAdMD+OXaL6mULu2IjEr+GLOHqf9EfbZ03ZKm1tdMblk7zPbvJw/Zxjogl1Iup0CWAmzpuoURNUcw98hcKk+pzPE/jlsdS6k0IbEFQf0n6rO161b+vvM3AdMD+P7i96mQLu2INA+/pGyPqgWrsqPHDowx1JhRgz3n9zh0/84mWa1njOlj+zf4IVstx0ZUynV4enjyTtA7bOqyiau3r1JlahVmHZpldSyl3F5SLqH5FfQjtGco6TzTUXNmTbad2Zay4dKQKBPlkDFmccVeX7P27Nps/GWjw4/hLJJ7KbNlfJujQyrlamoXr82hfoeoUqAK3Vd2p9fKXty6f8vqWEq5raQOOn8619Ps6rWLglkKUn9ufZadWJaC6dKOR92E4Qgx62s+meNJGn/TmJA/QlLkOFZLbus1sW29gGlAJ9s2FejsmGhKubZ8mfOxqcsm3qr+FjMOzcBvqh8/XvnR6lgqBe38bSdXbl2xOkaalJxB5wWzFGRnj51UzFeRNovbMPnA5BRKl3Y8bNoSR8qbKS/bum/Dr6AfI0+MZNL+SSl2LKsk91JmD9vdlwYobYxpZYxpBZRxaDqlXJyXhxcja41kfef1XAq/hO9kX745+o3VsVQKiIiKoNbsWlSZUoWfrv5kdZw0J7mDznNmyMnmLpupX6I+/Vb34/0d7+td1XZw1HQZ8cnmk40NnTfgl8OPAWsGMGrHKLf6mdnb31jUGHMx1uPLQEk796mU26lXoh6H+h3i2XzP0mlZJ/qt6pcmZ7R2ZxFREURERXD6+mmqTavGrnO7rI6UptgztiljuoysbL+Szs90ZnjIcIasH0KUiXJwwrTBkdNlxCeDdwZGlhlJ52c681bIWwzbOMxtfmb2tt42EdkgIt1FpBuwhui1M5VScRTIUoCQbiG8FvAakw9Oxn+aP6eunrI6lnKQmP8U+lTsQ/bHslN7dm2Wn1hucaq0I9JE4mHHf2nent7Maj6LoVWHMn7feLos78K9yHsOTJg2OHq6jPh4eXgxq/ksBlcZzGd7PqPnyp5useyWvRPMPg98TfQamRWAycaYFxwRTCl35OXhxYd1PmRNxzWcuxE9Ie2i44usjqUcIDIqEoheEWJXz11UeLwCrRa14st9X1qcLG2IjLL/ElrMWo0f1v6Qb45+Q7MFzXQ+wiRKrR6zGB7iwbgG43gv6D1mHZ5Fq0WtXP5qhN2tZ4xZZowZatv0z0OlEuG5J5/j+37fUzZPWdotacfgdYP1r3MXF9Nj5ime5M6Ymy1dt9D0qaa8sO4FXt30qttcZnFWjioIRITXAl9jSpMpbPxlI3Xn1OXa7WsOSJg2pMYYs7hEhOE1hzPhuQmsOrmKhvMauvSyW3adxSJSVUS+E5FwEbknIpEicsNR4ZRyZ4WzFmZ79+0PLp0EzQzi/I3zVsdSyRRponvMYoqDDN4ZWNp2KQN9B/Lxro/ptKwTdyPuWhnRrUUax15C612xN4vbLObAxQPUmFGD32/87rB9u7OUnC4jIQMrD3yw7FbwrGD++OcPS3LYy97W+xLoAJwCHgN6A+PtDaVUWuHt6c2n9T9lUetFHP3jKBW/rsjW01utjqWS4UGPWazeAk8PT7587ktG1xnNgmMLqD+3PtfvXLcqoltLiUtoLUu1ZH2n9Zz9+yzVplfTu20TIaWny0hIh3IdWNVhFT9e+ZHA6YH8dv03y7IklyMuZf4MeBpjIo0xM4Bg+2Mplba0KdOGfb33kStDLurOqcvo0NFudft3WhAzxixucSAivBrwKvNazmPXuV0ETg/k7N9nrYjo1hwxxuxhgosFs637Nm7fv03A9AAOXDjg8GO4k5RYkimpGjzRgM1dN/PnrT8JmB7AD3/+YGmepLK39W6JSDrgkIiMEZGhQEYH5FIqzSmVuxT7+uyjTek2vLblNVosbOHS4yTSmphLmY/qLehYriMbOm/g3I1z+E/z5/Clw6kZz+2lZE9NxXwVCe0ZSkbvjATNCtJe7Xik1JJMSVWtUDW2d99OpImk+ozq7Pt9n9WREs3ewqyLbR/PA/8AhYBW9oZSKq3KlC4T81vNZ1z9caw5tQbfKb4cuXzE6lgqEWIuZcbXWxBcLJjQHqF4iAfVZ1Rn86+bUyue20vpnpqSOUsS1jOMIlmL0HBeQ5b+sDTFjuXKUnO6jIQ8k/cZwnqGkc0nG7Vm1XKZ91uyz2IR8QRGGWPuGGNuGGPeNca8ZLu0qZRKJhFhSNUhbOu2jVv3b1F1alXmHJ5jdSyVgJhLmQn1FpTLW47dvXZTNFtRGs5rqD9bB0mpS5mxFchSgB09duCb35e2S9oy5cCUFD2eK0rt6TISUjx7cUJ7hFI8e3EafdPIJQrqZLeeMSYSyG27lKmUcrCAwgEc7HsQv4J+dF3RlQGrB3AvSqfUcFaJ6TGLEbNGY40iNei6oisf7PxAxxTaKbUKghyP5WBTl03UL1Gfvqv76s8uDiumy0hIvsz52N59O5XzV3aJgtres/gMECYiw0XkpZjNAbmUUkQv2LupyyZerfYqkw5MYsihITpw3EklNMYsrqw+WVnXaR2dynXiza1v0n91f7eYtdwqjp4uIz4ZvDOwsv3KBz+7lza8pPPU2Thbj1mM7I9lZ2OXjQ8K6tGho62O9Ej2tt4FYLVtP5ljbUopB/Hy8GJ03dEsa7uMs7fOUvHrimz8ZaPVsVQcD5suIyHpPNMxp8UcXg98nckHJ9NyYUtu3b+VUhHdWmoXBN6e3sxuMZshfkMYt3cc3VZ0437k/VQ7vrNypjFmccUU1B3LdeS1La/x6qZXnbK308ueLzbGvOuoIEqp+LUo1YJJFScx5rcxNJjbgFG1RvFa4GuIiNXRFI+eLiMhIsIHtT+gUJZCDFo7iFqzarG642pyZciVEjHdUnKKYkfwEA8+q/8ZuTPk5q2Qt/jr9l8sarOIDN4ZUjWHM3GG6TLi4+3pzZwWc8juk52Pd33M1VtX+brJ13h52FUOOVSyWk9EJotIuUc8l1FEeopIJ/uiKaXiKpShEHt67aFd2Xa8sfUN2ixuw827N62Opfj3kkzJMaDyAJa2Xcrhy4epNq0ap/867ch4bi0p4/scTUR4s8abTGo0ibWn1lJ3Tl3+uv1XqudwFs4yXUZ8PMSD8Q3H807Nd5h+aDptF7flTsQdq2M9kNyzeCIwXEROiMhiEZkoItNFZCewi+jLmUscllIp9UDGdBn5puU3fFLvE5b/uJyq06py6uopq2OleXGXZEqOFqVasLnLZq7cuoL/NH8OXjzoqHhu7cEdsRZeQuvn24+FrRfy3e/fUWNmDS7cvGBZFitZuSRTUogII4JG8HmDz1n+43IafdPIaf5VqHdMAAAgAElEQVTITVbrGWMOGWPaApWBCcBO4FugtzGmvDHmc2OMXYvCiUgDETkpIj+LyGv27EspdyMivOT/Epu6bOKPf/6g8pTKrP5ptdWx0rTETpeRkIDCAYT1DCO9V3pqzqyp4wkTwapLmXG1KdOGtZ3Wcvqv0wRMD0iTfzBZvSRTUg32G8zcFnPZfmY7tWbX4s9//rQ6kn2D/40x4caYbcaY+caYFcaYk44IZZsjbQLQECgNdBCR0o7Yt1LupFaxWuzvs58SOUrQZH4T3tv+nt4dZhFHXk4rlbsUu3vtfjD3ks51Fj9H9FY6Sp3idQjpFkL4vXACZwTy/cXvrY6Uqpx9jNnDdHqmEyvbr+TYH8eoPqM65/4+Z2keZ229KsDPxphfjTH3gAVAM4szKeWUimQrQmiPULqW78o7297RpZwsktTpMhKSP3N+dnTfQfXC1em6oquunxoPZ7iUGVvlApXZ2WMn6T2jez23ndlmdaRU4wpjzB6mUclGbOy8kYvhF2m/tL2l7zVxxje6iLQGGhhjetsedwH8jDHPx3pNX6AvQN68eSstWLAgxXOFh4eTKVOmFD+OO9M2tE987WeMYfmF5Uz4eQIFHivA+2Xfp3CGwqmc0Pml1Dn4w40fGPT9ID4q+xF+Of0ctt97UfcYfXI0W//YSov8LRj0xCDLCxBnex/fvH+TpruaMqjEIFoXbG11nAf+vPsnrxx5hQu3L/B26bcJzBX44Dlna0NHabO7DVVyVOGVp15J8WOlRBv+HP4zXuJF0YxFHbrfuIKDgw8YY3wf+qQxxu4NyOiI/cTaXxtgaqzHXYDxj3p9pUqVTGoICQlJleO4M21D+ySm/bad3mbyfJzHZP4gs1l+YnnKh3IxKXUOhv4WahiB2fDzBofvOzIq0gzbMMwwAtNqYStz+/5thx8jKZztffznP38aRmDG7x1vdZT/uPLPFeM3xc94vOthph6Y+uDzztaGjvL42MdNn2/7pMqxXLkNgf3mETWNXZcyRaSaiPwAnLA9Li8iE+3Zp815ohdEj1GQ6MlslVIJqFm0Jgf6HuDpXE/TYmELhm8druPOUoG902XEx0M8GFtvLJ/W+5SlJ5ZSb069ND0lQ1xWTpeRkJwZcrK562bqFK9D71W93f6StKsN/ndG9p7FnwH1gasAxpjDQA17QwHfAU+KSDHbWpztib7rUymVCAWzFGRHjx30rNCT93e+T5P5Tbh+57rVsdxaagxAH+o/lAWtFrD3970EzgjU5blsnG2MWVyZ0mViVYdVtC/bnte2vMYrm15x2z+WXGW6DGdmd+sZY+LevhDpgH1GAM8DG4jujVtkjDlu736VSkt8vHyY2nQqXzX6ik2/bKLylMoc++OY1bHcVmpN2dCubDvWd1rP+RvnqTatGkcvH03R47kCZ+4xi5HOMx3zWs5jUOVBfLL7E8acHOOWa6O66uB/Z2LvWXxORKoBRkTSicjL2C5r2ssYs9YYU9IYU8IYM8oR+1QqrRER+vv2f3D7ftWpVVl+YrnVsdxScpdkSo7gYsGE9gjFYAicEZim7vp7mAd3xDp5QRAz4/yImiPYcHkDLRe25Pb921bHcihXnC7D2djbev2BQUABoseFVbA9Vko5kYDCARzoe4ByecvRclFL3t32rtteSrGKo6fLSEi5vOXY3Ws3BbMUpP7c+iw8tjBVjuuMUnJ8n6OJCO8EvcOQJ4aw+qfV1J9b362GGegYM/vZO8HsFWNMJ2NMXmNMHmNMZ2PMVUeFU0o5Tv7M+QnpFkL3Ct0ZsX0EbRa3IfxeuNWx3IYVl9MKZy3Mzh47qVKgCu2XtmfcnnGpdmxnkpq9lY7SvEBz5reaz57zewiaGcSl8EtWR3IIHWNmv2Qtpy4i44FH3lZijBmc7ERKqRTj4+XD9KbTKZ+3PMM2DsN/mj8r26+kePbiVkdzeY5akimpcjyWg01dNtFpWSeGbhjK+RvnGVN3TJr6z9FVLmXG1a5sO7I/lp2WC1sSMD2AjZ03UiJHCatj2UXHmNkvue/c/cCBeDallJMSEV6s+iIbOm/g9xu/U3lKZbae3mp1LJdn5QB0Hy8fFrVe9GBgeadlnbgbYddyxS7FFQb/P0q9EvXY0nUL1+9cJ2B6AIcvHbY6kl0iTaReyrRTchcxnxXf5uiQSinHq1O8Dvv67OPxTI9Tb049vtz3pVvPr5TSUnuMWVyeHp6Mbziej2p/xIJjC2g4r2GaWZrL2afLSIhfQT9Ce4Ti7elNzZk12fnbTqsjJZteyrSfvRPMrhKRb+Nsc0RkiIj4OCqkUiplPJHjCXb32k2jko14Yd0L9FnVJ031tDhSak2XER8R4X+B/2N289nsPLuTGjNrcOGm+8/N7co9ZjFK5S5FWM+w6D+U5tZj1clVVkdKMmMMBqOXMu1k71n8KxAOTLFtN4DLQEnbY6WUk8uSPgvL2y3nrepvMe37adSaXYvL4ZetjuVynGkAepfyXVjTcQ2//vUr/tP8OfGnQ2YxclquOsYsrsJZCxPaM5RyecrRYmELZh6aaXWkJHGHAtkZ2Nt6zxpjOhpjVtm2zkAVY8wgoKID8imlUoGHeDCy1kgWtV7EoUuH8J3iy/4L+62O5VKcbcqGeiXqsb37du5G3CVgegChZ0OtjpRi3KkgyJUhF1u6biG4WDA9VvZg7K6xVkdKNGd7D7gqe8/i3CJSOOaB7eNctof37Ny3UiqVtSnThrCeYXiKJ9VnVOebo99YHcllpMaSTElVMV9FdvXaRa4Muag7p67bTi7s6mPM4sqcPjOrO6ymTek2vLLpFf636X8uMf7TGd8Drsje1hsGhIpIiIhsA3YCr4hIRkBvAlDKBVV4vALf9fkOvwJ+dFrWif9t+t+D//jUo1k1XUZCimcvzq5euyiftzytFrVi4ncTrY7kcM4wvs/R0nulZ36r+fSv1J8xu8bQ+9veTr+Ekzv+HKyQrHnMYhhj1orIk8DTgAA/GmPu2J5OmzMdKuUGcmfMzaYumxiyfghjdo3h6B9H+abVN2TzyWZ1NKflzJfTcmXIxdZuW2m3pB2D1g7i/I3zjKo1ChGxOppDuGtPjaeHJxMbTSRPxjy8t+M9rt25xvxW8/Hxcs5765xpnKUrc0TrVQLKAM8AbUWkqwP2qZSymLenNxMbTWRSo0ls+nUTVadW5aerP1kdy2lZPV1GQjJ4Z2B5u+X0qdiHD0M/pOe3Pbkfed/qWA7hbpcyYxMR3g1+ly8afMGKH1fQYG4Dp50GRceYOYa902XMAcYCgUBl2+brgFxKKSfRz7cfW7pu4ertq/hN9WPLr1usjuSUnLnHLIaXhxdfN/6ad2q+w8xDM2m+sDn/3PvH6lh2c4W2t9cLfi8wr+U8ws6FETQryCnvnHbXnsvUZm/r+QIBxpiBxpgXbJsux6SUm6lRpAb7eu97sGC2O45TspezjjGLS0QYETSCrxp9xfqf11N7dm2u3LpidSy7uMt0GQnpWK4j37b/lpNXThI4I5DTf522OtK/uMp7wNnZW5gdAx53RBCllHMrlr0YYT3DaPhkQwatHcSgNYPc5lKYI7jaZZz+vv1Z0mYJhy4dInB6IL9d/83qSMmWFnrMYjR8smF0D/atqwRMD+Do5aNWR3rA1d4DzsreszgX8IOIbIg9+78jgimlnE+W9FlY0W4Fr1R7hYn7J9JwXkP+uv2X1bGcgitexmlRqgWbumzi8j+X8Z/mz5HLR6yOlCzuPMbsYfwL+bOzx05EhBozazjNHHWu+B5wRva23gigOfAB8EmsTSnlpjw9PBlTdwwzms1gx2878Jvqx8krJ62OZTlXnSqgepHq7OyxEw/xoMaMGmw/s93qSEnmqm1vjzJ5yhDWM4zcGXJTd05d1vy0xupIafLnkBLsKsyMMdtjb0AE0NYx0ZRSzqx7he6EdAvh+p3rVJ1WlU2/bLI6kqVceaqAsnnKsqvXLvJlzkf9ufVZdmKZ1ZGSJK321BTNVpTQnqGUzl2aZguaMefwHEvzuPJ7wJnY3XoiUkFExojIGeB9wL0XZVNKPRBQOIB9ffZRKEshGs5ryIR9E6yOZBlnny4jIYWzFia0RyjP5nuW1ota89V3X1kdKdHS2qXM2PJkzENItxBqFq1J1xVd+XzP55Zl0TFmjpGswkxESorI2yJyAvgSOAeIMSbYGPOlQxMqpZxa0WxFCesZxnNPPsfz655n4JqBafKmAHcYgJ4zQ062dN1Co5KNGLh2IG+HvO0SSwG5Q9vbI0v6LKzpuIaWpVry4oYXeWvrW5b83NJqz6WjJbf1fgRqA02MMYHGmPGArtmiVBqVOX1mlrdbzv8C/sdX+7+iwbwGXLt9zepYqcpdpgqImYi2Z4WejNwxkn6r+zn9UkBpZbqM+Ph4+bCo9SJ6P9ubUTtHMWDNgFRfSs1d3gNWS+6STK2A9kCIiKwHFhC9JJNSKo3y9PDkozofUTp3afqs6oPfVD9WdVjF07metjpaqnCnXhsvDy+mNp1Kvsz5GLVzFJf/ucyCVgt4zPsxq6M9lDu1vT08PTyZ3GQyuTLk4qOwj7h6+ypzW8wlvVf6VDm+/hwcI1mtZ4xZboxpR/QamduAoUBeEflKROo5MJ9SysV0Ld+VkG4h3Lh7g6pTq7Lxl41WR0oVrj7GLC4R4f1a7zO+4XhWnVxFnTl1nLYXNC2PMYtLRPiwzoeMrTuWJT8sofH8xoTfC0+VY7vbe8Aq9t6V+Y8xZp4xpjFQEDgEvGbPPkWkjYgcF5EoEdHlnZRyQdUKVWNf730UyVaEhvMa8sXeL1xirJI9okwUgrjNwuAxnq/yPAtbL2T/hf1Un1Gdc3+fszrSf2hPzX8NqzaMmc1mEnI6JNVWd9DpMhzDYWexMeaaMeZrY0wtO3d1DGgJ7HBALKWURYpkK0JYzzCalGzCkPVD6L+6v1vfFBAZFem2hUGbMm1Y32k952+cp9r0apz554zVkf5Fx5g9XLcK3VjWbhmHLx1OlaJap8twDKdrPWPMCWOMzlaplBvIlC4Ty9ot47WA15h8cDL15tZz2sth9ooyUW5dGAQXC2ZH9x1EREUw+NBgws6GWR3pAZ2m4dGaPtWUjV02cuHmBQKmB/DjlR9T7Fj6c3AMcdbLCyKyDXjZGLP/Ec/3BfoC5M2bt9KCBQtSPFN4eDiZMmVK8eO4M21D+7hy+228vJGxJ8fyuM/jfFD2AwpmKGhJjpRqw0m/TGL5heVsqL7B4ft2JhdvX+Tlwy9z5f4V3i71NgG5AqyOxJqLaxj701gW+i0kj08eq+MkSmq/l38O/5lXj7xKpIlkdLnRPJ3F8TflnLhxgoHfD+SDsh/gn9Pf4fuPy5V/HwYHBx8wxjx8uJYxJtU3YDPRlyzjbs1ivWYb4JuY/VWqVMmkhpCQkFQ5jjvTNrSPq7ffzt92mpyjc5oco3OYbae3WZIhpdrwpfUvmYyjMqbIvp3N8g3LTeXJlY3Hux5myoEpVscxX+//2jAC8/uN362OkmhWvJdPXT1lio4rajJ9kMls/mWzw/e/+9xuwwjMulPrHL7vh3Hl34fAfvOImsaSS5nGmDrGmLIP2VZakUcplToCCweyt/de8mTMQ905dZl5aKbVkRwmykSlmbE12dJlY2u3rdQrUY8+q/owcvtIS2/u0MH/ifNEjicI6xlG0WxFee6b51jywxKH7l/HmDmGtp5SKlWVyFGC3b12U6NIDXqs7MEbW9548B+rK4s0kW49xiyuTOky8W37b+lavitvb3ubQWsHpfqEpjF0uozEy585Pzu678A3vy9tF7dl8oHJDtu3TpfhGE5XmIlICxE5D/gDa0TEvQdsKJUGZfPJxrpO6+hbsS8fhn5IuyXtuHX/ltWx7JKWesxieHt6M7PZTF6t9ipf7f+KdkvacSfiTqrn0B6zpMn+WHY2ddlEgyca0G91Pz7c+aFDejz15+AYTtd6Jnry2oLGmPTGmLzGmPpWZ1JKOZ63pzeTGk/ik3qfsPSHpQTNDOLizYtWx0q2yKjINNlTICKMrjuaz+p/xtITS2kwtwHX71xP1Qw6XUbSZfDOwMr2K+lUrhNvbH2DYRuH2d1zrUsyOYbTFWZKqbRDRHjJ/yVWtF/B8T+P4zfVjyOXj1gdK1ncfbqMhLxY9UXmt5rPrnO7qDGjBhduXki1Y2tPTfJ4e3ozu8VsXqjyAp/t+YweK3vYNdeg/hwcQ1tPKWW5pk81JbRHKFEmioDpAaz5aY3VkZIs0rjvBLOJ1b5se9Z2Wsvp66fxn+afonNmxaZjzJLPQzz4vMHnvBf0HrMPz6blopbcvn87WfvSMWaOkbZ/iyilnMaz+Z5lb++9PJnjSZouaOpyyzhFmSj9DwmoU7wO27tv507EHQKnB7Ln/J4UP6YuBWQfEWF4zeFMfG4ia35aQ/259ZN1OVp/Do6hhZlSymkUyFKAnT120vSppgxZP4Tn1z5PRFSE1bESRXvM/l/FfBXZ1XMX2XyyUWtWrRTvAY3pqdH2t8+AygNY0HoBe87vIWhmEJfCLyXp63W6DMfQ1lNKOZWM6TKytO1SXqn2ChP3T6TxN435+87fVsdKUGRU2pouIyElcpQgrGcYpXKXotmCZik6Z51eynSctmXasrrjak5dO0Xg9EB+/evXRH+tLsnkGFqYKaWcjod4MKbuGKY0mcKW01sImB7AmetnrI4Vr7Q4XUZC8mbKy7Zu2wguFkyPlT34KPSjFLk8rYPOHateiXps7bqVv+78RcD0gETfkKM9l46hraeUclq9K/Zmfaf1/H7zd/ym+rH73G6rIz1SpEmb02UkJHP6zKzpuIYOZTvw+pbXeXH9iw6fUDjSRCIIIuLQ/aZlfgX92NljJ57iSY0ZNQg9G5rg1+h0GY6hhZlSyqnVLl6b3b12kzldZoJnBbPg2AKrIz2U9pg9WjrPdMxtOZehVYfyxb4v6Li0I3cj7jps/9r2KaN07tKE9Qwjb6a81JtTL8Gxgtpz6Rjaekopp/d0rqfZ03sPlQtUpsPSDry3/T2nu2NTx5jFz0M8+LT+p4ypM4aFxxfSeH5jbt696ZB9a9unnCLZihDaI5TSuUvTbEEz5h6Z+8jX6nQZjqGFmVLKJeTKkIvNXTbT5ZkuvLPtHbqu6OrQXhd76XQZifNKwCvMbDaTkNMhBM8K5o9//rB7n9pjlrJyZ8zN1m5bqVm0Jl2Wd+HzPZ8/9HXaY+YY2npKKZeR3is9s5rPYmTwSOYemUu9ufW4dvua1bEAnS4jKbpV6MbK9iv54c8fCJgekKQ7/x5Gx/elvCzps7Cm4xpalmrJixteZPjW4f/ptdYxZo6hv0WUUi5FRHirxlt80/Ib9pzfg/80f3659ovVsdL8kkxJ1ahkI7Z03cK129cImB7AoUuHkr0vbfvU4ePlw6LWi+j9bG/e3/k+A9YMeFCMgU6X4ShamCmlXFKHch3Y3GUzV25doeq0qpbfsRkZpT1mSeVfyJ/QHqF4e3hTc2ZNtp3Zlqz9aNunHk8PTyY3mcxrAa/x9YGv6bC0w4MhBTpdhmNo6ymlXFb1ItXZ3Ws32XyyETwrmMXHF1uWRS+nJU+p3KUI6xlGwSwFqT+3Pkt+WJLkfWjbpy4R4cM6HzK27lgW/7CYxvMbE34vXC9lOogWZkopl1YyZ0l299pNpfyVaLukLWPCxlhyx6YOQE++QlkLsbPHTnzz+9J2cVsm7Z+UpK/XtrfGsGrDHtzIUXt27Qc3cujPwj7aekopl5crQy62dN1CuzLt+N/m/9F/dX/uR95P1Qw6ZYN9cjyWg01dNtGoZCMGrBnAiG0jEl1ga9tbp1uFbixrt4zDlw4zYvsIQMeY2UsLM6WUW/Dx8uGbVt/weuDrTD44mSbzm3Dj7o1UO7722tgvg3cGlrdbTo8KPXh3+7v/GVz+KNr21mr6VFM2dN5ApnSZAL2UaS8vqwMopZSjeIgHH9T+gOLZi9N/dX8CpweypuMaCmUtlOLHjjSRpJN0KX4cd+fl4cW0ptPImzEvH4V9xJ+3/mRey3n4ePk88mt0jJn1ahatyc4eO1nz0xqy+2S3Oo5L0z8xlFJup3fF3qzrtI7f/v4Nv6l+HLx4MMWPqVM2OE7M4PLP6n/GshPLaDC3AdfvXH/k67XtncMzeZ/h9eqv65qldtLCTCnlluqWqEtYzzC8PLyoMaMGq39anaLH0ykbHO/Fqi8yr+U8dp3bRc2ZNbl48+JDX6eT+yp3omeyUsptlc1Tlr299/J0rqdptqAZX+77MsWOpUsypYyO5TqyuuNqfrn2C9WmV+PU1VP/eY22vXInWpgppdxavsz52N59O42ebMQL615gws8TEjWgPKm01ybl1CtRj5BuIYTfCydgegD7L+z/1/PaW6nciZ7JSim3lzFdRpa3W87gKoNZ8vsSWi9uzT/3/nHoMXTKhpRVuUBlwnqGkcE7A0Ezg9j0y6YHz0UabXvlPpyuMBORj0XkRxE5IiLLRSSb1ZmUUq7P08OTzxt+zvMlnmfljysJmhXEpfBLDtu/TtmQ8krmLMmuXrsokaMEjb5pxPyj8wFte+VenPFM3gSUNcY8A/wEvG5xHqWUG2lVsBUr2q/ghz9/oOrUqhz/47hD9qtTNqSO/Jnzs737dvwL+dNxWUc+3/N5dG+ltr1yE05XmBljNhpjImwP9wAFrcyjlHI/TZ9qyo7uO7gbeZeA6QFs+XWL3fvUXpvUk80nGxs6b6DF0y14ccOLbP51s7a9chtixZpyiSUiq4CFxpi5D3muL9AXIG/evJUWLFiQ4nnCw8PJlClTih/HnWkb2kfbz36x2/DSnUu8fvR1zt0+x7CSw2j4eMNk77fT3k6UylKKt0q95aioTstZzsNIE8m4U+NYfXE1T2V+ikkVk7bGppWcpQ1dmSu3YXBw8AFjjO/DnrNk5n8R2Qw8/pCn3jTGrLS95k0gApj3sH0YYyYDkwF8fX1NUFBQyoSNZdu2baTGcdyZtqF9tP3sF7cNGwY1pM3iNow5OYZ0edLxXvB7yZogM/3h9OR/PH+a+Pk403lYK6gWn+7+FB8vH4KqBFkdJ9GcqQ1dlbu2oSWFmTGmTnzPi0g3oDFQ2zhzl55SyuVl9cnKmo5rGLBmAO/vfJ/f/v6NqU2nks4zacsr6XQZ1hARhlUbZnUMpRzG6dbKFJEGwP+AmsaYW1bnUUq5P29Pb6Y0mULRbEUZHjKc8zfOs6zdMrL5JP6mcJ3kVCnlCM74592XQGZgk4gcEhHXGTSglHJZIsJbNd5idvPZhJ4NJXB6IGf/Ppvor9dJTpVSjuB0v0WMMU8YYwoZYyrYtv5WZ1JKpR1dyndhfef1nLtxjqpTq/L9xe8T9XU6yalSyhGcrjBTSimr1SpW6/8XQJ9Zg3Wn1iX4NTpdhlLKEfS3iFJKPUTZPGXZ03sPT+R4gibzmzDlwJR4X6+TnCqlHEELM6WUeoT8mfOzo/sO6paoS9/VfXlr61s86kbxKBOllzKVUnbTwkwppeKROX1mvm3/Lb2f7c2onaPouqIr9yLv/ed1Ol2GUsoRnG66DKWUcjbent5MbjKZotmK8lbIW/x+4/f/TKeh02UopRxB/7xTSqlEEBHerPEmc1rMIfRsKAHTA/jt+m8PntfpMpRSjqC/RZRSKgk6P9OZDZ038PuN36k6rSoHLx4EdIyZUsoxtDBTSqkkCi4WTFjPMLw9vKkxI3o6DR1jppRyBP0topRSyVAmTxn29N5DyZwlaTK/iY4xU0o5hBZmSimVTPkz52d79+3ULVEXQC9lKqXspndlKqWUHTKnz8yqDquYsG8CjUs2tjqOUsrFaWGmlFJ28vLwYkjVIVbHUEq5Ab2UqZRSSinlJLQwU0oppZRyElqYKaWUUko5CS3MlFJKKaWchBZmSimllFJOQgszpZRSSiknoYWZUkoppZSTEGOM1RnsJiJ/Ar+lwqFyAVdS4TjuTNvQPtp+9tM2tJ+2of20De3nym1YxBiT+2FPuEVhllpEZL8xxtfqHK5M29A+2n720za0n7ah/bQN7eeubaiXMpVSSimlnIQWZkoppZRSTkILs6SZbHUAN6BtaB9tP/tpG9pP29B+2ob2c8s21DFmSimllFJOQnvMlFJKKaWchBZmSimllFJOQguzOESkgYicFJGfReS1hzwvIvKF7fkjIlLRipzOLBFtGCQif4vIIdv2thU5nZmITBeRP0Tk2COe1/MwHoloPz0HEyAihUQkREROiMhxERnykNfoeRiPRLahnovxEBEfEdknIodtbfjuQ17jXuehMUY32wZ4Ar8AxYF0wGGgdJzXPAesAwSoCuy1OrczbYlswyBgtdVZnXkDagAVgWOPeF7PQ/vaT8/BhNswH1DR9nFm4Cf9fZgibajnYvxtKEAm28fewF6gapzXuNV5qD1m/1YF+NkY86sx5h6wAGgW5zXNgNkm2h4gm4jkS+2gTiwxbagSYIzZAVyL5yV6HsYjEe2nEmCMuWiMOWj7+CZwAigQ52V6HsYjkW2o4mE7t8JtD71tW9y7Ft3qPNTC7N8KAOdiPT7Pf99EiXlNWpbY9vG3dU2vE5EyqRPNreh5aD89BxNJRIoCzxLdWxGbnoeJFE8bgp6L8RIRTxE5BPwBbDLGuPV56GV1ACcjD/lc3Mo8Ma9JyxLTPgeJXicsXESeA1YAT6Z4Mvei56F99BxMJBHJBCwFXjTG3Ij79EO+RM/DOBJoQz0XE2CMiQQqiEg2YLmIlDXGxB4/6lbnofaY/dt5oFCsxwWBC8l4TVqWYPsYY27EdE0bY9YC3iKSK/UiugU9D+2g52DiiIg30QXFPGPMsoe8RM/DBCTUhnouJp4x5jqwDWgQ5ym3Og+1MPu374AnRaSYiKQD2gPfxnnNt0BX210gVYG/jTEXUzuoE0uwDUXkcRER28dViD4Pr6Z6Utem56Ed9BxMmK19poQ8UZsAAAV3SURBVAEnjDGfPuJleh7GIzFtqOdi/EQkt62nDBF5DKgD/BjnZW51HuqlzFiMMREi8jywgei7C6cbY46LSH/b85OAtUTfAfIzcAvoYVVeZ5TINmwNDBCRCOA20N7Ybq1R0URkPtF3a+USkfPAO0QPetXzMBES0X56DiYsAOgCHLWN7wF4AygMeh4mUmLaUM/F+OUDZomIJ9FF6yJjzGp3/n9Zl2RSSimllHISeilTKaWUUspJaGGmlFJKKeUktDBTSimllHISWpgppZRSSjkJLcyUUkoppZyEFmZKKbuIiBGRT2I9fllERqRyhpki0tr28VQRKW3n/oqKyLFHfP62iByKtaWz51hKKRWbzmOmlLLXXaCliHxojLmS1C8WES9jTISjwhhjejtqX4/wizGmwqOedPT3o5RKW7THTCllrwhgMjA07hMiUkREtojIEdu/hW2fnykin4pICDBaREaIyCwR2SgiZ0SkpYiMEZGjIrLetqwNIvK2iHwnIsdEZHLMjOlxjrlNRHxFpGmsXq2TInLa9nwlEdkuIgdEZIOI5Iv1+cMishsYlJQGsOWfLCIbgdkSvejyx7asR0Skn+11IiJfisgPIrJGRNbG6uk7I7aleGz5t9k+zigi0237+l5Emtk+311Eltna55SIjImVp4GIHLR9P1tExMP2mty25z1E5GfRpX+UcjpamCmlHGEC0ElEssb5/JfAbGPMM8A84ItYz5UE6hhjhtkelwAaAc2AuUCIMaYc0bOhN4rZnzGmsjGmLPAY0PhRgYwx3xpjKth6tw4DY20F3nigtTGmEjAdGGX7khnAYGOMfwLfa4lYBd+EWJ+vBDQzxnQEehG9LExloDLQR0SKAS2Ap4ByQB+gWgLHAngT2GrbVzDwsYhktD1XAWhn2187ESlkK76mAK2MMeWBNsaYKKLbtJPt6+oAh5PTw6mUSll6KVMpZTdjzA0RmQ0MJrqQiuEPtLR9PAcYE+u5xcaYyFiP1xlj7ovIUaKX81pv+/xRoKjt42AReRXIAOQAjgOr4stme/1tY8wEESkLlAU22TrbPIGLtoIymzFme6ysDR+xy0ddyvzWGBPzvdcDnonpDQOyAk8CNYD5tu/7gohsjS97rH01FZGXbY99sC3pA2wxxvxt+z5/AIoA2YEdxpjTAMaYa7bXTgdWAuOAnkQXokopJ6OFmVLKUcYBB4n/P/zYa8D9E+e5uwDGmCgRuR9rvcAowEtEfICJgK8x5pztBgOf+AKJSG2gDdEFEYAAx+P2ikn0Isn2rk8X+/sR4AVjzIY4x3kunuNE8P9XMWJ/X0J079fJOPvyw9ZmNpFE/06Xhx3D1maXRaQW4Mf/954ppZyIXspUSjmErWdmEdGX8WLsAtrbPu4EhNpxiJhi5YqIZCJ68edHEpEiRBdybWP1ZJ0EcouIv+013iJSxhhzHfhbRAJjZbXHBqIXpo4ZG1fSdvlxB9DeNgYtH9GXJmOcIfpyKECrOPt6IWY8nYg8m8CxdwM1bZdOEZEcsZ6bSvQlzUVxeiuVUk5CCzOllCN9AsQeUD4Y6CEiR4AuwJDk7thWPE0h+tLmCuC7BL6kO5ATWG4bD7bWGHOP6IJutIgcBg7x/+O8egATbIP/bz9sh0kwFfgBOCjR0258TXRv1nLglO17+ArYHutr3gU+F5GdRPd+xRgJeANHbPsaGd+BjTF/An2BZbbvcWGsp78FMqGXMZVyWvL/VwuUUkqlJhGZCaw2xixJpeP5Ap8ZY6qnxvGUUkmnY8yUUioNEJHXgAHo2DKlnJr2mCmllFJKOQkdY6aUUkop5SS0MFNKKaWUchJamCmllFJKOQktzJRSSimlnIQWZkoppZRSTuL/AA47HFxUgml4AAAAAElFTkSuQmCC\n", "text/plain": [ "<Figure size 720x576 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "w, h_response = freqz(hsincmp)\n", "fig=plt.figure(figsize=(10,8))\n", "fig.suptitle('Frequency Response', fontsize=16)\n", "plt.subplot(2,1,1)\n", "plt.plot(w, 20 * np.log10(abs(h_response)), 'b')\n", "plt.ylabel('Amplitude (dB)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()\n", "plt.subplot(2,1,2)\n", "angles = np.angle(h_response)\n", "plt.plot(w, np.unwrap(angles), 'g')\n", "plt.ylabel('Angle (radians)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Now compare the above frequency response of our minimum phase filter with the linear phase version, with:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmYAAAIZCAYAAAAMWPOeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd5hU5fn/8fdNR0Cl6IKIgigqdoqKFeydiNFoLJGoRGP5qjHWGDUGTTTGxKiJvfyMoiYaxYqFxV5AQamKiBFREJCyiCBw//54zoRh3DK7U86Z2c/rus41c8qcc++zg3v7VHN3RERERCR+TeIOQEREREQCJWYiIiIiCaHETERERCQhlJiJiIiIJIQSMxEREZGEUGImIiIikhBKzERKjJmdbGZew7Zf3PGVCzP7fUbZfmdmk8zsV2ZmcccnIuWpWdwBiEiDHQ3Myjg2OY5AytyA6LUDcArwJ2Al8NfYIhKRsqXETKR0jXf36dlebGYt3X15IQMqR+7+Vuq9mT0PTAVOQ4mZiBSAmjJFypCZ7Rc1v/3IzO42s3nAF2nndzKzkWa20MyWmdlrZrZ7Nfc5z8w+i5rx3jGz3cxslpndmXbN781sZTWffcDMpmcca2tm15vZTDNbYWYzzOzi9KbBtNgPNbO/m9l8M/vazO43s/Uy7tfMzC41sylmtjy67lkz62VmXc3sezM7s5rYfm9mS81s3fqUq7uvAj4ANqnmnnWWqZntamYvmtkCM/vWzD4xs7+lnT81+tn3MLMnzazKzOaZ2d/MrFXGvbpGZTwv+v1MMLOfZlyTul9/M3vIzBab2Wwz+4uZtcwox+HR7+O76J6vmtluGfc73cw+iK752szuMLP161OGIlI7JWYipatp9Ac1tTWt5ppbCM1uxxOa4TCz/sDrwHrAqcCPgUXAS2a2Y+qDZvYL4M/AC8Bg4AHgYaBeyUza/ZoDo4ChwI3AwcA9wFXAH6r5yN+AFcBxwO+BY6J40v0r+vzIKMbTgGlAZ3f/Ijr+i4w4mgE/Bx5y98UN+FG6A59k3LPOMo2Symejn+kk4BDgaqB5Nc94kFAzNwS4CTgduDntee2AMcABwCXAkYRm7H+a2c+rud8/CeUyBLgNOAe4MO38ZdGxG4EDCeVTCbRPe+afCL+T54EjgIuAw4BnzEx/S0Tyxd21adNWQhtwMuDVbK+lXbNfdOzRaj4/BpgINE871gz4CPhXtN+UUMP2VMZnj4/ue2fasd8DK6t5zgPA9LT9odFnd8u47gpgOdAxI/a7Mq77B7A0bf+A6Lpf1lJWqXsNSDs2JDrWr45y/n10XbNo2xC4HPgeOKwBZbprdL/etTzz1Oiam6spo5VAz2j/3Oi6PTKuqwS+BJpk3O/yjOueAyZn7D9SS1w9gVXApRnH947uf1hNn9WmTVv9Nv1fjkjpOhLon7adUs01j6fvmFkbYA/gEcBTtW3R6ZeAvaL3mwIbRdelexRY3cB4DyLUNL2TXtNHqEVrAeyScf3TGfsfAuuYWado/4AolrtqeeZLhJqi9FqzXwDvufvYLOP+PtrmAL8DLnT3p1In61Gm04DFwB1mdryZbVzLMzPLfQQhWe4f7e8FfObur2Vc9wDQGdgy43h1ZZneHPsucHjUxLu7mbXIuP4AQgvLPzN+d68D36b9jCKSIyVmIqVroruPTdumVXPNlxn7nQj/7q9iTcKR2k4HOkbXdYle56R/2N1XAN80MN4NCTUvmc99IzrfMeP6BRn7qYELqb5WHYGvvZYBDe7uhJq2Y8ysvZltBuwfHctWf2BnQk3beOB6M9sz7XxWZeru3wCDCGX6D+BzM/vQzH5UzTPn1LDfNXrtwA9/twBfpZ1PV11ZpvdZu5qQdP4IeA2YZ2Z3mVnqPhtGrzOr+RnX4Ye/OxFpII3KFClvnrH/TXTsr4R+RzVJ/dGvSD8Y1aS0z7j2O6CJmTVz9/RBAJl/rOcD0wl9xqrzaS3xVGce0MnqHm16LzCc0K+rC1AFPJTtQ9Jq1t41s9cJfb9uMrM+UeKXbZni7u8BQ6Lapv6Evl3/MrPt3H1K2qUVhBq29H1YM4BjAbBTNY/oHL3Oz+qHWxPXCuBa4Foz6wwcTujP14rQfJ26376EWr9M8+rzPBGpmRIzkUbE3Reb2RvA9sD5UWJRnc+A2YQO9/enHT+aH9a0fwYY0JswYpGopmVX1k4QniP8wV/k7h/n+KNAaAK9gNBR/e81XeTuC83sIULtVQfgAXevasgD3X2umf0euIFQu/R4Pco0/T4rgTfN7LfAocBWQHpidgzwStr+sYQ+Xu9E+2OAI81sV0+bzgP4KaHW7KOG/HxRbF8RmlsPB7aNDo8iJJ/d3P2+ht5bROqmxEyk8TmP0En8OTO7m/CHvBPQj9D6d6m7rzKz3wH/sDA1xqNAL8JIviUZ93s6OnanmV0FtCaM2MusWbmfMHBhdDTC70NC37LNCaP8Dquj5mst7v6Cmf0H+KuZbQqMju43EPiPu7+advktrOmDV59mzOrcCvyKMBAg1YevzjI1s8GEJPI/hCbBtoRO/IuBtzOecbiZLQVeJCS4vwHucfcZ0fm7gbOBx83sN4Qk+gRCU+kp7l6vfoBm9hQwDngPWAj0ITT53kz4AT6Kfmd/N7OtCUnjcqAbof/Z3zPKW0QaSImZSCPj7u+a2c6EkX43E6Z4mEP4w/yPtOtuizq2n0v4o/8h8BMyOqa7+wIzO4ww1cKjwH8J/a0OJSQVqetWmNn+hOkdziBMO1FFaN58htBfqb6OAS4mNFOeT5ii4m3W9LVKPft9M5sBzHX3DxrwnPR7fWdmw4FbzOxwdx+ZZZl+REhmfktoUl1M6HS/r7vPznjMT6Of68zoM/8Afp0WwxIz2xv4I3AdIcmbChzv7g824Md6BTiKkOy1JvwOrwWuSXvmhWY2CfglYWqNVcDnhAEOn2TeUEQaxrKodRcR+R8zmwU85+6nxh1LtsysN2E6i6FJboozs1OBO4Ae7j4z5nBEJAaqMRORshVNSbE5YdThF4RpJ0REEkvTZYhIOTud0NTWETiuPn3YRETioKZMERERkYRQjZmIiIhIQigxExEREUkIJWYiIiIiCaHETERERCQhlJiJiIiIJIQSMxEREZGEUGImIiIikhBKzEREREQSQomZiIiISEIoMRMRERFJCCVmIiIiIgmhxExEREQkIZSYiYiIiCSEEjMRERGRhFBiJiIiIpIQSsxEREREEkKJmYiIiEhCKDETERERSQglZiIiIiIJocRMREREJCGUmImIiIgkhBIzERERkYRQYiYiIiKSEErMRERERBJCiZmIiIhIQigxExEREUkIJWYiIiIiCaHETERERCQhlJiJiIiIJIQSMxEREZGEUGImIiIikhBKzEREREQSQomZiIiISEIoMRMRERFJCCVmIiIiIgmhxExEREQkIZSYiYiIiCSEEjMRERGRhFBiJiIiIpIQSsxEREREEkKJmYiIiEhCNIs7gHzo1KmTd+/eveDPWbp0KW3atCn4c8qZyjA3Kr/cqQxzpzLMncowd6VchuPGjZvn7htUd64sErPu3bszduzYgj+nsrKSgQMHFvw55UxlmBuVX+5UhrlTGeZOZZi7Ui5DM/uspnNqyhQRERFJiFgTMzO728zmmtnEtGMdzOwFM/s4em0fZ4wiIiIixRJ3jdm9wEEZxy4GXnL3LYCXon0RERGRshdrYuburwALMg4PBu6L3t8H/KioQYmIiIjExNw93gDMugNPufu20f5Cd18/7fw37v6D5kwzGwYMA6ioqOg7YsSIgsdaVVVF27ZtC/6ccqYyzI3KL3cqw9ypDHOnMsxdKZfhoEGDxrl7v+rOleyoTHe/HbgdoF+/fl6MkRmlPAIkKVSGuVH55U5lmDuVYe5Uhrkr1zJMYmI2x8y6uPuXZtYFmBt3QJKd5cth0SJYsgS+/bb67f33N2Ls2B8e/+47+P77sK1cueZ9dfvuYFb31qwZtGxZ+9amDbRrB+uuG17T36deO3SAVq3iLl0REWkMkpiYPQn8DPhD9PpEvOGUv9WroaoKFi6ExYtDcrVo0Zr32R5bsSKbp/X637sWLWCddUJy1LIlNG8etmbN1rxv3jxck37MLCRndW0rV4ZkcckSmDcvvM/cli6FVavqjrpNG+jUKWwdO65536kTdOkCG20EXbuG106dQowiIiL1FWtiZmYPAQOBTmY2C7iCkJA9YmanAP8Fjo4vwtKwalVIjhYuXHtbtCi7Y4sXh+SsNk2ahBqk9dZb89qlC2y55drHUrVMbdqEhCp9a9MG3n//dfbff3datw7JVtzcYdmykLwtWRLKIv394sXwzTchsUvfpk8Pr4sX//CeLVqEBC2VrHXvDptttmbbZJNwjYiISKZY/zS6+3E1nNq3qIEUkXuoqfnuuzVbVVVIBLJ9XbJk7QRryZK6n7vuurD++mu2bt1gu+3WPpZKrlJberLVpk1+aoE+++x72rXL/T75YrYmcayoqP/nly+Hr76C2bPhiy/Clv5+/Hh44om1axObNAnln0rUttoKtt4aeveGTTcN50VEpHFKQJ1F8lVVwc9/DnPmbEOHDqGGKn1bvfqHxzKTr9S2fHn9nt2kCbRtG2qhUq/t2sHmm4ekKT2xWn/96o+1awdNmxambBq7li1DMrXppjVfs3p1SNZmzPjhNnIk3HXXmmtbtw6JWu/ea5K1HXcMtW5qHhURKX9KzLKwejV8+CEsW7YO33wTkpz0rUmT8Nq8eegk3rRp+IPdqlV2W2bilf7aurX+IJe6Jk1g443DttdePzy/YAFMmRK2yZPD66uvwj//ueaa9deHnXaCDTboyezZ4X2vXkq4RUTKjRKzLKy7bvhjWVn5blkOzZV4degAu+8etnRVVSFRGz8e3nsvbK+91pVHHgnn27SB/v1ht91gwICwdexY/PhFRCR/lJiJJFTbtrDzzmFLefHFV6mo2Jv33oOxY+Gtt+CPf1wzsrRXr5Co7bYbDBoEPXuqxlVEpJQoMRMpIc2aOdttFwZu/Oxn4djSpSFJe/NNeOON0G/t3nvDuU02gX32WbN17Rpb6CIikgUlZiIlrk0b2HvvsEEY+TttGoweDS+9BE8+uSZR23JL2HdfOOSQUKO2zjqxhS0iItVQYiZSZszCyM6ttoIzzgiDVz74ICRpL78M990Ht94aBp7ssw8cemjYahtZKiIixaEZk0TKXJMmYcqNX/0Knn4a5s+H55+HYcNCzdqZZ4bpOLbbDq68EiZODLVuIiJSfErMRBqZli3hgAPgr3+Fjz+GqVPhhhvC6NDf/S4kaL17w+WXw4QJStJERIpJiZlII2YW+p2dfz6MGRMmwr311rCc1DXXhJq2rbaCq6+GmTPjjlZEpPwpMROR/+ncOfRLe+mlsNTU7beHkZy//S306AEDB8Ldd1e/RqiIiOROiZmIVGuDDeC008KAgZkzYfhw+PJLOOWUsK7o8ceHFQrU1Ckikj9KzESkTptuCpdeGvqjvfUWDB0aBhLstVfok3bLLapFExHJByVmIpI1M9hll9AP7Ysv4M47w7QbZ50V+qX94hdhwICIiDSMEjMRaZA2bUKz5tix8M47cPTRcP/9YcDA/vvDqFFq5hQRqS8lZiKSs/794Z57Qi3atdfCpElw4IGw007wwAPw/fdxRygiUhoSm5iZ2UFmNs3MppvZxXHHIyJ169ABLr4YPv00jN78/ns48UTYfHO47TZYsSLuCEVEki2RiZmZNQVuAQ4GegPHmVnveKMSkWy1bBkGCHz4ITz1VOh/dvrp0KsX3HGHatBERGqSyMQM2BmY7u4z3H0FMAIYHHNMIlJPTZqEdTjfeAOefTbMkzZsWEjQ7r4bVq2KO0IRkWQxT2DvXDP7MXCQu58a7Z8I7OLuZ6VdMwwYBlBRUdF3xIgRBY+rqqqKtm3bFvw55UxlmJtSLz93eOedDtx7b3emTl2XzTar4he/+ISdd/6maDGUehkmgcowdyrD3JVyGQ4aNGicu/er7lxSE7OjgQMzErOd3f3s6q7v16+fjx07tuBxVVZWMnDgwII/p5ypDHNTLuXnDo89BhddBJ98EtbuvP562H77wj+7XMowTirD3KkMc1fKZWhmNSZmSW3KnAV0S9vfGJgdUywikmdmcNRRMHky3HgjvPtumGbjtNNg3ry4oxMRiU9SE7N3gS3MrIeZtQCOBZ6MOSYRybMWLeDcc0Ot2Xnnwb33hkXV77wTVq+OOzoRkeJLZGLm7iuBs4DngSnAI+4+Kd6oRKRQ2reHG26A99+HbbYJNWd77AEffBB3ZCIixZXIxAzA3Z9x917u3tPdh8cdj4gU3rbbwpgxcN99MH069O0LV12l+c9EpPFIbGImIo2TGZx0Ulgw/Sc/gSuvhJ13hvHj445MRKTwlJiJSCJ16BCWc/rPf+Crr8KyT1dfrbnPRKS8KTETkUQbPDisvXn00fDb38K++4Y1OUVEypESMxFJvI4d4cEHQ9+zsWNhhx3CUk8iIuVGiZmIlIyTToJx46BbNzj8cLjgAli5Mu6oRETyR4mZiJSULbeEN9+EM88MU2wcfDAsWBB3VCIi+aHETERKTqtWcPPNYSH0V14JozYnaaZDESkDSsxEpGQNHQqVlbB0Key6K4wcGXdEIiK5UWImIiVtwIAwIGCrreBHP4Lbbos7IhGRhlNiJiIlr2vXUHN20EFw+ulhWg33uKMSEak/JWYiUhbatAmT0Q4dGiaiPf10LYQuIqWnWdwBiIjkS/PmcNddUFEBf/gDfP893HEHNG0ad2QiItlRYiYiZcUMrrkGWrYMC6CvXAn33KPkTERKgxIzESk7ZmHx82bN4PLLw7F774Um6rwhIgmnxExEytZvfhNeL788LIp+443xxiMiUhclZiJS1i67DObPh7/8BTbYAHbfPe6IRERqFkvFvpkdbWaTzGy1mfXLOHeJmU03s2lmdmAc8YlI+TALSzedcEKoQXvqqS5xhyQiUqO4elxMBIYAr6QfNLPewLHANsBBwK1mpi67IpKTJk3C8k0HHwx/+csWVFbGHZGISPViSczcfYq7T6vm1GBghLsvd/dPgenAzsWNTkTKUfPmMGIEbLzxMn78Y5gxI+6IRER+KGljlLoCn6ftz4qOiYjkbN11YfjwiaxeDYMHw5IlcUckIrK2gnX+N7MXgc7VnLrM3Z+o6WPVHKt2YRUzGwYMA6ioqKCyCG0TVVVVRXlOOVMZ5kbll7v11qvisssmcOGF23P44V9zxRWTser+yyM10vcwdyrD3JVrGRYsMXP3/RrwsVlAt7T9jYHZNdz/duB2gH79+vnAgQMb8Lj6qayspBjPKWcqw9yo/HJXWVnJr361A6tWwUUXbci0aRty+ulxR1Va9D3Mncowd+VahklrynwSONbMWppZD2AL4J2YYxKRMnTBBXDggXDuufDBB3FHIyISxDVdxpFmNgsYADxtZs8DuPsk4BFgMvAccKa7r4ojRhEpb02awP33Q/v2YSqN5cvjjkhEJL5RmY+7+8bu3tLdK9z9wLRzw929p7tv6e7PxhGfiDQOG24Id94JH34IV18ddzQiIslryhQRKapDD4WhQ+EPf4B33407GhFp7Ors/B/NzL8nsBGwjDA57IvuvqDAsYmIFMWNN8KoUTBsWEjOmmmxOhGJSY3/+TGzk4FzgE+BccA0oBWwB3CRmU0ELnf3/xYhThGRgllvvbCW5tFHw9//DmefHXdEDbN4cWiW/ewz+O9/4YsvoKoKli4NfeiaN4dWrWCddaCiArp0ga5dYautoGdPJaQiSVDbP8M2wO7uvqy6k2a2I2HUpBIzESl5Rx0F++8f1tM85piQuCTd/Pnw7LOhtu/dd2HaNPC0mR/XWy9MqtumTUjIVqwICVpVFXz9NaxevebaFi1g661h111hjz1gzz1h002L/zOJNHY1JmbufkttH3T38fkPR0QkHmbwt7/BdtvBpZfCXXfFHVH1vv0WHn4Y7rkHXn89JFcbbAADBsBPfwo77RRqv7p1g7Zta77PqlUwdy58/jlMmQKTJ8P48fDgg3DbbeGa3r3hsMPgiCPC/ZuoV7JIwdXWlNkK+AnwDTASuJDQ1+wT4Gp3n1eUCEVEimTLLeGss+Cvfw3znG29ddwRrTFrFtxwA9x7LyxcGGL7zW9C4tS3b/2TpqZNQ1Nmly6wc9qKxKtWwcSJ8PLL8NRT8Oc/w3XXQY8ecOKJcNJJef2xRCRDbf+U7wcOAH4OVAKbADcDS4B7Cx2YiEgcLr00NP395jdxRxJ88w2cdx5svjnccgscfDCMGQOTJsFVV0H//vmtyWraFHbYITzzpZdg3rww31vPnmFKkc03h0sv3ZbRo9duNhWR/Kjtn3Nvdz8e+DGwpbuf6e7PuftvWHvZJBGRstGpE/z61/DYY/D22/HF4Q7//GfomH/TTXD88fDxx6Gpca+9KNr6nuutF2rKXnghDCj47W9hypR12WefUFM3cqQSNJF8qi0xWwHg7iv54XqVmo1fRMrWeeeFfltXXRXP8xctgmOPDSsS9OgBY8eGPm9xd8bfeONQJg8//BZ33glLloT+Z7vtBmW4lrRILGpLzDY2s5vM7G9p71P7XYsUn4hI0bVtC//3f2HEY7HX0Zw8Gfr0gX//G669Ft54I3ToT5IWLVZzyikh1ttvDwMIBg2C446D2Zn/Gy8i9VJbYvZrwvxlY9Pep/YvLHxoIiLxOeOM0NfsT38q3jPHjIHddw8jL195BS6+ONkjIZs3h9NOC02sV14Jjz8eml5vvnntqThEJHs1/pN39/tq24oZpIhIsXXoEFYCeOih0Leq0J5/Hg44IIySfPPN0DxYKlq3hiuuCJPbDhgQJug9+GD48su4IxMpPTUmZmY20syerGkrZpAiInE477zwetNNhX3Oa6/BkUeGKTBeew26dy/s8wpliy3guefC6gmvvgrbbx8GB4hI9mqb+T9VgT8E6Aw8EO0fB8wsYEwiIonQrRsMHgz33QfXXBNmx8+3qVPDQurduoUZ/Dt0yP8ziskMTj8d9t479Dk74ogwzcZllxVvJGnSLF0KM2aEbe7cMAXKhAk9ePrpNde0bQvrrx+2jTcOgz66dQvNxdK41Dbz/xgAM7va3fdKOzXSzF4peGQiIglwyimhI/7IkWHZpnyqqoIhQ0LC98ILsOGG+b1/nLbeGt56K/RBu/zyMFDgrrtCs2c5+/77MGDjzTfhnXfCUlmzZv3wuqZNu9GyZXjvDsuqWfywadPQZ2+nncKAkL32gh13DMelfGWzZO0GZraZu88AMLMewAaFDUtEJBkOOCDUYNx1V34TM3c49dSwvuWoUbDJJvm7d1K0ahUmp+3dO0zc++mn8PTTpV8rmKmqak3yPmpUmEYEwmS8e+4J22wTJujt2RM6d4b27eHdd19h0KCB/7vHypVhEfoFC8Io15kz4ZNPYMIEGD0aHojarNq3DyNgf/SjUBu53npF/3GlwLJJzM4DKs1sRrTfHRhWsIhERBKkaVMYOhR+//vwB7NbnqbXHjEirHl5zTWw7775uWcSmcEll4Tlro47LiQVo0aVxiLxtXEPNWN33AH/+ldoruzaNcw/d/DBoSm3tgQ0s1m3WbNwfYcOIaHL9OWXIUF76aVQfo89FmpaDzww1Ooeemi4h2TPPZTr7NlhhYv580NS3bUrHH54fHHV+Wt09+fMbAtgq+jQVHdfnstDzex64HDCJLafAEPdfWF07hLgFMIktue4+/O5PEtEJFdDh4Z+Uvfdl5+lmhYsgHPPDcspXdhIJh8aMiSsvTl4MAwcGKYGKcWmW/cwv90114RF5Nu1CwnnySeHkbSF6kfXpUtYpP6nPw1TkbzzDjz6aEjwR44MtbrDhsEvfwkdOxYmhlK2bBm8914ot3feCUuaffJJmJom00EHxZuY1TYqc4/Ue3df7u4Tom15dH5dM9u2gc99AdjW3bcHPgIuie7ZGzgW2AY4CLjVzNSaLiKx6tEjNEk9/HB+7nfhheH/zu+4o3H1F9p//zBq87PPQk3PwoVxR1Q/b74ZFnw/9NAwhcrf/hZqXO64I8w/V6zBDU2awK67hkXtP/sszB+39dZhuazu3cNAi/nzixNLks2cGUZUH3JIqIncYw84//yQUG+6KfziF2H92SeeCMemTg21Z488Em/ctdWYHWVm1wHPESaW/RpoBWwODAI2BX7VkIe6+6i03bcI63ECDAZGRMnfp2Y2HdgZeLMhzxERyZejj4ZzzoEpU8IfwYZ6//3QX+3Xvw6LhTc2e+0VmuGOOCJsL7zA/zrBJ9WcOXDRRaHGtGtXuPvusHZpIUbp1lezZqG/2Y9+BBMnhprda68NCclvfhOmfElCnMWyaFFIrP7f/wtTtgD06hWSsH32CYl1587xxlgX81pWnzWz9oSkaXegC7AMmAI87e6v5SUAs5HAw+7+gJndDLzl7g9E5+4CnnX3f1XzuWFEfd0qKir6jhgxIh/h1Kqqqoq2bdsW/DnlTGWYG5Vf7hpahvPmteCYYwZw8skzOemkzxr8/Msv34b332/PiBFv0bbtygbfJ075+B6+/PKGXH11bw488CsuumhqYqfSGDNmA264oRfLljXlmGM+54QT/kvr1rkvF13If8uffroOd965GW+80Ylu3b7lnHM+pl+/bwryrDill+FXX7Xi3//uytNPd2HZsmZssslS9t9/DoMGzaVr1+9ijvSHBg0aNM7d+1V70t0LsgEvAhOr2QanXXMZ8DhrEsRbgBPSzt8FHFXXs/r27evFMHr06KI8p5ypDHOj8stdLmW4667u/fs3/Nnjx7uD+xVXNPweSZCv7+GVV4byuO66vNwur5Ytcz/llBBf//7uU6bk9/7F+Lf89NPuPXuGn+HUU92rqgr+yKIaPXq0f/aZ+0knuTdp4t6smfvxx7u//bb76tVxR1c7YKzXkNMUbBU2d9/P3betZnsCwMx+BhwGHB8FCTALSB/ztDGgJXFFJBEOOyzMSzVnTsM+/7vfwbrrhgXSJfSJOuaYsCboKwmaHXP27DBA4a67wojS118P84mVmkMOCc2bF10UfpY+fWDs2Lijyu2mSpEAACAASURBVI9Fi+D22zejV6/Q9/Pcc8N0LA88EJork1oDm41Ylsc1s4OAi4Aj3D19TMSTwLFm1jKaL20L4J04YhQRyXTooeH1mWfq/9mPPw59q845J8xFJeGP5513wmabhT5bSeiw/tFHoWP9xIlhbrJrrint2fdbtYI//AFefjmMQBwwICyZVcqeeSbMjffQQ5twzDHhd3bDDWFkajmIJTEDbgbaAS+Y2Xgz+weAu08CHgEmEwYdnOnuuTfmi4jkwQ47hGkLXnih/p+97bbQUfvMM/MfVylr1y7UeMyZE+bjqqXbc8F98EEYffvdd6Hj+JAh8cWSbwMHhp/vgAPClBq//GWY1LaULFoEP/95+B+k9u3h1lvHcf/95Tc5c52JmZmtY2aXm9kd0f4WZnZYLg91983dvZu77xhtp6edG+7uPd19S3d/NpfniIjkk1mYIPXll+uXQCxfDvfcE0bOJX1EWBz69AkjCZ94IszNFYdp08KovRYtQlK2007xxFFI7dvDk0+GEcF//3tYyaK6paCSaMKE8D25//6wisS4cbD11kviDqsgsqkxuwdYDgyI9mcBvy9YRCIiCTZoUKjdmTo1+88891yYVPbnPy9cXKXu3HOhX7/Q1PtNkQcQfvFFqElq2jTMrr/llsV9fjE1bQrXXRfm7xo5MqxSsCTh+c1DD4Xm5VRN5vDhyZ9iJRfZJGY93f064HsAd18GlHC3OhGRhttnn/D68svZf+ahh6BTJ9hvv8LEVA6aNg0Ttc6bF2p0iuXbb0PT2DffhAS6uuWQytEvfxk6yr/2WliNIYk1Z+5w/fVhtYP+/cPM/QMG1P25UpdNYrbCzFoDDmBmPQk1aCIijU6PHmGS0ddfz+76b78NzUdHH13anciLYccdw4Sod98N48cX/nnucMYZoe/Vww+XZ/NlbX76U7j3XqishB//GL7/Pu6I1nAPo3UvvDCM3H3hhdJfXzVb2SRmVxA64nczs38CLwGNZHU3EZG1mcEuu8Dbb2d3/csvh9qIcupIXkiXXRb6Ql10UeGfdccdoc/SFVeEJr3G6IQT4B//CCMdzz473sEXKe7he3DddSFxfuih8m66zFRnYubuLwBDgJOBh4B+7l5Z2LBERJJr111hxgz4+uu6r336aWjbNoz2k7qtv374ozxqFLz4YuGe88knoV/bAQfA5ZcX7jmlYNiwUDt1221w881xRxMGglx7bYjr5pvD2qCNSW2LmPdJbYR1Mb8kTPa6SXRMRKRR2mWX8FpXrZl7SMz2269x/R9/rs48MywyffHFhanBcQ9/9Js1CxOvNrY//NUZPjyMGj733Hgn+x0xIiTmxx8fRo42xt9NbT/yDdF2C/A2cDtwR/T+psKHJiKSTH37hs7q79Qx/fXHH8Pnn8NBBxUnrnLRsmVYgHvcuDBKMt/uvjs0MV9/fflMSpqrJk1Cs27PnqF5s9gjYwHeegtOPjnULjfmhLnGH9vdB7n7IOAzoI+793P3vsBOwPRiBSgikjRt2sAWW4RO47V59dXwutdehY+p3JxwAmy4IfzpT/m97+LFof/annvCaafl996lrl07ePBB+OqrUDbF7G+2YEHo5L/RRmGFjMZcw5xNPrqVu3+Y2nH3icCOhQtJRCT5ttsOPvyw9mtefTVMk1GK6yzGrVWr0Bn92Wdh0qT83feGG8LST3/+c+OtkalNv36hWfPf/w7NisXgDqeeGhLCRx4J/2Yas2y+llPM7E4zG2hme0crAEwpdGAiIkm23XZhAMDSpTVf89prsMcepb2gcpzOOANatw7JVD7MnRvudfTRIQGR6p1/fiif88+HhQsL/7w77oDHHw8d/vV7yS4xGwpMAv4POJewjuXQQgYlIpJ0220XXmuqzfn66zDyb/fdixdTuenYEX72szBdQj76PF1zTZg9/uqrc79XOWvaNEyhMXdu6OtXSF99FeYq22efMIedZDddxnfufqO7HxltN7r7d8UITkQkqVKJWU3NmakJUvtoDHtOTjstJFMPPpjbfRYuDDUzJ5xQ3ksu5UvfvnDWWXDrrXX3pczF+eeHef4a6wjM6mSziPmnZjYjcytGcCIiSdWjR2hmm1JDx44JE8LrDjsUL6Zy1KdPWBHg7rtzu8+994ZVGM45Jy9hNQpXXgnrrVe4ed5efDHUhl5yCfTqVZhnlKJs8tN+QP9o25MwVcYDhQxKRCTpmjQJydmMGv43dfz4sHRTx47FjascnXRSWCfxo48a9vnVq8Oi3bvtphrM+mjfHi64ICwpVtfUMPXlHpowe/QI89XJGtk0Zc5P275w978A+xQhNhGRRNtss5oTswkTQk2P5O6YY8IAiocfbtjnR42C6dND05zUzznnhFGS+a41e/xxeP/9sBxWq1b5vXepy6Yps0/a1s/MTgfaFSE2EZFE69kzdPDPnO9pxQqYOlXNmPnStWsY3frIIw37/K23hgWwjzoqv3E1Bu3ahXnfRo3KX63Z6tUhIevVK8zwL2vLpinzhrTtWqAPcEwuDzWzq83sAzMbb2ajzGyjtHOXmNl0M5tmZgfm8hwRkULabDOoqoJ589Y+PnMmrFypTub5dOSRMHFiKNv6mD8/zIV20knQokVBQit7w4aF9V5vuSU/93v00fC7vPLKsCyWrC2bxOyU1CoA7r6/uw8DVuT43OvdfXt33xF4CvgtgJn1Bo4FtgEOAm41s6Y5PktEpCA22yy8ZjZnfvJJeO3Zs7jxlLPDDguvTz1Vv8899lhIko87Lv8xNRbrrhsS2xEjwjQwufrrX8PKGcfkVMVTvrJJzP6V5bGsufvitN02QKohYDAwwt2Xu/unhKWfds7lWSIihVJTYpbaT52X3G2xRaiBHDmyfp97+OHQZKb+frk588zQRH/XXbndZ8IEePNNOP30MF+a/FCNlYhmthWh5mo9MxuSdmpdIOeuemY2HDgJWAQMig53Bd5Ku2xWdKy6zw8DhgFUVFRQWVmZa0h1qqqqKspzypnKMDcqv9zlswyXL28C7MVLL82gS5f//u94ZWVPWrXaiKlTX2XatLw8KlHi+h5uu+3mjBzZhVGjXqNFi7oXcqyqakpl5e4cc8wsxoxJ1ixPpfhveaedduAvf2lN//5v07RpwxbSvPHGLWjRojObb/4mlZUrc4qnFMswK+5e7UaovboHmB+9prabgN1q+lza518EJlazDc647hLgquj9LcAJaefuAo6q61l9+/b1Yhg9enRRnlPOVIa5UfnlLt9l2KGD+5lnrn3siCPct902r49JlLi+h//5jzu4jxmT3fWPPhquf+WVwsbVEKX4bzlVnqNGNezzixe7t23r/rOf5SeeUizDFGCs15DT1Fhj5u5PAE+Y2QB3f7MBCd9+WV76IPA0cAWhhqxb2rmNgdn1fbaISLFUVIRlZdLNmKFmzELYa68wbcbLL4f3dXn66TAX14ABhY+tMTjssNDf7MEHYf/96//5Bx8Mg2XOOCP/sZWTGvuYmdmF0dufmtlNmVsuDzWzLdJ2jwCmRu+fBI41s5Zm1gPYAsjztHYiIvlTUQFz5qzZdw+JmTr+51/79rDTTpBN65V7mFl+33018i9fWrWCIUPCgIrvGrAw44MPQu/esLN6jteqts7/qYVGxgLjqtly8Qczm2hmHwAHEBZIx90nAY8QFkp/DjjT3Vfl+CwRkYLJTMy++SYs/dOtW82fkYbbc094990w0rI2M2fCrFkwcGAxomo8fvITWLw41FrWx+zZ8Oqr4fNmhYmtXNTWlDkyer0v3w919xqn+XP34cDwfD9TRKQQOndeOzGbOze8VlTEE0+5698/TLcweTJsv33N140ZE1733rs4cTUWgwaFOc2efBIOOST7z/3736EW8+ijCxdbuahtVOZI1kxj8QPufkRBIhIRKSEVFaEGYdmysKh5KjHbcMN44ypXqWawd96pPTF75RXo0CE0nUn+tGwJBx4Ypi259dawZmw2nnoqTHey9daFja8c1Nby/qeiRSEiUqJSNWNz5kD37krMCm3zzWH99UNiduqpNV/31luw++7ZJw6SvcMOCzVgH3yQ3fxwS5eGfoFaqzQ7tTVljkm9N7MWwFaEGrRp7p7rzP8iImVBiVlxmYXmzHffrfmaqqqwVulPflK8uBqTffcNr6NHZ5eYvfxymJy2Pk2fjVk2i5gfCnxCmL/sZmC6mR1c6MBEREpBemIGaxKzTp3iiacx2H57mDIFVtUwNGzChNCfqU+f4sbVWHTrFlZiyHYAwIsvhmb+PfYobFzlIttFzAe5+0B335swS/+NhQ1LRKQ0dO4cXlNzmc2dCx07aoqGQurdG5Yvh08/rf78e++F1759ixdTY7PPPmGARV2jYyH099ttt9A/TeqWTWI2192np+3PAOYWKB4RkZKSarJM1ZTNnatmzELbZpvwOmlS9efHjQs1mV26FC+mxmbgQFiyBD78sPbrFi4MNZjZTAgsQTaJ2SQze8bMTjaznwEjgXfNbEjGGpoiIo1OixZh4s0lS8K+ErPCS43smzy5+vMTJ8IOO2i+rELaZZfw+vbbtV/3+uuhWVmJWfayScxaAXOAvYGBwNdAB+Bw4LCCRSYiUiLatg0dzkGJWTGsu27o51RdYuYOH30UpmaQwunePfSjfKeOtXnefDM062u2/+zV2QvC3YcWIxARkVLVpo0Ss2Lr3bv6xGzOnFB72atX8WNqTMxCslVXYvbee6HpeZ11ihNXOagzMYvWrDwb6J5+vSaYFREJUjVmK1eGJZk0IrPwevSofsqMadPCq2rMCm/nneHZZ0Mi3K7dD8+7h/5+hx5a/NhKWTbjhv4D3EXoW7a6sOGIiJSetm3DJJpLl4b96v5ISX517w4LFoSEuG3bNcc/+ii8qsas8HbcMSRfkybBrrv+8PyXX4YaZE1bUj/ZJGbfuftNBY9ERKREpZoyly0L+2q2KbxNNw2vn322ZpQmhMSsZUstIl8MqXKfPLn6xCw1bYkSs/rJpvP/X83sCjMbYGZ9UlvBIxMRKRGppsxUYta6dbzxNAbpiVm6jz4KyzZpKabC69EjjEiuadqS8ePDa21rmsoPZVNjth1wIrAPa5oyPdoXEWn0Uk2Z334b9pWYFV5Nidnnn4dmTim8pk1hq61qnrbko49CzWV6U7PULZvE7EhgM62PKSJSPdWYFV/nzmEOuczEbPZs6Ncvnpgao222CTP7V+ejj9TXryGyqeydAKxf6EBEREqV+pgVX5MmoTYmPTH7/vvQ2XyjjeKLq7HZZptQS5maYDnFPYyQVWJWf9kkZhXAVDN73syeTG35eLiZXWBmbmad0o5dYmbTzWyamR2Yj+eIiBSSmjLjsemmaydmc+aEhECJWfH07BleM9ctnT8/LMekxKz+smnKvKIQDzazbsD+wH/TjvUGjgW2ATYCXjSzXu6+qhAxiIjkQ9u2ISFYsCDsKzErjs6d114SaPbs8KrErHjS+/qld/JPzSenxKz+6qwxc/cx6RuwEjgmD8++EbiQMJAgZTAwwt2Xu/unwHRACzmISKK1aRNeUwuZKzErjo4dQ81MihKz4qttdCwoMWuIrAYUm9mOZnadmc0Efg9MyeWhZnYE8IW7T8g41RX4PG1/VnRMRCSxUqPO5s0Lr0rMiqNTp9BctnJl2FdiVnwbbhjmjctMzGbODMs2pRI3yV6NTZlm1ovQrHgcMB94GDB3H5TNjc3sRaBzNacuAy4FDqjuY9Uc82qOYWbDgGEAFRUVVFZWZhNWTqqqqorynHKmMsyNyi93hSjDmTM7AdsyYcJsYCPef/91Zs78Pq/PSJKkfA/nz98I6MXIka/Tvv33vPlmD5o02YRJk8YwdWrc0dUuKWWYDxtssDNjx1ZRWblm3oxx43qx/vqdeP31Nwr23HIqw7W4e7UbYc6yMcDmacdm1HR9ththXrS5wMxoW0noZ9YZuAS4JO3a54EBdd2zb9++XgyjR48uynPKmcowNyq/3BWiDJ97zh3chwwJr4sX5/0RiZKU7+GIEaG8J00K+0OHunftGm9M2UpKGebDfvu577LL2scOOcR9p50K+9xSLkNgrNeQ09TWlHkU8BUw2szuMLN9qb5Gq76J4IfuvqG7d3f37oTmyj7u/hXwJHCsmbWMFk/fAqhj7XoRkXil+ph9/XV4VVNmcXTsGF5T/cy+/DIMCJDiyhwdC6FZWU3KDVNjYubuj7v7T4CtgErgPKDCzP5uZtU1Q+bM3ScBjwCTgeeAM10jMkUk4VJ9zL7+Gpo1C5sUXqdooqVU375Fi6BDh/jiaaw23RS++gq++27Nsdmzoat6iDdINqMyl7r7P939MGBjYDxwcb4CiGrO5qXtD3f3nu6+pbs/m6/niIgUSnpipslliyezxmzxYmjXLr54GqtUzdicOeF1xQpN9JuLei3z6u4L3P02d9c6mSIikVRT5vz5asYsplRilqoxW7wY1l03vngaq8wE+auvwqsSs4apV2ImIiI/lL5IsxKz4llnnVDe6TVmSsyKLzMx07QluVFiJiKSozZtwtqNoMSs2Dp1CjVm7mG9RiVmxZfq65eZmKmPWcMoMRMRyVGTJlBREd6rj1lxpWb///ZbWL1aiVkcaqox69IlnnhKnRIzEZE8SDXbqMasuFI1ZosXh311/i++1EjYVF+/b75Z+7jUjxIzEZE8UGIWjzZtYOnSNYmZasyKr1kzWG+9tfv6rbMONG8eb1ylSomZiEgeKDGLR8uWsHy5ErO4deqkQRj5osRMRCQPUomZJpctrlatQmK2ZEnYV0IQj1RfPwgT/er30HBKzERE8iDV0TlVcyPFoRqzZEhPzFRjlhslZiIieZCqMUt1fJbiUGKWDB07aqLffFFiJiKSB0rM4pGZmGlUZjzUxyx/lJiJiORBqilz4cJ442hsUomZ+pjFq2PH8DtYsUKJWa6UmImI5MEGG0CPHnDLLXFH0ri0bAkrV4aayhYtwr4U3/rrh9dFi5SY5Urjh0RE8qBpU5gxI+4oGp9UIvb110oG4pT6PaSalfW7aDjVmImISMlSYpYMqd/DwoWwapV+F7lQYiYiIiUrlRDMm6eO/3Fq0SK8fv11eF1vvfhiKXVKzEREpGSlErP586Ft23hjaczSay5BNWa5iCUxM7MrzewLMxsfbYeknbvEzKab2TQzOzCO+EREpDSkEoIFC8K6mRIPJWb5E2fn/xvd/U/pB8ysN3AssA2wEfCimfVy91VxBCgiIsnWqlV4XbgwLJwt8chsylRi1nBJa8ocDIxw9+Xu/ikwHdg55phERCShUjU1q1erxixO6X39QIlZLuKsMTvLzE4CxgK/cvdvgK7AW2nXzIqO/YCZDQOGAVRUVFBZWVnYaIGqqqqiPKecqQxzo/LLncowd0kqw6lT2wM7ALBw4WwqKz+KN6AsJakM82HKlHZAXyZNmgtsyOTJb7Fw4XcFfWa5lWFKwRIzM3sR6FzNqcuAvwNXAx693gD8HLBqrvfq7u/utwO3A/Tr188HDhyYe9B1qKyspBjPKWcqw9yo/HKnMsxdksqwSVq7z+abb8TAgRvFF0w9JKkM8yE1wazZhgDsv/+ubLBBYZ9ZbmWYUrDEzN33y+Y6M7sDeCranQV0Szu9MTA7z6GJiEiZSJ/pX02Z8Un9HlJrxep30XBxjcrskrZ7JDAxev8kcKyZtTSzHsAWwDvFjk9EREpDemKmzv/xSXX+X7QovKYGZUj9xdXH7Doz25HQTDkT+AWAu08ys0eAycBK4EyNyBQRkZooMUuG1O9h0aLwvknShhaWkFgSM3c/sZZzw4HhRQxHRERKlBKzZEhfkkkjMnOjnFZEREqW+pglQ6opc/VqaN063lhKnRIzEREpWaoxS4b034P6l+VGiZmIiJQsJWbJkKoxA9WY5UqJmYiIlKz02hk1ZcanSRNoFvVaV2KWGyVmIiJSspo1A4umJleNWbxStZdKzHKjxExEREqW2ZqEQIlZvFLNmUrMcqPETERESloqMVNTZrxUY5YfSsxERKSkqcYsGZSY5YcSMxERKWlKzJIh1ZSp6TJyo8RMRERKmmpqkkG/h/xQYiYiIiWtZctQW5YanSnxUGKWH0rMRESkpKUSM4mXRmXmhxIzEREpaS1bakRmEqjGLD+UmImISElTjVkyqMYsP5rFHYCIiEgu1l0Xvvsu7igkVWOmUZm5UWImIiIl7frrYfnyuKMQNWXmR2xNmWZ2tplNM7NJZnZd2vFLzGx6dO7AuOITEZHS0KsXbLdd3FGImjLzI5YaMzMbBAwGtnf35Wa2YXS8N3AssA2wEfCimfVy91VxxCkiIiLZUY1ZfsRVY3YG8Ad3Xw7g7nOj44OBEe6+3N0/BaYDO8cUo4iIiGRJiVl+xNXHrBewp5kNB74DLnD3d4GuwFtp182Kjv2AmQ0DhgFUVFRQWVlZ0IABqqqqivKccqYyzI3KL3cqw9ypDHNXjmU4d+7mwMZMnfo+LVsuKvjzyrEMoYCJmZm9CHSu5tRl0XPbA7sC/YFHzGwzoLp5m726+7v77cDtAP369fOBAwfmIeraVVZWUoznlDOVYW5UfrlTGeZOZZi7cizDZ54Jr7vtthP9+xf+eeVYhlDAxMzd96vpnJmdATzm7g68Y2argU6EGrJuaZduDMwuVIwiIiKSH1rEPD/i6mP2H2AfADPrBbQA5gFPAseaWUsz6wFsAbwTU4wiIiKSJfUxy4+4+pjdDdxtZhOBFcDPotqzSWb2CDAZWAmcqRGZIiIiyafELD9iSczcfQVwQg3nhgPDixuRiIiI5KJ9e2jWDNq1izuS0qaZ/0VERCRnJ5wAffqEJbKk4bSIuYiIiOSsdWvo2zfuKEqfEjMRERGRhFBiJiIiIpIQSsxEREREEkKJmYiIiEhCKDETERERSQglZiIiIiIJocRMREREJCEsrIRU2szsa+CzIjyqE2FNT2k4lWFuVH65UxnmTmWYO5Vh7kq5DDd19w2qO1EWiVmxmNlYd+8XdxylTGWYG5Vf7lSGuVMZ5k5lmLtyLUM1ZYqIiIgkhBIzERERkYRQYlY/t8cdQBlQGeZG5Zc7lWHuVIa5UxnmrizLUH3MRERERBJCNWYiIiIiCaHELIOZHWRm08xsupldXM15M7ObovMfmFmfOOJMsizKcKCZLTKz8dH22zjiTDIzu9vM5prZxBrO63tYiyzKT9/BOphZNzMbbWZTzGySmf1fNdfoe1iLLMtQ38VamFkrM3vHzCZEZXhVNdeU1/fQ3bVFG9AU+ATYDGgBTAB6Z1xzCPAsYMCuwNtxx52kLcsyHAg8FXesSd6AvYA+wMQazut7mFv56TtYdxl2AfpE79sBH+m/hwUpQ30Xay9DA9pG75sDbwO7ZlxTVt9D1ZitbWdgurvPcPcVwAhgcMY1g4H7PXgLWN/MuhQ70ATLpgylDu7+CrCglkv0PaxFFuUndXD3L939vej9EmAK0DXjMn0Pa5FlGUotou9WVbTbPNoyO8eX1fdQidnaugKfp+3P4of/iLK5pjHLtnwGRFXTz5rZNsUJrazoe5g7fQezZGbdgZ0ItRXp9D3MUi1lCPou1srMmprZeGAu8IK7l/X3sFncASSMVXMsMzPP5prGLJvyeY+wHEWVmR0C/AfYouCRlRd9D3Oj72CWzKwt8G/gXHdfnHm6mo/oe5ihjjLUd7EO7r4K2NHM1gceN7Nt3T29/2hZfQ9VY7a2WUC3tP2NgdkNuKYxq7N83H1xqmra3Z8BmptZp+KFWBb0PcyBvoPZMbPmhITin+7+WDWX6HtYh7rKUN/F7Ln7QqASOCjjVFl9D5WYre1dYAsz62FmLYBjgSczrnkSOCkaBbIrsMjdvyx2oAlWZxmaWWczs+j9zoTv4fyiR1ra9D3Mgb6DdYvK5y5girv/uYbL9D2sRTZlqO9i7cxsg6imDDNrDewHTM24rKy+h2rKTOPuK83sLOB5wujCu919kpmdHp3/B/AMYQTIdOBbYGhc8SZRlmX4Y+AMM1sJLAOO9WhojQRm9hBhtFYnM5sFXEHo9KrvYRayKD99B+u2O3Ai8GHUvwfgUmAT0PcwS9mUob6LtesC3GdmTQlJ6yPu/lQ5/13WzP8iIiIiCaGmTBEREZGEUGImIiIikhBKzEREREQSQomZiIiISEIoMRMRERFJCCVmIpITM3MzuyFt/wIzu7LIMdxrZj+O3t9pZr1zvF93M5tYw/FlZjY+bWuRy7NERNJpHjMRydVyYIiZXevu8+r7YTNr5u4r8xWMu5+ar3vV4BN337Gmk/n+eUSkcVGNmYjkaiVwO3Be5gkz29TMXjKzD6LXTaLj95rZn81sNPBHM7vSzO4zs1FmNtPMhpjZdWb2oZk9Fy1rg5n91szeNbOJZnZ7asb0jGdWmlk/MzsirVZrmpl9Gp3va2ZjzGycmT1vZl3Sjk8wszeBM+tTAFH8t5vZKOB+C4suXx/F+oGZ/SK6zszsZjObbGZPm9kzaTV9My1aiieKvzJ638bM7o7u9b6ZDY6On2xmj0Xl87GZXZcWz0Fm9l7087xkZk2iazaIzjcxs+mmpX9EEkeJmYjkwy3A8Wa2Xsbxm4H73X174J/ATWnnegH7ufuvov2ewKHAYOABYLS7b0eYDf3Q1P3cvb+7bwu0Bg6rKSB3f9Ldd4xqtyYAf4oSvL8BP3b3vsDdwPDoI/cA57j7gDp+1p5pCd8tacf7AoPd/afAKYRlYfoD/YHTzKwHcCSwJbAdcBqwWx3PArgMeDm61yDgejNrE53bEfhJdL+fmFm3KPm6AzjK3XcAjnb31YQyPT763H7AhIbUcIpIYakpU0Ry5u6Lzex+4BxCIpUyABgSvf9/wHVp5x5191Vp+8+6+/dm9iFhOa/nouMfAt2j94PM7EJgHaADMAkYWVts0fXL3P0WM9sW2BZ4Iapsawp8GSWU67v7mLRYD67hdXSkqAAAIABJREFUljU1ZT7p7qmf/QBg+1RtGLAesAWwF/BQ9HPPNrOXa4s97V5HmNkF0X4roiV9gJfcfVH0c04GNgXaA6+4+6cA7r4guvZu4AngL8DPCYmoiCSMEjMRyZe/AO9R+x/89DXglmacWw7g7qvN7Pu09QJXA83MrBVwK9DP3T+PBhi0qi0gM9sXOJqQEAEYMCmzVszCIsm5rk+X/vMYcLa7P5/xnENqec5K1rRipP9cRqj9mpZxr12IyiyyivDfdKvuGVGZzTGzfYBdWFN7JiIJoqZMEcmLqGbmEUIzXsobwLHR++OB13J4RCpZmWdmbQmLP9fIzDYlJHLHpNVkTQM2MLMB0TXNzWwbd18ILDKzPdJizcXzhIWpU33jekXNj68Ax0Z90LoQmiZTZhKaQwGOyrjX2an+dGa2Ux3PfhPYO2o6xcw6pJ27k9Ck+UhGbaWIJIQSMxHJpxuA9A7l5wBDzewD4ETg/xp64yh5uoPQtPkf4N06PnIy0BF4POoP9oy7ryAkdH80swnAeNb08xoK3BJ1/l9W3Q3r4U5gMvCehWk3biPUZj0OfBz9DH8HxqR95irgr2b2KqH2K+VqoDnwQXSvq2t7sLt/DQwDHot+xofTTj8JtEXNmCKJZWtaC0REpJjM7F7gKXf/V5Ge1w+40d33LMbzRKT+1MdMRKQRMLOLgTNQ3zKRRFONmYiIiEhCqI+ZiIiISEIoMRMRERFJCCVmIiIiIgmhxExEREQkIZSYiYiIiCSEEjMRERGRhFBiJiIiIpIQZTHBbKdOnbx79+4Ff87SpUtp06ZNwZ9TzlSGuVH55U5lmDuVYe5Uhrkr5TIcN27cPHffoLpzZZGYde/enbFjxxb8OZWVlQwcOLDgzylnKsPcqPxypzLMncowdyrD3JVyGZrZZzWdU1OmiIiISEIoMRMRERFJCCVmIiIiIgmhxExEREQkIRKbmJnZQWY2zcymm9nFcccjIiIiUmiJTMzMrClwC3Aw0Bs4zsx6xxuViIiISGElMjEDdgamu/sMd18BjAAGxxXMytUrOfrRo3n/m/fjCkFEREQaAXP3uGP4ATP7MXCQu58a7Z8I7OLuZ6VdMwwYBlBRUdF3xIgRBYvnq+++4oIPLuCLZV8wpOsQTutxGq2atirY88pZVVUVbdu2jTuMkqXyy53KMHcqw9ypDHNXymU4aNCgce7er7pzSZ1g1qo5tlYG6e63A7cD9OvXzws9ydwR+x7BifedyGNfPMaHyz7k3h/dy27ddivoM8tRKU8ImAQqv9ypDHOnMsydyjB35VqGSW3KnAV0S9vfGJgdUywArNN8Hc7e/GxePullVqxawZ737MnFL17M8pXL4wxLREREykhSE7N3gS3MrIeZtQCOBZ6MOSYABvUYxAdnfMApO53CH1//I31v78u42ePiDktERETKQCITM3dfCZwFPA9MAR5x90n/v737j++53v8/fnvM5ndS+RVKSvlkG/NbC/mRpKKoFEKGjanUyemo45w456uOSp3U2ZYfIQkHRSTyu8lvYzYllTr0S4pkJb/2/P6xt85ymNn7vb3e2+7Xy+V1sfder/frdd9zL9tjz9fr9Xx6m+q/KpSqwPjO41nUcxEHfz1Ii0ktGLlqJMdPHvc6moiIiBRiQVmYATjnFjnnrnHOXeWcG+11njPpdHUn0genc2/EvYxaPYoWk1qQ/l2617FERESkkArawqywuKjMRUzrOo03u7/J3kN7aTy+MWPWjOFk5kmvo4mIiEgho8IsQLpe25Ud8TvofE1nhi8fTsvJLdn1wy6vY4mIiEghosIsgCqXq8zsu2fzRrc3+Pj7j4lKiuLF9S+S6TK9jiYiIiKFgAqzADMzekT2ID0+nXa12/Hwkodp/1p7Pj/4udfRREREJMipMMsn1S+ozoIeC5jUZRJbvt5C/aT6jN8ynmCcaUFERESCgwqzfGRmxDSMIW1wGs1qNCNuYRydpnfiy5++9DqaiIiIBCEVZgWgVsVaLO29lJc7vUzynmQiEiKYljpNvWciIiLyOyrMCkiIhTCk2RBSB6USUSWCPvP60HVWV/Zl7PM6moiIiAQJFWYFrM7FdVh9/2qe6/Aciz9dTHhCOHM+nON1LBEREQkCKsw8UCKkBI9GP0pKXAq1L6rN3bPvpsfcHvzwyw9eRxMREREPqTDzUL3K9VjXfx1/b/t35nw4h4jECBbuWuh1LBEREfGICjOPhYaEMqL1CDYN3ESVclXoPKMzMfNjOPTrIa+jiYiISAFTYRYkoqpFsXHARp5o+QRTU6cSmRjJst3LvI4lIiIiBUiFWRApFVqK0e1HszZmLWXDytJhWgeGvDOEjGMZXkcTERGRAqDCLAg1r9mcrXFb+UOLP5C4OZEGSQ1I/k+y17FEREQkn6kwC1JlwsowtuNYVt+/GoAbptzAsPeGceT4EY+TiYiISH5RYRbkWtVqReqgVAY1GcTYdWNpNL4RG7/a6HUsERERyQcqzAqB8iXLk3BrAu/d9x4ZxzKInhTNiBUjOHbymNfRREREJIBUmBUiHa7qQNrgNHo36M3o5NE0ndCU1G9TvY4lIiIiAaLCrJCpWLoik2+fzNv3vs2+jH00ndCU0e+P5kTmCa+jiYiIiJ9UmBVSnet2Zkf8Du6sdycjVo4gelI0H+3/yOtYIiIi4gcVZoXYJWUvYcadM5h11yx2H9xNw1caMnbtWE5mnvQ6moiIiOSBCrMioHt4d3bE76BjnY4MWzqMNlPb8NmBz7yOJSIiIudJhVkRUbV8VebdM4+pd0wlbV8a9ZPqk7ApgUyX6XU0ERERySUVZkWImdGnQR/S49NpeXlLhiwaQsfXO7Ln0B6vo4mIiEguqDArgmpWqMniXot55bZXWLd3HZGJkUzeOhnnnNfRREREJAcqzIooMyO2cSzbB2+nYbWGxLwdQ5eZXfjm8DdeRxMREZGzUGFWxF150ZWs6LuCf3b8J8t2LyM8IZwZaTPUeyYiIhKEVJgVAyEWwtAWQ9kWt426lerS882edJ/Tnf0/7/c6moiIiGSjwqwYqVupLsn9knm6/dPM3zmfiMQI5u2c53UsERER8VFhVsyEhoQyvOVwtsRuocYFNeg6qyt93urDwSMHvY4mIiJS7KkwK6Yiq0ayYcAGnrzhSd5Ie4OIxAgWf7rY61giIiLFmgqzYiysRBgj24xkw4ANVCxdkU7TOxG3II7DRw97HU1ERKRYUmEmNK7emC2xW3gs+jEmpEygflJ9Vn2xyutYIiIixY4KMwGgdGhpxnQYw5qYNYSGhNJ2aluGvjuUX47/4nU0ERGRYiPoCjMze9bMdprZdjN7y8wqep2pOIm+LJptcdt4sNmDjNs4jqikKNbtXed1LBERkWIh6AozYCkQ4ZyrD+wCHvc4T7FTrmQ5xnUax/I+yzl28hgtJ7dk+LLhHD1x1OtoIiIiRVrQFWbOufeccyd8L9cDNb3MU5y1q92O7YO3079hf8Z8MIbG4xuT8k2K17FERESKLAvmqXnMbAEwyzn3+hnWxQKxAFWrVm08c+bMfM+TkZFB+fLl8/04wWjDDxt4btdzHDx+kN6X96bX5b0IDQk97/0U5zYMBLWf/9SG/lMb+k9t6L/C3IZt27bd4pxrcqZ1nhRmZrYMqHaGVX92zs33bfNnoAnQzZ0jZJMmTdzmzZsDH/Q0q1atok2bNvl+nGB18MhBHlr8EK9vf51GlzZi6h1TiagScV77KO5t6C+1n//Uhv5TG/pPbei/wtyGZnbWwsyTS5nOuRudcxFnWE4VZX2B24Be5yrKpOBcVOYipnWdxpvd32Tvob00Ht+YMWvGcDLzpNfRREREioSgu8fMzG4G/gR0cc5prIYg1PXaruyI38Ft19zG8OXDaTW5Fbt+2OV1LBERkUIv6Aoz4GXgAmCpmW0zsySvA8n/qlyuMnPunsP0btPZ+f1OopKiGLdhHJku0+toIiIihVbQFWbOuTrOucucc1G+ZZDXmeTMzIyekT1Jj0+nbe22DF08lPavteeLH7/wOpqIiEihFHSFmRQ+1S+ozsIeC5nUZRJbvt5CZGIk47eMR7cHioiInB8VZhIQZkZMwxjSBqfRrEYz4hbG0Wl6J7766Suvo4mIiBQaKswkoGpVrMXS3kt5udPLJO9JJiIxgmmp09R7JiIikgsqzCTgQiyEIc2GkDoolfDK4fSZ14du/+7Gvox9XkcTEREJankuzMzsOjP7l2+y8f1mtsfMFpnZEDO7MJAhpXCqc3EdVt+/mmc7PMu7n7xLRGIEq/ev9jqWiIhI0MpTYWZm7wIDgCXAzcClQD1gBFAamG9mXQIVUgqvEiElGBY9jJS4FK6oeAUjPxxJz7k9OXDkgNfRREREgk5ee8x6O+f6O+feds597Zw74ZzLcM6lOOfGOufaAGsDmFMKuXqV67E2Zi0xV8Qw+8PZhCeEs3DXQq9jiYiIBJU8FWbOue8BzKycmYX4Pr7GzLqYWVj2bUROCSsRRu9avdk0cBOVy1am84zOxMyP4dCvh7yOJiIiEhT8vfn/faC0mdUAlgP9gCn+hpKiLapaFJsGbuKJlk8wNXUqkYmRLNu9zOtYIiIinvO3MDPffJbdgJecc13JutdMJEelQksxuv1o1saspWxYWTpM68CQd4aQcSzD62giIiKe8bswM7PrgF7AO77Phfq5TylGmtdszta4rTzS4hESNycSlRTFmj1rvI4lIiLiCX8Ls6HA48BbzrkdZnYlsNL/WFKclAkrw/Mdn2fV/avIdJm0ntyaYe8N48jxI15HExERKVB+FWbOufedc12cc2N8r3c75x4KTDQpblrXas32wdsZ1GQQY9eNpdH4Rmz8aqPXsURERAqMX4WZ70nM8Wb2npmtOLUEKpwUP+VLlifh1gSW3LeEjGMZRE+KZsSKERw7eczraCIiIvnO3/vBZgNJwETgpP9xRLLcdNVNpA1O45EljzA6eTQLdy1k6h1TaVCtgdfRRERE8o2/95idcM4lOuc2Oue2nFoCkkyKvYqlKzL59snMv3c+32Z8S9MJTRn9/mhOZJ7wOpqIiEi+8LcwW2Bm8WZ2qZldfGoJSDIRny51u7Ajfgfdru3GiJUjiJ4UzUf7P/I6loiISMD5W5j1Bf5I1vRLW3zLZn9DiZzukrKXMPOumcy6axa7D+6m4SsNGbt2LCczdQVdRESKDn+fyqx9huXKQIUTOV338O6kx6fTsU5Hhi0dRpupbfjswGdexxIREQkIf3vMMLMIM+tuZn1OLYEIJnI21cpXY94985h6x1TS9qVRP6k+CZsSyHSZXkcTERHxi7/DZTwJvORb2gLPAF0CkEskR2ZGnwZ9SI9Pp+XlLRmyaAgdX+/InkN7vI4mIiKSZ/72mN0FtAe+dc71AxoApfxOJZJLNSvUZHGvxSTdmsS6veuITIxk8tbJOOe8jiYiInLe/C3MjjjnMoETZlYB+A7QPWZSoMyMuCZxbB+8nahqUcS8HUOXmV345vA3XkcTERE5L/4WZpvNrCIwgawnMlMAzaEjnrjyoitZ2XclL3R8gWW7lxGRGMHM9JnqPRMRkULD36cy451zPzrnkoAOQF/fJU0RT4RYCA+3eJhtcdu4+uKr6TG3B93ndGf/z/u9jiYiInJOeSrMzOz/fP82OrUAFwOhvo9FPFW3Ul3WxKzh6fZPM3/nfCISI5i3c57XsURERHKU1x6zR33/jj3D8lwAcon4LTQklOEth7MldgvVL6hO11ld6fNWHw4eOeh1NBERkTPK0yTmzrmBvn/bBjaOSOBFVo1kw4ANjH5/NKOTR7Pi8xVM6jKJjnU6eh1NRETkd/JUmJlZt5zWO+fezFsckfxRskRJRrUdRee6nek7ry83T7+Z2EaxPHfTc1xQ6gKv44mIiAB5v5TZ2bf0ByYBvXzLROC+wEQTCbwm1ZuwJXYLj0U/xoSUCdRPqs+qL1Z5HUtERATIY2HmnOvne/rSAfWcc3c65+4EwgOaTiQflA4tzZgOY0jul0xoSChtp7Zl6LtD+eX4L15HExGRYs7fccyucM5lH8VzH3CNn/sUKRDXX3492+K28WCzBxm3cRxRSVGs27vO61giIlKM+VuYrTKzJWZ2v5n1Bd4BVgYgl0iBKFeyHOM6jWN5n+UcPXmUlpNbMnzZcI6eOOp1NBERKYb8HWD2AeAVsubIjALGO+ceDEQwkYLUrnY70ganERMVw5gPxtBkQhNSvknxOpaIiBQz/vaY4Zx70zn3iG95KxChRLxQoVQFJnSZwDs93+GHX36g+cTmjFo1iuMnj3sdTUREigm/CjMza2Fmm8wsw8yOmdlJM/spEMHMbJiZOTOrFIj9ieTWLVffQnp8OveE38PI1SNpMakFO77b4XUsEREpBvztMXsZ6AF8ApQBBgAv+RvKzC4ja+7NPf7uSyQvLi5zMa93e5253eey99BeGo1vxJg1YziZedLraCIiUoQF4lLmp0AJ59xJ59xkIBCzAbwAPEbWcBwinul2bTfS49O57ZrbGL58OK0mt2LXD7u8jiUiIkWUOZf32sfM3gduJGtg2W+Bb4D7nXMN/NhnF6C9c26omX0BNHHOfX+G7WKBWICqVas2njlzZl4PmWsZGRmUL18+349TlBXWNnTOsfy75bz46YsczzzOwNoD6VqjKyHm998256Wwtl8wURv6T23oP7Wh/wpzG7Zt23aLc67Jmdb5W5jVImvsspLAI8CFQIKvFy2n9y0Dqp1h1Z+BJ4CbnHOHcirMsmvSpInbvHlzHr6C87Nq1SratGmT78cpygp7G359+GsGLhjIok8W0eaKNky+fTJXVLyiwI5f2NsvGKgN/ac29J/a0H+FuQ3N7KyFWZ7/3DezEsBo59yvzrmfnHOjnHN/OFdRBuCcu9E5F3H6AuwGagOpvqKsJpBiZmcq4kQKXPULqrOwx0Imdp7Ilq+3EJkYyYQtE/DnDxwREZFT8lyYOedOApXNrGSgwjjn0pxzVZxzVzjnrgC+BBo5574N1DFE/GVm9G/Un7TBaTSr0YzYhbHc8sYtfPXTV15HExGRQs7fG2S+AD4ws7+Y2R9OLQHIJRL0alWsxdLeS3m508u8/5/3iUiM4PXtr6v3TERE8szfwuxrYKFvPxdkWwLC13OW4/1lIl4KsRCGNBvCtrht1Ktcj95v9abbv7uxL2Of19FERKQQCvXnzc65UYEKIlKYXX3J1bx///u8sP4FRqwYQURiBIm3JnJXvbu8jiYiIoVInnrMzGy8mUWeZV05M4sxs17+RRMpXEqElGBY9DBS4lKodWEt7p59Nz3n9uTAkQNeRxMRkUIir5cyE4C/mNlHZjbbzBLM7FUzSwbWknU5c07AUooUIvUq12Nd/3X8rc3fmP3hbMITwlm4a6HXsUREpBDIU2HmnNvmnOsONAX+BSQDbwMDnHMNnHMvOueOBjCnSKESViKMv9zwFzYO2EjlspXpPKMz/ef359Cvh7yOJiIiQcyvm/+dcxnOuVXOuRnOuXnOuY8DFUykKGh4aUM2DdzEEy2fYErqFCITI1m2e5nXsUREJEgV7HwyIsVQqdBSjG4/mrUxaykbVpYO0zow5J0h/HzsZ6+jiYhIkFFhJlJAmtdszta4rTzS4hESNyfSIKkBa/as8TqWiIgEkYAUZmZWLhD7ESnqyoSV4fmOz7Pq/lVkukxaT27NsPeG8euJX72OJiIiQcCvwszMos3sQ+Aj3+sGZpYQkGQiRVjrWq3ZPng7cY3jGLtuLI1eacSmrzZ5HUtERDzmb4/ZC0BH4AcA51wq0NrfUCLFQfmS5Um8LZEl9y3h8LHDXDfpOkasGMGxk8e8jiYiIh7x+1Kmc27vaZ866e8+RYqTm666ibTBadxX/z5GJ4+m2YRmpH6b6nUsEZHzlv5dOve9eR8f7v/Q6yiFlr+F2V4ziwacmZU0s2H4LmuKSO5VLF2RKXdMYf698/k241uaTmjK6PdHcyLzhNfRRERybcmnS5ieNp1GrzRi7NqxnMxUX8358rcwGwQMAWoAXwJRvtcikgdd6nYhPT6dbtd2Y8TKEURPimbn9zu9jiUS9NL2pWmMwCBw0mUVYu1qt2PY0mHcMOUGPj3wqcepChd/B5j93jnXyzlX1TlXxTl3n3Puh0CFEymOKpWtxMy7ZjLzzpl8dvAzGr7SkOfXPa+/PEVy8Pjyx+kwrQM95vbgh1/0a8grp3r537rnLV674zXSv0unQVID/rXxX2S6TI/TFQ55ncT8JTMbd7Yl0CFFiqN7Iu5hR/wObrrqJh5971HaTG3DV0e+8jqWSFD69cSvXFjqQuZ+OJeIxAjNT+uRU4VZaEgovRv0Jj0+nVaXt+KBdx/gpmk3sefQHo8TBr+89phtBrbksIhIAFQrX41598xjyu1TSNuXxoDNA0jclIhzzutoIkHlROYJoqpFsXHgRqqUq0LnGZ2JmR+j+WkL2KnCLMSyyouaFWrybq93GX/beDZ8tYGIhAhe3fqqfoblIK+TmE/NaQl0SJHizMzoG9WXtMFpRFwYQfyieG56XX95BqOfjv6kS84eOZF5gtCQ0KzibMBGnmj5BFNTp2p+2gJ2MvMkoSGhmNlvnzMzBjYeyPZB22l0aSP6v92fzjM6883hbzxMGrz8HWB2gZm9fdoyzcyGmlnpQIUUEbjswst4JvIZkm5NYt3edUQmRjJl2xT95RkkTmaepM64OjSb2Iz079K9jlPsnHRZBQH8d37adf3XUa5kud/mp804luFxyqLvROYJSliJM66rfVFtVvRdwYs3v8jyz5cTnhDOG2lv6GfYafx9KnM3kAFM8C0/AfuAa3yvRSSAzIy4JnFsH7ydqGpR9Jvfjy4zu+gvzyBwPPM4+3/ZT8o3KTQe35gxa8ao96wAneoxy65ZjWakxKbwhxZ/+G1+2uT/JHuUsHg40/chuxAL4aHmD7Etbht1K9Wl15u9uHv23ez/eX8Bpgxu/hZmDZ1zPZ1zC3zLfUAz59wQoFEA8onIGVx50ZWs7LuSFzq+wLLdy4hIjGBm+kz95emhU/fW/DH6j3S+pjPDlw+n1eRW7Pphl8fJiocTmScoEfK/PTVlwsowtuNYVt+/GoAbptzAsPeGceT4kYKOWCxk77nMSd1KdVnTbw3/aP8PFuxaQHhCOG999FYBJAx+/hZmlc3s8lMvfB9X8r3UvDIi+SjEQni4xcNsi9vG1RdfTY+5Pbhnzj18/8v3Xkcrlk4VZpeWv5TZd8/mjW5vsPP7nUQlRTFuwzgNFZDPztVT06pWK1IHpTKoyaCs+WnHN2LjVxsLMGHxcK7vQ3YlQkrwp5Z/YkvsFmpWqEm3f3ej91u9OXjkYD6nDG7+FmaPAmvMbKWZrQKSgT+aWTlADwGIFIC6leqyJmYNT7V7ink75xGeEM68nfO8jlXsnLpseerG5x6RPUiPT6dt7bYMXTyU9q+154sfv/A2ZBF26qbznJQvWZ6EWxN47773yDiWQfSkaM1PG2Bn67nMSUSVCDYM2MCTNzzJzPSZRCRGsPjTxfmUMPj5O8DsIuBq4GHfUtc5945z7mfn3D8DEVBEzi00JJTHWz3O5tjNVL+gOl1ndaXPW3348dcfvY5WbGQfv+mU6hdUZ2GPhUzqMoktX28hMjGSCVsm6JJzPjifnpoOV3UgfXA6fRr0YXTyaJpOaKr5aQPkfL4P2YWVCGNkm5Gs77+ei0pfRKfpnRj49kB+OvpTPqQMbn5PYg40BsKB+kB3M+sTgH2KSB7Ur1qfDQM28NfWf+WNtDeISIhgyadLvI5VLJwqzE7vLTAzYhrGkDY4jWY1mhG7MJZb3riFr37SYMGBlNPTgGdyYekLefX2V1nQYwHf/fyd5qcNkNzeY3Y2jas3ZnPsZh6LfoxXt71K/cT6rPx8ZQATBj9/h8uYBjwHtASa+pYmAcglInlUskRJRrUdxfoB66lQqgI3T7+ZuAVxHD562OtoRdqpOQLP9kupVsVaLO29lJc7vcz7/3mfiMQIpqVOU+9ZgOS1p+a2a24jfXA6d9a787f5aT/a/1E+JCwe8vp9yK50aGnGdBhDcr9kwkqE0e61djz07kP8cvyXAKUMbv72mDUBrnfOxTvnHvQtDwUimIj4p0n1JqTEpfDH6D8yIWUC9ZPqs+qLVV7HKrLOdCnzdCEWwpBmQ0gdlEp45XD6zOtDt393Y1/GvoKKWWT501NzSdlLmHHnDP5917/ZfXA3DV9pyNi1YzXcSR6cb89lTqIviyZ1UCoPNXuIlza+RFRSFGv3rg3IvoOZv4VZOlAtEEFEJPBKh5bmmQ7PkNwvmdCQUNpObcvDix8uNn95FqTfLmXm4pdSnYvrsPr+1Tzb4Vne/eRdIhIjmPPhnPyOWKQFoiC4O/xudsTv4OY6NzNs6TDaTG3DZwc+C1DC4iEQPWbZlQ0ry4udXmRFnxUcO3mMVpNb8aelf+LXE78G7BjBxt/CrBLwoZktyT76fyCCiUjgXH/59WyL28YDTR/gxQ0vEpUUxbq967yOVaTkpscsuxIhJRgWPYyUuBSuqHgFd8++m55ze3LgyIH8jFlkBaogqFq+Km/d8xav3fEaafvSqJ9Un4RNCRruJJdy83RsXrSt3Za0wWn0b9ifZ9Y+Q+Pxjfn48McBP04w8LcwGwncATwFjM22iEiQKVeyHC/d8hLL+yzn6MmjtJzckuHLhnP0xFGvoxUJ2YfLOB/1KtdjXf91/L3t35n94WzCE8JZuGthfkQs0gJZEJgZvRv0Jj0+nZaXt2TIoiF0fL2j5qfNhbwMl5FbF5S6gPGdx7Oo5yJ+/PVH4lPiGblqJMdPHs+X43nF3+EyVmdfgBNA98BEE5H80K52O9IGp9Evqh9jPhhDkwlNSPkmxetYhd759phlFxoSyojWI9g0cBNVylWh84zOxMyP4dCvhwIds8gK9CU0gJqushcxAAAgAElEQVQVarK412Jeue0V1n+5nsjESF7d+qoe2MhBfnwfTtfp6k6kD06nfZX2jFo9iuYTm5O2Ly1fj1mQ/B4uw8yizOwZM/sC+H+AHmcRCXIVSlVgYpeJvNPzHX745QeaT2zOqFWjitxfngXpbMNlnI+oalFsHLCRJ1o+wdTUqUQmRrJs97JARSzS8qunxsyIbRzL9kHbaVitIf3f7k/nGZ01P+1Z+DtcRm5dVOYinrj2Cd7s/iZf/vQlTSY04R9r/lEkhjvJU2FmZteY2V/N7CPgZWAvYM65ts65lwOaUETyzS1X30J6fDr3hN/DyNUjaTGpBTu+2+F1rELJnx6z7EqFlmJ0+9GsjVlL2bCydJjWgSHvDCHjWEYgYhZZ+d1TU/ui2qzou4J/dvwnyz9fTnhCODPSZqj37DQF0WOWXddru7Ijfgedr+nM48sfLxLz0+a1x2wn0B7o7Jxr6Zx7CdBzxSKF0MVlLub1bq8z5+457Dm0h0bjG/HMB89oqIDzdK5xzM5X85rN2Rq3lUdaPELi5kSikqJYs2dNQPZd1DjnCqSnJsRCGNpiKNvitlG3Ul16vtmT7nO6s//n/fl63MIkkMNl5FblcpV/m5/24+8/pkFSA15c/2KhfWAjr4XZncC3wEozm2Bm7QELXCwRKWh31ruTHfE7uO2a2/jTsj8Vib88C9L5DJeRW2XCyvB8x+dZdf8qMl0mrSe3Zth7wzhy/EjAjlEUnPoFXFA9NXUr1SW5XzJPt3+atz9+m4jECM1P61PQPWanZJ+ftn3t9jy85GHaTW3H5wc/L/As/spTYeace8s5dw/wf8Aq4BGgqpklmtlNAcwnIgWoSrkqzLl7Dq93fZ2Pvv+IqKQoXtrwUqH9y7MgBepS5pm0rtWa7YO3M6jJIMauG0uj8Y3Y+NXGgB+nsMqPovhcQkNCGd5yOFtit1Djghp0ndWV3m/15uCRgwWWIRjl13AZuVX9guos6LGAV7u8Sso3KdRPqs/4LeML1SVnf5/K/Nk5N905dxtQE9gGDPc3lJk9aGYfm9kOM3vG3/2JSO6ZGb3q92JH/A7aXNGGhxY/xI2v3cgXP37hdbSgltfhMnKrfMnyJNyawHv3vUfGsQyiJ0UzYsUIjp08li/HK0zysyg+l4gqEWwYsIEnb3iSGWkziEiMYPGniws8R7DIz+EycsvM6NewH2mD02heozlxC+PoNL0TX/70pae5cisQk5gD4Jw74Jx7xTnXzp/9mFlb4HagvnMunKy5OEWkgFW/oDrv9HyHiZ0nsvnrzUQmRjJhy4RC9ZdnQSqo4qDDVR1IG5xG7wa9GZ08mmYTmpH6bWq+HjPYBfr+vvMVViKMkW1GsmHABi4qfRGdpncidkFssZyf1qtLmWdSq2It3uv9Hv+65V8k70kmIiGC11JfC/qfYQErzAJoMPAP59xRAOfcdx7nESm2zIz+jfqTNjiNptWbErswllveuIWvfvrK62hBJxDDZeRWxdIVmXz7ZN6+922+zfiWphOaMvr90UViqIC8KMi2z0nj6o3ZHLuZx6IfY2LKxGI5P21BDZeRWyEWQnzTeFIHpRJRJYK+8/rSdVbXoJ6f1oKtcjSzbcB84GbgV2CYc27TGbaLBWIBqlat2njmzJn5ni0jI4Py5cvn+3GKMrWhf7xsv0yXyfyv5/PK7lcICwnjoToPcWOVGzErXM/95Fcbrt6/mpEfjmRi44lcVf6qgO//bA4dP8SLn7zIyv0r+b8L/o/hdYdTq1ytfD1msP0/PnjsIN3WdWNonaHcUeMOr+MAkH4onX98/A++OvIV3Wp0Y2DtgZQuUfq39cHWhoHSd1Nfrix3JU/WezLfj3W+bXjSnWTul3OZ+PlEypQowyPXPEKbym3yL2AO2rZtu8U51+SMK51zBb4Ay8iaAP305Xbfv+PIesqzGfA5vgLybEvjxo1dQVi5cmWBHKcoUxv6Jxjab9f3u1z0pGjHSFzXmV3dvox9Xkc6L/nVhrPSZzlG4nZ8tyNf9p+b418y5hJX6u+l3HMfPOdOnDyRb8cKhvMwu69/+toxEvfK5le8jvI7GUcz3IOLHnSMxF097mr3wZ4PflsXbG0YKHXG1XE95vQokGPltQ0//O5D12R8E8dI3D2z73Hf//x9YIPlArDZnaWm8eRSpnPuRudcxBmW+cCXwJu+7BuBTLImSxeRIHD1JVfz/v3v82yHZ3nnk3cITwhnzodzvI7lOS9vQAfoHt6d9Ph0OtbpyLClw2gztQ2fHfjMkywFzeu2P5tyJcsxrtM4lvdZzrGTx2g1uVWRn582mO4xO5trK1/72/y0b370JhGJESz4eIHXsX4TjPeYzQPaQdYMA0BJ4HtPE4nI75QIKcGw6GGkxKZQ68Ja3D37bnrO7cmBIwe8juYZL4ZsOF218tWYd888pt4xlbR9adRPqk/CpoQiP9xJMLR9TtrVbsf2wdvp37A/Yz4YQ+Pxjfn48Mdex8oXXg+XkVun5qfdOHAjVcpVocvMLvSb3y8o5qcNxsLsVeBKM0sHZgJ9fd1+IhJkwquEs67/Ov7W5m/M/nA2EQkRvLPrHa9jeSJYem3MjD4N+pAen07Ly1syZNEQOr7ekT2H9niaKz8FS9vnpEKpCozvPJ5FPRdx8NeDDNk6hJGrRha5+WkLQ49Zdtnnp30t9TUiEyNZ+tlSTzMFXWHmnDvmnLvPd2mzkXNuhdeZROTswkqE8Zcb/sLGARu5pOwl3DbjNvrP7x8Uf3kWpPwex+x81axQk8W9FpN0axLr9q4jMjGSyVsnB/1QAXnh9XAZ56PT1Z1IH5xOu8rtGLV6FC0mtSD9u3SvYwWMF1My+evU/LTr+q+jXMlyvLD+BU//nwRdYSYihVPDSxuyeeBmHm/5OFNSpxCZGMny3cu9jlVggmXIhuzMjLgmcWwfvJ2oalHEvB1Dl5ld+ObwN15HC6hgbPucXFTmIp649gne7P4mew/tpfH4xoxZM6ZIzE9b2HrMsmtWoxkpsSm81vU1T582V2EmIgFTKrQUT7V/ig9iPqBMWBlunHYjDyx6gJ+P/ex1tHwXzJfTrrzoSlb2XckLHV9g2e5lhCeEMzN9ZpHpPQvmts9J12u7siN+B52v6czw5cNpOblloZ+fNtjGMTtfZcLKUKmst88bqjATkYBrUbMFW+O28nDzh0nYlECDpAas2bPG61j5Ktgvp4VYCA+3eJhtcduoW6kuPeb2oPuc7uz/eb/X0fwWbJeRz0flcpWZffds3uj2Bh9//zFRSVG8uP7FQvvARjBMyVTYqTATkXxRNqwsL9z8Aiv7riTTZdJ6cmuGvTeMX0/86nW0fFFYem3qVqpLcr9knm7/NPN3ziciMYJ5O+d5HcsvhaXtz8bM6BHZg/T4dNrVbsfDSx6m/Wvt+fzg515HO2+F+VJmsFBhJiL56oYrbiB1UCqxjWMZu24sjV5pxKav/mcyj0Iv2IdsyC40JJThLYezJXYLNS6oQddZXenzVh8OHjnodbQ8KUxtn5PqF1RnQY8FTOoyiS1fb6F+Un3GbxlfqC45F5bhMoKZCjMRyXcXlLqApNuSWNxrMT8d/YnrJl3HX1b8hWMnj3kdLWAKY69NZNVI1g9Yz19b/5U30t4gIjGCxZ8u9jrWeSuMbX82ZkZMwxjSBqfRrEYz4hbG0Wl6J7786Uuvo52Tc67Q32MWDFSYiUiB6VinI+nx6dxX/z7+X/L/o9mEZmzft93rWAFx6j6nwnZ/TckSJRnVdhTrB6ynYumKdJreibgFcRw+etjraLkW7Pf35UWtirVY2nspL3d6meQ9yUQkRDAtdVpQ956d+j4U9p5Lr6kwE5ECVbF0RabcMYX5987n24xvaTK+CU8lP/Vbr0dhdSLzBCEWQogVzh+rTao3YUvsFh6LfowJKROon1SfVV+s8jpWrhSlHrPsQiyEIc2GkDoolYgqEfSZ14eus7qyL2Of19HOqKh+Hwpa4fwJIiKFXpe6XUiPT6frtV3584o/c/2r17Pz+51ex8qzwjiw5ulKh5ZmTIcxJPdLJjQklLZT2zL03aH8cvwXr6PlqLCNY3a+6lxch9X3r+a5Ds+x+NPFhCeEM3vHbK9j/Y/C/HRsMFFhJiKeqVS2ErPumsXMO2fy6YFPafhKQ55f93yhHGizKN1bc/3l17MtbhsPNnuQcRvHEZUUxbq967yOdVbFoaemREgJHo1+lJS4FGpfVJvuc7rTY24PfvjlB6+j/aY4fB8KggozEfHcPRH3sCN+Bx2u7MCj7z1K26lt+ezAZ17HOi9FbZiAciXLMa7TOJb3Wc6xk8doObklw5cN5+iJo15H+x/FqaemXuV6rOu/jr+3/TtzPpxDRGIEC3ct9DoWUPR7LguKCjMRCQrVyldj/r3zmXL7FFL3pdIgqQGJmxKD+mbn7IrqwJrtardj++DtxETFMOaDMTQe35hdh4NrdPqiMlxGboWGhDKi9Qg2DdxElXJV6DyjMzHzYzyfn1Y9ZoGhwkxEgoaZ0TeqL+mD04m+LJr4RfF0fL0jew/t9TraORW1HrPsKpSqwIQuE1jUcxEHjhwgfms8o1aN4vjJ415HA4pvQRBVLYqNAzbyRMsnmJo6lcjESJbtXuZZnqL4dKwXVJiJSNC57MLLWHLfEhJvTWTt3rVEJEYwZduUoO49Kw4Da3a6uhPp8em0rdyWkatH0mJSC9K/S/c6VrEuCEqFlmJ0+9GsjVlL2bCydJjWgfh34sk4llHgWYpbz2V+UWEmIkHJzBjUZBDbB28nqloU/eb34/aZt/NtxrdeRzujotxjlt3FZS7mz9f+mbnd57L30F4aj2/MmDVjPH1go7j2mGXXvGZztsZt5Q8t/kDS5iQaJDUg+T/JBZpB34fAUGEmIkHtyouuZGXflbzQ8QWW7l5KeEI4s9JneR3rf5xwhX+4jPPR7dpupMenc9s1tzF8+XBaTW7Frh+8ufdMN51nKRNWhrEdx7L6/tUA3DDlBh5d8ihHjh8pkOMXp4cw8pMKMxEJeiEWwsMtHmZr3FbqXFyHe+feS/fZ3fn+l++9jvab4tJjll2VclWYc/ccpnebzs7vdxKVFMW4DePIdJkFmkM9Nb/XqlYrUgelMqjJIJ5f/zyNxjdi41cb8/24+j4EhgozESk0/q/S//FBzAc81e4p5u2cR3hCOPN3zvc6FlA87jE7EzOjZ2TPrHvPardl6OKhtH+tPV/8+EWBZVBPzf8qX7I8Cbcm8N5975FxLIPoSdGMWDEiX+enVc9lYKgwE5FCJTQklMdbPc7m2M1Uv6A6d8y6g77z+vLjrz96mquoDpeRW9UvqM7CHguZ2HkiW77eQmRiJBO2TCiQBzbUU3N2Ha7qQNrgNHo36M3o5NE0ndCU1G9T8+VY+j4EhgozESmU6letz4YBG/hL678wfft0IhIiWPLpEs/yFMdLmaczM/o36k/a4DSa1WhG7MJYbnnjFr766at8Pa6eBsxZxdIVmXz7ZN6+9232Zeyj6YSmjH5/dMDnpy3OT8cGkgozESm0SpYoyd/a/o11/ddRoVQFbp5+M3EL4jh89HCBZylKUzL5q1bFWiztvZSXO73M+/95n4jECKalTsu33jP11ORO57qd2RG/gzvr3cmIlSOInhTNR/s/Ctj+VSAHhgozESn0mtZoSkpcCsOuG8aElAnUT6rPqi9WFWgG9Zj9XoiFMKTZEFIHpRJeOZw+8/rQ7d/d2JexL+DHUk9N7l1S9hJm3DmDWXfNYvfB3TR8pSFj144NyHAnKpADQ4WZiBQJpUNL8+xNz5LcL5kSVoK2U9vy8OKH+eX4LwVy/BOZxWu4jNyqc3EdVt+/mmc7PMu7n7xLRGIEcz6cE9Bj6Kbz89c9vDs74nfQsU5Hhi0dxg1TbuDTA5/6tU89hBEYKsxEpEi5/vLrSR2UygNNH+DFDS/S8JWGrP9yfb4fVz1mZ1cipATDooeREpfCFRWv4O7Zd9Nzbk8OHDkQkP2fyDyBYYSYfqWdj6rlqzLvnnlMvWMq6d+l0yCpAQmbEvI83Il6zAJDZ7GIFDnlSpbjpVteYlnvZfx64leuf/V6Hl/2OEdPHM23YxbX4TLOR73K9Vgbs5a/tfkbsz+cTXhCOAt3LfR7v2r7vDMz+jToQ3p8Oi0vb8mQRUO4adpN7Dm057z3pZ7LwFBhJiJFVvsr25M2OI1+Uf34xwf/oMmEJuw6nD+j06vHLHfCSoTxlxv+wsYBG6lctjKdZ3QmZn4Mh349lOd9qu39V7NCTRb3Wswrt73C+i/XE5kYyatbXz2vBzbUYxYYKsxEpEirUKoCE7tMZGGPhfzwyw/Eb41n1KpRHD95PKDHKe7jmJ2vhpc2ZNPATTzR8gmmpk4lMjGSZbuX5WlfavvAMDNiG8eyffB2GlZrSP+3+9N5Rme+OfxNrt6vhzACQ4WZiBQLt15zK+nx6bSp3IaRq0fSYlILdny3I2D7V6/N+SsVWorR7UezNmYtZcPK0mFaB4a8M4SMYxnntR+1fWBdedGVrOi7gn92/CfLP19OeEI4M9JmnLP3TD1mgaHCTESKjYvLXMyIa0cw5+457Dm0h0bjG/HMB88EZKgAjWOWd81rNmdr3FYeafEIiZsTiUqKYs2eNbl+v9o+8EIshKEthrItbht1K9Wl55s96T6nO/t/3n/W92gcs8BQYSYixc6d9e5kR/wObr36Vv607E+0mtyKT374xK99argM/5QJK8PzHZ9n1f2ryHSZtJ7cmmHvDePI8SPnfK/aPv/UrVSX5H7JPN3+aebvnE94Qjjzds4747bqMQsMFWYiUixVKVeFud3n8nrX1/no+49okNSAlza85NdQAfqF5L/WtVqzffB24hrHMXbdWBqNb8TGrzbm+B61ff4KDQlleMvhbIndQs0KNek6qyu93+rNwSMHf7edxjELDBVmIlJsmRm96vcifXA6ba5ow0OLH+LG127kix+/OO99aciGwClfsjyJtyWy5L4lZBzLIHpSNCNWjODYyWNn3F6XMgtGZNVINgzYwJM3PMmMtBlEJEaw+NPFv63XcBmBocJMRIq9GhVq8E7Pd5jQeQKbvt5EZGIkE1MmnvdQASoOAuumq24ibXAa99W/j9HJo2k2oRmp36b+z3Zq+4ITViKMkW1GsmHABiqWrkin6Z2IXRDL4aOHdSkzQFSYiYiQ1Xs2oNEA0gan0bR6UwYuGMitb9zKVz99lav36z6n/FGxdEWm3DGF+ffO59uMb2k6oSmj3x/9WxEAGi7DC42rN2ZL7BYei36MiSkTiUyMJHlPMqDCzF9BV5iZWZSZrTezbWa22cyaeZ1JRIqPKypewbI+y3ip00us+mIVEYkRvL799VwNFaBfSPmnS90u7IjfQbdruzFi5QiiJ0Xz0f6PALW9V0qHlmZMhzGsiVlDWIkwpm2fBqgw81fQFWbAM8Ao51wU8FffaxGRAhNiITzQ7AFSB6VybaVr6f1Wb+7895189/N3Z32P7nPKf5eUvYSZd81k1l2z2H1wNw1facjYtWM5dvKY2t5D0ZdFsy1uGw81e4jmNZpToVQFryMVasFYmDng1Hf1QuBrD7OISDF29SVXk9wvmWdufIZ3PnmH8IRw5n4494zbqtem4HQP7056fDod63Rk2NJhLPh4gdreY+VKluPFTi+yfsB6SpYo6XWcQi0YC7OHgWfNbC/wHPC4x3lEpBgrEVKCP17/R1JiU6h1YS3umn0Xvd7sxYEjB363ne5zKljVyldj3j3zmHL7FCqUqkClspW8jiQSEHY+Tx0F7KBmy4BqZ1j1Z6A9sNo5N9fMugOxzrkbz7CPWCAWoGrVqo1nzpyZn5EByMjIoHz58vl+nKJMbegftZ///GnDE5knmL5nOtP2TKNiWEUeveZRrrvkOgA6Jneka/WuDLpqUCDjBqVgOw8PHz9MJplcGHah11FyLdjasDAqzG3Ytm3bLc65Jmda50lhlhMzOwRUdM45MzPgkHMuxwvWTZo0cZs3b873bKtWraJNmzb5fpyiTG3oH7Wf/wLRhlu/2UqfeX1I/y6dmKgYXrj5BSo9U4lh0cN4qv1TgQkaxHQe+k9t6L/C3IZmdtbCLBgvZX4N3OD7uB3g3zwpIiIB1vDShmweuJnh1w9nSuoUIhIiOJ55XMNliIjfgrEwGwiMNbNU4Cl8lytFRIJJqdBSPH3j03wQ8wFlwsoA6KZnEfFb0D3G4pxbAzT2OoeISG60qNmCrXFbmbx1Ml3qdvE6jogUckFXmImIFDZlw8oypNkQr2OISBEQjJcyRURERIolFWYiIiIiQUKFmYiIiEiQUGEmIiIiEiRUmImIiIgECRVmIiIiIkFChZmIiIhIkAi6uTLzwsz2A/8pgENVAr4vgOMUZWpD/6j9/Kc29J/a0H9qQ/8V5jas5ZyrfKYVRaIwKyhmtvlsk45K7qgN/aP285/a0H9qQ/+pDf1XVNtQlzJFREREgoQKMxEREZEgocLs/Iz3OkARoDb0j9rPf2pD/6kN/ac29F+RbEPdYyYiIiISJNRjJiIiIhIkVJiJiIiIBAkVZqcxs5vN7GMz+9TMhp9hvZnZON/67WbWyIucwSwXbdjGzA6Z2Tbf8lcvcgYzM3vVzL4zs/SzrNd5mINctJ/OwXMws8vMbKWZfWRmO8xs6Bm20XmYg1y2oc7FHJhZaTPbaGapvjYcdYZtitZ56JzT4luAEsBnwJVASSAVqHfaNrcA7wIGtAA2eJ07mJZctmEbYKHXWYN5AVoDjYD0s6zXeehf++kcPHcbXgo08n18AbBLPw/zpQ11LubchgaU930cBmwAWpy2TZE6D9Vj9nvNgE+dc7udc8eAmcDtp21zO/Cay7IeqGhmlxZ00CCWmzaUc3DOvQ8cyGETnYc5yEX7yTk4575xzqX4Pj4MfATUOG0znYc5yGUbSg5851aG72WYbzn9qcUidR6qMPu9GsDebK+/5H//E+Vmm+Ist+1zna9r+l0zCy+YaEWKzkP/6RzMJTO7AmhIVm9FdjoPcymHNgSdizkysxJmtg34DljqnCvS52Go1wGCjJ3hc6dX5rnZpjjLTfukkDVPWIaZ3QLMA67O92RFi85D/+gczCUzKw/MBR52zv10+uozvEXn4WnO0YY6F8/BOXcSiDKzisBbZhbhnMt+/2iROg/VY/Z7XwKXZXtdE/g6D9sUZ+dsH+fcT6e6pp1zi4AwM6tUcBGLBJ2HftA5mDtmFkZWQTHdOffmGTbReXgO52pDnYu555z7EVgF3HzaqiJ1Hqow+71NwNVmVtvMSgL3Am+fts3bQB/fUyAtgEPOuW8KOmgQO2cbmlk1MzPfx83IOg9/KPCkhZvOQz/oHDw3X/tMAj5yzj1/ls10HuYgN22oczFnZlbZ11OGmZUBbgR2nrZZkToPdSkzG+fcCTN7AFhC1tOFrzrndpjZIN/6JGARWU+AfAr8AvTzKm8wymUb3gUMNrMTwBHgXud7tEaymNkMsp7WqmRmXwJPknXTq87DXMhF++kcPLfrgd5Amu/+HoAngMtB52Eu5aYNdS7m7FJgqpmVIKto/bdzbmFR/r2sKZlEREREgoQuZYqIiIgECRVmIiIiIkFChZmIiIhIkFBhJiIiIhIkVJiJiIiIBAkVZiLiFzNzZjY22+thZjaygDNMMbO7fB9PNLN6fu7vCjNLP8vnj5jZtmxLSX+OJSKSncYxExF/HQW6mdnTzrnvz/fNZhbqnDsRqDDOuQGB2tdZfOacizrbykB/PSJSvKjHTET8dQIYDzxy+gozq2Vmy81su+/fy32fn2Jmz5vZSmCMmY00s6lm9p6ZfWFm3czsGTNLM7PFvmltMLO/mtkmM0s3s/GnRkw/7ZirzKyJmXXJ1qv1sZl97lvf2MxWm9kWM1tiZpdm+3yqma0DhpxPA/jyjzez94DXLGvS5Wd9WbebWZxvOzOzl83sQzN7x8wWZevp+8J8U/H48q/yfVzOzF717Wurmd3u+/z9Zvamr30+MbNnsuW52cxSfF/PcjML8W1T2bc+xMw+NU39IxJ0VJiJSCD8C+hlZhee9vmXgdecc/WB6cC4bOuuAW50zj3qe30VcCtwO/A6sNI5F0nWaOi3ntqfc66pcy4CKAPcdrZAzrm3nXNRvt6tVOA5X4H3EnCXc64x8Cow2veWycBDzrnrzvG1XpWt4PtXts83Bm53zvUE+pM1LUxToCkw0MxqA12BukAkMBCIPsexAP4MrPDtqy3wrJmV862LAu7x7e8eM7vMV3xNAO50zjUA7nbOZZLVpr1877sRSM1LD6eI5C9dyhQRvznnfjKz14CHyCqkTrkO6Ob7eBrwTLZ1s51zJ7O9ftc5d9zM0siazmux7/NpwBW+j9ua2WNAWeBiYAewIKdsvu2POOf+ZWYRQASw1NfZVgL4xldQVnTOrc6WtdNZdnm2S5lvO+dOfe03AfVP9YYBFwJXA62BGb6v+2szW5FT9mz76mJmw3yvS+Ob0gdY7pw75Ps6PwRqARcB7zvnPgdwzh3wbfsqMB/4JxBDViEqIkFGhZmIBMo/gRRy/oWffQ64n09bdxTAOZdpZsezzReYCYSaWWkgAWjinNvre8CgdE6BzKw9cDdZBRGAATtO7xWzrEmS/Z2fLvvXY8CDzrklpx3nlhyOc4L/XsXI/nUZWb1fH5+2r+b42sznJFk/0+1Mx/C12T4zawc057+9ZyISRHQpU0QCwtcz82+yLuOdsha41/dxL2CNH4c4Vax8b2blyZr8+azMrBZZhVz3bD1ZHwOVzew63zZhZhbunPsROGRmLbNl9ccSsiamPnVv3DW+y4/vA/f67kG7lKxLk6d8QdblUIA7T9vXg6fupzOzhuc49jrgBt+lU8zs4mzrJpJ1SfPfp/VWikiQUGEmIoE0Fsh+Q/lDQD8z2w70Bobmdce+4mkCWZc25yHompYAAADRSURBVAGbzvGW+4FLgLd894Mtcs4dI6ugG2NmqcA2/nufVz/gX76b/4+caYfnYSLwIZBiWcNuvEJWb9ZbwCe+ryERWJ3tPaOAF80smazer1P+DoQB2337+ntOB3bO7QdigTd9X+OsbKvfBsqjy5giQcv+e7VAREQKkplNARY65+YU0PGaAC8451oVxPFE5PzpHjMRkWLAzIYDg9G9ZSJBTT1mIiIiIkFC95iJiIiIBAkVZiIiIiJBQoWZiIiISJBQYSYiIiISJFSYiYiIiASJ/w9yxsN5vlP3FgAAAABJRU5ErkJggg==\n", "text/plain": [ "<Figure size 720x576 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "w, h_response = freqz(hsinc)\n", "fig=plt.figure(figsize=(10,8))\n", "fig.suptitle('Frequency Response', fontsize=16)\n", "plt.subplot(2,1,1)\n", "plt.plot(w, 20 * np.log10(abs(h_response)), 'b')\n", "plt.ylabel('Amplitude (dB)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()\n", "plt.subplot(2,1,2)\n", "angles = np.angle(h_response)\n", "plt.plot(w, np.unwrap(angles), 'g')\n", "plt.ylabel('Angle (radians)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ "Here we can see that the magnitude of the frequency plot is indeed identical between the linear phase and the minimum phase version (except for an offset of about 5 dB, which is not important because it is a constant gain factor).\n", " \n", "But looking at the phase, we see that the minimum phase version has less phase lag.\n", "\n", "Looking at normalized frequency 1.5, we see that the linear phase filter has a phase lag (or group delay) of about -7 Rad’s (using unwraping), whereas, the minimum phase filter has a **reduced phase** lag of about -5 Rad’s (from frequency zero to 1.5)!\n", "\n", "If we take the derivative of the phase function to obtain the group delay, we will get correspondingly lower values, which means the minimum phase filter will have **less group delay** than the linear phase filter. In fact, it has **the lowest possible delay for the given magnitude response** of the filter. \n", "\n", "So if you have a given magnitude filter design, and want to obtain the **lowest possible delay**, you have to take **minimum phase filters.**\n", "\n", "Also observe the phase wrap around points. They are not always at $\\pm\\pi$, but in other cases where the magnitude has a zero crossing, where the phase is not well defined." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "A convenient Scipy function to obtain a minimum phase filter with a similar (not exactly the same) magnitude frequency response of a linear phase filter is “scipy.signal.minimum_phase”." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function minimum_phase in module scipy.signal.fir_filter_design:\n", "\n", "minimum_phase(h, method='homomorphic', n_fft=None)\n", " Convert a linear-phase FIR filter to minimum phase\n", " \n", " Parameters\n", " ----------\n", " h : array\n", " Linear-phase FIR filter coefficients.\n", " method : {'hilbert', 'homomorphic'}\n", " The method to use:\n", " \n", " 'homomorphic' (default)\n", " This method [4]_ [5]_ works best with filters with an\n", " odd number of taps, and the resulting minimum phase filter\n", " will have a magnitude response that approximates the square\n", " root of the the original filter's magnitude response.\n", " \n", " 'hilbert'\n", " This method [1]_ is designed to be used with equiripple\n", " filters (e.g., from `remez`) with unity or zero gain\n", " regions.\n", " \n", " n_fft : int\n", " The number of points to use for the FFT. Should be at least a\n", " few times larger than the signal length (see Notes).\n", " \n", " Returns\n", " -------\n", " h_minimum : array\n", " The minimum-phase version of the filter, with length\n", " ``(length(h) + 1) // 2``.\n", " \n", " See Also\n", " --------\n", " firwin\n", " firwin2\n", " remez\n", " \n", " Notes\n", " -----\n", " Both the Hilbert [1]_ or homomorphic [4]_ [5]_ methods require selection\n", " of an FFT length to estimate the complex cepstrum of the filter.\n", " \n", " In the case of the Hilbert method, the deviation from the ideal\n", " spectrum ``epsilon`` is related to the number of stopband zeros\n", " ``n_stop`` and FFT length ``n_fft`` as::\n", " \n", " epsilon = 2. * n_stop / n_fft\n", " \n", " For example, with 100 stopband zeros and a FFT length of 2048,\n", " ``epsilon = 0.0976``. If we conservatively assume that the number of\n", " stopband zeros is one less than the filter length, we can take the FFT\n", " length to be the next power of 2 that satisfies ``epsilon=0.01`` as::\n", " \n", " n_fft = 2 ** int(np.ceil(np.log2(2 * (len(h) - 1) / 0.01)))\n", " \n", " This gives reasonable results for both the Hilbert and homomorphic\n", " methods, and gives the value used when ``n_fft=None``.\n", " \n", " Alternative implementations exist for creating minimum-phase filters,\n", " including zero inversion [2]_ and spectral factorization [3]_ [4]_.\n", " For more information, see:\n", " \n", " http://dspguru.com/dsp/howtos/how-to-design-minimum-phase-fir-filters\n", " \n", " Examples\n", " --------\n", " Create an optimal linear-phase filter, then convert it to minimum phase:\n", " \n", " >>> from scipy.signal import remez, minimum_phase, freqz, group_delay\n", " >>> import matplotlib.pyplot as plt\n", " >>> freq = [0, 0.2, 0.3, 1.0]\n", " >>> desired = [1, 0]\n", " >>> h_linear = remez(151, freq, desired, Hz=2.)\n", " \n", " Convert it to minimum phase:\n", " \n", " >>> h_min_hom = minimum_phase(h_linear, method='homomorphic')\n", " >>> h_min_hil = minimum_phase(h_linear, method='hilbert')\n", " \n", " Compare the three filters:\n", " \n", " >>> fig, axs = plt.subplots(4, figsize=(4, 8))\n", " >>> for h, style, color in zip((h_linear, h_min_hom, h_min_hil),\n", " ... ('-', '-', '--'), ('k', 'r', 'c')):\n", " ... w, H = freqz(h)\n", " ... w, gd = group_delay((h, 1))\n", " ... w /= np.pi\n", " ... axs[0].plot(h, color=color, linestyle=style)\n", " ... axs[1].plot(w, np.abs(H), color=color, linestyle=style)\n", " ... axs[2].plot(w, 20 * np.log10(np.abs(H)), color=color, linestyle=style)\n", " ... axs[3].plot(w, gd, color=color, linestyle=style)\n", " >>> for ax in axs:\n", " ... ax.grid(True, color='0.5')\n", " ... ax.fill_between(freq[1:3], *ax.get_ylim(), color='#ffeeaa', zorder=1)\n", " >>> axs[0].set(xlim=[0, len(h_linear) - 1], ylabel='Amplitude', xlabel='Samples')\n", " >>> axs[1].legend(['Linear', 'Min-Hom', 'Min-Hil'], title='Phase')\n", " >>> for ax, ylim in zip(axs[1:], ([0, 1.1], [-150, 10], [-60, 60])):\n", " ... ax.set(xlim=[0, 1], ylim=ylim, xlabel='Frequency')\n", " >>> axs[1].set(ylabel='Magnitude')\n", " >>> axs[2].set(ylabel='Magnitude (dB)')\n", " >>> axs[3].set(ylabel='Group delay')\n", " >>> plt.tight_layout()\n", " \n", " References\n", " ----------\n", " .. [1] N. Damera-Venkata and B. L. Evans, \"Optimal design of real and\n", " complex minimum phase digital FIR filters,\" Acoustics, Speech,\n", " and Signal Processing, 1999. Proceedings., 1999 IEEE International\n", " Conference on, Phoenix, AZ, 1999, pp. 1145-1148 vol.3.\n", " doi: 10.1109/ICASSP.1999.756179\n", " .. [2] X. Chen and T. W. Parks, \"Design of optimal minimum phase FIR\n", " filters by direct factorization,\" Signal Processing,\n", " vol. 10, no. 4, pp. 369-383, Jun. 1986.\n", " .. [3] T. Saramaki, \"Finite Impulse Response Filter Design,\" in\n", " Handbook for Digital Signal Processing, chapter 4,\n", " New York: Wiley-Interscience, 1993.\n", " .. [4] J. S. Lim, Advanced Topics in Signal Processing.\n", " Englewood Cliffs, N.J.: Prentice Hall, 1988.\n", " .. [5] A. V. Oppenheim, R. W. Schafer, and J. R. Buck,\n", " \"Discrete-Time Signal Processing,\" 2nd edition.\n", " Upper Saddle River, N.J.: Prentice Hall, 1999.\n", "\n" ] } ], "source": [ "help(sp.minimum_phase)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "As input it expects a filter with the **squared** desired frequency response, which we can obtain by convolving the linear phase filter coefficients with itself. In our example an approximate linear filter is obtained by:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "import scipy.signal as sp\n", "hsincsq=sp.convolve(hsinc,hsinc)\n", "hmin=sp.minimum_phase(hsincsq)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x576 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "w, h_response = freqz(hmin)\n", "fig=plt.figure(figsize=(10,8))\n", "fig.suptitle('Frequency Response', fontsize=16)\n", "plt.subplot(2,1,1)\n", "plt.plot(w, 20 * np.log10(abs(h_response)), 'b')\n", "plt.ylabel('Amplitude (dB)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()\n", "plt.subplot(2,1,2)\n", "angles = np.angle(h_response)\n", "plt.plot(w, angles, 'g')\n", "plt.ylabel('Angle (radians)')\n", "plt.xlabel('Normalized Frequency')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Observe that the magnitude again looks the same, but the phase looks different, because it starts at 0 instead of $\\pi$ as before. \n", "\n", "This is because the filter coefficients here have a switched sign. This is no problem because we can always change the sign by multiplying the filter or its output by -1.\n", "\n", "Compare the coefficients by looking at them:\n" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hmin: [ 3.65083906e-01 8.17182307e-01 9.70913534e-01 6.46747848e-01\n", " 7.48185839e-02 -3.16720511e-01 -3.07049417e-01 -5.78785658e-02\n", " 9.80567656e-02 1.00599146e-06 -3.76131997e-07]\n", "hsincmp: [-3.89817183e-17+0.j -1.89206682e-01+0.j -4.23272096e-01+0.j\n", " -5.02689862e-01+0.j -3.34950643e-01+0.j -3.87154099e-02+0.j\n", " 1.64184521e-01+0.j 1.58951330e-01+0.j 2.98897187e-02+0.j\n", " -5.07457087e-02+0.j -3.86089404e-07+0.j]\n" ] } ], "source": [ "print('hmin:', hmin)\n", "print('hsincmp:',hsincmp)" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false, "slideshow": { "slide_type": "-" } }, "source": [ "We see: The coefficients are similar, but have indeed opposite signs." ] } ], "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.7.5" }, "livereveal": { "rise": { "height": "90%", "width": "90%" }, "scroll": true, "theme": "sky", "transition": "zoom" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "010411b23dde4ac9b0a3030e14cf116a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Start", "layout": "IPY_MODEL_6a3bf4da31de478d94493fb7e7bf2612", "style": "IPY_MODEL_28c5906b489444688437bc5e2decf81a" } }, "0124c108c90b41408309aa3aac820c5d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "015addf4649b4d41b3ee5a4e08b1feef": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "01a5f4dbc4064fd3a34973eb916c31c5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_05ed0d85918542ce8e2d2b5a11d7d46c", "style": "IPY_MODEL_11beb2d8d5cb46ccbbbf8aa79a579437" } }, "02c9485b88554eb9992be45d9860b92e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0301e5ad87f74818b0033801839a6489": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "05ed0d85918542ce8e2d2b5a11d7d46c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "06b3502ca24649cfba2505a7ae4369a3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_d4c25c99462a4868b15757073e777364", "style": "IPY_MODEL_58865ee688c741d484e0a1e5fe729ed1", "value": true } }, "070df1bc17ac48328bf07a4c6bbf4386": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0889d4344f00492d990089599a0cbb1e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "08bcfe0454894f769d36cf36a969a89c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling with Zeros", "disabled": false, "layout": "IPY_MODEL_ec8397c2b6e5444587135da33d9144fd", "style": "IPY_MODEL_3fe6660526e44cc19947700d461a8a9d", "value": false } }, "0b8e46359cee465aa82778a67f6c0b96": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0b9a6a693871477ebf610c47a13ce72a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "0d37c449c02940ea80583d16fffe742e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "0fbffec0398544c78cc392a8f3387f8e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "11649f3e118b4488af7188e4a8e73291": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "11beb2d8d5cb46ccbbbf8aa79a579437": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "12c1d6bd34634a1fb100dddc180fee8c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_cbfc931a5e68487a91bda9c791d27a54", "style": "IPY_MODEL_154ee137a89643c596b033dd8318706c", "value": true } }, "1372b726ab434f9b89571f6da34c9e62": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "14129132b8da4c588bdb14db56917502": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "14f182217bd54f0eab515df20a2b5138": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "154ee137a89643c596b033dd8318706c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "16fff80d180c43a599f5bb2e9b551989": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "1a8f9d0d68954f4fa2ce1361633bde98": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "1b001b2ac3e847549ef031ffa10555a7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1d77796b884c4861a25db47632b8d489": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "1e4739a8c3694e0184b1d7a856de0e23": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "1ea7b64595fd40cfa2673963652b111d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1f7c5c8eb1f645d0b0b4ffb1db9e262b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "224bcb4dea094163994aaa3f0121c825": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "234045dd6a114ecda45e0086e0d54e99": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "238506e028044b5b881ef74c8ad59846": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "BoundedIntTextModel", "state": { "description": "Bit-Depth:", "layout": "IPY_MODEL_56ad1c5dc11f482f9602ecf86f593745", "max": 16, "min": 2, "style": "IPY_MODEL_f832049896fd43d3a027ac200b0d333a", "value": 8 } }, "25438168806e49268b476a257216e7dd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_ad19b104bd2c4274827935f0bc642e1c" ], "layout": "IPY_MODEL_266d77a5a8bf4ba0b75999d1ff5ec2ba" } }, "266d77a5a8bf4ba0b75999d1ff5ec2ba": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2770a82d9d574867b924b252a6697fcb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling with Zeros", "disabled": false, "layout": "IPY_MODEL_827b4767fde3485eb5c2b84a93302b94", "style": "IPY_MODEL_9e41a52328224716afc6e66f01c14e6e", "value": true } }, "28c5906b489444688437bc5e2decf81a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "2a17130f6ba1491f959d24bee45727aa": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_9eefd0731f5c4392a5acde7f1e933fd5", "style": "IPY_MODEL_1f7c5c8eb1f645d0b0b4ffb1db9e262b", "value": true } }, "2aa28291b0e94968b90bc072bad5692c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2c0c1ccee30d431c9040ada58fd71129": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2f2f8d6d9d194d8d81aa9445ae96bc2a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2f59316910c14ba5a89beb99d1c86a93": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_4d986dc237e54cb58da0435fa72d0f38", "style": "IPY_MODEL_48d6266121a349d48f11378c6804ee61", "value": true } }, "3121709f5a264cf080f39aa0e49e7279": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_f469e7d7b4a541af8a5340dd1d099999", "style": "IPY_MODEL_454bac39d61a47178f95831b6cee19a4" } }, "34f16d143e48488090e222e4ed23e9b8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "367c6ac4f00e4104ba6837f8104dfb9f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "36cef02e3ac343f597afecf7a0da19c4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "37389e5b17cf48e3a0021f24e6b830b3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3c934745843a4bdb9ecd61d569af4ee9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3fe6660526e44cc19947700d461a8a9d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "407419954887424b844182aaf85efb78": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4181a03ad26243f18c1afcbac62c4b93": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "Mid-Tread", "Mid-Rise" ], "description": "Quantization Type:", "index": 0, "layout": "IPY_MODEL_0b8e46359cee465aa82778a67f6c0b96", "style": "IPY_MODEL_16fff80d180c43a599f5bb2e9b551989" } }, "446d80c629a24e2fa2136e03dfc9d28b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "454bac39d61a47178f95831b6cee19a4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "462478cddfff483e922a3aa095a2e610": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "$\\mu$-Law", "disabled": false, "layout": "IPY_MODEL_78c567360a394eb19dabc832927f8693", "style": "IPY_MODEL_14129132b8da4c588bdb14db56917502", "value": false } }, "476db36e2ef8495598b90265cb380580": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "48d6266121a349d48f11378c6804ee61": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "4d986dc237e54cb58da0435fa72d0f38": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4db559233bc54c04b701ff71ebc1d55d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "4e02c6cc9f2040c0924a4ba1a152edad": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling with Zeros", "disabled": false, "layout": "IPY_MODEL_8bfde2f187c84f8c936d80d6ab9dd110", "style": "IPY_MODEL_6f86b5e8c23b4820bba2a6a839d624b3", "value": false } }, "50e455fde9824f468875e0b897625f4c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "510465f7cad54c2db0e18fd7acd3311a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5254bdb17cad4908be4e921410737e7b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "5518002733dd4d23addee1dcd5b0a5be": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "56ad1c5dc11f482f9602ecf86f593745": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "56c77fc92d1f40619026d3fbdd034c3a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_e099daeead614c06ba66a3b6aa2a6519", "style": "IPY_MODEL_1e4739a8c3694e0184b1d7a856de0e23", "value": true } }, "58865ee688c741d484e0a1e5fe729ed1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "5d021f3d3f104103af22aff0c388a31d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_c63e57f2060841f7aa9fb386480ae645", "style": "IPY_MODEL_ec805846f5734669b7fcc4fd0ea88cde" } }, "5e6239c4e5a14abba70b63e1be1f8edc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_070df1bc17ac48328bf07a4c6bbf4386", "style": "IPY_MODEL_cae0d9b30a044bcdbb4646d2a824b06f", "value": true } }, "601904b20a9e40c2bd92ae3569f3ff8b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "60bf9fcb59ec405fbb5f47ca2b2cd2ff": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "617d2172171e4d4295d316b69ab86083": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "61ec3ac37e444c2fa3488f5b29b80e8e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "654babd4900b4e1d91e2eb5889a5db49": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6a3bf4da31de478d94493fb7e7bf2612": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6f85734c28af439a8da835c83e71c0c6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_617d2172171e4d4295d316b69ab86083", "style": "IPY_MODEL_1d77796b884c4861a25db47632b8d489" } }, "6f86b5e8c23b4820bba2a6a839d624b3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "6fdb7d274eab44d2aaf38dd4dcfa0511": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "72a59b1fcaff4177ba91b8edb4fb23bd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling with Zeros", "disabled": false, "layout": "IPY_MODEL_1372b726ab434f9b89571f6da34c9e62", "style": "IPY_MODEL_2aa28291b0e94968b90bc072bad5692c", "value": false } }, "739b843557fd4432826a28261e5b827e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling with Zeros", "disabled": false, "layout": "IPY_MODEL_98cc8cdb6e87466a8f357e995b2a13e9", "style": "IPY_MODEL_224bcb4dea094163994aaa3f0121c825", "value": false } }, "73b4db0032014d44a57d71fb87786ee8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling with Zeros", "disabled": false, "layout": "IPY_MODEL_446d80c629a24e2fa2136e03dfc9d28b", "style": "IPY_MODEL_4db559233bc54c04b701ff71ebc1d55d", "value": false } }, "779d357055284d7d839ee1ba611221e8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "7836a2e5f5404d26ac461945a2ea0619": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling with Zeros", "disabled": false, "layout": "IPY_MODEL_e8f0676ca8644d3ea28ffb8dd3c7964a", "style": "IPY_MODEL_dbd4fc6f05344d3893968667ea288e00", "value": true } }, "78c567360a394eb19dabc832927f8693": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "7bec54694ea94b16aa7ddae3004a6907": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_238506e028044b5b881ef74c8ad59846" ], "layout": "IPY_MODEL_234045dd6a114ecda45e0086e0d54e99" } }, "7f64dea70b79470aa30508c8f0c20150": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_779d357055284d7d839ee1ba611221e8", "style": "IPY_MODEL_81f45b5f76104f8a980503f3e39332bb", "value": true } }, "81f45b5f76104f8a980503f3e39332bb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "827b4767fde3485eb5c2b84a93302b94": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "89d29651e3da4f80ade582061a753d91": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_2c0c1ccee30d431c9040ada58fd71129", "style": "IPY_MODEL_50e455fde9824f468875e0b897625f4c", "value": true } }, "8a74d386afe84ce4addc6ed37dbc8b43": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8aeb4d884e904dfe8c13404fefd0ef6f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "BoundedIntTextModel", "state": { "description": "Bit-Depth:", "layout": "IPY_MODEL_a512d148087f4555b6bceeca8d4ea7a2", "max": 16, "min": 2, "style": "IPY_MODEL_5254bdb17cad4908be4e921410737e7b", "value": 8 } }, "8bfde2f187c84f8c936d80d6ab9dd110": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8f46384b6f4a405e8d409f9169c78e7e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Filter ON / OFF", "disabled": false, "layout": "IPY_MODEL_0889d4344f00492d990089599a0cbb1e", "style": "IPY_MODEL_0d37c449c02940ea80583d16fffe742e", "value": false } }, "8f63fda556ae49eea3ef4be03fdd736a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_ae6ab56d84d049e8b3a4a6453ee62cb7", "style": "IPY_MODEL_34f16d143e48488090e222e4ed23e9b8" } }, "94b8806eb4eb41c29262f6f79153bdaa": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "98cc8cdb6e87466a8f357e995b2a13e9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "995a134e1ab64d7894796fb26f40bc17": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_1ea7b64595fd40cfa2673963652b111d", "style": "IPY_MODEL_c0ec329452b8419e8fca9585c23830f5", "value": true } }, "9e41a52328224716afc6e66f01c14e6e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9eefd0731f5c4392a5acde7f1e933fd5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a105b9301e4e467b8f27efd88b0dd027": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "$\\mu$-Law", "disabled": false, "layout": "IPY_MODEL_02c9485b88554eb9992be45d9860b92e", "style": "IPY_MODEL_37389e5b17cf48e3a0021f24e6b830b3", "value": false } }, "a1f23f60b3804a438ade7232ff60fcbb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a512d148087f4555b6bceeca8d4ea7a2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a9bb349daa464892b27872b4417ecfe7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_8a74d386afe84ce4addc6ed37dbc8b43", "style": "IPY_MODEL_5518002733dd4d23addee1dcd5b0a5be", "value": true } }, "aa489c5c6242430bb9ef76d4460d61b5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "aba73fc98ae34b8e965b730c3c422205": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ad19b104bd2c4274827935f0bc642e1c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "Mid-Tread", "Mid-Rise" ], "description": "Quantization Type:", "index": 0, "layout": "IPY_MODEL_476db36e2ef8495598b90265cb380580", "style": "IPY_MODEL_c7f454f84a4c4ffabeca0e6b66fd00c4" } }, "ae6ab56d84d049e8b3a4a6453ee62cb7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b7257f546d6542c08e06a519a7cfcff9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "bdb731b1250b48f6b81ae85d8318b6dc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "bf97deef015c4827a8967a671813f149": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_aa489c5c6242430bb9ef76d4460d61b5", "style": "IPY_MODEL_1a8f9d0d68954f4fa2ce1361633bde98" } }, "c0ec329452b8419e8fca9585c23830f5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "c1920bdff8b14c4fa8e114b3921d9ade": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_4181a03ad26243f18c1afcbac62c4b93" ], "layout": "IPY_MODEL_a1f23f60b3804a438ade7232ff60fcbb" } }, "c1b15833557f464eac95808260cf7566": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c47984031d354d7bb041c39975e4cb8c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_3c934745843a4bdb9ecd61d569af4ee9", "style": "IPY_MODEL_015addf4649b4d41b3ee5a4e08b1feef", "value": true } }, "c4d45858b9284681914cf8fde9407c40": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "c63e57f2060841f7aa9fb386480ae645": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c7d3112a971e4497b7fd873765aed42d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c7f454f84a4c4ffabeca0e6b66fd00c4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "c7fbe564a4d347cf95431aaac7d3e642": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Filter ON / OFF", "disabled": false, "layout": "IPY_MODEL_fcb62edcc335410bb627670dc539b165", "style": "IPY_MODEL_0301e5ad87f74818b0033801839a6489", "value": false } }, "cae0d9b30a044bcdbb4646d2a824b06f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "cbfa24b75cc64fddbd7a4eab87c56c46": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_fe565191de1540f5b0197219c460af56", "IPY_MODEL_8f63fda556ae49eea3ef4be03fdd736a", "IPY_MODEL_a105b9301e4e467b8f27efd88b0dd027" ], "layout": "IPY_MODEL_1b001b2ac3e847549ef031ffa10555a7" } }, "cbfc931a5e68487a91bda9c791d27a54": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cff4dfddc8ee4f25a80a855bdc65994f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d2a3e1a11bc648cbac44ac8d661fcaae": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_c7d3112a971e4497b7fd873765aed42d", "style": "IPY_MODEL_2f2f8d6d9d194d8d81aa9445ae96bc2a", "value": true } }, "d3450ad02abc46db9032268bf51cf3a2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "d4c25c99462a4868b15757073e777364": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d559cd1da181460381dcc77443386833": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "d768baa1b42743999d0fb702cc36436b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_510465f7cad54c2db0e18fd7acd3311a", "style": "IPY_MODEL_c4d45858b9284681914cf8fde9407c40" } }, "da223fb00a7e46f6a12a63b53e4f3d9c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonStyleModel", "state": {} }, "dae75bebe0544ee88cd1071b3f87ff71": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "dbd4fc6f05344d3893968667ea288e00": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "dc77a42f93fd481294243d614e2c45ef": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_6fdb7d274eab44d2aaf38dd4dcfa0511", "style": "IPY_MODEL_0b9a6a693871477ebf610c47a13ce72a", "value": true } }, "de50b7858d7b4a61a73d48e05979efd0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_c1b15833557f464eac95808260cf7566", "style": "IPY_MODEL_f72874debb174930bd5932bbb19febf4", "value": true } }, "e099daeead614c06ba66a3b6aa2a6519": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e139e8ce24694bdda7967b2165ee342c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_94b8806eb4eb41c29262f6f79153bdaa", "style": "IPY_MODEL_dae75bebe0544ee88cd1071b3f87ff71", "value": true } }, "e21b1e3534264dee880c06651548e1a9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Filter ON / OFF", "disabled": false, "layout": "IPY_MODEL_407419954887424b844182aaf85efb78", "style": "IPY_MODEL_601904b20a9e40c2bd92ae3569f3ff8b", "value": false } }, "e51f5a36e4394ed689235a9794c618c1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling with Zeros", "disabled": false, "layout": "IPY_MODEL_b7257f546d6542c08e06a519a7cfcff9", "style": "IPY_MODEL_0124c108c90b41408309aa3aac820c5d", "value": true } }, "e5505837f6154a0cae1a17c207323d4e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "disabled": true, "layout": "IPY_MODEL_36cef02e3ac343f597afecf7a0da19c4", "style": "IPY_MODEL_60bf9fcb59ec405fbb5f47ca2b2cd2ff", "value": true } }, "e5d441cf0b974fe5926d4f430e662b4a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Downsampling with Zeros", "disabled": false, "layout": "IPY_MODEL_11649f3e118b4488af7188e4a8e73291", "style": "IPY_MODEL_367c6ac4f00e4104ba6837f8104dfb9f", "value": false } }, "e7ffbebd8eea4250a1ff0c0a7ae94732": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e8f0676ca8644d3ea28ffb8dd3c7964a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e9d3c86d3a7c49b799bdcc77191aa62a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_14f182217bd54f0eab515df20a2b5138", "style": "IPY_MODEL_da223fb00a7e46f6a12a63b53e4f3d9c" } }, "ec805846f5734669b7fcc4fd0ea88cde": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "ec8397c2b6e5444587135da33d9144fd": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f2232b0768124cf1804c9bc977ca3bc6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_aba73fc98ae34b8e965b730c3c422205", "style": "IPY_MODEL_bdb731b1250b48f6b81ae85d8318b6dc" } }, "f2a8b23362844b65b7cc51c15b54f5cc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ToggleButtonModel", "state": { "description": "Stop", "layout": "IPY_MODEL_e7ffbebd8eea4250a1ff0c0a7ae94732", "style": "IPY_MODEL_d3450ad02abc46db9032268bf51cf3a2", "value": true } }, "f469e7d7b4a541af8a5340dd1d099999": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f6566c5300744aa18d1396449e916c5b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_8aeb4d884e904dfe8c13404fefd0ef6f" ], "layout": "IPY_MODEL_cff4dfddc8ee4f25a80a855bdc65994f" } }, "f65b6c16536047758adf05ecea12612b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f72874debb174930bd5932bbb19febf4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f7e7bb40afba4448b0c4506aed91c05a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_010411b23dde4ac9b0a3030e14cf116a", "IPY_MODEL_d768baa1b42743999d0fb702cc36436b", "IPY_MODEL_462478cddfff483e922a3aa095a2e610" ], "layout": "IPY_MODEL_0fbffec0398544c78cc392a8f3387f8e" } }, "f832049896fd43d3a027ac200b0d333a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "faa54a294c694e0cabe60970ddf2b77a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "CheckboxModel", "state": { "description": "Filter ON / OFF", "disabled": false, "layout": "IPY_MODEL_61ec3ac37e444c2fa3488f5b29b80e8e", "style": "IPY_MODEL_f65b6c16536047758adf05ecea12612b", "value": false } }, "fcb62edcc335410bb627670dc539b165": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "fe565191de1540f5b0197219c460af56": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ButtonModel", "state": { "description": "Start", "layout": "IPY_MODEL_654babd4900b4e1d91e2eb5889a5db49", "style": "IPY_MODEL_d559cd1da181460381dcc77443386833" } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 2 }