{ "cells": [ { "cell_type": "markdown", "metadata": { "nbpages": { "level": 0, "link": "[](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html)", "section": "" } }, "source": [ "\n", "*This notebook contains material from [CBE30338](https://jckantor.github.io/CBE30338);\n", "content is available [on Github](https://github.com/jckantor/CBE30338.git).*\n" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 0, "link": "[](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html)", "section": "" } }, "source": [ "\n", "< [A.0 Additional Python](https://jckantor.github.io/CBE30338/A.00-Additional-Python.html) | [Contents](toc.html) | [Tag Index](tag_index.html) | [A.2 Modular Simulation using Python Generators](https://jckantor.github.io/CBE30338/A.02-Modular-Approach-to-Simulation-using-Python-Generators.html) >

\"Open

\"Download\"" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 1, "link": "[A.1 Python Library for CBE 30338](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1-Python-Library-for-CBE-30338)", "section": "A.1 Python Library for CBE 30338" } }, "source": [ "# A.1 Python Library for CBE 30338" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[A.1.1 Some Python basics](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1-Some-Python-basics)", "section": "A.1.1 Some Python basics" } }, "source": [ "## A.1.1 Some Python basics" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[A.1.1.1 Python functions](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1-Python-functions)", "section": "A.1.1.1 Python functions" } }, "source": [ "### A.1.1.1 Python functions\n", "\n", "Here are essential things you need to know about Python functions:\n", "\n", "* Functions can be treated like Python objects\n", "* Functions can be defined using either the `def` or `lambda` statements.\n", "* `def` defines multiline functions that terminate and return values specified by the `return` statement.\n", "* `lambda` defines single line functions that return a value.\n", "\n", "The following cells demonstrate these points in the process of computing a numerical solution to the system of differential equations describing the motion of a mass $m$ subject to a time-varying force $f(t)$\n", "\n", "\\begin{align}\n", "\\frac{dx}{dt} & = v \\\\\n", "\\frac{dv}{dt} & = \\frac{1}{m} f(t) \\\\\n", "\\end{align}\n", "\n", "for various choices of $f(t)$. The cells show several different ways of coding $f(t)$, and the vector valued right hand sides of this system of differential equations, as Python functions. " ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.1 Functions are Python objects](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.1-Functions-are-Python-objects)", "section": "A.1.1.1.1 Functions are Python objects" } }, "source": [ "#### A.1.1.1.1 Functions are Python objects\n", "\n", "The first aspect of this simulation is to establish a specific function to describe the time-varying force $f(t)$. As an example, the following cell creates a plot of $\\cos(t)$ using the `numpy` library." ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.1 Functions are Python objects](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.1-Functions-are-Python-objects)", "section": "A.1.1.1.1 Functions are Python objects" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "t = np.linspace(0, 20, 1000)\n", "plt.plot(t, np.cos(t))" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.1 Functions are Python objects](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.1-Functions-are-Python-objects)", "section": "A.1.1.1.1 Functions are Python objects" } }, "source": [ "In Python, the notation `np.cos(t)` returns the value of $cos(t)$ for a specific value of time $t$. The notation `np.cos` (note the absence of parentheses after the function name) refers to the function itself, the function being the object that does the computation. An important feature of Python is that functions can be assigned and manipulated like other Python objects.\n", "\n", "The following cell shows how the function `np.cos` can be assigned to a Python symbol `f` and then used in subsequent calculations." ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.1 Functions are Python objects](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.1-Functions-are-Python-objects)", "section": "A.1.1.1.1 Functions are Python objects" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAD8CAYAAABzTgP2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAIABJREFUeJztnXmYY1d14H9HUu1S7aq9qqu7uqr3xe1ye8MLeMF2wIYEiE0STAJxmITJwkwmZpghDElmIJmEDAOTxAEShwA2IQE7YGNsY7DBS7vb7r26a+utujbVLtWiKkl3/tBTtapcu5b3JN3f9+kr6b379E5dvXvPPeeee48opdBoNBqNJoLNbAE0Go1GYy20YtBoNBrNArRi0Gg0Gs0CtGLQaDQazQK0YtBoNBrNArRi0Gg0Gs0CtGLQaDQazQK0YtBoNBrNArRi0Gg0Gs0CHGYLsBHKy8tVY2Oj2WJoNBpNSnHkyJEhpZR7tXIpqRgaGxs5fPiw2WJoNBpNSiEiF9ZSTruSNBqNRrMArRg0Go1GswCtGDQajUazAK0YNBqNRrMArRg0Go1Gs4C4KAYR+ZqIDIrIyWXOi4h8UUQ6ReS4iByIOvegiHQYrwfjIY9Go9FoNk68LIZ/BO5a4fzdQLPxegj4GwARKQX+GLgWOAj8sYiUxEkmjUaj0WyAuKxjUEq9KCKNKxS5D/gnFc4j+qqIFItINXAr8KxSagRARJ4lrGC+FQ+5FvNvb/Qw5PNz+45KtridibiFZgmUUrx2boQjF0apKszlrt1VFOSk5BKalMTnD/D0iT4GvX5aN5VwcHMpImK2WBlD56CP59sGyM2yc9fuKioLc80WaVWS1TprgUtRn3uMY8sdfwsi8hBha4OGhoYNCfH94338+Mwgn//hWf7wndv42C1NG/oezdrx+QP8weNHefb0wPyxv36+nb/5lavZXVtkomSZwZELo3zsn4/g8frnj927r4Y/f99ecrPsJkqW/iil+MKz7XzphU5CKnzsL545y//8xT3cu6/GXOFWIVmTz0sNT9QKx996UKlHlFKtSqlWt3vVFd1L8rUPX8Nr//U27tpVxeeePsNXXure0Pdo1kYgGOI//PMRfnxmkE/evZ2T/+OdfPM3ryUYVPzaV1/j3NCk2SKmNWf6J/jQV18jP9vOt3/rek7+j3fyiTta+PfjvfzB40cJhZZsapo48YXnOvjijzt571V1HPrUbTz/n25hZ3Uhv//Ym/zwZL/Z4q1IshRDD1Af9bkO6F3heMKoLMzliw9cxd27q/hfT5/heM9YIm+X0fy/n3TxUscQ/+u9e/itW5pw5ji4oamcb/7mdQD83mNvEgiGTJYyPZmZC/Lb33iDghwHjz90PQc3l+LMcfC7tzXzqXt28PTJfr7+6pp2R9BsgJ93DvHF5zt4/9V1/O/376XClUuT28mjv3GQPbVF/JfvHKN3bNpsMZclWYrhSeBDRnTSdcC4UqoPeAa4U0RKjEnnO41jCcVuEz73S3txO3N4+F9P6JFTAjg3NMmXftzJu/fV8IFr6hecaywv4E/es5vjPeP80yu6c0oEf/fTbro9k/zF+/dRVbTQp/2Rt23mlhY3n//hGQYmZkySMH2ZDYT470+cZLPxnEfP5+Rl2/niA1cxF1T82Q/aTJRyZeIVrvot4BVgm4j0iMhHRORjIvIxo8hTQDfQCfw98NsAxqTznwCvG6/PRiaiE01RXhafvGc7p/smePJYQo2UjOSLz3dgtwn//V07ljz/rr01vG1rOV96oRPvzFySpUtvxqZm+fuXurlnTxW3tLzV7Soi/Ml9u5kNhPji8x0mSJjePH74Et2eST79rp1LzuNsKivgoZu38IMTfbxxcdQECVcnLopBKfWAUqpaKZWllKpTSn1VKfW3Sqm/Nc4rpdTvKKWalFJ7lFKHo679mlJqq/H6h3jIs1bevbeG7VUuvvRCJ+GAKU08ODc0yRNHL/Or1zVQ4Vo+AuMP37mNkclZvvHaxSRKl/589Wfn8PkD/N5tLcuWaSjL5/6D9Tz++iVtNcSRQDDE3/20i6sairl12/Jzob91yxaK87P42590JVG6tZPRK59tNuE3b9pC56CPlzqGzBYnbfjKS91k2W385s1bViy3r76Y67aU8vVXLui5hjgxMxfk0ZfPc/fuKrZVuVYs+5s3bSGoFN/Qcw1x4wcn+ugZnea3b926YkhwfraDX7tuE8+2DVgyCCOjFQPAu/ZVU+7M4R9+fs5sUdKCSX+AJ4728q69NStaCxF+/cbNXB6bXhDOqtk4Pzjex8RMgAdvaFy17KayAm7bXsE3XruIPxBMvHAZwDdevcjm8nC9rsavXb+JLJuNR18+n3jB1knGK4Ych50PHqznp+0ebVLHge8f78XnD/DBa+tXLwzcvqOS2uI8Hj98afXCmlX55qGLbHEXcO3m0jWV/9D1jQxPzmrFHAe6PT4OnR/hA6312GyrLyCscOVyx65Knjh6mdmAtSzmjFcMAO89UEdIwRNHL5stSsrz7cM9NFc4OdCwtp1N7Dbhvv01vNQxtGARlmb9dHt8HLkwygPXNKx5ZfONW8upcOXwvTd1AEasfPtwD3ab8EsHllyjuyTvO1DH6NQcL5wdTKBk60crBmBzeQH764v5rm4cMdE/PsORC6Pct79mXVsuvPeqWoIhxfeP6/qPhadO9AFh9+haiSjmn7YPMjY1myjR0h6lFP9+rJebmsupWMeWFzc1l1PuzObf3uhJoHTrRysGg/fsr6Gtb4LOQZ/ZoqQsT58Md0z37Fl7xwTQXOliZ3UhTxzViiEWfnCin6s3lVBdlLeu6+7bX8tcUPHUCWuvxrUyp3onuDw2zT271/fsO+w23rW3hp+c9TA1G0iQdOtHKwaDd+6uAuC5Nu1r3ShPn+hne5VrQxsU3r27iqOXxhj06nmejXBuaJK2vgnuNp7j9bCrppD60jz97MfAD0/2YxO4fWfluq+9Y2cl/kDIUpGRWjEYVBflsbu2kOf0JNyGGJyY4fULI9y9zhFThNt2hBvUC2es5WtNFSJupLvXaa1BeMHbbdsr+VnnkKVGranED0/1c+3mMkoLstd97cHNpRTmOvjRKev0PVoxRHH7jkqOXBxl2KcnQdfLC2cHUQreuXv9IyaAHdUuaovzeK5NK4aN8OMzg+ypLaK2eH1upAh37KxkNhDiZxYataYKnYM+Ogd93LUBaw0gy27jHdsr+PGZAcus59GKIYrbd1SiVLiRadbHi+1DVBXmsq1y5UVVyyEi3L6jgpc6PMzM6Zj69TA+NcebF0eX3P5irVzTWIorx8HzWjGvm5+2ewB4xxrWLizHnbuqGJ2a48gFa2yRoRVDFLtqCqkqzNWKYZ0EgiFe6vBwU3N5TAlgbttRycxciFe6huMoXfrz864hQgpuWWELhtXIdti4eZub588M6u1h1slLHR62lBdQX5q/4e+4qbkcu00sM8+gFUMUIsKNW8t5pXtY77i6Do71jDMxE+DmGEasEPa1Zjts/LzTGo0jVXix3YMr18FV9cUxfc8tLW6GfH7aB3Rk3lrxB4K82j3MTc3lMX2PKzeLfXVF/Mwiz75WDIu4cWsZY1NznO6bMFuUlOHFdg8i8LatsTWO3Cw7rZtK+Lm2GNaMUooX2z3c2FSOwx5bc76hqQyAl7us0TmlAkfOjzIzF+Km5tgGRRBuP8d7xhifNn+3Ya0YFnGj0bnpxrF2ftY5xN66Yko2EJGxmBuaymjrm2BkUi+2WgvdQ5P0js9wU0tsShmgriSfhtJ8XtaKec281DmEwyZcZyjVWLhxazkhBa92m1//WjEsorIwlyZ3AT/vNP/HSQWmZ4McuzTG9VtibxgANxiKWc8zrI1D58LpS+JV/zduLePV7mGC2pW6Jn7eOcRVDcU4cxwxf9dVDSXkZdkt4UqNV6Keu0TkrIh0isjDS5z/gogcNV7tIjIWdS4Yde7JeMgTKzduLefQuRHLbWxlRd68NEogpNa8adtq7K0twpnj0BbbGjl0boRyZw6bywvi8n3XN5XjnQlw8vJ4XL4vnZn0BzjVO8G1m+OjlLMdNg5uLk0PxSAiduDLwN3ATuABEdkZXUYp9QdKqf1Kqf3A/wX+Ler0dOScUureWOWJB9dvKWN6LsgJ3ThW5dC5EUTgwKa1bZq3Gg57uHG8YgFzOhU4dG6Eg5tLYooGiyZieWh30uq8eXGMYEjR2hifZx/CARhdnknTXanxsBgOAp1KqW6l1CzwGHDfCuUfAL4Vh/smjKuNH/oNi8QUW5nXz4+wo6qQorysuH1na2MJ3RZoHFanZ3SKy2PTHGyMj7UG4HblsKW8wDLx9Fbm9fMj2ASujtOgCKDV+C6z6z8eiqEWiN5Mv8c49hZEZBOwGfhx1OFcETksIq+KyHviIE/MVLhyaSjN5/CFpKSfTlnmgiHeuDDGwTi5kSK0bgp/n1bMK/P6+fDzeTBOrowIBzaV8MbFUb2eYRVePz/C9qpCXLnxGxTtqy8myy6m9z3xUAxL2bDLPVH3A99RSkUvbW1QSrUCHwT+WkSalryJyEOGAjns8Xhik3gNtG4q4ciFMd04VuDk5XGm54JxVwx764pw2IQjFk2UbhUOnRvFletYNYXnerl6Uwkjk7OcH56K6/emE3PBEG9ejP+gKDfLzu7aIo6cT32LoQeITtdVByy3f/L9LHIjKaV6jb/dwE+Aq5a6UCn1iFKqVSnV6nbHHjO8Ggc2lTDk83NxRDeO5YhExFwTR1cGhBvHrtoi081pq3Po3DDXNJZiX0O2sPVwtUXcGVbmdO8E03PBuM4vRGjdVMLxy+OmpluNh2J4HWgWkc0ikk24839LdJGIbANKgFeijpWISI7xvhy4ETgdB5liJvKDHzZZc1uZIxdGaSzLx+3Kift3X91QwrFLY8xZZFMxqzE2NUuXZzKu/u0IW91OXLkOrRhWIOLGi/egCODqTaXMBkKmRobFrBiUUgHg48AzQBvwbaXUKRH5rIhERxk9ADymFvpmdgCHReQY8ALwOaWUJRRDc4ULV45DuzNW4FjPGPtj3IZhOVobS/AHQpzu1SvQl+J4T7jTiHUbjKWw2YQDDSUc0XNsy/LGxVHqSvKoXEe2trUSUfZmDkpjX5UBKKWeAp5adOzTiz5/ZonrXgb2xEOGeGO3CVdtKjHd12dV+sdnGJjwJ0wxzDeOC6PsS9A9Upljl8YQgd11RQn5/tZNJfzlsx7Gp+fiGnGWLhy7NM7+hsQ8l25XDo1l+aZabHrl8wocaCimfdCLz6+Tlyzm6KXwGsVEddqVhbnUFufxhrbYluTopTGa3E4K4xgRE01EMb+p6/8tDPv8XB6bZl+ClDKE21XEKjQDrRhWYF9dMUrBKb3Q7S0cvTRGll3YUV2YsHvsqy/ihImNw6oopRLqxgPYY3R6uv7fSqTD3luXuPrfW1dM/8QMgxPmpLrVimEFdtcajUMrhrdw7NIYO6oLyc2yJ+wee2qLuTgyxdiUXugWzeWxaYZ8swl1sblys9hSXsBx/ey/hWM9hhuvNnEWw15DMZtlNWjFsAJuVw41RbmmmnRWJBhSnLg8zr4EjpjgSuPQinkhxy6F62N/gut/T12R3jNpCY73jNPkdsZl47zl2FVTiE0wTTFrxbAKe+qKdMe0iG6PD58/kPBJ4d01WjEsxbGeMbIdtrgvbFvMntoi+sZnGPSa486wIkopjveMzQ9aEkV+toPmChfHe8ZWL5wAtGJYhb11xZwbmrRE8gyrEJl43l+f2MZRlJ9FY1m+9nMv4uilMXbVFJLtSGzzjfjQtdVwhb7xmbAbL8HWGoQt5hM946bsvqAVwyrsMfyIegL6Cqd6J8jPtrO53Jnwe+2pMzc6w2qEQorTvRPzz2Ui2VVTiAic6NFrSSJERvCJthgi9xienOXy2HTC77UYrRhWIdIA9STcFU71jrOjujDuWzEsxZ7aQi6PTTPs8yf8XqnApdEpfP4AOxMYDRahIMdBk9vJicvmuDOsyLGecRy2xEbjRYhYbGZYzFoxrEJJQTb1pXnanWEQCina+rxJ6ZggHJkEep4hQmQl+M6a5NT/3toibbFFcaJnnG1VroRG40XYXu0iyy6mDEq1YlgDe2qLONmrGwfAxZHwiHVXkjqm3bXh+2jFHOZU7wR2m9BSmdiJ5wi7a4sY9PoZMCme3koopTjdN5G0Zz/HYafJ7aStL/muPK0Y1sCOqkIuDE/pFdDAaeMh3VWTeB8rhOPpN5Xl09av/dwQrv+tbmdSRqzAfCd42oTOyWoMev2MTM4mxY0UYWd1oVYMViXyIJzRjYNTvePYbUJzZeInniPsqCqkrc+btPtZmdO9E0lzIwFsN559MzonqxFRjklVDDWFDEz4kz7HphXDGog0RN04wh1Tc0XyRqwQbojnhyeZms1si23Y56d/YiZprgyAorwsaovztGLmSvtPpmLYMa+Yk1v/WjGsgeqiXIrysjitGweneieSNvEcYUe1C6XgTH9m139kxJr8+jfHnWE12vq81BbnJXW32YhiON2X3Dk2rRjWgIiwo9qV8Y3D4/Uz6PUn1ZUB0aOmzK7/ZEckRdhZ7aLb42NmzryMYlbgtBGmnUxKC7KpKszVFoNV2VFdyNl+L8FQ5uaAnh+xJrljqivJw5XryHjFcKp3gtriPIrzs5N63x3VhYQUtA9krsU2Mxfk3NAkO6uTEw0Wzc6awqQnrIqLYhCRu0TkrIh0isjDS5z/sIh4ROSo8fpo1LkHRaTDeD0YD3kSwY7qQqbngpwfnjRbFNOIPJy7qpMTkRRBRPQENGHFnOwRK2iLDeBsv5eQSu78QoQd1S66kmyxxawYRMQOfBm4G9gJPCAiO5co+rhSar/x+opxbSnwx8C1wEHgj0Uk/kls48BO3Tho6wuPWIvyk5/Ra0e1izN9E4Qy1GKbng3S7fEl3VoDaCjNpyDbntGK2YyJ5wg7q4sIhBSdg76k3TMeFsNBoFMp1a2UmgUeA+5b47XvBJ5VSo0opUaBZ4G74iBT3GmudOKwSUYrhvYBb8J39FyOHdWFTM4GuTQ6Zcr9zebsQHjEmuyJZwjngN5W5crotQxtfRMUZNtpKM1P+r13GO6rZNZ/PBRDLXAp6nOPcWwxvyQix0XkOyJSv85rTefKKsTMHDXNBUN0eXxJW3G7mEx3Z7QbEVk7TPBxh+8bjkwyY6dPK9DW52V7dSG2JOwPtphNZQXkZ9uTOs8QD8WwVE0tfnr+HWhUSu0FngMeXce14YIiD4nIYRE57PF4NixsLGRyZNL5oUnmgoptVclb2BbNtioXNiFjQ4bPDnjJzbJRX5L8ESuEFYN3JmDKTp9mo5SirW/CNKUc2QLlbBLDteOhGHqA+qjPdUBvdAGl1LBSKrJ07++Bq9d6bdR3PKKUalVKtbrd7jiIvX62VRXSNz6TkbkZzhoRKWZZDLlZdhrLCziboVtjtA94aa5wmTJihejV/5mnmHtGp/H6A6bML0TYVulKalRYPBTD60CziGwWkWzgfuDJ6AIiUh318V6gzXj/DHCniJQYk853GscsSWS03JGBYXvt/V7sNqHJbY7FANBS4aJjIHkTcFbibL/XNKUMzG+B0j6Yec9+ZNLXzPpvqXIxPDnLUJK2xohZMSilAsDHCXfobcC3lVKnROSzInKvUex3ReSUiBwDfhf4sHHtCPAnhJXL68BnjWOWpLki/GC0Z2DndKbfS2NZflK3wlhMS6WT88OTGbfQamxqlkGvn5Yk7k+1mMLcLKqLcufnOjKJiGLYauKgaLsR9JGs+o9LNmul1FPAU4uOfTrq/SeBTy5z7deAr8VDjkRTW5xHfrY9Ixf6tA94TQmVjKa50kVIQbdn0nRZkklkINJiUkRYhOZKV0YOijoHfZQVZFNSkNyFhdFErJUz/V5u2Fqe8Pvplc/rwGYTmiucdGSYOT09G+TCyJSppjQwHyqbaYo5Mr+zzeT6b6lw0uXxZdzq/y6Pz1QXKkC5M5vSguykPftaMayTTBw1dQ76UMr8jqmxrACHTTJOMXQMeHHlOKguyjVVjpYqF/5AiIsjmbOWRClFp8dHU4W5ikFEaKl0zg8SEo1WDOtkW6ULj9fP6OSs2aIkjfmIJJNdGdkOG5vLCzJOMZ/t99Jc6UTEnIikCBGLMZMU8/DkLGNTc2w1WTEAbK8qpL3fm5S1JFoxrJP56IwMahztA16yHTY2mbDqczEtla6McuUppUxdcR5Nc0XmReV1GRPPTe4CkyUJP/uTs0F6RhO/lkQrhnUyP2pK4r4lZnO230tzhROH3fzHpbnSycWRKaZnMyMyyePzMzo1Z/r8DkBBjoPa4ryMstg6PUZEkgUshoObS/mD21vIyUp8OzS/pacY1UW5uHIcGTVqOtvvNX1+IcK2ynDSnmRuKGYmkXUbVlAMEA4ZziRruXPQR16WnZqiPLNFYWuFk9+7vZkKV+LnmrRiWCciwtYMahzjU3P0T8yYPr8QoTnD/NyRbRCsoxhcdHsmCQRDZouSFLo8k2xxF5i24twstGLYAC0VmROZFFnpahWLobEsn2y7LWNW4LYPeCktyKbcaV4MfTTNlS5mgyEuZEhkUtegzxJupGSjFcMGaKlyMZLE5elmEnFlWKVxOOw2trgLMmZrjLMDXlosEJEUIbL6OhNcqZP+8KaBZq54NgutGDZASwZFJnV5fORm2agtNt/HGqE5yRuKmYVSis4B87Y6X4rIACETLOZzQ+FsjWavYTADrRg2QKShZsKotcvjY0u501I+1m2VTnpGp5n0B8wWJaEMev14/YH5MFErkJ/toL40LyMU8/weSRaq/2ShFcMGqHDlUJjrSNoqRDPp8ljPxxqZgO5I88ikzvkYemvVf3iOLf2f/c5BH3ab0Fhm/hqGZKMVwwYIL093pX3I5MxceDGN5TqmDIlM6jJi6K3mymiudHFuaJK5NI9M6vL42FSaT7Yj87rJzPuP40ST20m3J70VQ7dnEqWgqcJaI6b6kjyy7bb5jjNd6Rr04cxxUOHKMVuUBTRXOJkLqrTfM6lz0McWiw2KkoVWDBtka4WTId8sY1Ppu2fS/IjVYo3DYbfRWJ5P1+Ck2aIklC7PJE3uAstEJEWIWDBdaWwxB4Ihzg9PWs6Nmiy0YtggkVF0Oo9auzw+RGBzubUsBsgMi80K2z0vxRZ35NlPX8V8cWSKuaDSiiEWROQuETkrIp0i8vAS5z8hIqdF5LiIPC8im6LOBUXkqPF6cvG1ViXSYNN5nqHLM0ldSZ6pWduWo8nt5MLIFLOB9PRz+/wB+sZnLDe/AOFsbpWFOWn97HdaaPM8M4hZMYiIHfgycDewE3hARHYuKvYm0KqU2gt8B/jzqHPTSqn9xuteUoS6kvCkVDqPmroGrTlihbArLxhSXBhOz/o/ZzxXVu2YmtzOtLaWOy068Z8s4mExHAQ6lVLdSqlZ4DHgvugCSqkXlFKRmapXgbo43NdU7DZhS3lB2vpZQyFF95DPsqs+IworXTsnq87vRGhyO+ka9CUlN4AZdA1OUlmYQ2FultmimEI8FEMtcCnqc49xbDk+Ajwd9TlXRA6LyKsi8p7lLhKRh4xyhz0eT2wSx4mmCuf8yCLduDw2zcxcyLIjpoifO13dGV2ecAz9JovG0G+tcOL1B/B403NbmE6Lzu8ki3gohqVCJpYcRojIrwKtwF9EHW5QSrUCHwT+WkSalrpWKfWIUqpVKdXqdrtjlTkuNLmdXBqZYmYu/XIDWH3EWpDjoKYoN21deVaPoZ+fY0vDgZFSKmM3z4sQj6euB6iP+lwH9C4uJCK3A58C7lVKzQ8zlFK9xt9u4CfAVXGQKSk0uQsIKbgwnH7x3F0W93FD2GJLV1eS1WPot6ZxyOqg14/PH9CKIUZeB5pFZLOIZAP3Awuii0TkKuDvCCuFwajjJSKSY7wvB24ETsdBpqQQeXDS0Z3R5fFRnJ9FaYE1tnteinT1cweCIc4PTVluYWE0lYU5FGTb09Jis+pWJMkkZsWglAoAHweeAdqAbyulTonIZ0UkEmX0F4AT+JdFYak7gMMicgx4AficUiplFMOWcici6TkB2mlEJFltcVU0TRVOJmeD9E/MmC1KXOkZnWY2GLJ0xyQiaWuxZfLmeREc8fgSpdRTwFOLjn066v3ty1z3MrAnHjKYQV62ndrivLS0GLo9Pm7bXmm2GCvSFDUBXW2B1IvxwurzOxG2up280j1sthhxp8vjw2XBrUiSiTVntlKIdIznHpuaZcg3a2lXBjAfSptufu4risHa9d9U4aRvfAZfmm1/3jnoY0uFta3lRKMVQ4xsrXDS7ZkkFEofP/eViWdrj1jdrhxcuY6083N3DU5S7symON+68ztwRXGdS7P67xy07vqdZKEVQ4w0uZ1MzwXpHZ82W5S4kSquDBGhye1MO1del8faEUkR5oMvPOmz/fnEzByDXn9Gzy+AVgwx05SGG4p1eXxk223UlVjfb5+OrjwrJkdaiobSAuw2SatdbrsyfI+kCFoxxEg6hqx2DfpoLM/HYbf+47G1wsmg18/EzJzZosSFkclZRqfmLG+tAWQ7bGwqzU8rxawjksJYv+VbnNKCbIrzs9KqcXR5Umcf+nmLLU0Uc6pMPEdoqkgvV16XZ5Isu9BQmm+2KKaiFUOMiAhbjYVW6YA/EOTiyFRKjFghKmlMmrjyUm1xVZPbyfnhSQJpkuazc9BHY1lBSljLiSSz//s4kU5+7ovDUwRDKmU6pobSfLLskjb13zXoI8dho7bY+vM7ELZs5oKKS6PpEXyRKvM7iUYrhjjQVFGQNmk+UyUiKUKW3camsoK0cWdEIpJsttSIoU+nObaItawVg1YMcWF+Q7E0GLVGXDJbUsTHDeFRazrUPVzJ85wqbEmjvBgXUsxaTiRaMcSBdErzGd5eIpeCnLjslpIUtlY4uTCc+mk+Z+aCXBpNnfkdgKK8LNyu9EjzqSOSrqAVQxyIpPnsToMJUKsmoF+JJnc4zefFkdSu//PDkyiVeukkt7qddKeBxRAJIEklazlRaMUQB+bTfKZ440jVBCVXLLbUVgyRhWKpth1DU0UBXZ7JlN/+vNPjo7Y4j/zf/e4ZAAAgAElEQVTs1LGWE4VWDHEiHJmU2h3TwISfydlgSvm44coIL9UVc5fHhwhsLk+t+m9yOxmfnmPIl9rBF52DvpSz1hKFVgxxosldwMWRKfyB1E3zmWoRSRFcuVlUFuakhWKoLc4jL9tutijroikNJqBDIUW3ZzLlrLVEERfFICJ3ichZEekUkYeXOJ8jIo8b518Tkcaoc580jp8VkXfGQx4zaKoI+7lTOc3nvGJIwVHT1orUt9giyZFSjaY0iMrrHZ9mei6Ycm7URBGzYhARO/Bl4G5gJ/CAiOxcVOwjwKhSaivwBeDzxrU7CacC3QXcBfw/4/tSjqY0yA3QOejDmaIJSprcTrpTOM1nZMSaioqhujCXvCx7Sm+m16k3z1tAPCyGg0CnUqpbKTULPAbct6jMfcCjxvvvALdJOAvGfcBjSim/Uuoc0Gl8X8qRDn7ucERSQUomKGlyO/H6A3i8frNF2RB9EzNMzwUtnxxpKWw2YUuKryWJWJvaYggTD8VQC1yK+txjHFuyjJEjehwoW+O1KUF+toPa4ryUdmd0DU6mpBsJoiKTUrRz6kqxPZIWszXF8z93Dvooyc+izJl61nIiiIdiWGp4udieX67MWq4Nf4HIQyJyWEQOezyedYqYHFJ51OTzB+ifmEnZjiky0k5VxZyqE/8RmtxOLo9NMz2bmsEXXSk6v5Mo4qEYeoD6qM91QO9yZUTEARQBI2u8FgCl1CNKqValVKvb7Y6D2PGnydhlNRX93N0p3jFVFeaSn21P2TmeLo+PwlwH5U5rp/Ncjia3E6Xg3FDqKmbtRrpCPBTD60CziGwWkWzCk8lPLirzJPCg8f59wI9VuPd8ErjfiFraDDQDh+Igkyk0VTiZnA3SPzFjtijr5sp2AKnn44YraT5T1WLrGgznwEjF+R24YrGloitvdHKW4clZrRiiiFkxGHMGHweeAdqAbyulTonIZ0XkXqPYV4EyEekEPgE8bFx7Cvg2cBr4IfA7SqnUtEWJThqTeqOmLo8Pu01oKE1NxQDGZnopbDGkqrUG0FhWgEhqRuV1pri1nAjisvZbKfUU8NSiY5+Oej8DvH+Za/8M+LN4yGE2W6MW+rytudxkadZH1+Akm0rDez6lKk1uJ9872sukP5BSmwBGEtCn6sQ/QG6WnfqS1Ezz2aU3z3sLqdsLWBC3KwdXriM1G4cn9bcDiDTsVPNzRzZfTPURa3j789Sqewi7UVMpOVIy0IohjqSqnzsQDHF+ODUXV0WTqitw02VxVZOxy2oolFrBF50plhwpGWjFEGfCkUmpNWq6NDrNXFClfMe0qSwfWwr6ubs8PrLsQn2KJ6BvqnDiD4S4PJZaaT47U3BH4USjFUOcaaoooH9iBu/MnNmirJnO+X3oU7tx5DjsNJTmp5w7o2vQZ+SuTu3mmIqZDKdng1wem9ab5y0itZ9ECxJxx6RS0p5IQ06HUVMquvLSJYb+yi6rqfPsdw/5jORIqW0txxutGOJMKm5B3DXow+3KoSgvy2xRYqapwkn30CTBFPFzzwVDXBhOjwT0pQXZlORnpVSaT53Oc2m0Yogzm8rycdgkpRRDp7F5XjrQ5C5gNhCiZzQ1tj+/MDxFII0S0KeaxdblmcQm4XUYmitoxRBnsuw2NpXlp8wEdCSdZzp1TJA6Fls6ufHgSmRSqtA16KO+NJ/crJTc7T9haMWQAJrczpTZGsDj8zMxE0irjglSZ/V5ukz8R2iqKGDIN8vYVGqk+ewc9OmJ5yXQiiEBNFU4uTA8yVwwZLYoqxLpQNPFYigpyKasIDulLIaqwlycKbRSeyVSaQI6GFKcG5pMm0FRPNGKIQE0uZ3MBRWXRqzv5043Vwaklp+7K81i6FPJlXdpZIrZYChtBkXxRCuGBDC/mV4KjJo6B33kZ9upLso1W5S40VSRGlszKKXo8kymzcQ/QF1JHtl2W0oohvkV52mkmOOFVgwJIJW2Zojs6pmq2z0vRZPbycjkLCOT1vZzD3r9+PyBtOqYHHYbm8sLUmKOZ95a1hbDW9CKIQEU5mZR4cpJia0ZwhFJ6TNihehFhtau//kY+jTrmMIWm7XrHsL1X+7MoSg/9dfvxButGBJEKkQmTfoD9I6nbjrP5UgVP/d8Os80shggXP8XR6bwB6ydWqXT40vZxFSJRiuGBNFUUWD5NJ+R7anTafIToLYkj2yHzfLzDF2DPpw5Dipc6ZWAvsntJBhSXBy2bvBFZP1Ouj378SImxSAipSLyrIh0GH9LliizX0ReEZFTInJcRH456tw/isg5ETlqvPbHIo+VaHI7mZgJMOSzrp87XSff7DZhS3mB5bdm6DRyYKTT/A6khsUWWb+TbtZyvIjVYngYeF4p1Qw8b3xezBTwIaXULuAu4K9FpDjq/B8qpfYbr6MxymMZUqFxRNJ5bipL7e2el6Kpwvohq12D6RWRFGFLCkTlRQYNzRUukyWxJrEqhvuAR433jwLvWVxAKdWulOow3vcCg4A7xvtanlSITOryhLd7znGk33YATW4nl0ammJmzpp/b5w/QP5F+8zsABTkOqotyLR18oTfPW5lYFUOlUqoPwPhbsVJhETkIZANdUYf/zHAxfUFE0sbZWl2YS3623dJhe51pGJEUocldQEiFN6mzIumeZ9jqiww7B324chxUFqZNlxNXVlUMIvKciJxc4nXfem4kItXA14FfV0pF9or4JLAduAYoBf5ohesfEpHDInLY4/Gs59amYLMJW9wFlo1MCgRDnB+aSrv5hQhWd+XNRySlocUAV/I/WzX4omPAx9bK9JvfiRerbtCilLp9uXMiMiAi1UqpPqPjH1ymXCHwA+C/KaVejfruPuOtX0T+AfjPK8jxCPAIQGtrqzWftkU0uZ0cPj9qthhLcml0Oq23A5j3c1vUndE56MORpvM7ELaEfP4Ag14/lYXWW1Xf6fFxa0vae7Q3TKyupCeBB433DwJPLC4gItnAd4F/Ukr9y6Jz1cZfITw/cTJGeSxFk9vJ5bFppmet5+dOd1dGfraD2uI8S1sMm8pSP53nckQGHFaMDBubmsXj9dNcmZ7PfjyI9an8HHCHiHQAdxifEZFWEfmKUeYDwM3Ah5cIS/2GiJwATgDlwJ/GKI+lmF+BO2S9xpHurgwIWw1WjYwJ75GUvnVv5eALHZG0OjHt9auUGgZuW+L4YeCjxvt/Bv55mevfEcv9rU4kj2yXZ5JdNUUmS7OQzjRK57kcTW4n3z58CaWUpXzJc8EQ54cmuXNnpdmiJIwKVw7OHIclXXk6Iml10tOOtQiNZQXYxJp+7q40Sue5HFsrnEzNBumfmDFblAVcHEmvdJ5LISLzE9BWo2PQR26WjdriPLNFsSxaMSSQ3Cw79aX5lotMurLdc/p2TGBdP3e6rjhfjFVDVjuNVLY2m3WsSKuhFUOCaXI7LWcxeLx+xqfnaE73jqnCmpFJHQNeIP1dGU0VTvrGZ/D5A2aLsoDOQV/aP/uxohVDgmlyF3BuaJJgyDoRtu0D4Y6ypTK9J9/czhxcuQ7LuTPaB3zUFuelTTrP5Yi4Ks9ZqP4n/QEuj03TnObPfqxoxZBgmtxO/IEQvWPTZosyT7sxYk33xhH2czvpGPSaLcoC2ge8tGRAqOS8K89jnfrPhGi8eKAVQ4KJ+JGt5OduH/BSkp9FuTPbbFESzrZKFx0D1qn7QDBEt2cy7a01gE1lBWTZZd5CtQKRZ0GvYVgZrRgSTMSXaaVRa/uAl+ZKl6VCOBNFc6WT4clZhnx+s0UB4IKRgD7drTWAbIeNLeVO2vut8+x3enxk2YVNpem54jxeaMWQYIrzs6kszOFsvzVGTUopOgZ8bMuAjglgW1X4/4y4z8wm0klmgisJoKXKxVmL1D2ELYbN5QU40nTFebzQtZMEWipdlumY+idm8PoDGdMxRRSgVUatEbdKukckRWipcNIzOs2kRSKTujw+veJ5DWjFkAS2VbroGPRaIjKpfd7HmhmNI7K6u90iczztg17qS/PIz07viKQILYbF1mGB+p+ZC3JheDLt14/EA60YkkBLlYuZuRCXRszPDRCJoc+EyU8IRyZtq3RZxmLoGPDSkkEjVitZbOeGJgmpzLHWYkErhiQQaRxW8LWe7fdS7symtCD9I5IitFQ5OTvgNT03wFwwxLmhyYyx1gDqS/PJzbJZ5tkH2F6VOfW/UbRiSAKR0DgrjJraB30ZYy1EaKl04Z0JMDBhbmTS+aFJ5oIqY+Z3AOw2YWuF0xJzbGf6vWTZhc3l6b1HWDzQiiEJ5Gc7aCjNN33UpJSic8CbkYoBzLfYMmXF+WKsEnxxtn+CJrczbXNgxBNdQ0mipdI1b8qaxeWxaSZngxm3uKfFIn7uswNebJJ5Pu5tlS4GJvyMTc2aKsfZfq92I60RrRiSxLYqJ+eGJvEHzMvm1pGhI9bSgmzcrhzTR60dA14aSvPJzbKbKkeyaZlfS2JeZNL49By94zNsqyo0TYZUIibFICKlIvKsiHQYf0uWKReMyt72ZNTxzSLymnH940Ya0LRkW1UhgZDi3JB5G4pFOsZMioqJ0FJpvp87suI805iPTDKx/vXE8/qI1WJ4GHheKdUMPG98XopppdR+43Vv1PHPA18wrh8FPhKjPJZlPjLJRHdG+4CPClcORfnpm7VtOcJ+bh8hk9aS+ANBzg9PZdTEc4TqolxcOQ6TFcMEcGUlvGZlYlUM9wGPGu8fBd6z1gslvFHPO4DvbOT6VGNzeQEOm5jbOAYmMrZhbKt0MT0XpGfUnF1uOwd9BEMqI10ZIkJzpdPUQdGZfi+uXAfVRbmmyZBKxKoYKpVSfQDG34plyuWKyGEReVVEIp1/GTCmlIqsle8Bape7kYg8ZHzHYY/HE6PYySfbYWOLu8C0PZPmgiHa+33sqM68jgmurPQ2SzG39YXvu7M6QxVzVTgyyay1JJGJ50zYODIerKoYROQ5ETm5xOu+ddynQSnVCnwQ+GsRaQKW+oWWfWqUUo8opVqVUq1ut3sdt7YOZobtdXsmmQ2G2JGhHVPEhXPGcCkkm7a+CXIcNhrLMjOGvqXSxejUHB4TdrlVSnF2wJux1vJGWHXDFqXU7cudE5EBEalWSvWJSDUwuMx39Bp/u0XkJ8BVwL8CxSLiMKyGOqB3A/9DyrCt0sX3j/cx6Q9QkOTsXW194Q4xUy0GV24WDaX58yP3ZNPWF3bjZequntsNF9rp3gkqtiXXndM7PoN3JpCRbryNEutT+iTwoPH+QeCJxQVEpEREcoz35cCNwGkVtilfAN630vXpxHajUz5jgq+1rW+CbLstozNX7awu5HRf8i0GpRRtfRPsyOCOaWeNoRhMqP/IxLOOSFo7sSqGzwF3iEgHcIfxGRFpFZGvGGV2AIdF5BhhRfA5pdRp49wfAZ8QkU7Ccw5fjVEeS7PLxMZxum+C5srMXvW5q6aQc0OTSU9OPzDhZ3RqLmPdeABFeVnUleRxqjf5z/6Z/szaODIexOTPUEoNA7ctcfww8FHj/cvAnmWu7wYOxiJDKlFdlEtxfhane8eTfu+2Pi+3bkvNuZl4ERm1numboLWxNGn3zXQ3XoRdNYW0maEY+rzUFOVSlJd5YdobJXOHjyYgIuyqKUz6qMnj9TPk82d8x2SWOyNyv+2ZXv/VRZwbnkx60p5TvePsrClK6j1THa0YkszO6kLO9HsJBENJu+eVEWtmm9JVhbmUFmRzOsmKua1vgtrivIwfse6qKUSp5EaGTfoDdA9Nsrs2s5XyetGKIcnsqiliNhCiy5O8rTEiimFnho9YRYSd1cm32Nr6JjLeWoMoiy2J9d/WN4FSsFtbDOtCK4Ykc8Wdkbx5hra+CWN+I223olozO2sKOTvgZS5JFtvMXJBzQ5MZu7AtmsgcWzIVc+Reu7TFsC60YkgyW8oLyHHYOHU5maMmrx6xGuyqKWQ2EKI7SRbbmX4vIaUnnuHKHFsy53hOXh6nrCCbqkK9FcZ60IohyTjsNrZXuZLWOKZng3QMetldozsmuOJOO5WkyLATl8P32VOnXRlwZY4tWRbbqd4JdtUW6a0w1olWDCaw04hMSsa+Maf7xgkp2FNXnPB7pQKbDYstWX7uEz1jlBZkU1ucl5T7WZ3IHFsyLDZ/IEj7gHd+/ZBm7WjFYAI7a4oYn57j8ljid/o83hMese7VI1bAsNiSuAL6xOUJ9ugR6zyRObZkWGzt/T4CIaUnnjeAVgwmEHHrnLyc+MZxomecClcOldrHOs+umkJOXh5PuMU2Mxcese6p1R1ThMgc28kkzLFFlI8OVV0/WjGYwI7qQrLswtFLiVcMxy+Pa2thEfvqipiYCXB+eCqh9zndN0EwpPT8QhQOu43dtUUc7xlL+L1O9o7jynFQX5Kf8HulG1oxmEBulp0d1YUcu5TYxuHzB+jy+NhTq+cXotlXH66PRNf/Ce3GW5J9dcWc7B1P+AT0icsT7KwpxGbTbrz1ohWDSeyrK+bE5XGCCUw1eeryOErpjmkxzRUu8rPtHE2wYjjeM065M0eHSi5iX30RM3OhhOYm8QeCtPVOsL9BD4o2glYMJrGvvhifP0C3J3EZ3SKhkru1j3sBdpuwp7Yo4YrhpOHG0xPPC9lvWGyJrP9TvRPMBkNcVV+SsHukM1oxmMT++nBnncjGcaxnnOqiXNyunITdI1XZX1/M6d4JZgOJcWdM+gPh9SNaKb+FhtJ8SvKzEurKe/Ni+Luv0hbDhtCKwSS2lDtx5jg4lsBJuDcujHKgQY+YlmJffTGzwVDCNnQ7dmmMkIIDumN6CyLCvvpijiUw+OLopTFqinJ1NN4G0YrBJGw2YW9dUcIaR//4DJfHpjmwSSuGpUj0BPSRC6OIwFVaMS/Jvrpi2ge9CUua9ObFUV33MRCTYhCRUhF5VkQ6jL9v+SVE5O0icjTqNSMi7zHO/aOInIs6tz8WeVKNffXFtPVNMDMXjPt3H7kwCsDVWjEsSU1RLuXOHN5MlGK4OEpLhSvjt9pejv0NxSh1JXIrnni8fnpGp+fnMjTrJ1aL4WHgeaVUM/C88XkBSqkXlFL7lVL7gXcAU8CPoor8YeS8UupojPKkFFc3lBAIqYSMWo9cGCU3y6a3A1gGEeFAQ/G8Ao0noZAKu/G0Ul6W/cYWLW9cjH/9R+bt9PzCxolVMdwHPGq8fxR4zyrl3wc8rZRK7MqiFKG1MdxxHDo3EvfvPnJxlL11xRmd43k1Dm4u5cLwFAMTM3H93k6Pj4mZgLbWVqCkIJuWSmdCnv03L47isIme+I+BWHuNSqVUH4Dxt2KV8vcD31p07M9E5LiIfEFElg2fEZGHROSwiBz2eDyxSW0RivOz2Vbp4tD5+DaOmbkgpy6P645pFQ5uDud9jnfnpN14a+Pg5lKOXBiNezbDQ+dG2FVbRG6WPa7fm0msqhhE5DkRObnE67713EhEqoE9wDNRhz8JbAeuAUqBP1rueqXUI0qpVqVUq9udPkntD24u5Y04N45jl8YIhBRX68m3FdlZXUhBtp3X46yYj1wYpbQgm8YyvRXDSlzTWIrPH6CtL34L3aZngxzrGeM6Q+lrNsaqikEpdbtSavcSryeAAaPDj3T8gyt81QeA7yql5qK+u0+F8QP/AByM7d9JPa7ZXMrkbDCujeOwMWLVPu6VcdhtHNhUEneL4fD5EQ40lOiFbaswb7HFUTG/eWmUuaDi2i1aMcRCrK6kJ4EHjfcPAk+sUPYBFrmRopSKEJ6fOBmjPCnHwcb4N45Xu4dpqXRSWqBTea7GwcZSzvR7GZuajcv39Y5Nc354iut0x7Qq1UV5NJTmc+jccNy+87XuEWwCrY26/mMhVsXwOeAOEekA7jA+IyKtIvKVSCERaQTqgZ8uuv4bInICOAGUA38aozwpR1VRblwbhz8Q5PXzI9zQVB6X70t3rjFGrYfPxyc65uWu8O9441Zd/2vh4OZSXj8/Grct0F87N8zOmkIKc3WYcCzEpBiUUsNKqduUUs3G3xHj+GGl1Eejyp1XStUqpUKLrn+HUmqP4Zr6VaVU4jYOsjAHN5dy6NxIXDbUe+PCGDNzId0xrZH99cVk22282h0fxfxy1xClBeGgAs3qHNxcysjkLB2DsTd9fyDImxfHONhYFgfJMhsdy2gBbmouZ3RqLi6Je17uGsImaB/rGsnNstPaWMJLHUMxf5dSile6hrm+qUxv9bxGbmgKd+LxqP/D50fxB0Lz36nZOFoxWIC3bS1HBF5sjz0M9+edQ+ytK9am9Dq4pcXN2QEv/eOxrWc4NzRJ3/iM7pjWQV1JPk3uAn4ah2f/p+0esuzC9br+Y0YrBgtQ5sxhd00RL3bE1jgmZuY41jOuO6Z1cnNLOPw5VsX8s87wqPdGPb+zLm5pqeC17uGYt4b56VkP1zSWUpDjiJNkmYtWDBbh5pZy3rg4xsTM3OqFl+HFdg/BkOId21dbZ6iJZnuViwpXDj+NUTE/1zbIlvICGssL4iRZZnDLNjf+QIjXYggb7huf5uyAl1u3pc8aJzPRisEi3NzsJhhSvNy5cV/rc6cHKC3I1rtKrhMR4aZmNz/rGNpwAIDPH+DVrmFu26GV8nq5dnMpOQ4bPzm70jKolYlYe7e06PqPB1oxWIQDm0ooysviR6cGNnR9IBjihbMe3r6tArue+Fw379hewfj03IYXu73U7mE2GOL2HZVxliz9yc2yc31TGc+1DWw4bPX5tkGqCnNpqXTGWbrMRCsGi5Blt3HnzkqebRvAH1i/r/XwhVHGp+e4Y6ceMW2Et293k5tl4+mTfRu6/tm2AYrysvT+SBvk7t1VXBqZ5uTl9SdO8vkD/KTdw127q/Rq8zihFYOFuGdPNd6ZAC93rj+m/plT/WTbbdzUrH2sGyE/28Hbt1Xw9Mn+dbuTZgMhfnxmkLdvc+PQu9luiDt3VmG3CT84sX7F/MKZQWYDIe7eXZUAyTIT/RRbiBu2luHKdfDUOhtHIBji+8f7eMf2Ch2REQN376nG4/WvO0fDi+0exqbmePe+mgRJlv6UFGRzQ1MZT53oW7c76emTfZQ7c/Q2GHFEKwYLkeOwc8eOSp451b+u0L2Xu4bxeP285yrdMcXCO7ZXkOOw8e/Hetd13feOXqYkP2s+7FWzMX5hTzUXR6Y4sY6FnuNTczzXNsg9e6r03Foc0YrBYrzv6jomZgL88GT/mq/57puXKcx1cOs2Pb8QC84cB3ftruJ7Ry8zPbs2xTwxM8ezpwd4974anRQpRu7eXU2Ow8bjr19a8zVPHLvMbCDEB1rrEyhZ5qGfZItx3ZYyNpXl881DF9dUfsjn5wcn+rh3f41OTBIHHjjYgHcmsGZf978c7sEfCPH+q3XHFCtF+Vm8a28NTxztZdIfWNM1jx26xK6aQp2tLc5oxWAxbDbh/msaOHRuhDP9q0dofPO1i8wGQnz4hs1JkC79uXZzKVvcBXz9lfOr+rqDIcWjL5/n6k0l7KnTHVM8+OC1Dfj8Ab775uVVyx46N8LpvgnuP9iQBMkyC60YLMgDB+spyLbzpR93rlhuZi7I11+9wC0tbrZW6PjteCAifORtmznWM86Lq2zs9uzpAS6OTPHrNzYmR7gM4EBDMfvqi/nbn3YxG1g5q+GXXuik3JnN+6+uS5J0mYNWDBakOD+bB29o5Acn+ugYWD6z26Mvn8fj9fMfbm1KonTpz/uvrqemKJf/81z7slZDMKT4q2fPsqW8gLt26TDJeCEi/P7tzfSMTvOvb/QsW+7Ni6O82O7hI2/bol2oCSAmxSAi7xeRUyISEpHWFcrdJSJnRaRTRB6OOr5ZRF4TkQ4ReVxEdMoxg4/etAVXjoNPP3Fqyc6pf3yGL73Qya3b3Fy3RW+aF0+yHTb+423NvHFxjO8dXdql8c+vXqB9wMcn7mzRaxfizK0tbq7eVMJf/ugso5NvzawXDCn++MlTuF05/Op12o2UCGJ9ok8Cvwi8uFwBEbEDXwbuBnYCD4jITuP054EvKKWagVHgIzHKkzaUFmTz8N07eKV7mK/+7NyCc3PBEH/4nWPMBUN85t27TJIwvfnl1noONBTzmSdPc2F4csG5s/1ePv/DM9zc4uYX9lSbJGH6IiL8yX27GZua4+F/O05o0YLD//N8B8d7xvlvv7ADl95ePiHEmsGtTSl1dpViB4FOpVS3UmoWeAy4z8jz/A7gO0a5RwnnfdYY3H9NPXftquJ/PtXG1352jmBI4Z2Z4/cee5OXOob4zLt36Z08E4TNJnzhl/cjAr/21UOc7g0HAhy9NMaDXzuEK9fB539pj96CIUHsrCnk4bu388ypAf7Lvx5n0h9gLhjiyy908sXnO3j/1XXcqxcUJoxkLJOtBaIDk3uAa4EyYEwpFYg6XpsEeVIGm034q1/ex3/8ZojPfv80X36hk+m5IDNzQf7rPdt1NEaC2VRWwD/++kE++uhh7vniS9QW53F5bJra4jy++uFrqC7KM1vEtOYjb9vMxEyALz7fwVMn+shx2BidmuNde6v50/fu1ko5gayqGETkOWCp2bVPKaWeWMM9lvr11ArHl5PjIeAhgIaGzOkQ87Md/P2HWnnmVD/PtQ3izLHzS1fXsbeu2GzRMoL99cX86A9u5luHLtIx4OVXqhr4lYObKMrXLoxEIyJ84o4Wbt3m5ntvhhcdvnNXFbftqNBKIcGsqhiUUrfHeI8eIHr1Tx3QCwwBxSLiMKyGyPHl5HgEeASgtbV1Y3vzpig2m3D3nmru1v5sUygtyOZ33r7VbDEylgMNJRzQOUaSSjLCKV4Hmo0IpGzgfuBJFQ61eQF4n1HuQWAtFohGo9FoEkis4arvFZEe4HrgByLyjHG8RkSeAjCsgY8DzwBtwLeVUqeMr/gj4BMi0kl4zuGrscij0Wg0mtiRjWZMMpPW1lZ1+PBhs8XQaDSalEJEjiilll1zFkGvzNFoNBrNArRi0Fk7gXkAAAV0SURBVGg0Gs0CtGLQaDQazQK0YtBoNBrNArRi0Gg0Gs0CUjIqSUQ8wIUNXl5OeHGd1dByrQ8t1/rQcq2PdJVrk1Jq1eTkKakYYkFEDq8lXCvZaLnWh5ZrfWi51kemy6VdSRqNRqNZgFYMGo1Go1lAJiqGR8wWYBm0XOtDy7U+tFzrI6Plyrg5Bo1Go9GsTCZaDBqNRqNZgbRVDCJyl4icFZFOEXl4ifM5IvK4cf41EWlMgkz1IvKCiLSJyCkR+b0lytwqIuMictR4fTrRchn3PS8iJ4x7vmWHQgnzRaO+jovIgSTItC2qHo6KyISI/P6iMkmpLxH5mogMisjJqGOlIvKsiHQYf5dMGiAiDxplOkTkwSTI9Rcicsb4nb4rIktmdVrtN0+AXJ8RkctRv9U9y1y7YttNgFyPR8l0XkSOLnNtIutryb7BtGdMKZV2L8AOdAFbgGzgGLBzUZnfBv7WeH8/8HgS5KoGDhjvXUD7EnLdCnzfhDo7D5SvcP4e4GnCmfeuA14z4TftJxyHnfT6Am4GDgAno479OfCw8f5h4PNLXFcKdBt/S4z3JQmW607AYbz//FJyreU3T4BcnwH+8xp+5xXbbrzlWnT+L4FPm1BfS/YNZj1j6WoxHAQ6lVLdSqlZ4DHgvkVl7gMeNd5/B7hNEpwvUCnVp5R6w3jvJZyfIlXyXN8H/JMK8yrh7HvJTCl3G9CllNrowsaYUEq9CIwsOhz9DD0KvGeJS98JPKuUGlFKjQLPAnclUi6l1I/UlVzqrxLOjphUlqmvtbCWtpsQuYz2/wHgW/G631pZoW8w5RlLV8VQC1yK+tzDWzvg+TJGIxonnCwoKRiuq6uA15Y4fb2IHBORp0VkV5JEUsCPROSIhPNrL2YtdZpI7mf5BmtGfQFUKqX6INywgYolyphdb79B2NJbitV+80TwccPF9bVl3CJm1tdNwIBSqmOZ80mpr0V9gynPWLoqhqVG/ovDr9ZSJiGIiBP4V+D3lVITi06/Qdhdsg/4v8D3kiETcKNS6gBwN/A7InLzovNm1lc2cC/wL0ucNqu+1oqZ9fYpIAB8Y5kiq/3m8eZvgCZgP9BH2G2zGNPqC3iAla2FhNfXKn3DspctcSymOktXxdAD1Ed9rgN6lysjIg6giI2ZvutCRLII//DfUEr92+LzSqkJpZTPeP8UkCUi5YmWSynVa/wdBL5L2KSPZi11mijuBt5QSg0sPmFWfRkMRNxpxt/BJcqYUm/GBOS7gF9RhiN6MWv4zeOKUmpAKRVUSoWAv1/mfmbVlwP4ReDx5cokur6W6RtMecbSVTG8DjSLyGZjtHk/8OSiMk8Ckdn79wE/Xq4BxQvDh/lVoE0p9VfLlKmKzHWIyEHCv9FwguUqEBFX5D3hycuTi4o9CXxIwlwHjEdM3CSw7EjOjPqKIvoZehB4YokyzwB3ikiJ4Tq50ziWMETkLsL51O9VSk0tU2Ytv3m85Yqek3rvMvdbS9tNBLcDZ5RSPUudTHR9rdA3mPOMJWKG3QovwlE07YQjHD5lHPss4cYCkEvYNdEJHAK2JEGmtxE28Y4DR43XPcDHgI8ZZT4OnCIcjfEqcEMS5Npi3O+Yce9IfUXLJcCXjfo8AbQm6XfMJ9zRF0UdS3p9EVZMfcAc4RHaRwjPST0PdBh/S42yrcBXoq79DeM56wR+PQlydRL2OUeesUj0XQ3w1Eq/eYLl+rrx7Bwn3OFVL5bL+PyWtptIuYzj/xh5pqLKJrO+lusbTHnG9MpnjUaj0SwgXV1JGo1Go9kgWjFoNBqNZgFaMWg0Go1mAVoxaDQajWYBWjFoNBqNZgFaMWg0Go1mAVoxaDQajWYBWjFoNBqNZgH/Hz6xRw2CdK8xAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "f = np.cos\n", "t = np.linspace(0, 20, 1000)\n", "plt.plot(t, f(t))" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.1 Functions are Python objects](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.1-Functions-are-Python-objects)", "section": "A.1.1.1.1 Functions are Python objects" } }, "source": [ "Notice that `f` and `f(t)` are different things. By itself, the symbol `f` refers to the function. With a following parentheses and any required arguments, `f(t)` returns whatever was listed after the `return` statement inside of the function. If these is no `return` statement of if there is nothing listed then the function returns `None`." ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.1 Functions are Python objects](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.1-Functions-are-Python-objects)", "section": "A.1.1.1.1 Functions are Python objects" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "f = \n", "f(0) = 1.0\n" ] } ], "source": [ "print(\"f = \", f)\n", "print(\"f(0) = \", f(0))" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.2 Create simple functions with `lambda`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.2-Create-simple-functions-with-`lambda`)", "section": "A.1.1.1.2 Create simple functions with `lambda`" } }, "source": [ "#### A.1.1.1.2 Create simple functions with `lambda`\n", "\n", "There are many situations where all you need is a simple function to encapsulate a calculation that can be done in one line of Python code. Python's `lambda` statement is ideal for this purpose. Learning to use the `lambda` function well allows you to write more compact and readable code.\n", "\n", "The following cell uses `lambda` to create a function `f(t)` with a single argument `t` that returns the exponentially damped sinusoid $e^{-t/4} sin(t)$." ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.2 Create simple functions with `lambda`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.2-Create-simple-functions-with-`lambda`)", "section": "A.1.1.1.2 Create simple functions with `lambda`" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "f = lambda t: np.exp(-t/4) * np.sin(t)\n", "t = np.linspace(0, 20, 1000)\n", "plt.plot(t, f(t))" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.2 Create simple functions with `lambda`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.2-Create-simple-functions-with-`lambda`)", "section": "A.1.1.1.2 Create simple functions with `lambda`" } }, "source": [ "It's hard to overstate the utility of `lambda` functions when combined with other features of Python. For example, while `lambda` functions are limited to one line statements, when combined with Python's conditional expression your code can incorporate logical conditions. " ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.2 Create simple functions with `lambda`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.2-Create-simple-functions-with-`lambda`)", "section": "A.1.1.1.2 Create simple functions with `lambda`" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "f = np.vectorize(lambda t: np.exp(-t/4) * np.sin(t) if t >= 0 else 0.0)\n", "t = np.linspace(-5, 20, 1000)\n", "plt.plot(t, f(t))" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.2 Create simple functions with `lambda`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.2-Create-simple-functions-with-`lambda`)", "section": "A.1.1.1.2 Create simple functions with `lambda`" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAD8CAYAAABzTgP2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAGGhJREFUeJzt3X+QXWV9x/H3p4nBVqskJEhMsiZo2oJDG+xt1MGxigSjMyWxRQ0zHWOFSaeF/rI6hNIRB2UG67TYzlBr1Ej8UUCxlm2NjRBAOlVolpaSBBqzxB+sSUn4IdoiYODbP+7Z7L2be3ezOec8d/e5n9fMnb3n93Oz2fO5z/Occx5FBGZmZqN+ptcFMDOz6cXBYGZmbRwMZmbWxsFgZmZtHAxmZtbGwWBmZm0cDGZm1sbBYGZmbRwMZmbWZnavC3A85s+fH0uXLu11MczMZpR77rnnkYhYMNl6MzIYli5dytDQUK+LYWY2o0j63rGs56YkMzNr42AwM7M2DgYzM2vjYDAzszYOBjMza1NJMEjaLOmgpF1dlkvS30galnSfpFe1LFsvaW/xWl9FeczM7PhVVWO4Dlg9wfK3AMuL1wbg4wCS5gFXAK8GVgJXSJpbUZnMzOw4VHIfQ0TcKWnpBKusAT4bzXFE75J0oqSFwBuAWyLiMQBJt9AMmOurKJfB3fse5d+GH6n1GK99+Xxe+/KTaj2GmaWT6ga3RcBDLdMjxbxu848iaQPN2gYDAwP1lDJDH922h6HvPY5Uz/4j4Bt7H+Hmi8+q5wBmllyqYOh0WooJ5h89M2ITsAmg0Wh0XMeOdvi54PW/sIDPvmdlLft/z3U7OPTjp2vZt5n1RqqrkkaAJS3Ti4H9E8y3iqRI0EhyFDNLJVUwDALvKq5Oeg3wREQcALYB50qaW3Q6n1vMswrV1IpkZpmqpClJ0vU0O5LnSxqheaXR8wAi4u+ArcBbgWHgSeB3imWPSfoQsKPY1ZWjHdFWkYja+hfAoWOWo6quSrpgkuUBXNxl2WZgcxXlsKN168ip9BhuSTLLiu98zpxP2mY2VQ6GzAWBamxLkhw+ZrlxMPQB9wOY2VQ4GDIXQa2dz44ds/w4GDLXbOap9+TtliSzvDgYMueTtplNlYMhc1H3fQxuSTLLjoOhD9R/H4PrJWY5cTD0Ad/5bGZT4WDInL/Mm9lUORgyFwTy93ozmwIHQx9w57OZTYWDIXP13+Dm5iqz3DgYMtd8umqNz0pyM5VZdhwMmUtxKalHcDPLSyXBIGm1pD2ShiVt7LD8Gkn3Fq9vS/phy7JnW5YNVlEeG5PgiRhmlpnSA/VImgVcC6yiOYbzDkmDEXH/6DoR8Sct6/8BcGbLLn4SESvKlsO6qzMX3Plslp8qagwrgeGI2BcRzwA3AGsmWP8C4PoKjmvHIqh1PAZw57NZbqoIhkXAQy3TI8W8o0h6GbAMuK1l9vMlDUm6S9LaCspjLeoe2tM1BrP8VDHmc6dTQ7fvkOuAmyLi2ZZ5AxGxX9KpwG2SdkbEg0cdRNoAbAAYGBgoW+a+kabz2cxyUkWNYQRY0jK9GNjfZd11jGtGioj9xc99wB209z+0rrcpIhoR0ViwYEHZMveNwN/qzWxqqgiGHcByScskzaF58j/q6iJJvwjMBb7VMm+upBOK9/OBs4D7x29r5dTalORLnsyyU7opKSIOS7oE2AbMAjZHxG5JVwJDETEaEhcAN0R728ZpwCckPUczpK5uvZrJyosknc9uTDLLSRV9DETEVmDruHkfGDf9wQ7bfRM4o4oyWGe133zmCoNZdnznc+YiEgzUU/P+zSwtB0M/8Ld6M5sCB0PmmjWGOh+iZ2a5cTD0gdovV3VbkllWHAyZq/uKobqveDKz9BwMmav7kRhmlh8HQx+ofQS3endvZok5GDLnzmczmyoHQ+aCSDDms+sMZjlxMGSu7nO2+57N8uNg6AM+eZvZVDgYMtesMNT8EL1a925mqTkYMtd8ump9+3dlxCw/DobsJRjBzVUGs6w4GDJX99NVfeezWX4cDH3A524zm4pKgkHSakl7JA1L2thh+bslHZJ0b/G6qGXZekl7i9f6KspjY5qPxKi789ltSWY5KT2Cm6RZwLXAKmAE2CFpsMMQnTdGxCXjtp0HXAE0aJ7D7im2fbxsuawpot4b3FwZMctPFTWGlcBwROyLiGeAG4A1x7jtm4FbIuKxIgxuAVZXUCYrpPgu785ns7xUEQyLgIdapkeKeeP9lqT7JN0kackUt7XjVPvQnq4ymGWnimDodGoY/x3yn4ClEfHLwK3Alils21xR2iBpSNLQoUOHjruw/chXDpnZVFQRDCPAkpbpxcD+1hUi4tGIeLqY/CTwq8e6bcs+NkVEIyIaCxYsqKDY/SHFA+7clGSWlyqCYQewXNIySXOAdcBg6wqSFrZMngc8ULzfBpwraa6kucC5xTyrSFD3nc+ujZjlpvRVSRFxWNIlNE/os4DNEbFb0pXAUEQMAn8o6TzgMPAY8O5i28ckfYhmuABcGRGPlS2TtfC3eTObotLBABARW4Gt4+Z9oOX9ZcBlXbbdDGyuohzWmb/Vm9lU+M7nzNXelOTMMcuOgyFzEVF7fcEjuJnlxcGQubpP2a4wmOXHwZC5usdjMLP8OBj6QN03uLkhySwvDobMBfX2Mbg2YpYfB0Pmovnc7fqPYWbZcDBkrv7OZ1cZzHLjYMhd+ORtZlPjYOgDdfcDeAQ3s7w4GDLnzmczmyoHQ+ZS3MfgzmezvDgYMld757NrDGbZcTD0AXc+m9lUOBgyFxEJOp/NLCcOhszVf3+bayNmuakkGCStlrRH0rCkjR2Wv1fS/ZLuk7Rd0stalj0r6d7iNTh+WysnRcewO5/N8lJ6BDdJs4BrgVXACLBD0mBE3N+y2n8CjYh4UtLvAX8BvLNY9pOIWFG2HDaBGtuS3Plslp8qagwrgeGI2BcRzwA3AGtaV4iI2yPiyWLyLmBxBce1Y+Rzt5lNRRXBsAh4qGV6pJjXzYXA11qmny9pSNJdktZ220jShmK9oUOHDpUrcZ8YHVmt/m/1bksyy0nppiQ6fyHteKaQ9NtAA/j1ltkDEbFf0qnAbZJ2RsSDR+0wYhOwCaDRaPhMdAxG2/7rvFzVtRGz/FRRYxgBlrRMLwb2j19J0jnA5cB5EfH06PyI2F/83AfcAZxZQZmMdN/j3flslpcqgmEHsFzSMklzgHVA29VFks4EPkEzFA62zJ8r6YTi/XzgLKC109pKSNGU5M5ns/yUbkqKiMOSLgG2AbOAzRGxW9KVwFBEDAIfBV4IfKkYZvL7EXEecBrwCUnP0Qypq8ddzWQV8LnbzKaiij4GImIrsHXcvA+0vD+ny3bfBM6oogx2tNEWHt/5bGZT4TufM3ak87nO+xhcHzHLjoMhYx5Ax8yOh4PBSpHGOrnNLA8OhoyNNSX1thxmNrM4GPpA3f0Ari+Y5cXBkLEULTyujJjlx8GQsdHOZzclmdlUOBj6QJ25IMmPxDDLjIMhY+58NrPj4WDI2JE7n+vufHaVwSwrDoaM+YRtZsfDwZCxVM9KMrO8OBisFMn3MZjlxsGQsRQP0TOz/DgYcnZkaM80xzGzPFQSDJJWS9ojaVjSxg7LT5B0Y7H8bklLW5ZdVszfI+nNVZTHmlI8XdWP3TbLT+lgkDQLuBZ4C3A6cIGk08etdiHweES8ArgG+Eix7ek0hwJ9JbAa+Ntif1YhtySZ2VRUUWNYCQxHxL6IeAa4AVgzbp01wJbi/U3Am9Rs+F4D3BART0fEd4DhYn9WgUjQlOTOZ7P8VDG05yLgoZbpEeDV3dYpxoh+AjipmH/XuG0XVVCmjq69fZhdP3iirt1PO88cfg6Y+Z3PH/mX/+a7j/xfr4thNi1c8Ruv5JQXP7/WY1QRDJ3OOuO/RHZb51i2be5A2gBsABgYGJhK+Y448MRPePDQ/x7XtjPV6QtfxK8sObHWY9R5I91TP32Wj9/xIPNfOId5L5hT23HMZorRL3x1qiIYRoAlLdOLgf1d1hmRNBt4MfDYMW4LQERsAjYBNBqN4zoTfXjtGcezmU0gVV3kPa9bxu+/4RWJjmbW36roY9gBLJe0TNIcmp3Jg+PWGQTWF+/PB26L5tfMQWBdcdXSMmA58O8VlMky4ad6mKVXusZQ9BlcAmwDZgGbI2K3pCuBoYgYBD4NfE7SMM2awrpi292SvgjcDxwGLo6IZ8uWydKpu/P5yJgSvizWLJkqmpKIiK3A1nHzPtDy/ing7V22vQq4qopyWL5meP+52YziO59tWktxya2ZtXMwWCl1j+DmJ8SapedgsGnNY0qYpedgsNLqfCZTqlHozGyMg8FKSXW6dlOSWToOBpvW3JJklp6DwcpRzSdvDzZklpyDwaa1FGNKmFk7B4OVluLU7fqCWToOBiul7quFxsatrvUwZtbCwWDT2tjlqmaWioPBSpGotS1p9AY3dz6bpeNgsGnNXc9m6TkYrLQUVw65wmCWjoPBSqn7fO2nq5ql52CwaS3wZUlmqZUKBknzJN0iaW/xc26HdVZI+pak3ZLuk/TOlmXXSfqOpHuL14oy5bH0lOrO5xoPYWbtytYYNgLbI2I5sL2YHu9J4F0R8UpgNfAxSSe2LH9/RKwoXveWLI+ZmZVUNhjWAFuK91uAteNXiIhvR8Te4v1+4CCwoORxrU94oB6z9MoGw0si4gBA8fPkiVaWtBKYAzzYMvuqoonpGkknlCyPJSZU6zVJY53PTgazVGZPtoKkW4FTOiy6fCoHkrQQ+BywPiKeK2ZfBvwPzbDYBFwKXNll+w3ABoCBgYGpHNpmsNHOZ9cYzNKZNBgi4pxuyyQ9LGlhRBwoTvwHu6z3IuCrwJ9HxF0t+z5QvH1a0meA901Qjk00w4NGo+H7nqaJZudzjSO4ufPZLLmyTUmDwPri/Xrg5vErSJoDfAX4bER8adyyhcVP0eyf2FWyPGZmVlLZYLgaWCVpL7CqmEZSQ9KninXeAbweeHeHy1K/IGknsBOYD3y4ZHksM+58Nktv0qakiUTEo8CbOswfAi4q3n8e+HyX7c8uc3zrvZqfoTf2ED03Jpkl4zufbVoLP3fbLDkHg5Uj1Xvns5kl52CwGcEVBrN0HAw2rY0N7eloMEvFwWCl1P7Y7dEb3Go+jpmNcTDYtBZ+6rZZcg4GK2X0hF3n3c9mlpaDwaY13+Bmlp6DwaY13+Bmlp6DwUoZPWHX1ZLkGoNZeg4Gm9bcdWGWnoPBSjnS+dzbYphZhRwMNs2NDtTjtiSzVBwMNq15oB6z9BwMVsroCbuu+xjc+WyWnoPBprWxGoOTwSyVUsEgaZ6kWyTtLX7O7bLesy2jtw22zF8m6e5i+xuLYUBtBvE3ebP8lK0xbAS2R8RyYHsx3clPImJF8TqvZf5HgGuK7R8HLixZHuuRuq5KOvIQPQeQWTJlg2ENsKV4vwVYe6wbqnmZydnATcezvfUHdz6bpVc2GF4SEQcAip8nd1nv+ZKGJN0lafTkfxLww4g4XEyPAIu6HUjShmIfQ4cOHSpZbKvK6GWktd357KermiU3e7IVJN0KnNJh0eVTOM5AROyXdCpwm6SdwI86rNf19BIRm4BNAI1Gw/dT9R0ng1kqkwZDRJzTbZmkhyUtjIgDkhYCB7vsY3/xc5+kO4AzgS8DJ0qaXdQaFgP7j+MzWMbC91SbJVe2KWkQWF+8Xw/cPH4FSXMlnVC8nw+cBdwfzQvfbwfOn2h7mxnqOoG7KcksvbLBcDWwStJeYFUxjaSGpE8V65wGDEn6L5pBcHVE3F8suxR4r6Rhmn0Ony5ZHsuUc8EsnUmbkiYSEY8Cb+owfwi4qHj/TeCMLtvvA1aWKYP11tgIbvXsf6zG4GgwS8V3PtuM4FgwS8fBYKXU/agKdz6bpedgsGnNnc9m6TkYbFrz01XN0nMwWCn1dz4Xz0pyL4NZMg4GmxmcC2bJOBhsWnPXs1l6DgYr5cgIbnXf+VzL3s2sEweDTXOj4zE4GsxScTBYKXV3Ph85Tr27N7MWDgab1nwfg1l6Dgab1tz5bJaeg8FKGb2/oLYxn490PrvKYJaKg8GmtSM3uDkXzJJxMFgpqU7YzgWzdBwMVomo6bKkI3t1MpglUyoYJM2TdIukvcXPuR3WeaOke1teT0laWyy7TtJ3WpatKFMey0/dl8Ga2dHK1hg2AtsjYjmwvZhuExG3R8SKiFgBnA08CXy9ZZX3jy6PiHtLlsd6pLbOZ/wQPbPUygbDGmBL8X4LsHaS9c8HvhYRT5Y8rvUL38dgllzZYHhJRBwAKH6ePMn664Drx827StJ9kq6RdEK3DSVtkDQkaejQoUPlSm2VSfWoCueCWTqTBoOkWyXt6vBaM5UDSVoInAFsa5l9GfBLwK8B84BLu20fEZsiohERjQULFkzl0JZAbeMx1LNbM5vA7MlWiIhzui2T9LCkhRFxoDjxH5xgV+8AvhIRP23Z94Hi7dOSPgO87xjLbX1i7JEYrjOYpVK2KWkQWF+8Xw/cPMG6FzCuGakIE9T8q18L7CpZHkvsyOm6thqDb3AzS61sMFwNrJK0F1hVTCOpIelToytJWgosAb4xbvsvSNoJ7ATmAx8uWR7LlHPBLJ1Jm5ImEhGPAm/qMH8IuKhl+rvAog7rnV3m+NZ7dX+T99NVzdLznc9WidpGcKtlr2Y2EQeDTWtjj9pwlcEsFQeDlXJkzOeaL1d1U5JZOg4GmxGcC2bpOBislNrvL/B9DGbJORisEnU/RM/M0nEw2LQ2NrSnmaXiYLBSRlt4ahuox/cxmCXnYLAZweMxmKXjYLBS6j5d+3JVs/QcDFaJ2jqfPbanWXIOBpvWHAtm6TkYrJxUI7i5KcksGQeDVaK2R2IcuVzVyWCWioPBSqn/dO2BesxSKxUMkt4uabek5yQ1JlhvtaQ9koYlbWyZv0zS3ZL2SrpR0pwy5bHeqe2x2+5kMEuubI1hF/CbwJ3dVpA0C7gWeAtwOnCBpNOLxR8BromI5cDjwIUly2OZ8eWqZumVCoaIeCAi9kyy2kpgOCL2RcQzwA3AmmKc57OBm4r1ttAc99lmkFQnbPcxmKVTamjPY7QIeKhlegR4NXAS8MOIONwy/6jhP21meOcn7mL2z1R/8v7xU83/Hq4xmKUzaTBIuhU4pcOiyyPi5mM4Rqc/6ZhgfrdybAA2AAwMDBzDYS2F1y9fwJoVL+Wnzz5X2zFe/LNzWHrSC2rbv5m1mzQYIuKckscYAZa0TC8G9gOPACdKml3UGkbndyvHJmATQKPRcJfkNLFk3s/x1+vO7HUxzKxCKS5X3QEsL65AmgOsAwaj+ayD24Hzi/XWA8dSAzEzsxqVvVz1bZJGgNcCX5W0rZj/UklbAYrawCXANuAB4IsRsbvYxaXAeyUN0+xz+HSZ8piZWXmaiQ8pazQaMTQ01OtimJnNKJLuiYiu95yN8p3PZmbWxsFgZmZtHAxmZtbGwWBmZm0cDGZm1mZGXpUk6RDwvePcfD7Nm+v6iT9zf/Bnzl/Zz/uyiFgw2UozMhjKkDR0LJdr5cSfuT/4M+cv1ed1U5KZmbVxMJiZWZt+DIZNvS5AD/gz9wd/5vwl+bx918dgZmYT68cag5mZTaAvg0HSByX9QNK9xeutvS5THSStlrRH0rCkjb0uTwqSvitpZ/F7zfJJi5I2SzooaVfLvHmSbpG0t/g5t5dlrFqXz5z137GkJZJul/SApN2S/qiYX/vvui+DoXBNRKwoXlt7XZiqSZoFXAu8BTgduEDS6b0tVTJvLH6vuV7GeB2wety8jcD2iFgObC+mc3IdR39myPvv+DDwpxFxGvAa4OLib7j233U/B0PuVgLDEbEvIp4BbgDW9LhMVoGIuBN4bNzsNcCW4v0WYG3SQtWsy2fOWkQciIj/KN7/mOZ4NotI8Lvu52C4RNJ9RRU1q2p3YRHwUMv0SDEvdwF8XdI9xTjh/eIlEXEAmicU4OQelyeV3P+OAZC0FDgTuJsEv+tsg0HSrZJ2dXitAT4OvBxYARwA/rKnha2HOszrh0vQzoqIV9FsQrtY0ut7XSCrTT/8HSPphcCXgT+OiB+lOObsFAfphYg451jWk/RJ4J9rLk4vjABLWqYXA/t7VJZkImJ/8fOgpK/QbFK7s7elSuJhSQsj4oCkhcDBXheobhHx8Oj7XP+OJT2PZih8ISL+oZhd++862xrDRIp/zFFvA3Z1W3cG2wEsl7RM0hxgHTDY4zLVStILJP386HvgXPL83XYyCKwv3q8Hbu5hWZLI/e9YkoBPAw9ExF+1LKr9d92XN7hJ+hzN6mcA3wV+d7TNLifF5XsfA2YBmyPiqh4XqVaSTgW+UkzOBv4+x88s6XrgDTSftPkwcAXwj8AXgQHg+8DbIyKbztoun/kNZPx3LOl1wL8CO4Hnitl/RrOfodbfdV8Gg5mZddeXTUlmZtadg8HMzNo4GMzMrI2DwczM2jgYzMysjYPBzMzaOBjMzKyNg8HMzNr8PyLVSwdBf4yeAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "f = np.vectorize(lambda t: 0.0 if t < 0 else 1.0 if t < 2 else -1.0 if t < 4 else 0.0)\n", "t = np.linspace(-5, 20, 1000)\n", "plt.plot(t, f(t))" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.3 Create complex functions with `def`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.3-Create-complex-functions-with-`def`)", "section": "A.1.1.1.3 Create complex functions with `def`" } }, "source": [ "#### A.1.1.1.3 Create complex functions with `def`\n", "\n", "Python provides two methods of creating functions. The most general method is the `def` statement that defines the name and arguments of a function, followed by accompanying `return` statement to specifies what the function returns.\n", "\n", "As an example, the following code creates a function that takes a value time ($t$), position ($x$), and velocity ($v$), and returns the a two element array corresponding to the right hand side of the differential equations" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "nbpages": { "level": 4, "link": "[A.1.1.1.3 Create complex functions with `def`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.1.3-Create-complex-functions-with-`def`)", "section": "A.1.1.1.3 Create complex functions with `def`" } }, "outputs": [ { "data": { "text/plain": [ "array([0., 1.])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "\n", "def deriv(t, *args):\n", " x = args[0]\n", " v = args[1]\n", " return np.array([v, f(t)])\n", "\n", "u = np.cos\n", "\n", "deriv(0, 0, 0)" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[A.1.1.2 Comprehensions](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.2-Comprehensions)", "section": "A.1.1.2 Comprehensions" } }, "source": [ "### A.1.1.2 Comprehensions" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 3, "link": "[A.1.1.3 `map`, `filter`, `reduce`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.3-`map`,-`filter`,-`reduce`)", "section": "A.1.1.3 `map`, `filter`, `reduce`" } }, "source": [ "### A.1.1.3 `map`, `filter`, `reduce`\n", "\n", "https://medium.com/better-programming/how-to-replace-your-python-for-loops-with-map-filter-and-reduce-c1b5fa96f43a" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "nbpages": { "level": 3, "link": "[A.1.1.3 `map`, `filter`, `reduce`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.1.3-`map`,-`filter`,-`reduce`)", "section": "A.1.1.3 `map`, `filter`, `reduce`" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[A.1.2 `CBE30338.plotter()`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.2-`CBE30338.plotter()`)", "section": "A.1.2 `CBE30338.plotter()`" } }, "source": [ "## A.1.2 `CBE30338.plotter()`\n", "\n", "`CBE30338.plotter()` is a function that simplifies creation of figures with the mulitple plotting axes. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "nbpages": { "level": 2, "link": "[A.1.2 `CBE30338.plotter()`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.2-`CBE30338.plotter()`)", "section": "A.1.2 `CBE30338.plotter()`" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAGoCAYAAABCED9SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAIABJREFUeJzs3Xd4VNeZ+PHvkUZdQhX1Ru9IiG6wDTa2AdMMOK6JHTtxmnfjZJPYSTbll00vm7beOO4ltrGNKQKDcQEMmA6SEB3R1AtCvY/m/P7QKKvIEqjMzJ3yfp5HD5Lm6t73cGfuvHPuOe9RWmuEEEIIIdyZl9EBCCGEEELYmyQ8QgghhHB7kvAIIYQQwu1JwiOEEEIItycJjxBCCCHcniQ8QgghhHB7kvAIIZySUuoBpdQHRschhHAPSurwCCGMpJSaC/wWmAC0A6eAJ7TWhwwNTAjhVkxGByCE8FxKqSHAZuBrwNuAL3Aj0GJkXEII9yO3tIQQRhoNoLV+U2vdrrVu0lp/oLU+ppR6WCm1p3NDpZRWSn1VKXVOKVWllHpaKaW6PP6IUuqU9bFtSqkUIxokhHBOkvAIIYx0FmhXSr2ilFqklAq/zvZLgOlAGvA54A4ApdQK4AfASmAosBt4025RCyFcjiQ8QgjDaK1rgbmABp4DKpRSmUqpmF7+5Nda62qtdT6wA0i3/v4rwK+01qe01mbgl0C69PIIITpJwiOEMJQ1SXlYa50ITATigT/1snlpl+8bgWDr9ynAn5VS1UqpauAqoIAEO4UthHAxkvAIIZyG1vo08DIdiU9/FABf0VqHdfkK0FrvtXmQQgiXJAmPEMIwSqmxSqn/UEolWn9OAu4D9vdzV88A31dKTbDuJ1QpdbdtoxVCuDJJeIQQRqoDZgIHlFINdCQ6x4H/6M9OtNbrgd8Aa5RStdZ9LLJxrEIIFyaFB4UQQgjh9qSHRwghhBBuTxIeIYQQQrg9SXiEEEII4fYk4RFCCCGE23PaxUOjoqJ0amqq3fbf0NBAUFCQ3fbvbDypvZ7UVvCs9npSW8Gz2utJbQXPaq+923rkyJErWuuh19vOaROe1NRUDh8+bLf979y5k3nz5tlt/87Gk9rrSW0Fz2qvJ7UVPKu9ntRW8Kz22rutSqnLfdlObmkJIYQQwu1JwiOEEEIIt2eThEcp9aJSqlwpdbyXx5VS6i9KqTyl1DGlVIYtjiuEEEII0Re26uF5GVh4jccXAaOsX48Bf7PRcYUQQgghrssmCY/Wehdw9RqbLAde1R32A2FKqThbHNudaK3JLqjmWGG10aEIF1fT1EZ9i9noMIQQwmnYbC0tpVQqsFlrPbGHxzYDv9Za77H+/DHwpNb6cLftHqOjB4iYmJipa9assUlsPamvryc4ONhu+++PZrNmf4mZ7flm8ussACwe5sOqUT54eymbHMOZ2mtvntRW+Gx7j5SZ+XtOCxYNYyO9mRLtTfpQbyIDXH/InqefW2fQ2q4pbbBQ3KApqbdQ3GDBz1vxwDhfAkwDv145Y1vtyZPaa++2zp8//4jWetr1tnPUtPSeXgWfybS01s8CzwJMmzZN23MamzNMCTxXVsc/9l9m3dEi6lrMjI0N4ee3pnCqpJbXD+RzRYfw1/unEDPEf9DHcob2OoontRX+r71aa17Yc5H/yT5FWmIYM4ZF8OHJMl472cBrwPi4ISwYH8Nt42KYmDAEpWyTTDuSp55bo5wsruV4cQ3ny+vJK6/nXHk9BVWNdH5O9lKQFBFIYXkTTSY/Xv7idEL8fQZ0LKPb6mie1F5naaujEp5CIKnLz4lAsYOO7VRazRa2nSjltf2XOXjxKr7eXtw5OY4HZyWTkRz+zzeh6akRfH9dLnf+ZTd/uXcKN4yMMjhy4czaLZqfbTrBK/sus2hiLH+8Jx1/H29+sHgc5yvq+ehkGR+dKuN/tp/jLx+fI3aIP7eOi+aOCbHcOCrKJZMfYV9vHcrnyXdzAfD19mJYVBCTEkO5a0oCI6ODGRkdzLCoIPx9vNmaW8Ljb2bx8EuHeOWRGQT7OW2JN+HBHPWszAQeV0qtAWYCNVrrEgcd2yk0tpr53x3nWXOogCv1LSRFBPDUorHcPTWRyGC/z2y/YkoCE+KH8LXXj/LgCwf41oLRfGP+SLxsdItLuI8Ws+Yrrx3mo1PlPHbTcJ5aOPZfnicjhgYz4uZgvnLzCCrrW9hxpoKPTpaxPquI1w/k86Ml43l07jADWyCczfGiGn608QRzR0bxXysmkhQegMm791uiiybF8T/A429m8dCLByXpEU7JJs9IpdSbwDwgSilVCPwE8AHQWj8DbAEWA3lAI/BFWxzXlfxk4wnWHi3k1rHRPDgrhZtGDb1u8jIqJoSN35jDD9bn8ocPz3L4chV/vCediCBfB0UtnF15bTO/OthMfl0j/7V8Ap+fnXrN7SOD/Vg9NZHVUxNpbmvn8Tey+M37p5k7MooxsSGOCVo4tZrGNr72+hEig3z5y31T+ny96Zr0PPziQV6WpEc4GVvN0rpPax2ntfbRWidqrV/QWj9jTXawzs76htZ6hNZ6UvfByu7uk7MVvHOkkK/dPILnH5rOvDHRfe6pCfIz8ad70vn5ionsO1/Jkr/s5mh+lZ0jFq7gTGkdd/3vXkoaLDz/0LTrJjvd+ft48+tVkxjib+Kba7JoMbfbJ1DhMiwWzX+8k01pTTNPP5DR7w9XiybF8df7ppBVUM3DLx6UmYKC40U1bL3YRqvZYnQoUmnZ3uqa2/j+u8cYGR3Mv986akD7UErx4KwU3v3aDXh7Kz73zD5e3HMRW82wE65nz7krrP7bXtraLfxgpj+3jI0Z0H6igv347erJnC6t4w8fnLVxlMLV/O2T83x0qpwfLh5HRnL4gPaxuEvS88WXJOnxZFprfpJ5gi0XW2lqM/4DlSQ8dvarracprW3mt6sn4+/jPah9TUoMZfPjNzJvTDQ/23ySP34ob1Ce6O3DBTz80kESwgPY8I05pAwZ3PPqlrExPDAzmed2X2Dv+Ss2ilK4mr3nr/CHD86wNC2eh25IHdS+Fk+K4y/3TuFofkfS0yBJj0dan1XEkctV3D3al9CAgc3esyVJeOxob94V3jiQz6Nzhw3401J3oYE+PPeFqSxLi+eZXRcorGq0yX6Fa3jp04t8b+0xZo+I5J2vziY+LMAm+/3hneMYFhnEf7ydQ01jm032KVxHaU0z//5mFsOHBvPrlZNsMmvvzsn/l/Q8LEmPx6lrbuNXW0+TlhTG3ATnGMslCY+dNLSYeXLdMVIjA/n2bWNsum+lFE8tGosCfr/tjE33LZzXlfoWfrftDPPHDOXFhwde76Qngb4m/nRvOhV1LfxoY49L4gk31dZu4fE3jtLY2s4zD2YQZMOBxndOjuPP96Zbe3oOSdLjQf66PY+Kuhb+37IJeDlJ2QtJeOzkd9vOUFjVxG9XpxHgO7hbDj2JDwvg0bnD2JBdTG5hjc33L5zP0zvyaDFb+M8l4/G5xhThgZqcGMY3bx1FZk4xG7OLbL5/4Zx+vfU0hy9X8etVkxkZbfuZeksmx/Pne9M5kl/Fd9fm2Hz/wvnkldfz4p6LfG5aIulJYUaH80+S8NjBwYtXeXnvJR6ancqMYRF2O85X540gIsiXX2w5KQOY3VxhVSOv789ndUYiI4bar0T71+aNYGpKOP+54ThF1U12O45wDltyS3hhz0UeviGVZWnxdjvOksnx/NstI9mSW8rxIvmA5s601vy/TScI8PXmewvHGh3Ov5CEx8aaWtv53tockiIC+O4dtr2V1d0Qfx++eeso9l+4yvbT5XY9ljDWnz46Bwq+uWBgM/36yuTtxR8/l47Fovn2W9m0WySRdlfnK+r53tpjTEkO4weLx9n9eF+cM4wh/ib+8vE5ux9LGOeDk2XsPneFby0YTVQPRXWNJAmPjf33h2e4VNnIb1ZOtum98N7cPzOZYVFB/HLLKcztxtc5ELZ3rqyOdUcL+cKsFJsNUr6W5MhAfrJsAgcuXuX53RfsfjzheI2tZr72jyP4mrx4+v4MfE32fysIDfDh0bnD+eBkmfTyuKnmtnb+a/NJRscE8/nZKUaH8xmS8NjQ0fwqXthzkftnJjts7Ssfby+eXDiW8xUNvHW4wCHHFI71hw/OEuhr4uvzRzrsmHdPTWThhFh+/8EZThbXOuy4wjF+tOEE58rr+fO96Q5Jojs9PCdVennc2LO7LlBY1cRPl02wyzjDwXK+iFxUc1s731t7jNgh/nx/kWPvW94xIYZpKeH88cNzUuTLzeQUVPP+iVK+dOMwhy4popTilysnERboyxNvZdHsBEXDhG2cLq3l3aMdld9vHDXUoceWXh73VVjVyP/uzOPOSXHcMMI5F7uWhMdG/vLxOfLK6/nlykk2nS7cF0opfnjnOK7Ut/DsJ+cdemxhX7/bdoaIIF++dONwhx87IsiX39+dxtmyen7z/mmHH1/Yx/O7LxLg481jNzn+OQXSy+OufrnlFAA/uNP+48EGShIeG8gtrOHvuy6wemoi88ZEGxLDlORw7pwcx7O7L1Ba02xIDMK2Ps27wp68K3x93gjDFmG8efRQPj8rhZf3XuJyZYMhMQjbKa9tZmN2EZ+blkhYoDGLEEsvj/v5NO8KW3JL+ca8kSQ48BZpf0nCM0jmdgvfXZtDZJAvP7pzvKGxPHnHWNotmv/+UIoRujqtNb/ddob4UH8enGXs4L/HbxmJt1K8sveyoXGIwXt57yXMFs0jc4cZGof08riPtnYLP808QXJEIF82qNewryThGaSPT5dzurSOHy0ZT2igsWuFJEcG8oXZqbxzpJDTpTLQ1JVtO1FGTkE131wwatBrsA1WzBB/Fk+K453DBTJGzIU1tpp5/UA+d4yPJSUyyNBYpJfHfby67zLnyuv50ZLxhl+rrkcSnkF6dd8l4kP9WTQx1uhQAPi3W0YS4mfiV1tkzIWrardo/vDBGYYPDWJVRqLR4QDwxTmp1LWYefdIodGhiAF653AhNU1tfPkmY3t3Okkvj+urqGvhTx+e5ebRQ1kwzpjhHP0hCc8g5JXX8WleJQ/MSsHkJFPwwgJ9+bdbRvHJ2Qp2n6swOhwxAOuzijhXXs93bh/jNM+rKcnhpCeF8fLeS1ikGKHLabdoXthzkSnJYUxNsV/19/6QXh7X99v3T9NsbufHS8fbZMFZe3OOq6mLenXfZXy9vbh3epLRofyLL9yQQmJ4AL/ccloq5bqYFnM7f/zwLJMSQp2m17DTF+ekcvFKA5+clUTa1XxwopT8q408ZsBsv2uRXh7XdaqklneOFPLInGF2Xe7GliThGaC65jbePVLIkrQ4Ip2sfLafyZvv3jGGUyW1rM+SRSBdyZsH8imqbuK7d4xxuk9MiybGER3ix4ufXjQ6FNFPz+2+QHJEILdPcK4kumsvz+VaqfXkSv6x/zJ+Ji++Ps9xBVEHSxKeAVp3tIiG1na+MDvV6FB6tHRyPGmJofx+2xmaWuVC4goaWsz8dXses4ZHcOMo5yvc5Wvy4vOzUth97gp55XVGhyP66MjlqxzNr+aROal4ezlXEg3/18uzMa/N6FBEHzW0mNmYXcySyfGGT9bpD0l4BkBrzav7LpGWGEp6UpjR4fTIy0vx1KJxlNY2Sy+Pi3hxz0UqG1r53sKxTte70+n+mcn4mrx4ee8lo0MRffTcrosM8Tdx9zTnuvXeqbOX52h5u4zlcRGZOcXUt5i5f6ZzPqd6IwnPAOw9X8n5igan7d3pNGt4BGNiQmSNLRdQ1dDKs7susGBcDBnJ4UaH06vIYD+Wp8Xz7pEiahrlE7mzu1zZwLaTpTw4K8UhixkP1MNzUgk0IWN5XMQbB/IZExPi1NeqnkjCMwCv7L1ERJAvd06OMzqUa1JKcc/0JHIKqimok5XUndkbB/OpazHznTtGGx3KdT08J5WmtnbeOpxvdCjiOl7ccxGTl+KhG1KNDuWaQgN8uCPVR2ZsuYDcwhpyi2q4f2ay0/ZE90YSnn4qrGrko1Nl3Ds9yemLLAHcNSUBX28vdhXKp3FnpbXmncMFzBgWwdjYIUaHc10T4kOZMSyCV/ZextwuibSzqm5s5e3DhSxLSyBmiL/R4VzXghQfmbHlAt44mI+/jxcrpiQYHUq/ScLTT68f6PhU+4DB5f77KjzIlzsmxrK32CwrXjupQ5equFTZyOecdIxFTx6Zk0pRdRMfnSo3OhTRi9cP5NPU1s6XbnSOQoPXE+SjpC6Pk6tvMZOZXdQxWDnAdQYrd5KEpx+a29pZczCf28bHOPUCad3dOz2JhjbYdqLU6FBED94+XECQrzeLJznXlOFruW18LAlhAbwkU9SdUou5nZf3XuLGUVGMi3P+XsNOD89JJdDXm9cPyLptzmhjdsfs5PtnJhsdyoBIwtMPm4+VUNXY5vSDlbubPTySoQGKtw7J4GVnU99i5r1jJSxNiyfQ13kHlXbn7aV46IYUDly8yoli+TTubDKzi6moa+HLTlZo8HpCA3xYNDGOzTklUk7DyWiteeNAPmNjQ5jipLOTr8cmCY9SaqFS6oxSKk8p9VQPjz+slKpQSmVbv75ki+M62mv7LjFiaBA3jIg0OpR+8fJS3JhoYu/5Si5XNhgdjujivWPFNLW1O+2U4Wu5Z1oyAT7evPzpJaNDEV1orXl+90XGxoY4ZT2n61k1NYG6FjMfnJQeaWeSW1TDieJaHnDBwcqdBp3wKKW8gaeBRcB44D6l1PgeNn1La51u/Xp+sMd1tOyCanIKa3johlSXPNk3JpjwUh23T4TzeOtQASOGBpGR7HqfmEIDfViZkcDGnGIq61uMDkdY7Tp3hTNldTw6d5hLXqtmDYskISyAtbJQrVN540A+AT7eLHfBwcqdbNHDMwPI01pf0Fq3AmuA5TbYr1N5de8lgv1MrHSS1av7K9zfi3ljonnncKHMrHESeeV1HM2v5p7pSS75xgQd62u1mi28eVCmqDuL53dfIDrEj2Xp8UaHMiBeXopVUxPZk3eFkpomo8MRdCyllJlTzNK0OIb4u95g5U62GDSQAHTtNigEZvaw3Sql1E3AWeBbWuvPdDUopR4DHgOIiYlh586dNgivZ/X19X3ef22LJjO7kZuTTBzet8duMdlTfX09EwLMbK9r4a/vbmdKtOuMF+mv/pxbI711phUvBTFN+ezcOfCeN6PbOzHSm+c/OcdYCjHZeekCo9vqaP1tb0Gdhd3nmlg9yod9e3bbLzA76NrWxDYLWsMf1u5myQhfYwOzE1d6Lm/Pb6OxtZ2xpisDitlp2qq1HtQXcDfwfJefPw/8tds2kYCf9fuvAtuvt9+pU6dqe9qxY0eft/2f7ed0ypOb9bmyOvsFZGc7duzQreZ2PfW/PtSPvnzI6HDsqj/n1iid5+JLrwz+XBjd3u2nynTKk5v1hqxCux/L6LY6Wn/b+913svXY/9yqqxpa7BOQHXVv693P7NXzf7dDWywWYwKyM1d5LlssFr3wT7v0oj/tGvC5sHdbgcO6D/mKLW5pFQJdR1wmAsXdkqpKrXXnTf7ngKk2OK5DmNst/GP/ZeaMjGRkdLDR4QyKj7cXq6cmsuNMOWW1zUaH49F2nqngSn2LS9Xe6c3No4cyLCpI1tcyWFNrO1tyS7lzchxhga7fK7J6aiIXrjRwNL/a6FA8Wk5hDadKal2ysnJ3tkh4DgGjlFLDlFK+wL1AZtcNlFJd12BYBpyywXEd4qNTZZTUNLvcVPTe3DM9iXaLlgGBBnv7cAFRwX7MGzPU6FAGzctL8dDsFLLyq8kukDcno3x0qoz6FjMrXXhQaVeLJ8UR4OMt1yqDvXHgMoG+3ix30TFhXQ064dFam4HHgW10JDJva61PKKV+ppRaZt3s35VSJ5RSOcC/Aw8P9riO8uq+yySEBXDr2GijQ7GJYVFBzBwWwduHC7BYtNHheKTyuma2ny5nVUYCPt7uUQpr9bQkQvxMvCK9PIbZkFVE7BB/Zg53rbIZvQn2M7FoYiybc4qlSrxBapvb2JRTwrK0eEJceLByJ5tcbbXWW7TWo7XWI7TWv7D+7sda60zr99/XWk/QWqdpredrrU/b4rj2dq6sjr3nK3lgVjImN3ljArh3RhKXKxvZf7HS6FA80oasItotmrunueaMv54E+5lYmh7P+8dLaWgxGx2Ox6msb+GTsxUsT4/H284Dxx1p9dRE6lrMUiXeIBuyimhqc93Kyt25z7u4Hby67zK+Ji/ucYNxFl0tmhhHiL9JKi8bQGvN24cLyUgOY2R0iNHh2NSK9ASa2tr58GSZ0aF4nPdySzBbNHdluMftrE6zhktNHqNoa2XliQlDmJzoenXCeiIJTy9azO1syC5i8cRYIoP9jA7Hpvx9vLlrSgJbj5dS3dhqdDgeJaugmrzyercYrNzdtJRwEsIC2JBdZHQoHmd9VhFjY0MYG+s662b1hZeXYlVGAp/mXaG0RiZaOFJWQTWnS+u4b4Z79O6AJDy92nmmgrpmMyvcZABgd/dMT6LVbGFDlrw5OdI7hwsI8PHmzslx19/YxXh5KZalx7P73BWuSOVlh7l0pYGs/GructNr1aqpiVg0rMuSXh5HeuNAPkG+3ixPd5/nlSQ8vcjMLiYyyJe5I11vLZq+mBAfyqSEUNYcKuislSTsrLHVzKacEhZPinOLAYA9WZGeQLtF896xEqND8Rjrs4pQCpetrHw9KZFBzEiNYO2RQrlWOUhNUxubjxWzLD2BYD/3KVIrCU8P6prb+OhUGUsmx7nVYOXu7pmexOnSOnKLZLVrR9iaW0p9i5l7prvf7axOY2JDGBsbIre1HERrzYbsImYPjyQuNMDocOxm9dRELlQ0kCVlDxxi/dFCmtssPOAmg5U7ue+7+SB8cKKMFrOFZW7UldeTZenx+Pt4sUYGLzvE24cLSI0MZHpquNGh2NWKKQlk5VeTX9lodChuL6ugmsuVjW57673T4slSk8dRtNa8ebCASQmhTEwINTocm5KEpwcbc4pJDA9wyRWs+2OIvw+LJ8WRmV1MY6tMJbanS1caOHDxKndPc92FQvtqaVrHrZWN0stjdxuyivAzebFwYqzRodhVsJ+JhRNj2SQ1eezuVEkdZ8rq+Jwblc3oJAlPNxV1LXyad4Xl6fFu/8YEcO/0ZOpbzDLmws7WHinES8GqDPe7iHSXEBbAjGERbMgukjEXdtTWbmFTTjELxse49ArWfbV6aiJ1zWY+kLIHdpWZU4y3l2LxJDecWGF0AM5mS24J7RbtViPTr2V6ajjDo4LktpYddS7lcfPoocSG+hsdjkOsSE/gfEUDJ4prjQ7Fbe06W0FVYxt3eci1avbwSOJD/eW2lh1prdmUU8zckVFuV44FJOH5jA3ZHfUsRse4V1G43iiluHtaEkcuV3G5ssHocNzSrnMVlNY2u2Xtnd4snhSLj7eSsgd2tD6riPBAH252g/XY+sLLS7FqaiJ7zlVITR47OZpfRVF1E8vS3HPGnyQ8XeRXNpKVX+0xvTudOqezbsopvs6WYiDeOVxARJAvt46LMToUhwkL9GXemGgyc4pplzXbbK6uuY0PT5axNC3ebdZj64tVGVKTx54ys4vxM3lx+wT3vFZ5ziulDzJzOj6NLk1zv3uX15IQFsC0lHA25cg4Hlurbmzlw5NlLE+Px9fkWS+3FekJlNe1sP+CrNlma+8fL6XFbHH72VndpUYFMT01nHelJo/NmdstvJdbwi1jo922TphnXYGvoaOeRTHTU8NJDA80OhyHW5Yez5myOs6U1hkdilvZeryUtnbtEYOVu7t1XDTBfiaZrWUHG7KLSIkMZEqSe88k7cnqqYmcr2ggW2ry2NS+C5VcqW9129tZIAnPP50qqSOvvN7jbmd1WjQxDi8lt7VsbVNOMcOigpgQ715rHPWFv483d0yIZWtuqUwltqHSmmb2nq9kRXqCR8wk7W7xpDj8fbxk8LKNZWYXE+xnYv7YaKNDsRtJeKw25hRhctOpeH0xNMSPOSOjyMwplq5iGymvbWbfhUqWpnlGiYOerJgST12LmR2ny40OxW1k5hShNR53O6tTiL8PCyfEkik1eWymxdzO+ydKuX1CDP4+3kaHYzeS8AAWi2ZTdjE3jR5KRJCv0eEYZunkePKvNnKsUJaasIX3ckvQGpa64UKhfXXDiCiGhvjJUhM2tO5oEelJYQyLCjI6FMOszOioybPzjCTSttC5WLY7384CSXgAOHy5iuKaZpa76eJ7fXXHxI6pxJlyW8smNuUUMzY2hFEeUuKgJ95eiqWT49lxuoKaxjajw3F5p0pqOV1a57Yro/fVDSMiiQzylYkWNpKZU0xEkC9z3HSx7E6S8NBRAj/Ax5sFHjRtuCehAT7cPDqazceKschU4kEpuNrI0fzqfy6z4MlWTImntd3C1uPy5jRYG7KL8PZSLPHgXkMAk7cXiyfF8fHpMupbZFmcwWhoMfPxqTJr7Sz3Tgncu3V90GrumIp32/gYgvxMRodjuGXp8ZTVtnDw0lWjQ3Fpm61Ldbh7F3FfTEoIZXhUkNzWGiSLRbMxq5ibRw91yyq4/bUsPZ7mNgsfyVITg/LRqTKa2ywsS3P/XkOPT3j25FVQ3djm8bezOi0YF02Aj7fM1hqkTTnFpCeFkRTheSUOulNKsTw9gQMXr1JS02R0OC5r/8VKSmubPf52VqepyeHEhfrLtWqQMrOLiQv1Z1pKuNGh2J3HJzwbsooJC/ThxlGeUZ79egJ9TSwYH8OW3BLa2i1Gh+OS8srrOVlSK7ezulieHo/WUvZgMDZkFRHsZ/L4W++dvKy39nadq6C6sdXocFxSdWMru85VsDQtHi8v959J6tEJT0OLmQ9PlnHnpDiPq4J7LUsnx1HV2ManeVeMDsUlbT5WjFJ4/DiLrlKjgkhLCmNDliQ8A9Hc1s7W3FIWTowlwNd9pw3319K0eNraNdtOlBodikvqLIzqKbfePfpd/qNTZTS1tXtsscHe3DxmKCH+JpmtNQBaazJzipk5LIKYIZ6xMnpfrUiP52RJLefKpJp3f318qpy6FjMr5Fr1LyYlhJIaGSjXqgHKzC5muAcVRvXohGdjdjHxHnL//9cPAAAgAElEQVTvsj/8TN4snBDLByfKpLBXP50sqeVCRYPczurBksnxeHspGbw8AJk5RUSH+DF7RKTRoTgVpRRL0+LZd76S8jpZQb0/ymqb2X/RswqjemzCU9eq2XW2gqXpnnHvsr+WpcdT3yKFvfprU04JJi/FoolyO6u7zmreG7Olmnd/1Da3seNMBXdOjsNbrlWfsTQtHouGrblyW6s/Nh/rKIy6zIMm7HhswnOo1IzZolnuAVPxBmL28EiigqWwV39ordmUU8zcUVEeXbH7Wlakx1NY1cSRy1VGh+Iyth0vpdVs8ZhxFv01OiaEMTEhMiC+nzJzipkQP4QRQ4ONDsVhbJLwKKUWKqXOKKXylFJP9fC4n1LqLevjB5RSqbY47mDsLzEzKjqYcXGeWwX3WjoLe310Sgp79dXR/GqKqptYOlnemHpz+4RY/H28ZMxFP2TmFJMUEUC6B66M3lfL0uM5fLmKomope9AXlysbyCmo9rgketAJj1LKG3gaWASMB+5TSo3vttmjQJXWeiTwR+A3gz3uYBRVN3G2ysLydM+5dzkQS9PiaTFLYa++2pRTjK/Ji9snyLTh3gT7mbh1XAzvHZOyB31R26LZe76SpZPlWnUtnTMiN0si3SedvWFLJOHptxlAntb6gta6FVgDLO+2zXLgFev3a4FblYGv3s6T7QmVJQdjanI48aH+8mm8D9otmvdyS7hlTDQh/j5Gh+PUlqfFU9nQKmUP+uBQmZl2i/aocRYDkRIZRFpiKJuOybWqLzJzipmWEk5CWIDRoTiULdZSSAAKuvxcCMzsbRuttVkpVQNEAv9yxVNKPQY8BhATE8POnTttEN5neVe1c2ey5kLuQS7Y5QjOp76+fkD/n5PD2/nwTDmbP9hBsK9rfMIcaFsH42RlOxV1LQz3qXL4sY1o72AoiybQBM9ty4KS/i2R4GptHay9hS0kBHtRevoopaeNjsa+BntuxwW1seZMK2ve205skPMPTzXquVxQZ+FsWRMPjvN12PGd5XVri4Snp3fB7lMw+rINWutngWcBpk2bpufNmzfo4HoyD9i5cyf22r8zGmh7o0bV8P5f91AXNoIlM5JtH5gdGHFut607RpBvMf+2cr7DC8O54nN5ydUc3jtWwqw5N+Lv0/f/L1ds60AVVTdx/v3tfOf2UcybN8rocOxusOd2zJQm3vr1dsr8krjXBf6/jHou//b903h7XeCJVTcR5aA12ZzldWuLNLgQSOrycyLQvV/xn9sopUxAKCCrU7qACfFDGB4VJDMgrqHVbGFLbim3jY+RKrh9tDw9gYbWdraflrIHvekcjyI1nfomLjSA6akRZOYUSdmDXmit2XSsmBtGRDos2XEmtkh4DgGjlFLDlFK+wL1AZrdtMoGHrN+vBrZreUa6BKUUS9Li2XehkvJaKezVkz15FdQ0tckbUz/MGh7J0BA/NkoRwl5l5hQzPNSLlMggo0NxGUvT4jlf0cDpUqnm3ZOsgmoKrjZ53OysToNOeLTWZuBxYBtwCnhba31CKfUzpdQy62YvAJFKqTzg28Bnpq4L57UsLQ6t4b1cqcnTk005JYQGyAK0/eFtXfhxx5mOZFH8q/MV9ZwormVmnC1GHXiORRNj8fZS0iPdi8zsjpmkd0yMNToUQ9hkZJfWeovWerTWeoTW+hfW3/1Ya51p/b5Za3231nqk1nqG1tpTxgq7hZHRIYyLGyKztXrQ3NbOBydKWTQxVhag7adlafG0mi2y8GMPMrM7FqCdESu3SPsjKtiPG0ZEsumYVPPuztxuYfOxYm4ZE80QD51JKldo0SfL0uLJyq+m4Gqj0aE4le2ny2lobZfbWQOQnhRGckSgfBrvpnOcxcxhEYT7yyW6v5alxVNwtYnsgmqjQ3Eqe/KucKW+lRVTPLcci7yaRJ90FvaSOhf/alNOMVHBfswaLos69pdSimVp8Xyad0UWfuziRHHHArRSJ2xgbp8Qi6+3lyyL083G7GKG+JuYP9Zzb71LwiP6JCkikIzkMDZmSVdxp7rmNrafLmeJLOo4YMvTOxZ+3HJM3pw6bcopti5A65njLAYrNMCHm8cMZfOxYtotcq0CaGgx8/7xUu6cHI+fyXNvk0rCI/rsrikJnCmr42RJrdGhOIUPT5bRYrawNE1WRh+oUTEhjI0NYaPc1gLAYulYgPam0UMJlwVoB2xpWjzldS0cuiTVT6DjWtXU1s5dHnw7CyThEf2wZHI8Pt6K9UdlKjF0TBtOCAtgSlK40aG4tOXpCWTlV5NfKePDjuRXUVzTLEn0IC0YF02Aj7dMtLBan1VEQlgA01I8+1olCY/os/AgX+aPiWZjTjFmD1/4saKuhd3nrrA0LR4vuZ01KJ1v7jI+rGN2lp/Ji9vGy+2swQj0NbFgfAxbc2WR2o5rVQXL0+VaJQmP6JeVGQlU1LXw6flKo0Mx1MbsItotmtVTPbuL2BYSwwOZlhJOZrZnJzzmdgtbcktYMC6GYD+pvzNYSyfHUdXY5vGL1G4+VoxF4/G3s0ASHtFP88dGExrgw7qjhUaHYqh3jxaRlhjKyOgQo0NxC8vS4zlTVsfpUs8dH7b3fCWVDa1S4sBGbh4zlBB/k8fP1tqQVcSE+CGMipFrlSQ8ol/8TN7cOTmObSdKqW8xGx2OIU4W13KqpJaVGYlGh+I2Fk/qmOnmyb08mTnFhPiZmDfGc6cN25KfyZtFE2N5/3gJja2eea06X1FPTmGN9O5YScIj+m1VRgLNbRbeP+6ZFXLXHS3Ex1vJJ3Ebigr2Y87IKDJzPLPsQXNbO9uOl3LHxNh+rR4vrm1VRiINre0ee63amFWEUrIAbSdJeES/ZSSHkxIZyPosz7utZW63sCG7mPljoomQacM2tSwtnsKqJo7me16F3J1nKqhrMXvsoo72MmNYBMkRgbxz2POuVVprNmQXM2dEFDFD/I0OxylIwiP6TSnFivQE9p6vpKSmyehwHGr3uStcqW9h1VS5nWVrd0yIwdfkRaYHrqC+KaeYyCBfbhghFbttSSnF6qmJ7LtQ6XHL4hzNryb/aqNHLyXRnSQ8YkDumpKA1rAhy7PGXLx7tJCwQB/mj4k2OhS3E+Lvw61jo3kvt8Sjyh7Ut5j56FQZiyfFYfKWS7KtrczoeMNf52H1wzZkFeHv48UdE2KMDsVpyKtLDEhqVBAZyWGszyr0mDEXNU1tfHCyjGVp8bIyup0sT4/nSn0rez2o7MFH1ordy9LldpY9JIYHcsOISNYeLcDiIUtNtJo7Vka/bXwsIR66MnpP5KotBuyujETOltVzotgzphJvyS2h1WxhlczOspt5Y6IJ8TN5VIXczJxi4kP9mZrs2VVw7enuaYkUXG3ioIcsNbHrbAVVjW2skCT6X0jCIwZs6eQ4fLyVx3QVrztayIihQUxODDU6FLfl7+PNHRNj2Xa8lOa2dqPDsbvK+hZ2na2Qit12tnBCHMF+JtYe8YzByxuyiwgP9OGm0VLioCtJeMSAhQX6csvYaDI9YKmJy5UNHLpUxaqpiSglb0z2tCwtnroWMzvPlBsdit2tO1qE2aJlELydBfh6s2RyHFtyS2hw8/phdc1tfHiyjKVp8fjImLB/If8bYlDumpLIlfoWdrt5+fZ1RzvqWUgBL/u7YUQkUcG+bHTzIoRaa948mM+0lHBGSxVcu1s9NZHG1na25Lp35eX3j5fSYrbI7KweSMIjBmX+2KGEBvi49QrqFotmXVYhc0ZEERcaYHQ4bs/k7cWdk+L4+HQ5tc1tRodjNwcuXuXClQbum5FsdCgeYWpKOMOignjHzW9rbcguIiUykClJYUaH4nQk4RGD4mfq6Cr+4GQpdW765nT4chUFV5v+Ob1V2N/KjERazRa3TqTfPJjPEH8Td06OMzoUj9BZk+fgxatcrmwwOhy7KK1pZu/5SpanJ8it9x5IwiMGbWVGIs1tFra6afn2d48UEujrzcKJsUaH4jHSksKYlBDKP/ZfdsuyB1UNrWzNLWVlRqIsJeFAd01JQKmOxX/d0aacYrRGZmf1QhIeMWgZyWGkRga65afx5rZ23sstYdHEOAJ9TUaH41EenJXMufJ6Dl50v6nE7x4tpLXdwr0zkowOxaPEhwUwd2QU7x4pdMuaPOuzikhLCmP40GCjQ3FKkvCIQVNKsWJKAvsvVlJc7V5LTXSuCr9qqtzOcrSlafGE+Jv4x4F8o0Oxqc7ByhnJYYyNHWJ0OB5n9dREiqqb2H/BvYpbnimt42RJrfTuXIMkPMIm/rnUhJutg7TuaBEJYQHMGiZrHDlaoK+JVRmJvH+8hIq6FqPDsZlDl6o4XyGDlY1yx4RYQvxNbjd4eUN2Ed5eiiWTJeHpjSQ8wiZSIoOYmhLOuqNFbjPmoqy2md3nKrhrSoIUhTPIg7NSaGvXvH24wOhQbObNg/mE+Jvkjckg/j7eLE2LZ+vxEreZaGGxaDKzi7lxVBRDQ/yMDsdpDSrhUUpFKKU+VEqds/7bY210pVS7Uirb+pU5mGMK57UyI4G88nqOF7nHUhMbs4uwaLhLZmcZZmR0MLOHR/LGgXza3WDMRXVjK+/llnDXlAQCfGWwslFWT+2YaOEuNXkOXrpKUXWT1Am7jsH28DwFfKy1HgV8bP25J01a63Tr17JBHlM4qSWT4vH19mJdlut3FWutefdIEVOSwxghAwAN9eCsFIqqm/jkrOtXXl53tIhWs4V7p8vtLCNNSQpjxNAg3jns+tcqgFf2XmKIv4nbxsvK6Ncy2IRnOfCK9ftXgBWD3J9wYaGBPtwyNppNbrDUxIniWs6U1bFSFgo13O0TYhga4sdr+y4bHcqgdA5WTk8KY3y8DFY2UkdNniQOX67i4hXXrsmTX9nIthOlPDArRWaSXsdgE54YrXUJgPXf6F6281dKHVZK7VdKSVLkxu7KSOBKfSufnK0wOpRBWXe0CF9vL5ZKUTjD+Xh7ce/0JHaeraCi0XUT6SOXqzhXXs/9MljZKazMSMBLwdojrj0+7KW9F/FSiodmpxoditNT1xtgqpT6COip4toPgVe01mFdtq3SWn9mHI9SKl5rXayUGg5sB27VWp/vYbvHgMcAYmJipq5Zs6ZfjemP+vp6goM951aFo9prtmi+80kT8cGK7003ZhmGwbbVbNF8a2cjY8K9eXyKvw0jsw9PeC5XNln4zidNLEjUPDDRNdv63LEWjpSZ+fP8QPxMfRsE7wnntpMRbf3vw80U1lv4/c0BeDm4MrEt2tvQpvmPnY1MifHmK5Od91pl73M7f/78I1rradfdUGs94C/gDBBn/T4OONOHv3kZWH297aZOnartaceOHXbdv7NxZHv/tjNPpzy5WR8rqHbYMbsabFs/PFGqU57crD84UWqbgOzMU57LX3rlkJ74o826uc1sdCj9Vt3Qqkf/cIv+4fpj/fo7Tzm3WhvT1k05RTrlyc1619lyhx/bFu39+ycd19rcQmOutX1l73MLHNZ9yFkGe0srE3jI+v1DwMbuGyilwpVSftbvo4A5wMlBHlc4sftnJhPiZ+KZTz7TiecSXtp7kaEhfswbM9ToUEQXD85Koa61YzVoV7M+q5AWs0Vq7ziZBeNiCA3wccnBy23tFl7+9BKzhkcwMSHU6HBcwmATnl8DtymlzgG3WX9GKTVNKfW8dZtxwGGlVA6wA/i11loSHjc2xN+HB2alsPV4CZdcbEDg0fwqPs2r5Ms3DsPHW8pUOZMbR0YRHah4fb9rVV7WWvPmwQLSEkOZEC9vTM7E38ebZWnxbDtRSk2Ta9Xk2Xq8lOKaZr40d7jRobiMQV3RtdaVWutbtdajrP9etf7+sNb6S9bv92qtJ2mt06z/vmCLwIVze2ROKiYvL57dfcHoUPrl6e15hAX68MDMFKNDEd14eSnmJZk4eOkqZ0rrjA6nz47mV3OmrE56d5zU6qmJtJgtbMopNjqUPtNa8/zuCwyLCuKWsb3NFRLdyUdYYRfRQ/xZNTWBtUcKKa9rNjqcPjlZXMvHp8t5ZM4wgvxkeqczujHBB1+TF//Y7zpT1N88mE+Qb0d1X+F8JieGMiF+CM/tvuAy5TQOX67iWGENj8wdJlXg+0ESHmE3X75x+D/vM7uCp3fmEexnkumdTizEV3HnpDjWZxXR0GI2OpzrqmlqY/OxYpZPSZAk2kkppXhiwWguVzayLss11gJ8fvcFwgJ9WCVV4PtFEh5hN8OHBrNwQiyv7b/s9GvWnK+oZ0tuCZ+fnUJooI/R4YhreHBWCvUtZpdYqHZjdhHNbRapvePkFoyLZlJCKH/dfo42J+/luVzZwAcny3hgZrIUGuwnSXiEXX315hHUNZt586BzDzT93x3n8TN58ejcYUaHIq4jIzmMcXFD+Mf+fKdeqFZrzRsH8pmcGCqzaJycUopv3TaKgqtNvOvkq6i/9OklTF5SaHAgJOERdpWWFMbs4ZG8sOciLeZ2o8PpUcHVRjZkF3HfjGSigmWlYWenlOLBWcmcKqnlaH610eH0KrugmtOlMljZVcwfE01aUhh/3Z5Hq9k5e3lqGtt4+3ABy9ISiB7ivIUGnZUkPMLuvjpvBGW1LWzMcs5ZEH/fdR4vBY/dJNM7XcWK9ASC/Uy87sSDl18/IIOVXYlSim/fNpqi6ibePuycy028eSifxtZ26YkeIEl4hN3dNCqK8XFDeGbXeSwW57oFUVbbzNuHC1k9NZG4UGOWwhD9F+Rn4q4pCWzOLaGqodXocD7jbFkd67OKuHtaEsEyWNll3DQqiozkMJ7eked0PdKdE0DmjIyUxWcHSBIeYXdKKb5y83AuVDTw4akyo8P5F8/t6piK+tWbRxgdiuinB2el0Gq28I6TLf6otea/Np8kyNebf791lNHhiH7o6OUZQ0lNM28dcq7n1ZbcEkprpdDgYEjCIxzizklxJEUE8Mwn551moOnVhlZeP5DP8vQEUiKDjA5H9NOY2BBmpEbw8qeXaGx1ninqH50qZ/e5K3z7ttFEBPkaHY7opzkjI5mRGsHTO/JobnOOXh6tNc/tvsCIoUHcPFqWvBkoSXiEQ5i8vXjsxuFk5Vdz8OJVo8MB4KVPL9LU1s7X50nvjqv67sIxFNc08+ePzxkdCgAt5nZ+/t5JRkUH88AsqdbtijpmbI2mrLaFNw44x+zSAxevcryolkfnDpdCg4MgCY9wmLunJREZ5OsUi4rWNrfx8t5LLJwQy6iYEKPDEQM0PTWCe6Yl8fzui5wqqTU6HF7cc4nLlY38eOl4WYvNhc0eEcms4RH87ZPzNLUa38vz/O6LhAf6sFIKDQ6KvCKFw/j7ePPwDansOFPB6VJj35xe23eZumYz35g/0tA4xOA9tWgsoQE+/GB9rqGD4strm/mf7ee4bXwMN46S2w6u7lsLRlNR18LrB4ydCXihop6PT5fx+Vkp+Pt4GxqLq5OERzjU52enEOjrzd8/MW5R0cZWMy/suci8MUOZlCgF4VxdeJAvP1w8jqz8at48ZNwtiN+8f4a2ds0PF48zLAZhOzOHRzJ3ZBR/23ne0DFiL316CR8vLx6cLbdIB0sSHuFQYYG+3DcjmcycYgqrGg2J4c2DBVxtaOVx6d1xGyszEpg9PJLfbD1NRV2Lw4+fXVDNu0cLeWTuMFKjZAC8u/jWbaOobGjltX3G9PIUXG1k7ZFClqfHEx0ihQYHSxIe4XCPzh2GouO+tKO1mNt5dtd5Zg6LYFpqhMOPL+xDKcXP75pIc5uFn7930qHHtlg0P808wdAQPx6/RZJodzI1JYKbRg/lmU/OU+/gxWpbzRYefzMLk5eS8gY2IgmPcLj4sACWpyfw1qECCq46tpdn7ZFCympb+Ldb5ALibkYMDeZr80awMbuYXWcrHHbcDdlFZBdU8+TCsVJk0A19a8EoqhrbeGXvJYce99dbT5NTUM1vV08mKSLQocd2V5LwCEN889ZR+HgrvvzqYYd9cmprt/DMJ+dJSwpjzshIhxxTONbX5o1gWFQQP9p43CE1VBpazPx662nSksJYOUVm0LijKcnh3DI2mud2X6Cuuc0hx9x2opQXP73IwzeksmhSnEOO6Qkk4RGGSI4M5OkHMjhXXs8Ta7LtPrtGa82PN56g4GoT/37LSJSSWhbuyN/Hm1+smMjlykae3pFn9+P97848yuta+MnS8VIfxY09sWAU1Y1tvPzpJbsfq+BqI995J4fJiaF8f/FYux/Pk0jCIwxz46ih/HjJeD46VcZvt52x67H++NE53jyYzzfmj+DWcTF2PZYw1g0jo1g5JYFnPjlPXnmd3Y6TX9nIc7svsnJKAhnJ4XY7jjDe5MQwFoyL4bndF+y6dlur2cLjbxwF4On7M/AzyTR0W5KERxjqC7NTeGBmMs98cp61RwrtcozX9l3iLx+f43PTEvnO7WPscgzhXH5w5zgCfU38YP1xuy1l8ostJzF5KZ5cJJ/CPcG3bxtNU1s7n3/xgN2Snl9tPUVOYQ2/W50m43bsQBIeYSilFD9dNoEbRkTyg3W5HLls22UntuSW8OPMEywYF80v75okt7I8RFSwH99fNJaDF6/yjh0S6U/zrrDtRBnfmD+SmCEyXdgTjI8fwrOfn8bZsnrufXa/zcsfvH+8hJc+vcQX56SycGKsTfctOkjCIwzn4+3F/z6QQXyYP4+9esRm9Xn25l3hiTXZTE0O56/3ZWCSUv8e5XPTkpiWEs6vtpziqg0/kZvbLfxs00mSIgJ4dO4wm+1XOL/5Y6N56eHp5F9t5J5n91Fa02yT/eZXNvLdtcdISwzl+4ukcKW9yDuAcAphgb48/9B0WtstfOmVwc/cOl5Uw2OvHSE1KpAXHppOgK/cC/c0Xl6KX66cRF2zmV9uOWWTfTa1tvPjzBOcKavjh4vHS6l/DzRnZBSvPDKDsppm7nl236A/oLWY2/nGG0dRwP/cn4GvSd6W7UX+Z4XTGBkdzNP3D37mVnmjhYdfOkRogA+vPjKT0EAfG0cqXMXomBAeu2k4a48UsjW3ZFD72n+hkoV/3sUbB/J5ZM4w7pggg9891YxhEbz2pZlcbWjlnr/v53Jlw4D39astp8ktquF3d8u4HXuThEc4lZtGD27mVkVdC78/3IzZYuGVR2YQGyrjKzzdv90yitExwXzt9aPc9+z+fo8Ta2gx8+ONx7n32f1oDW9+eRY/XjpexoN5uIzkcN788iwaW8187u/7OF9R3+99bM0t4eW9l3h07jDumCDjduxNEh7hdAY6c6uuuY2HXzpIdYvmpYenMzI62I5RClcR4OtN5uNz+cnS8Zwrr2fV3/bx8EsHOV5Uc92/3XPuCrf/cRev7b/MF+ek8v4TNzJ7hBStFB0mJoTy5mOzaLdo7vn7fs6U9r0MQnmjhe+tPUZaUhhPLpSZfo4wqIRHKXW3UuqEUsqilJp2je0WKqXOKKXylFJPDeaYwv11n7n10ckyCqsaqWlsw9xu6fFvWsztfOW1I5wurePxdD+mSF0U0YW/jzdfnDOMXd+bx5MLx5KVX82Sv+7hq68d4WzZZ9+kapvbeOrdYzz4wgH8TF6885XZ/GTpBAJ9ZekI8a/Gxg5hzWOz8faCe5/d12MibW63cKa0jrVHCvlp5glW/20v//lpE0rB0/dPkXE7DjLYV+9xYCXw9942UEp5A08DtwGFwCGlVKbW2rEr/AmX0jlza8XTn/KlVw//y2MBPt4E+ZkI8TcR7NfxVdPUxsmSWv5wdxqRdfavsCtcU6Cvia/NG8EDs5J5cc9Fnt99kW0nS1meFs8TC0aTGhXEjjPl/GBdLmW1zXzl5uF8a8FoGZwsrmlkdDBvf2U29z93gPuf289vV6dR29zG8aIacotqOFVSS3Nbx4e1QF9vxscN4eZEE99cNovEcBm34yiDSni01qeA693LngHkaa0vWLddAywHJOER1xQW6Mu6r89h3/lKGlrM1LWYqW82U9/SRn2LmfqWduqb2/45o+vnKyayamoiO3dKwiOubYi/D08sGM1Ds1N5Ztd5Xtl7iU3HSpiSFMbhy1WMig7mb1+fQ3pSmNGhCheREhnEW1+Zxf3PHeCr/zgCQLCfifHxQ3hgZgoTE4YwKSGUYVHBeHspdu7cycSEUIOj9izKFlVIlVI7ge9orQ/38NhqYKHW+kvWnz8PzNRaP97Dto8BjwHExMRMXbNmzaBj6019fT3BwZ4zxsOT2utJbQXPaq+92lrdYuG9C20cKm3nxgQTy0b64OMEa2PJuXU9da2as1XtJAR7ER2o8OqlQ8Bd2tsX9m7r/Pnzj2itex1W0+m6PTxKqY+AnoaP/1BrvbEPsfR0tnvMsrTWzwLPAkybNk3PmzevD7sfmJ07d2LP/TsbT2qvJ7UVPKu99mzrCrvsdXDk3LovT2qvs7T1ugmP1nrBII9RCCR1+TkRKB7kPoUQQggh+swRQ8MPAaOUUsOUUr7AvUCmA44rhBBCCAEMflr6XUqpQmA28J5Sapv19/FKqS0AWmsz8DiwDTgFvK21PjG4sIUQQggh+m6ws7TWA+t7+H0xsLjLz1uALYM5lhBCCCHEQEm1IyGEEEK4PZtMS7cHpVQFcNmOh4gCrthx/87Gk9rrSW0Fz2qvJ7UVPKu9ntRW8Kz22rutKVrrodfbyGkTHntTSh3uy7x9d+FJ7fWktoJntdeT2gqe1V5Pait4Vnudpa1yS0sIIYQQbk8SHiGEEEK4PU9OeJ41OgAH86T2elJbwbPa60ltBc9qrye1FTyrvU7RVo8dwyOEEEIIz+HJPTxCCCGE8BCS8AghhBDC7bl9wqOUWqiUOqOUylNKPdXD435Kqbesjx9QSqU6PsrBU0olKaV2KKVOKaVOKKW+2cM285RSNUqpbOvXj42I1VaUUpeUUrnWthzu4XGllPqL9dweU0plGBGnLSilxnQ5b9lKqVql1BPdtnHZ86uUelEpVa6UOt7ldxFKqQ+VUj9Ot3QAACAASURBVOes/4b38rcPWbc5p5R6yHFRD1wv7f2dUuq09bm6XikV1svfXvN572x6aetPlVJFXZ6ri3v522tev51RL+19q0tbLymlsnv5W1c7tz2+7zjta1dr7bZfgDdwHhgO+AI5wPhu23wdeMb6/b3AW0bHPcC2xgEZ1u9DgLM9tHUesNnoWG3Y5ktA1DUeXwxsBRQwCzhgdMw2arc3UEpHsS23OL/ATUAGcLzL734LPGX9/ingNz38XQRwwfpvuPX7cKPbM8D23g6YrN//pqf2Wh+75vPe2b56aetPge9c5++ue/12xq+e2tvt8T8AP3aTc9vj+46zvnbdvYdnBpCntb6gtW4F1gDLu22zHHjF+v1a4FallHJgjDahtS7RWh+1fl9Hx0KtCcZGZbjlwKu6w34gTCkVZ3RQNnArcF5rbc9K5A6ltd4FXO32666vzVeAFT386R3Ah1rrq1rrKuBDYKHdArWRntqrtf5Adyy2DLAfSHR4YHbQy7nti75cv53OtdprfW/5HPCmQ4Oyk2u87zjla9fdE54EoKDLz4V8Ngn45zbWi00NEOmQ6OzEeltuCnCgh4dnK6VylFJblVITHBqY7WngA6XUEaXUYz083pfz74rupfcLpjud3xitdQl0XFiB6B62cddz/AgdvZM9ud7z3lU8br1992Ivtzzc8dzeCJRprc/18rjLnttu7ztO+dp194Snp56a7vPw+7KNy1BKBQPvAk9orWu7PXyUjtsgacBfgQ2Ojs/G5mitM4BFwDeUUjd1e9ytzi2AUsoXWAa808PD7nZ++8Idz/EPATPwei+bXO957wr+BowA0oESOm7zdOd25xa4j2v37rjkub3O+06vf9bD7+x6ft094SkEkrr8nAgU97aNUsoEhDKw7lfDKaV86HjSva61Xtf9ca11rda63vr9FsBHKRXl4DBtRmtdbP23HFhPRxd4V305/65mEXBUa13W/QF3O79AWectSOu/5T1s41bn2DpwcwnwgLYOdOiuD897p6e1LtNat2utLcBz9NwGdzu3JmAl8FZv27jiue3lfccpX7vunvAcAkYppYZZPxnfC2R22yYT6BwdvhrY3tuFxplZ7w2/AJzSWv93L9vEdo5PUkrNoOP8VzouSttRSgUppUI6v6djwOfxbptlAl9QHWYBNZ3drC6s10+I7nR+rbq+Nh8CNvawzTbgdqVUuPW2yO3W37kcpdRC4Elgmda6sZdt+vK8d3rdxtLdRc9t6Mv125UsAE5rrQt7etAVz+013nec87Vr5AhvR3zRMVPnLB2j/X9o/d3P6LioAPjTcXsgDzgIDDc65gG2cy4d3YHHgGzr12Lgq8BXrds8DpygY7bDfuAGo+MeRHuHW9uRY21T57nt2l4FPG0997nANKPjHmSbA+lIYEK7/M4tzi8dSVwJ0EbHJ79H6RhL9zFwzvpvhHXbacDzXf72EevrNw/4otFtGUR78+gY09D5+u2cPRoPbLF+3+Pz3pm/emnra9bX5DE63hzjurfV+vNnrt/O/tVTe62/f7nztdplW1c/t7297zjla1eWlhBCCCGE23P3W1pCCCGEEJLwCCGEEML9ScIjhBBCCLcnCY8QQggh3J4kPEIIIYRwe5LwCCF6pZQKU0p9vcvP8UqptXY6lo9S6og99j0YSqnUritfCyFckyQ8QohrCQP+mfBorYu11qvtdKy5wF477VsI4eEk4RFCXMuvgRFKqWyl1O+69nYopR5WSm1QSm1SSl1USj2ulPq2UipLKbVfKRVh3W6EUup964KIu5VSY3s51kK6LZiplPJWSr2slDqulMpVSn3rWvtUSsUopdZbF1DNUUrdYP39t637OK6UesL6u1Sl1Cml1HNKqRNKqQ+UUgHWx6Za/34f8I0u8UxQSh20/n8cU0qNsuV/thDCfiThEUJcy1PAea11utb6uz08PhG4n441f34BNGqtpwD7gC9Yt3kW/j979x3f1HU2cPx3JO+N8V4Yg9nYYFYCJIGQAQkrZEFom6Rp06ZNm+6kb983bdO36+1MmzRt2mYPMggzEMiADPayzQYDBm+MF962rPP+YZFQYoONJd0r6fl+Pv5Ylq7ufQ4SV4/uOec5fEtrPQ74AfC3bo41Hdh4wX1jgGSt9Sit9Wjg2Uvs8y/Ah7pzAdUcYL9SahxwLzAJuAL4qlJqrGP7TOBJrfVIoBa41XH/s8C3tdZXXhDP14HHtdZj6Kwa2+UyAUII8/EzOgAhhEfboLWuB+qVUnXAKsf9e4EsxyrKk4E3HMt8AQReuBOlVBJQrT+/htRxIEMp9VfgbWD9JfZ5LY5ES2vdAdQppaYCy7TWjY5jvQVcReeSBie01rmO5+4C0pVSkUCU1vpDx/0v0rloK3Qmcj9RSqUAb2mtj/b0H0oIYSxJeIQQfdF63m37eX/b6Ty/WIBaxxWRi5lFFwsHaq1rlFLZwI10di3dAXynh/s8R13ksfPj7wCCHdt3t1L5K0qpbcDNwDql1Fe01h/0MA4hhIGkS0sIcTH1QPjlPllrfRY4oZS6HTpXV3YkMBf63Pgdx/YxgEVrvRT4HyDnEvt8H3jAcb9VKRUBfATMV0qFOFahvgX4+CIx1/LZlSGAxefFkwEc11r/hc4rRFk9/bcQQhhLEh4hRLe01lXAJsdg399d5m4WA/cppc6tAj3v/AeVUlYgU2t9qIvnJgMblVK5dK42/eNL7PMhYLpSai+dXVQjtda7Hc/dDmyjc7XmPZeI+V7gSceg5ebz7r8T2OeIZxjwwiX2I4QwCVktXQhhKMeVlC9orb9udCxCCO8lCY8QQgghvJ50aQkhhBDC60nCI4QQQgivJwmPEEIIIbyeJDxCCCGE8HqS8AghhBDC60nCI4QQQgivJwmPEEIIIbyeJDxCCCGE8HqS8AghhBDC60nCI4QQQgivJwmPEEIIIbyeJDxCCI+klNqvlJpmdBxCCM8gCY8Qwi2UUncppXYqpRqUUmVKqbWOldIvi9Z6pNZ6oxNDFEJ4MUl4hBAup5T6HvBn4FdAPJAG/A2YZ2RcQgjfIQmPEMKllFKRwGPAN7XWb2mtG7XW7VrrVVrrHyqlApVSf1ZKlTp+/qyUCnQ8N0YptVopVauUqlZKfayUsjgeK1RKXee4/TOl1OtKqReUUvWO7q7x58WQpJRaqpSqVEqdUEp924h/CyGEcSThEUK42pVAELCsm8d/AlwBjAGygYnAfzse+z5QDMTSeWXovwDdzX7mAkuAKGAl8ASAI0FaBeQBycAM4DtKqRv70ighhGeRhEcI4Wr9gTNaa1s3jy8GHtNan9ZaVwI/B77oeKwdSAQGOK4Kfay17i7h+URrvUZr3QG8SGfyBDABiNVaP6a1btNaHwf+CSx0QtuEEB5CEh4hhKtVATFKKb9uHk8CTp7390nHfQC/AwqA9Uqp40qpRy5ynPLzbjcBQY5jDgCSHN1itUqpWjqvFMVfRluEEB5KEh4hhKttAVqA+d08XkpnUnJOmuM+tNb1Wuvva60zgDnA95RSM3p5/CLghNY66ryfcK31Tb3cjxDCg0nCI4RwKa11HfAo8KRSar5SKkQp5a+UmqWU+j/gVeC/lVKxSqkYx7YvASilZiulBiulFHAW6HD89MZ24KxS6mGlVLBSyqqUGqWUmuC0RgohTK+7S8xCCOE0Wus/KqUq6ByM/DJQD+wCfgnsBiKAfMfmbwD/67idSefg41igBvhbb2vvaK07lFJzgD8AJ4BA4DCfDYwWQvgA1f34PyGEEEII7yBdWkIIIYTwepLwCCGEEMLrScIjhBBCCK8nCY8QQgghvJ5pZ2nFxMTo9PR0l+2/sbGR0NBQl+3fbHypvb7UVvCt9vpSW8G32utLbQXfaq+r27pr164zWuvYS21n2oQnPT2dnTt3umz/GzduZNq0aS7bv9n4Unt9qa3gW+31pbaCb7XXl9oKvtVeV7dVKXXy0ltJl5YQQgghfIAkPEIIIYTwek5JeJRSzyilTiul9nXzuFJK/UUpVaCUyldK5TjjuEIIIYQQPeGsKzzPATMv8vgsOkvEZwL3A0856biXRWuNXSpMCyGEED7DKQmP1vojoPoim8wDXtCdtgJRSqlEZxz7cizbU8KvtrWQX1xrVAhCCNEjbTY7Gw6d5tlNJ2hqsxkdjvBg6/eX88QHRzlxptHoUAzhtLW0lFLpwGqt9aguHlsN/EZr/Ynj7/eBh7XWOy/Y7n46rwARHx8/bsmSJU6J7ULby228uL+FhnbFVSl+3DYkgIgA5ZJjmUVDQwNhYWFGh+EW7mhrW4fmmX2tFNbZiQm2EBOsHD+f3Y4MVHQu8u1a8tp6nw675mB1B5uKWsivVjS2d94/IMLCQzmBRAd53/BLX3ltz3FnezvsmtcPt7Hu5GcJ85B+FqYk+zExwY9gP9eep1zd1unTp+/SWo+/1Hbumpbe1b/m5zItrfXTwNMA48eP166axjYNGPXuBna3xvPc5kL2nGnje9cP4YtXDMDP6n0nEpApkM7UZrPz9Zd2sbWsiRnD4jjT0Mremmaqitv+Y7tAPwvJ/YIZEB3C928YyqjkSJfEI6+td+iwa7adqGJ1fhnv7CunurGNIKtiVlYys7MS6bBrvvd6Hr/eZefpL45lbFo/o0N2Km9+bbvirvZWNbTyzVd2s/VkE/dMTucrVw1kVV4Zb+wq4tl9jbx62MasUYncPi6FKzL6Y7E4P/kxy2vrroSnGEg97+8UoNRNx+5SiL/iv68fwcKJqfx81QF+vuoAr24/xc/mjmTyoBgjQxMmZuuw8+1X9/DBodP88pZRLJ404NPHmtpslNQ0U1zTTHFNE0WO39tPVPOV53ey6ltTiQ0PNDB6YUb5xbUs3VXMmn3lVNa3EuxvZcbwOGZnJWGpOMgNM8Z8uu2yb4Ry3/M7ufPprfzutizmjUk2MHJhdnuL6/jaizupamzjj3dksyAnBYAHpg3i69dksKeoljd3FbMqr5Rle0pIjgrm1pxkbh2XwoD+3lcU0V0Jz0rgQaXUEmASUKe1LnPTsS9qcFw4L3x5IusPVPCL1Qe465/buHl0Iv9183CSo4KNDk+YyLlv2O/sL+fR2SP+I9kBCAnwIzM+nMz48P+4/0DpWRY8tYkHX9nNS1+ZhL+XXkUUvbf1eBWL/rkVf6uFa4fGMTs7kWuHxRES0Hlq3njm0H9snxkfzvJvTuGBl3bx0JJcjlTU8/3rh7rkW7nwbG/sLOIny/cRGxbI0gcmf+4Ks1KKnLR+5KT149HZI1h/oII3dhbx1w0F/OWDAn5wwxAevDbToOhdwykJj1LqVTp7imKUUsXATwF/AK3134E1wE1AAdAE3OuM4zqLUoobRyZwzZBYnv7oOH/bWMD7hyp44JrBfO2aDIL8rUaHKAxmt2seWZrPyrxSHp45jC9PHdjj545IiuA3C7L4zmu5/GbtIf5n9ggXRio8RX1LO99/PY+06BBWfnMqkSH+PXpedGgAL943iZ+u3MeTG45RcLqBP94xhtBA0xbOF27UZrPzv28f4IUtJ5k8qD9/XTSW/mEXv7Ic5G9lbnYSc7OTKKtr5ucrD/DHd48wNTOWMalRborc9Zw1S2uR1jpRa+2vtU7RWv9ba/13R7KDY3bWN7XWg7TWoy8crGwWQf5Wvj0jk/e+dw0zhsXzp/eO8JXnd+Ksgd3CM2mteXTlPt7YVcx3rsvkgWmDer2P+WOTuXdKOv/+5AQrcktcEKXwNL9YfYCyumb+eMeYHic75wT4WfjVLaP56ZwRvHuggtv+voWS2mYXRSo8xen6Fhb/aysvbDnJV68ayAtfnnjJZOdCiZHB/Pa2LOIjgvj+67m0tHe4KFr3k2vrXUjpF8KTi3P46ZwRfFJwhlX5puh9EwbQWvOL1Qd5aespvn7NIB6acfmXeP/rpuFMTI/m4aX5HCw768Qohad590AFr+8s5oFpgxg34PIGHyuluHfKQJ69dyLFNU3Me+ITdp2scXKkwlPsPlXDnL9+wt6SOv6yaCw/uXnEZU/CiQz25ze3ZnGsspE/vXvEyZEaRxKei/jSlemMTo7kf1cfoKFV6l/4Gq01/7fuMM9sOsG9U9J5eObQPk0z97daeGLxWCKD/fnai7uobWq79JOE16lqaOXHb+UzPDGCh2YM6fP+rhkSy7JvTCEs0I9FT2+VK4g+aMuxKhb+YysBfhbeemAKc7OT+rzPa4bEsmhiKk9/fJxdJy9WZs9zSMJzEVaL4rF5Izld38rj73lPlit65i/vF/DUxmPcNSmNR2ePcEpNnbjwIP62eBxldc08tCSXDrt0l/oSrTX/tWwvZ5tt/OnObAL8nHMKHhwXxvJvTmFMahQ/ejOfsjrp3vIVdrvmsdUHiI8MZNWDUxmRFOG0ff/k5hEkRQbzgzfyaW7z/K4tSXguYWxaPxZOSOXZTYUcqag3OhzhJn//8Bh/eu8It41L4X/njXJqAcFxA/rxs7kj+fBIpSTSPmbZnhLW7a/g+zcMYViC8z6YAKJCAvjDHdnYtebx9446dd/CvJbnlnCw7Cw/uGEoUSEBTt13WKAfv7stixNnGvndusNO3bcRJOHpgR/NHEZooB+PrtgnA5h9wPI9Jfxm7SHmZCfx21uzXDLl966JadwxPoW/fFDA+v3lTt+/MJ/S2mZ+umI/E9L78ZWrMlxyjNToEL5wxQBe31lEwekGlxxDmEdLewd/WH+E0cmRzMnqezdWVyYPjuFLVw7g2c0n2Ha8yiXHcBdJeHogOjSAH944lK3Hq1mZZ2i9ROFibTY7v1t3mOyUSP54RzZWF9U3UUrx2LxRZKVE8r3X8zhWKR9O3sxu1/zwzTw6tOYPt49x2fsK4MHpgwkJ8OP3XvCNXFzcC1sKKalt5sezhrm0FtPDM4eR2i+EH76Z79HruUnC00OLJqYxOjmSX759UAYwe7G3dhdTUtvMd64f4vICgUH+Vp76wjgC/Cx87cVd8r7yYi9sKWRTQRX/M3sEaf1DXHqs/mGBfPWqDN7ZX87uUzJry1vVNrXxxAcFXDMklsmDXbs6QKija6uoponfrj106SeYlCQ8PWS1KH4xfxSVDTKA2Vu1d9h5cmMBWSmRTBsS65ZjJkcF88SisRyvbOCHb+RJl6kXKjjdwK/XHmL60FgWTki99BOc4CtXDSQmLIDfrj0k7ykv9beNx6hvtfHIrGFuOd6kjP7cO3kgz285yeZjZ9xyTGeThKcXxqRGced4GcDsrZbtKaGoupmHZmS6ZZXzcyYPjuGHNw5j7b5yPjxS6bbjCtezddj5/uu5BAdY+e2tWW57X4UG+vGtazPZdqKajfKe8jrFNU08t7mQBWNTGJ7o3MHvF/PDG4cyMCaUH72Z75FXpCXh6SUZwOydbB12ntxQwKjkCK4dFuf24983dSDxEYH88+Pjbj+2cJ2/bTxGXnEdv5w/mriIILcee9HENNKiQ/i/dw5jl/IHXuWP6zt7Gb53Q9/rOPVGcICV39+eRWltM79ac9Ctx3YGSXh6KTo0gB/NlAHM3mZFbiknq5r49rXuvbpzToCfhXunDGRTQRX7SurcfnzhfHuL6/jL+0eZNyaJm7MS3X78AD8L379hCAfLzsq5yoscKD3LstwS7p2SbsgC1+MGRPPVqzJ4ZdspPvKwq4eS8FyGhRNkALM36bBrnthQwPDECK4fEW9YHHdNSiMs0E+u8ngBrTU/Wb6X/mEBPDZ3lGFxzMlKYmRSBL9ff5hWm+cXjhPwm3cOERHkzzeuGWxYDN+9fgiDYkN5ZGk+9S3thsXRW5LwXAYZwOxdVueXcuJMIw/NGGzI1Z1zIoL8WTghldX5ZRTXNBkWh+i7XSdryC+u46EZQ3q9MKgzWSyKH80cRnFNM69sO2VYHMI5Pjl6ho+OVPKtawcb+r4K8rfyu9uzKa1r8aj3lSQ8l2lMahQLJ6TyjAxg9mgdds1f3j/K0PhwbhiRYHQ4fHnqQBTw7KZCo0MRffDs5kIig/2ZP9Y1xeB64+rMGK7M6M8THxTIFWkPZrdrfr32IMlRwXzxygFGh0NOWj8mDYzmxa0nPWaJHEl4+uCHNw4jPEgGMHuyNXvLOFbZyLdmDHZp4a6eSooKZnZWIku2n6Ku2XMuFYvPlNU1886+chZOSCUkwM/ocFBK8fCsYVQ1tvHPj6S71FOtyi9lf+lZfnDjEAL9rEaHA8A9k9Mprmnm/YMVRofSI5Lw9MH5FZjf2SfLA3gau13z1w+OkhkXxk2j3D+otDtfvTqDxrYOj7pULD7z0taTaK35whXGfws/Z0xqFDeNTuBfHx/nTEOr0eGIXmq1dfC7dYcZkRjBvOxko8P51PUj4kmMDOL5LYVGh9IjkvD00cIJaQzoH8KzmwuNDkX00jv7yzlS0cCD15rj6s45I5MimTo4hmc3nZCBph6mpb0zUb1ueDyp0a6tqNxbP7hhKC02O098UGB0KKKXXtxykuKaZn58k2uXkOgtP6uFL1wxgE0FVRScNv/QDkl4+shqUSyamMb2E9Ue8YKLTnbH2J2M2FBmu2jRvb64/+oMTte3sjJXphN7kpV5pdQ0tXPPlHSjQ/mcjNgw7hifysvbTnKqSgbFe4q65nae2FDAVZkxXJXpngrwvbFwQioBfhae33zS6FAuSRIeJ7htXAr+VsXL0gXhMdYfqOBQeT3funawSxdyvFxXZcYwLCGcf358XMaHeQitNc9tKmRofDhXZvQ3Opwufee6TKwWxR/elYVFPcVTG49R19zOwzPds4REb/UPC2ROVhJLdxdz1uRT1CXhcYKYsEBmjkpk6a5iWtqlC8LstO68ujMwJpQ5Jry6A50DTe+/OoMjFQ1sPOxZxb181Y7CGg6UneWeKemGlje4mPiIIO6dMpAVuaXsL5UCl2ZX1dDKs5tOMH9MMqOSI40Op1v3TE6nqa2DN3cWGx3KRUnC4ySLJ6VxtsXG6vwyo0MRl/DewdMcKDvLN6cPxs/FK6L3xZzsJBIignhaZtZ4hOc2n+icij7GPINKu/L1awYREeTH3z+U95XZLdtTQqvNzgPTBhkdykWNTokkJy2KF7YUmnoZE/Oe7T3MpIHRDIoN5eVt5u/H9GXnru6kRYcwf4w5r+6c42+18OWp6Ww5XsXeYvk2bmaltc2s21/BwompBAeYY8pwdyKD/VmQk8K6/eXUNrUZHY7ohtaa13YUMTYtiiHx4UaHc0l3T06nsKqJD4+a94q0JDxOopTirkkD2HOqlgOlZ40OR3Rjw+HT7C2p40GTX905Z9HENMID/XhalpswtXNT0b9ooqnoF3P7+BTabHaW7ykxOhTRjd2najl6uoE7x6caHUqPzBqVSGx4IC+YeMay+c/4HuTWnGQC/Cy8sl2u8piR1prH3y8gpV8wt+SYu9vhnPAgfxZNSmPN3jKKqmVmjRm1tHfw6vZTXD8inpR+5pqK3p2RSZGMSo7gtZ3FMijepF7fUURIgJXZ2ea+En1OgJ+FuyamsfFIJYVnGo0Op0uS8DhRVEgAs7MSWb6nlEYp4W46205Uk1dUyzemDcbfA67unHPvlHQU8MymE0aHIrqwMtcxFX3yQKND6ZU7x6dysOws++WKtOk0tNpYlV/K7KxEwgKNr9bdU4snpWFVihe2mPNLv1PO+kqpmUqpw0qpAqXUI108fo9SqlIplev4+YozjmtGiyel0dBqY2We1E8xmzd2FhMW6MctYz3j6s45iZHBzM1O4rUdRdQ1mXvap6/RWvPs5kKGJYRzRUa00eH0ytwxyQT6WXhtR5HRoYgLvJ1fSlNbB3dOSDM6lF6JiwjiptGJvLGzyJRf+vuc8CilrMCTwCxgBLBIKTWii01f01qPcfz8q6/HNauctH4MSwiXwcsm09hqY+2+MmZnJZp+UGlXvnp1Bk1tHbwk7ytT2X6imoNlZ7lnsnmnoncnMtifWaMSWJ5bIuU0TOa1HUUMjgsjJy3K6FB67e7JA6hvtfGWCceHOeMKz0SgQGt9XGvdBiwB5jlhvx5JKcXiSWnsKzlLfnGt0eEIh7X7ymlq6+DWcSlGh3JZhidGcFVmDM9tLpTlJkzkuc2FRIX4M8/kU9G7c8f4VOpbbLIWoIkcrahn96la7hyf6nFJNHR+6R+VHMELmwtNNz7MGQlPMnD+NdFix30XulUpla+UelMp5RnDzi/TvLHJBPtbeXmrVF42i6W7ihnQP4TxA/oZHcpl+9rVg6isb5WZNSZRUtvMuv3lLJyQ5pFXDQGuyOhPanQwr++Ubi2zeG1HEf5W5TETKy6klOLuK9M5erqBLceqjA7nP6i+ZmBKqduBG7XWX3H8/UVgotb6W+dt0x9o0Fq3KqW+Dtyhtb62i33dD9wPEB8fP27JkiV9iu1iGhoaCAsLc9n+n9nXytYyG3+eFkKIv/FZuqvbayYXtrWyyc4PP2rmlsH+zBscYGBkfaO15qebW7BrzS+mBH/67c+XX1sjvX64jbUn2vndNcHEBLtmELw72rvyWBtvHW3n/64OJi7EuMH8Znpt3aGr9trsmu9uaGJotJUHxwYZFFnftXVovr+xicx+Vr6dE+Ty13b69Om7tNbjL7mh1rpPP8CVwLrz/v4x8OOLbG8F6i6133HjxmlX2rBhg0v3n1dUowc8vFo/v/mES4/TU65ur5lc2NbH3zuiBzy8Wp+qajQmICd6cUuhHvDwar23uPbT+3z5tTVKc5tNZ/98nf7aCztdehx3tLe0tkmnP7Ja/37dIZcf62LM8tq6S1ftfTu/VA94eLX+4FCF+wNyst+uPagHPrJaF1U3uvy1BXbqHuQrzkjndwCZSqmBSqkAYCGw8vwNlFKJ5/05FzjohOOaWlZKFKOTI3l56ynT9WP6Eq01S3cXc2VGf1KjPaNGysXMzkrE36pYJt1ahlqRW0KtSVdF763EyGCuzozlzV3FdJh4WQBf8NqOD5IYXAAAIABJREFUIhIjg7jahKui99YXHEU4X9xqnokWfU54tNY24EFgHZ2JzOta6/1KqceUUnMdm31bKbVfKZUHfBu4p6/H9QSLJ6VxuKKe3adqjA7FZ+08WcPJqiaPHax8oaiQAKYPjWNlXim2DrvR4fgkrTXPbuqcij5poGdNRe/OnRNSKatr4WMTLwvg7Uprm/noaCW3j0vBajF+GERfJUUFc8OIBF7bUURbhzkSaad02Gqt12ith2itB2mtf+m471Gt9UrH7R9rrUdqrbO11tO11oeccVyzm5OdRFignwxeNtDSXcWEBFiZNSrB6FCcZkFOMpX1rWwy2YBAX7HtRDWHyus7C0J64Cyarlw3PJ7o0AAZvGygN3YWozXc7iFLSfTE3ZPTqW1qZ0uZOWryeE65WQ8U6ihyt3pvGTWNskifuzW3dbA6v4xZoxIJ9aBqpZcyfVgcEUF+MlvLIEu2nyIiyM9jp6J3JcDPwi1jk3n3QAVVDa1Gh+Nz7HbNG7uKmDo4xiu63s+5IiOaofHhvH/SZoqhHZLwuNhdk9Jos9lZurvY6FB8zvoD5TS02rjNS7qzzgn0s3JzVhLv7Cs3ZTVTb9bUZmP9gQpuzkokyN8zp6J3547xqbR3aJbnSpV4d9t8rIrimmbumOA9V3fAMUV9cjoBVqhrNr5KvCQ8LjY8MYKctChe2S6Dl93tzV3FJEcFe804i/MtyEmmub2D9QekYJw7vXuggqa2Dq+6unPO0IRwslOjeH1HkZyr3GzJjlNEhfhzw4h4o0NxuoUTUvnvK4KJCjG+JIgkPG5w16QBHK9sZOvxaqND8Rlldc18UnCGW8elYPGCAYAXGpfWj5R+wby1W7q13GlFbimJkUFMTPe+JBo6FxQ9XFFPXnGd0aH4jJrGNtbvr2D+mGSvu2oImOr8KwmPG8zOSiQiyE/W13Kjt3aXoDXc6qHVSi/FYlHcMjaZTQVnqG2R2VruUN3YxkdHKpmbnWSqk7gzzclOJNjfKoOX3WjZnhLaOuzc6WXdWWYkCY8bBPlbuW1cKuv2l8uAQDc4V3tnYno0A/qHGh2Oy8wfm4xdw9YyWVvLHd7eW4bNrr2yO+uc8CB/bhqdyKrcUprb5H3lalprXt9ZRHZKJMMTI4wOx+tJwuMmt49Pob1Ds2ZvmdGheL1jdXaOVzZy6zjv/WACGBQbRnZKpGmmfHq7lbklZMaFMTwx3OhQXOqO8SnUt9rkXOUG+cV1HCqv97rBymYlCY+bDEsIZ0h8GCvzZAaEq20qsRHkb+Gm0YmX3tjDzR+bzMmzdo5U1BsdilcrrmliR2EN88cme03tne5MHBjNwJhQXpNuLZdbsqOIIH8Lc7KTjA7FJ0jC4yZKKeZmJ7GjsIaS2majw/FaLe0dbCuzMXNkAuFB/kaH43JzspOwKGTwsoutcEzVnusDH0xKKW4fn8L2E9WcONNodDheq9WmWZVXys2jk4jwgXOVGUjC40bnsvhVcpXHZd47WEGTDW4b5xuXiGPCAhkVY2VFbgl2WQfJZVbmljJuQD+vKgp3MbfldC5v8IZc5XGZHRU2GlptMljZjSThcaMB/UPJTo1ipRT2cpmlu4qJDlJcOai/0aG4zeQkP8rqWth6QpaacIWDZWc5XFHP/DHef3XnnLiIIKYN6VxQVNZsc42Pi21kxIQyIb2f0aH4DEl43GxudhIHys5ScLrB6FC8zumzLXx4pJLJSX5esfheT42NsxIWKEtNuMry3BL8LIqbs3wn4QG4Y0Iqp+tb+fjoGaND8Tqltc0crrFziw+MCTMTSXjcbE5WIkohg5ddYHluCXYNU5K8Z92sngi0KmaOSmDt3nJa2mUqsTPZ7ZpVuaVclRlDdKjxlWLdafrQOCKD/aUL3gVW53f+m8pgZfeShMfN4iKCuDKjPytzS6R8uxNprXlzVzE5aVEkhvne2/qWscnUt9p472CF0aF4lR2F1ZTWtTB/rHeXOOhKgJ+FWaMSWLdfEmlnW5VXxsBIC+kx3lsnzIx875PBBOZmJ1FY1cTeEinf7iz7Ss5ypKKBW71sodCeuiKjPwkRQSyT2VpOtTy3lGB/K9d74RpHPTEnO4nGtg42HDptdChe48SZRvaW1DEpwbeuRJuBJDwGmDUqEX+rksHLTvTmriIC/CzM9rFxFudYLYp5Y5L48EilVPN2kjabnTV7y7hhZDwhAb754XRFRn9iwgJZlS/nKmdZlVeKUjAp0fvWzTI7SXgMEBnizzVD4lidXyZTiZ2gvcPOyrxSrh8RT2Sw79azuCUnGZtdszpfKuQ6w4dHKqlrbme+Fy8lcSlWi2J2ViLvHzxNfUu70eF4PK01K/NKmZAeTb8g+fh1N/kXN8jcMUmUn21he6GsoN5XnxScoaapnVt8+IMJYFhCBMMSwlkms7WcYnluCdGhAUzNjDE6FEPNyU6k1WaX8WFOcKi8noLTDT5RwNKMJOExyHXD4wj2t35awVVcvlV5pUQE+XHVEN/+YAJYkJNMblEtxyul7EFfNLTaeO9ABTePTsTf6tunyZy0fiRHBUsXvBOszCvFalHMGpVgdCg+ybf/JxsoJMCP60fEs3ZfGW02Kex1uVraO1i/v4JZoxIJ9JM+8bnZySjVOdhWXL51+8pptdmZP1a+iSulmJ2dyMdHz1DT2GZ0OB5L686lJKYOjqF/WKDR4fgkSXgMNDc7idqmdj4pqDQ6FI+18fBpGlptUs/CISEyiCmDYli+R8oe9MXy3BJS+gWTkyZVcKHzXGWza9buKzc6FI+1p6iW4ppmOVcZSBIeA109JJbIYH+5VNwHq/LKiAkL4IqMaKNDMY35Y5M5Vd3E7lM1RofikSrrW9lUcIZ5Y5KkCq7DiMQIMmJDpQhhH6zKKyXAz8INI32zxIEZSMJjoAA/CzeNTmD9gQqa26SwV281OArt3Tw6ET8fH2dxvpmjEgjyt8jg5cu0Or8Uu8anZ2ddSCnF3Owktp6oouJsi9HheJwOx+zJ6UNjZWV0A8mnhMHmZCfR1NYhMyAuw3sHKmi12eUS8QXCAv24bng8a/aW0y4LP/ba8txSRiRGkBkfbnQopjI7Kwmt4W0pe9Br205UUVnfytxsSaKNJAmPwSYN7E9ceKCsrXUZVuWVkhQZJOMsujA3O4nqxjY2FcjCj71ReKaRvKJa5vnQyug9NTgujBGJEXKuugyr8koJDbBy7bA4o0PxaZLwGMxqUczJTuLDw51FzkTP1Da18dHRSuZkJ2HxoZXRe+qaobGEB/nJh1MvrcjtrII7VxKeLs0dk0RuUS1F1U1Gh+Ix2mx21u4r5/oR8QQHyExSIzkl4VFKzVRKHVZKFSilHuni8UCl1GuOx7cppdKdcVxvMTc7ibYOO+tkBkSPvbOvnPYOLd1Z3Qj0szJzZALr91fIwo89pLVmRW4JkwZGkxgZbHQ4pjQ7KxFAEule+KSgktqmdjlXmUCfEx6llBV4EpgFjAAWKaVGXLDZfUCN1now8Cfgt309rjfJSolkQP8QOYn0wqr8UgbGhDIyKcLoUExr7pgkGlptbDwsCz/2xL6Ssxw/08g8GazcrZR+IYwb0E9ma/XCqrwyIoP9uSoz1uhQfJ4zrvBMBAq01se11m3AEmDeBdvMA5533H4TmKFkvuenzs2A2HzsDKfrZQbEpZyub2HLsSrmZMu04Yu5MqM/MWEBkkj30IrcEvytiptGJRodiqnNyUrkUHk9RyvqjQ7F9JrbOli/v5xZoxII8JMRJEZzxhLAyUDReX8XA5O620ZrbVNK1QH9gf8YUamUuh+4HyA+Pp6NGzc6IbyuNTQ0uHT/vZXQZseu4fGlH3N9uvOnLZqtvX3x7sl27BriW4vZuPHzH+be1NaeuFh7s6PtvLu/nLXvbSDYz/OTQ1e9tnateXNHM6P6W9izfZPT93+5zPhejmq1o4C/rtzCgswAp+3XjG3tqx3lNhrbOkij8nNt88b2dscsbXVGwtPVWfTCEq892Qat9dPA0wDjx4/X06ZN63Nw3dm4cSOu3P/leOnYxxxosvDLaVOcvm8ztvdy/fWpzQxLCGTx7Ku7fNyb2toTF2tvWHo17/99C83RmczKSXFvYC7gqtd2y7Eqalu38uUZWUwz0VgLs76X3yjaSn5NM49fc43TrrKata19seTFXcSG1/C1W67FesHkCm9sb3fM0lZnXGMrBlLP+zsFuPBr96fbKKX8gEhAlgm/wNzsJPackhkQF1Nc08SukzUyi6aHPl34Ubq1LmplXgkhAVauGy5VcHtiTlYShVVN7Cs5a3QoplXf0s4Hh09z8+jEzyU7whjOSHh2AJlKqYFKqQBgIbDygm1WAnc7bt8GfKBloZ/PmZMtMyAuZbWj6NmcLEl4esJi6Vz48ZOjZ6iWhR+71GrrYM3ecm4cmSDThnto5qgE/K2KlXlSzbs76/dX0CaFUU2lzwmP1toGPAisAw4Cr2ut9yulHlNKzXVs9m+gv1KqAPge8Lmp6+KzGRCytlb3VuWVMiY1itToEKND8RifLfwoFXK78tGRM9Q1tzNXPph6LCokgKszY1mdX4bdLt9du7Iyr5TkqGBy0qKMDkU4OGXYuNZ6jdZ6iNZ6kNb6l477HtVar3TcbtFa3661Hqy1nqi1Pu6M43qj+WOSOFxRz8EyuVR8oWOVDewvPSsfTL00IjGCQbGhkkh3Y2VeKf1C/JmaGWN0KB5l7pgkyupa2HlSFqm9UHVjG58UnJGZpCYj8+RM5uasJPwsiuWy8OPnrMrrrIJ7c5ZMG+4NpTqreW8vrKa8TsoenK+x1ca7B8q5OSsRf1mAtleuGx5PkL9FavJ0Yc3eMjrsWr6cmYz8DzeZ6NAArhkSy4rcUrlUfB6tNavySpk0MJr4iCCjw/E4c7M7F35cnS8fTud790AFLe12KTZ4GUID/ZgxPJ41e8uwySK1/2FVXimDYkMZnigL0JqJJDwmNG9sMuVnW9h6osroUEzjQNlZjlU2ygDAy5QRG8ao5Aj5Nn6BFbklJEUGMU4WoL0sc7KSqGpsY/MxOVedU17XwvbCauZmJ0t3lslIwmNC1w+PJzTAyoo98uF0zqq8MvwsillSBfeyzc1OIq+4jsIzjUaHYgrVjW18fPQMc8bIArSXa9rQWMID/SSRPs/q/FK0/mzWrTAPSXhMKDjAyo2jElizt0wWfuSz7qypmTFEhzqvsquvme2Yyi8fTp3W7C3DZtfMy5burMsV5G/lhpEJvLO/XM5VDsv2lDA6OZKM2DCjQxEXkITHpG4Zm0x9q40Nh2Thx92naimpbZbaO32UFBXMxPRoVuaVImWwYGVuKZlxYTLOoo9uGZtMfYuN9w/KuepQ+Vn2l55lQY4k0WYkCY9JTR4UQ2x4IMtkthar8koJ8LNww0ipgttXc7ITOXq6gUPlvr3wY0lts2OchUwb7qsrB/UnISKIt3YXGx2K4ZbtLsHPomSsoUlJwmNSVkvnCuobD1dS2+S7FXI77Jq395Zx7dA4woOcv6iqr7nJUebe17u1VjvaL0uU9J3Vopg/NpmNRyo509BqdDiG6bBrlueWMG1oLDFhgUaHI7ogCY+JzR+TTFuHnTV7y40OxTDbjldRWd8q35icpH9YIFMGx7Aq37e7tVbkdlbsHtA/1OhQvMKCnGQ67Nqni1tuPnaGirOt3DLW8xfp9VaS8JjYqOTOCrnLc323W2tlXimhAVauHRZndCheY252EkXVzewpqjU6FEMUnK7nQNlZ5snVHacZEh/O6ORI3trju91ab+0uITzIjxnD5VxlVpLwmJhSivljktl+opriGt9bQb25rYPV+WXMHJUoizo60Q0j4wnws/jst/GVuaVYpGK30y3ISWZfyVkO++D4sMZWG+/sK2d2VhJB/nKuMitJeEzuXAVYX1xB/Z39ZTS02rh9vFwidqaIIH+mD43lbUf5e1+itWZFXimTB8UQFy4Vu51pTnbnsji+OHj5nX3lNLd3yOwsk5OEx+TS+neuoL58T4nPjbl4Y2cxadEhTBoYbXQoXmdudjKV9a1sO+5bFXLzius4WdUkg5VdICYskGlDY1m2p8TnEum39hSTGh3M+AFSsdvMJOHxAPPHJnOkooGDZb5zqbiouonNx6q4bVyKTBt2gRnD4wgNsPrclcMVuSUEWC3cODLB6FC80oKcFE7Xt7Kp4IzRobhNWV0zm49VsWCsnKvMThIeDzB7dGLnCuo+NHh56e5ilIJbx0l3liucq5C7dl85bTbfWPixw65ZnV/G9GGxRAZLiQNXuHZYHBFBfj7VrbV8T+dSEreMle4ss5OExwP0Cw1g2tBYVuaW+sSlYrtd8+auYqYMiiE5KtjocLzW3Owk6prb2XDYNyrkbnWUOJCV0V0nyN/K7Owk3tlfTkOrzehwXE5rzVu7ixk3oB/pMVLiwOwk4fEQ8x0rqPvCmIutJ6oormmWwcoudlVmDPERgSzZfsroUNxiRW4JYYF+UuLAxW7NSaal3c7avWVGh+Jy+0vPcvR0gwxW9hCS8HiI64bHExbo5xPdWm/uLCY8yE/GWbiYn9XC7eNS+fBIJaW1zUaH41Kttg7W7ivnhpHxMm3YxXLS+jGgfwhv7fb+c9XS3cUEWC3MHi2D4D2BJDweIsjfysxRCazd692rEte3tLNmXxlzsqWehTvcOSEVDby+s8joUFxq4+FK6lts0p3lBkopFoxNYcvxKq+uH9beYWdVXikzhscRGSJjwjyBJDweZP6YzhXUP/DiFdTfzi+jpd3O7TJY2S1So0OYOjiG13cUefX4sJW5pfQPDWDKoP5Gh+ITznXxrPDi4pYfH63kTEMbC3LkXOUpJOHxIFcO6k+cl6+g/sauYgbHhTEmNcroUHzGoolplNa18NGRSqNDcYmaxjbePVjB7KxE/KxyynOH1OgQJg6MZunuYq+tH7Z0dwn9Qvy5Zkis0aGIHpL//R7ksxXUT3vlCurHKhvYdbKG26X2jltdNzyemLAAXvXSwctv7CqizWZn0aQ0o0PxKbfmJHO8spG84jqjQ3G6uuZ23j1QwdzsJAL85GPUU8gr5WHmj02mvUPzthfOgHhzVzFWi+IWmfHgVgF+Fm4dl8L7h05z+myL0eE4ld2ueWnrKSamRzMsIcLocHzKrNGJBPpZWLrL+2ryrN1bRpvNLt1ZHkYSHg8zMimCwXFhrNjjXX3jHfbOehbThsTKGkcGWDghjQ675g0v+3D66Gglp6qb+MKVA4wOxedEBPlzw8gEVuWX0mrzrokWb+0uISM2lKyUSKNDEb0gCY+HUUpxy9hkthd61wrqHx2tpOJsq9TeMcjAmFCuzOjPkh2nsHvR4OWXtp4kJiyAmVLiwBALcpKpbWpnwyHvGR9WVN3E9sJqbs2RrndPIwmPB5qb3VnzYbkXDV5+c2cx0aEBXDss3uhQfNbCiakUVTez6Zh3rINUVN3E+4dOs3BCmoyzMMhVg2OICQv0qqUmzk0amS9LSXicPp0FlFLRSql3lVJHHb+7XCpWKdWhlMp1/KzsyzFF5wyIKYP789LWU7R3eP46SLVNbbx7oIJ5Y2QAoJFuHJlAVIg/S7Z7R02eV7efQoEMVjaQn9XC/DFJbDh8mupGz59ocW4piSsyomXZGw/U10+XR4D3tdaZwPuOv7vSrLUe4/iZ28djCuC+qQMpP9vCGi8YvLwit5S2Dju3j0s1OhSfFuRv5dacFNYfKOdMQ6vR4fRJq62D13YUMWN4vHwwGWxBTgrtHZrV+Z4/7nBPUS2FVU0yWNlD9TXhmQc877j9PDC/j/sTPTRtSBwZsaE888kJj69z8cauIkYmRTAiSWbRGG3RxFTaO7THz6x5Z185VY1tfEkGKxtuRFIEwxLCWeoFS028tbuYQD8Ls0bJmDBPpPryYamUqtVaR533d43W+nPdWkopG5AL2IDfaK2Xd7O/+4H7AeLj48ctWbLksmO7lIaGBsLCwly2f3f44FQ7Lxxo4yeTgsjsd/FlGMza3qJ6O/+zqZnFwwO4foBzyrObta2u4uz2/mpbM3Wtmt9cFWy6QZk9besvtzZztk3z66uCsZisDb3hLe/ltSfaee1wG7+aGkxSWNffs83e1na75jsbmhgdY+Xr2X2fSWr29jqTq9s6ffr0XVrr8ZfcUGt90R/gPWBfFz/zgNoLtq3pZh9Jjt8ZQCEw6FLHHTdunHalDRs2uHT/7tDY2q6zfrZOf/3FnZfc1qzt/fnK/Trzv9bo6oZWp+3TrG11FWe3982dRXrAw6v15oIzTt2vM/SkrftL6vSAh1frf350zPUBuZi3vJcr6pr1wEdW69+uPdjtNmZv61u7O/9fbDx82in7M3t7ncnVbQV26kvkFFrrS3dpaa2v01qP6uJnBVChlEoEcPzucpEnrXWp4/dxYCMw9pKZmLikkAA/7pqUxrr95RRVe94U9TabneW5JVw3Io5+oQFGhyMcbhqdSHiQH0t2eGbl5Ze2nSTI3yJjwkwkLiKIa4fF8er2UzS12YwOp9fsds1TG48xND6cqwbHGB2OuEx9HcOzErjbcftuYMWFGyil+imlAh23Y4ApwIE+Hlc43H1lOhaleHZTodGh9NoHhzpnbsgHk7kEB1hZMDaZtfvKqfGwmTVnW9pZvqeEudlJsoK1yTwwbRA1Te0eOQvwg0OnOVLRwNenZWCxeG4Xqa/ra8LzG+B6pdRR4HrH3yilxiul/uXYZjiwUymVB2ygcwyPJDxOkhAZxM1Ziby+s4j6lnajw+mVN3cVERceyFWZ8o3JbBZOTKPNZuctD6v1tGx3CU1tHXzxinSjQxEXGDcgmkkDo3n6o+O02TynnIbWmr9tLCClXzBzspKMDkf0QZ8SHq11ldZ6htY60/G72nH/Tq31Vxy3N2utR2utsx2//+2MwMVn7ps6kIZWG6/t8JxvTqfrW9hwuJIFOSmygrUJDU+MIDs1iiXbT3nMLECtNS9uPUl2ahSjpeS/KX1j+mDKz7awbI/nzALcfqKa3adquf/qDDlXeTh59bxAVkoUE9L78dzmQjo8ZFmAl7acpMOuZSkJE7trYipHTzew+1SN0aH0yJbjVRScbuCLV8hUdLO6OjOGUckRPLXxmMecq/628Rj9QwO4Y7x0vXs6SXi8xH1TB1Jc08z6/eVGh3JJ1Y1t/PuTE9w0OoFBsb4xLdMTzc5KIjTAyivbPOPK4UtbTxIV4s/srESjQxHdUErxzWmDKaxq8oiiqftL6/jwSCVfnjqQIP+Ll/4Q5icJj5e4fkQCqdHB/PuTE0aHckn/+OgYTe0dfPe6IUaHIi4iNNCPuWOSeXtvKXXN5h4fVnG2hXX7K7hjfKp8MJncjSMTGBQbypMbCkzfXfr3D48TFujHF+SqoVeQhMdLWC2KeyYPZOfJGvKKao0Op1un61t4fnMh87KTyIwPNzoccQl3TUyjpd3OylxzD15+dfsp7FqzWNbNMj2LRfHAtMEcKq9nw+EuK5mYQuGZRt7OL2XxFWlEBsuMP28gCY8XuWN8CmGBfqa+yvPUxmO0d2gekqs7HmF0SiQjkyJ4eZt5By+3d9h5dfsprhkSy4D+oUaHI3pg3pgkkqOCeXLDMdO+r57++Dh+Vgv3TRlodCjCSSTh8SLhQf7cOSGVNXvLKKtrNjqczymra+blrae4NSeZgTHyweQp7p6czqHyetbsNef4sPcOVFBxtlUGK3sQf6uFr12Twa6TNWw/UW10OJ9z+mwLb+4s5rZxKcRF9H0ZCWEOkvB4mXsmp2PXmuc3nzQ6lM954oMCNJpvXZtpdCiiF27NSWFYQji/WnOQlvYOo8P5nBe3niQ5KphpQ+OMDkX0wh3jU4kJC+DJjceMDuVz/r3pBDa7na9dnWF0KMKJJOHxMqnRIdw4MsF0JdyLqpt4bUcRd05IJTU6xOhwRC9YLYpH54ygpLbZdN2lBafr2XysisVXpGGVCrgeJcjfyn1TM/joSCV7i+uMDudTdc3tvLz1FDdnJUkXqZeRhMcL3Td1IHXN7SzdZZ7iXn95/ygWi+LB6XJ1xxNNHhTDDSPi+duGAk6fbTE6nE89s6mQAKtFaqR4qC9ckUZ4kB9/21hgdCifemnrSRpabTxwzSCjQxFOJgmPFxo3oB/ZKZE8s6kQuwmKex2vbGDp7mK+MGkACZHSH+6p/uum4bR12Pn9+sNGhwJAblEtr24/xaKJqcSEBRodjrgM4UH+3DM5nXf2l1PaYPxyE81tHTzzyQmmDY1lRFKE0eEIJ5OExwsppfjy1IGcONNoimmfj79/lEA/Kw9Mk29Mniw9JpR7pwzkjV3F7CsxtguivcPOI0vziQ8P4gc3DjU0FtE3904ZSJCflbePG1/r6Y1dRVQ1tvGNaYONDkW4gCQ8Xuqm0YkkRgYZPubicHk9K/NKuXtyOrHh8i3c0z147WCiQwJ4bNUBQ6cT//Pj4xwqr+exeSMJD5IaKZ4sOjSARRPT2FJmo6i6ybA42jvs/OPD44wb0I8J6f0Mi0O4jiQ8XsrfauFLV6az+ViVoWsh/fm9I4QG+MlsBy8REeTP928YyvbCatbuM2aaeuGZRh5/7ygzRyZww8gEQ2IQzvXVqwei6ExkjbI6v5SS2ma+MW0QSskAeG8kCY8XW3xFGkmRQXz3tVyabe7/Nr6vpI61+8r58tSB9AsNcPvxhWvcOSHVsGnqWmt+snwvAVYLP5830q3HFq6TGBnMlGQ/XttRRGV9q9uPb7drntp4jKHx4UyX8gZeSxIeLxYR5M/ji8ZSXNPM8/tb3d4F8ad3jxAZ7M99U6VSqTexWhSPzh5BcU0zz2xyb5fpplIbmwqqeHjWMOKlIJxXuWmgP+0ddre/pwA+OHSaIxUNPDBtEBYpb+C1JOHxchPSo/nudZlsLevgDTdOU999qob3D53m/qszZB0aLzR5cAzXj4jnyQ8KOF3vnmnqVQ3AB2zhAAARDElEQVStvHqojfED+nHXRFkzy9skhFq4aXQiL2456dbFam0ddv66oYCUfsHMzkp023GF+0nC4wMemDaY4dEWfrpiPwWn691yzD+9e4T+oQHcMzndLccT7ndumvof1h1xy/F+sfoALTb49YLR8i3cS31j2mAaWm38dMU+t1yR1lrzs1X7ySuq5Qc3DMXPKh+J3kxeXR9gtSjuzwokJMDKg6/scfm4i63Hq/j46BkemDaI0EA/lx5LGGdgTCj3TE7n9V1FLp+m/uGRSpbnljI7w5/M+HCXHksYZ0RSBN+/fgjLc0vdUu/p35+c4KWtp/ja1RnMH5vs8uMJY0nC4yP6BVn4/R3ZHCqv53/fPuCy49jtmj+uP0JceCBfkMUcvd6D12bSLySAX6x23TT1pjYbP1m2l4zYUG7OkO5Rb/fgtYNZNDGVJzcc4+VtrlsTcP3+cn655iAzRybw8MxhLjuOMA9JeHzI9KFx3H91Bi9tPcXavWVO37+tw86PluazvbCah67LJMjf6vRjCHOJDPbne9cPYduJatbtd8009T+/d5TimmZ+fctoAqzSleXtlFL8Yt4opg+N5X+W7+P9gxVOP8be4joeWpJLVnIkf7pzjHSR+ghJeHzMD24YSnZKJD9amu/UIl8t7R184+XdvLmrmO9dP0QGlfqQhRNSGRofzi/XHKTV5tzu0n0ldfzr4+MsmpjKpIz+Tt23MC8/q4Un7sphVHIkD76yh9yiWqftu7S2mfue30F0aAD/vHs8wQHyxcxXSMLjYwL8LPx1UQ5oeGjJHto7+r5+TWOrjfue38H6AxX8bM4Ivj0jUwp3+RA/q4X/nj2coupm/vzeUad1bdk67Pz4rb1EhwbyyMzhTtmn8ByhgX78++4JxIQHcN9zOzhZ1djnfTa02vjyczs618y6ZwJx4VLawJdIwuOD0vqH8KsFo9l9qpY/vdu3GTa1TW0s/tc2th6v5g+3Z3PPFKm544uuyozllrHJPLXxGPc8u4MKJ6yo/tzmQvaW1PHzuSOJDJGxO74oNjyQ5++diF1r7nl2B9WNbZe9L1uHnQdf2c3R0w08uTiHoQky+N3XSMLjo+ZkJ7FoYipPfXiMj49WXtY+Tp9t4c5/bOVA6VmeWpzDreNSnByl8CR/vCObx+aNZNuJKm7880eszi+97H1tPV7FH9YfYcawOG4aLctH+LKM2DD+dff4T7uimtt6322qtebnqw6w8XAlj80bydVDYl0QqTA7SXh82KOzRzI4NozvvpbX63Lup6qauO3vWyiuaeK5eyfImkYCpRRfujKdt799FQOiQ3jwlT18Z8meHheR01rz0ZFK7vjHFhY+vZXwID8emz9KukcF4wZE8/jCMeQW1fLQkj102HvXbfrMpkJe3HqS+6/OYPEkmT3qqyTh8WHBAVaeuCuH+pZ2vvrCTt7cVczJqsZLjsE4UlHPbX/fzNmWdl7+6hVMHhzjpoiFJxgUG8abD0zmO9dlsiq/jJl//ohNBWe63d5u16zfX878JzfxpWe2c6qqiZ/OGcGHP5xOclSwGyMXZjZzVCI/nT2C9QcqeGzV/h6PFXv3QAX/+/YBbhwZzyMy/dyn9akqnFLqduBnwHBgotZ6ZzfbzQQeB6zAv7TWv+nLcYXzDE0I57e3ZvHoin384I08AGLCApmQ3o/x6dGMH9CPEUkR+DsqkOYW1XLPs9sJsFp4/WtXMkSKwIku+FstfOe6IUwfGsd3X89l8b+2cc/kdB6ZNezTcgUdds3q/FL+tuEYhyvqSYsO4dcLRrMgJ5lAP5k5Iz7vnikDKa1r4emPjhMVEsDVQ2KwdWhsdk17h/3T2zZ75+36Vhu/evsgo5Mj+fOdY2X6uY/raxncfcAC4B/dbaCUsgJPAtcDxcAOpdRKrbXrqt+JXpk/Npm52UkUVDawo7CanYU17DxZzdp9nXVVgv2tjEmNYlRyBK9sO0X/sEBe/sokUqNDDI5cmF12ahRvf+sqfrP2IM9tLuTjo5X8323ZHKts4KmNxzhxppHBcWH86c5s5mQlSWl/cUmPzBxGaW0zj79/lMffP3rJ7VP6BfOvL8n0c9HHhEdrfRC4VB/7RKBAa33cse0SYB4gCY+JWCyKIfHhDIkP/7SPu7yuhZ0nP0uA/v3JCYbEh/PClycSJytVix4KDrDy83mjuG5EPD98I59bn9oMwMikCJ5anMONIxPkm7foMYtF8ec7x7BoYho2u8bfovCzWrBaFP5W5fhtwc+i8LNYiIsIlCKoAgDljJoZSqmNwA+66tJSSt0GzNRaf8Xx9xeBSVrrB7vY9n7gfoD4+PhxS5Ys6XNs3WloaCAsLMxl+zcbZ7S3tUMTYLlkgms4eW3Nq7Fd88GpdtIiLGTFWHv9XvKktjqDL7XXl9oKvtVeV7d1+vTpu7TW4y+13SWv8Cil3gO6moLzE631ih7E0tUZrcssS2v9NPA0wPjx4/W0adN6sPvLs3HjRly5f7Pxpfb6UlvB89p7cx+e62lt7Stfaq8vtRV8q71maeslEx6t9XV9PEYxkHre3ynA5RfoEEIIIYToJXeMENwBZCqlBiqlAoCFwEo3HFcIIYQQAuhjwqOUukUpVQxcCbytlFrnuD9JKbUGQGttAx4E1gEHgde11vv7FrYQQgghRM/1dZbWMmBZF/eXAjed9/caYE1fjiWEEEIIcbmk6IUQQgghvJ5TpqW7glKqEjjpwkPEAN3Xu/c+vtReX2or+FZ7famt4Fvt9aW2gm+119VtHaC1vuSKsKZNeFxNKbWzJ/P2vYUvtdeX2gq+1V5faiv4Vnt9qa3gW+01S1ulS0sIIYQQXk8SHiGEEEJ4PV9OeJ42OgA386X2+lJbwbfa60ttBd9qry+1FXyrvaZoq8+O4RFCCCGE7/DlKzxCCCGE8BGS8AghhBDC63l9wqOUmqmUOqyUKlBKPdLF44FKqdccj29TSqW7P8q+U0qlKqU2KKUOKqX2K6Ue6mKbaUqpOqVUruPnUSNidRalVKFSaq+jLTu7eFwppf7ieG3zlVI5RsTpDEqpoee9brlKqbNKqe9csI3Hvr5KqWeUUqeVUvvOuy9aKfWuUuqo43e/bp57t2Obo0qpu90X9eXrpr2/U0odcrxXlymlorp57kXf92bTTVt/ppQqOe+9elM3z73o+duMumnva+e1tVApldvNcz3tte3yc8e0/3e11l77A1iBY0AGEADkASMu2OYbwN8dtxcCrxkd92W2NRHIcdwOB4500dZpwGqjY3VimwuBmIs8fhOwFlDAFcA2o2N2UrutQDmdxba84vUFrgZygH3n3fd/wCOO248Av+3iedHAccfvfo7b/Yxuz2W29wbAz3H7t1211/HYRd/3Zvvppq0/A35wiedd8vxtxp+u2nvB438AHvWS17bLzx2z/t/19is8E4ECrfVxrXUbsASYd8E284DnHbffBGYopZQbY3QKrXWZ1nq343Y9nQu1JhsbleHmAS/oTluBKKVUotFBOcEM4JjW2pWVyN1Ka/0RUH3B3ef/33wemN/FU28E3tVaV2uta4B3gZkuC9RJumqv1nq97lxsGWArkOL2wFygm9e2J3py/jadi7XX8dlyB/x/e/cfendVx3H8+XKbpqZbJpmbwdwYCDPdD/HHmoER5jRmmr9qYc2VzJw2pagY/RMEgRCkrCArRVEJdbOJ5gbzR1K6xeZ+4mjL/dHYmKDuRxmR27s/zrn24bPP597Lvj/uvZ9eD7h87z2f8/ncc+75/Hjfzzn3e3hiVAs1Qtpcd/ry2G16wDMJ+Hvh9R6ODQI+zJNPNgeBj49K6UZI7pabCayrWHyZpM2S/iBp+qgWbPgFsEbSBkm3Vyzvpv0H0S3UnzCb1L5nRcQ+SCdW4BMVeZraxreR7k5W6bTfD4olufvutzVdHk1s28uB/RGxs2b5wLZt6brTl8du0wOeqjs15d/hd5NnYEj6KPA0sDQiDpUWbyR1g1wIPAA8M9rlG2afiYhZwDzgTkmfLS1vVNsCSDoRmA88WbG4ae3bjSa28TLgA+Cxmiyd9vtB8EtgKjAD2Efq5ilrXNsCX6H93Z2BbNsO153a1SrSRrR9mx7w7AE+VXh9DrC3Lo+kscB4ju/2a89JGkfa6R6LiBXl5RFxKCL+kZ8/D4yTdOYoF3PYRMTe/PdtYCXpFnhRN+0/aOYBGyNif3lB09oX2N/qgsx/367I06g2zgM3vwgsiDzQoayL/b7vRcT+iDgSEUeBB6muQ9PadixwPfC7ujyD2LY1152+PHabHvD8BZgm6dz8zfgWYFUpzyqgNTr8BuDFuhNNP8t9w78B3oyIn9Xk+WRrfJKki0nt/87olXL4SDpV0mmt56QBn9tK2VYBtyq5FDjYus06wGq/ITapfbPisfl14PcVeVYDV0r6WO4WuTKnDRxJVwHfB+ZHxPs1ebrZ7/teaSzddVTXoZvz9yD5PLAjIvZULRzEtm1z3enPY7eXI7xH40H6pc5fSaP9l+W0H5NOKgAfIXUP7ALWA1N6XebjrOdc0u3ALcCm/LgaWAwsznmWANtJv3Z4HZjT63IPob5Tcj025zq12rZYXwHLc9tvBS7qdbmHWOdTSAHM+EJaI9qXFMTtA/5D+ua3iDSWbi2wM/89I+e9CPh1Yd3b8vG7C1jY67oMob67SGMaWsdv69ejE4Hn8/PK/b6fHzV1fTQfk1tIF8ezy3XNr485f/f7o6q+Of3h1rFayDvobVt33enLY9dTS5iZmVnjNb1Ly8zMzMwBj5mZmTWfAx4zMzNrPAc8ZmZm1ngOeMzMzKzxHPCYWS1JEyR9u/B6oqSnRui9xknaMBLbHgpJk4szX5vZYHLAY2btTAA+DHgiYm9E3DBC7zUX+PMIbdvM/s854DGzdn4KTJW0SdJ9xbsdkr4h6RlJz0raLWmJpHslvSHpdUln5HxTJb2QJ0R8VdJ5Ne91FaUJMyWNkfSwpG2Stkq6p902JZ0laWWeQHWzpDk5/d68jW2Slua0yZLelPSgpO2S1kg6OS+bndd/DbizUJ7pktbnz2OLpGnD+WGb2chxwGNm7fwA+FtEzIiI71UsPx/4KmnOn58A70fETOA14Nac51fAXRExG/gu8Iua97oCeLmUNgOYFBHnR8SngYc6bPN+4JVIE6jOArZLmg0sBC4BLgW+JWlmzj8NWB4R04EDwJdz+kPA3RFxWak8i4GfR8QM0n+NrZwmwMz6z9heF8DMBtpLEXEYOCzpIPBsTt8KXJBnUZ4DPJmn+QI4qbwRSROBd+PYOaTeAqZIegB4DljTYZufIwdaEXEEOChpLrAyIv6Z32sFcDlpSoPdEbEpr7sBmCxpPDAhIl7J6Y+SJm2FFMgtk3QOsCIidnb7QZlZbzngMbOh+Hfh+dHC66Ok88sJwIF8R6SdeVRMHBgR70m6EPgCqWvpJmBpl9tsUZtlxfIfAU7O+etmKn9c0jrgGmC1pG9GxItdlsPMeshdWmbWzmHgtONdOSIOAbsl3QhpduUcwJQdM34n5z8TOCEingZ+BMzqsM21wB05fYyk04E/Al+SdEqehfo64NU2ZT7A/+4MASwolGcK8FZE3E+6Q3RBt5+FmfWWAx4zqxUR7wB/yoN97zvOzSwAFklqzQJ9bXGhpDHAtIjYUbHuJOBlSZtIs03/sMM2vwNcIWkrqYtqekRszOuuB9aRZmt+o0OZFwLL86DlfxXSbwa25fKcBzzSYTtm1ic8W7qZ9VS+k/K1iFjc67KYWXM54DEzM7PGc5eWmZmZNZ4DHjMzM2s8BzxmZmbWeA54zMzMrPEc8JiZmVnjOeAxMzOzxvsv30Ie7lvCY+UAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%reload_ext autoreload\n", "%matplotlib inline\n", "\n", "import numpy as np\n", "import CBE30338\n", "\n", "t = np.linspace(0, 20)\n", "s = np.sin(t)\n", "c = np.cos(t)\n", "\n", "sin, cos = CBE30338.plotter('Sine', 'Cosine')\n", "sin.plot(t, s)\n", "cos.plot(t, c)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "nbpages": { "level": 2, "link": "[A.1.2 `CBE30338.plotter()`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.2-`CBE30338.plotter()`)", "section": "A.1.2 `CBE30338.plotter()`" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[A.1.2 `CBE30338.plotter()`](https://jckantor.github.io/CBE30338/A.01-Python-Library-for-CBE30338.html#A.1.2-`CBE30338.plotter()`)", "section": "A.1.2 `CBE30338.plotter()`" } }, "source": [ "\n", "< [A.0 Additional Python](https://jckantor.github.io/CBE30338/A.00-Additional-Python.html) | [Contents](toc.html) | [Tag Index](tag_index.html) | [A.2 Modular Simulation using Python Generators](https://jckantor.github.io/CBE30338/A.02-Modular-Approach-to-Simulation-using-Python-Generators.html) >

\"Open

\"Download\"" ] } ], "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }