Files
mikoto10032--deeplearning/books/PRML/PRML-master-Python/notebooks/ch01_Introduction.ipynb
T
2026-07-13 13:30:25 +08:00

274 lines
136 KiB
Plaintext
Executable File

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1. Introduction"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"from prml.preprocess import PolynomialFeature\n",
"from prml.linear import (\n",
" LinearRegression,\n",
" RidgeRegression,\n",
" BayesianRegression\n",
")\n",
"\n",
"np.random.seed(1234)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1.1. Example: Polynomial Curve Fitting"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def create_toy_data(func, sample_size, std):\n",
" x = np.linspace(0, 1, sample_size)\n",
" t = func(x) + np.random.normal(scale=std, size=x.shape)\n",
" return x, t\n",
"\n",
"def func(x):\n",
" return np.sin(2 * np.pi * x)\n",
"\n",
"x_train, y_train = create_toy_data(func, 10, 0.25)\n",
"x_test = np.linspace(0, 1, 100)\n",
"y_test = func(x_test)\n",
"\n",
"plt.scatter(x_train, y_train, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"training data\")\n",
"plt.plot(x_test, y_test, c=\"g\", label=\"$\\sin(2\\pi x)$\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAf8AAAEQCAYAAAC+433pAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3XV0FFcbx/HvREgILsElaHANXtyLFyjuDm2BliLFQoACLaUUWtyhhSIt7lbc3a24BA9x2ef94+ZtkaQE2M1E7uecOQ2zI79sb/bZmblzxxARNE3TNE2LP+zMDqBpmqZpWvTSxV/TNE3T4hld/DVN0zQtntHFX9M0TdPiGV38NU3TNC2e0cVf0zRN0+IZXfw1TdM0LZ7RxV/TNE3T4hld/DVN0zQtnnEwO4AZUqdOLW5ubmbH0OKwo0ePPhIR1+jer27bmi2Z1a4164uXxd/NzY0jR46YHeMVFgts3gxHjkDKlNC0KbjqP7FYyzCMG2bsNya27adPYelS8PaGIkXg44/B3t7sVNr7MKtda9anT/vHAHfvQrFi8M034O8P+/dD7twwb57ZyTTtwyxbBtmzw44dEBgI334LBQrA9etmJ9O0+C1eHvnHNK1bQ8OGMHw4GIaad/EiVKyojpSKFDE3n6a9j8uXoWdP2LkTChf+d/4PP6gzW4cO/dveNU2LXvrI32TnzqlCP2TIqx+E7u7wxRcwbZp52TTtQ8yYAZ07v1r4Afr2hefP4fBhc3JpmqaLv+muXIGiRcEhgnMwJUqooydNi40uX1Zt+HV2duDhAZcuRX8mTdMUXfxNljUrnDkDYWFvvnbqlHpd02IjNzfVhl8nAidPqtc1TTOHLv4mK1wY0qeHSZNenX/zJvz4I3TrZk4uTftQXbrA1Knq7NbLZs9WR//lypmTS9M03eEvRvjtN6heHdauhVq1VOH/7TcYNgxKlTI7naa9n/z5Ve/+kiWhWTPV63/7dtXPZdMm3dlP08ykj/xjgGzZ4OxZ1Tnq/n1Ilw6OHoXevc1OpmkfplMnderfzU217RYt4MIFyJPH7GSaFr/pI/8YwslJfTC2aGF2Ek2zrkyZYMAAs1NomvYyfeSvaZqmafGMLv6apmmaFs/EieJvGMYcwzC8DcM4Y3YWTbMm3bY1TbOFOFH8gXlALbNDaJoNzEO3bU3TrCxOFH8R2QU8MTuHplmbbtuaptmC7u0fgzz0e8i6y+vYc3MPZx+e5e6LuwSFBpE4QWIyJc1E4bSFqZKtCtVzVMfF0cXsuJoWJSLCifsn2HhlIwfvHOTq06s8CXiCiJAyYUpypcpFiQwlqJmjJsXSF8PQAwBoms0ZImJ2BqswDMMNWCsiBSJ5vSvQFSBLlizFb9yIOY+l3nVjFxP2T2DNpTVYxELKhCkpkq4ImZJmwtneGd8QX/5++jcnH5zEP8SfxAkS07JAS74q+xW5U+U2O74WAcMwjoqIh5W25UYsbNsBIQHMOjaLKUemcOHRBQByp8pN3tR5Se2SGgODRwGPOP/wPBcfXwTAPZU7vUr0olOxTvoLbgxkzXatmSveFP+XeXh4yJEjR2ye6W3OPTxHn4192HJtC6ldUtOpaCea5W9GkXRFIjz6CQ4LZs/NPSw8tZDFpxcTYgmhU9FOjKoyijSJ0pjwG2iRic7i/7KY0LYtYmHByQV8s+0b7vneo1TGUnQu1pn67vUjbafeft6subiGWcdnceD2AdIlTseoyqPoULQDdkacuDoZJ+jiH3fo4m+CkLAQRu8ezejdo0mSIAlDKwylu0d3EjomjPI2Hvg+YMyeMfxy+BeSOiXFq/TPlE7UgmzZIGVKG4bXoiS+Fv/rz67TbmU7dt3YRZlMZRhTdQwV3Sq+0zZ239jNgK0D2H97PxWyVGBg3rlkdMlO/vxgb2+j4FqU6OIfd8SJr9SGYSwG9gPuhmHcNgyjk9mZInPH5w4V51VkxF8jaF6gOZc+v0TfMn3fqfADpE2clom1JrK50UksD3Pz2Y6W1PilI9lzB9ClC/j72+gX0KJVbGrbf57/k8LTCnP83nFm1ZvFno573rnwA5TPWp69HffSK+Mc9lw5Sd01Ran15XKyZ1fPvNA07cPFieIvIi1EJL2IOIpIJhGZbXamiBy6c4jiM4pz6sEpFjdezMJGC0ntkvq9txcYCD2a5OPzRLsZWGYoT7POI9vICjwMvEurVlYMrpkmNrRtEWHEzhF8svQTcqfKzakep+hUrNMHna7futXgj2EdWFzxJCWz5eNe+aZUHT2UAQOFlSutGF7T4qk4Ufxjg3WX1lFpXiVcHF042PkgzQs0/+BtLl0KWbOCl6cDY2p4sbL5Sq48u8CJ4mXZd+lihM9S1zRrCrWE0ml1Jzz/8qRd4Xbs7rAbt+RuH7zd0aNhwgT4tEZWdrbfSaeinZh7dRTu/TswcnTIhwfXtHhOF/9osOzsMhr+3pB8rvnY32k/+dPkt8p2d+2CRo3+/Xd99/r81f4vAkID8GlcniXb9aBwWgQ6dlSPkPzAvgHBYcE0X96cuSfmMrzicOY2mIuzg/MHxxOBPXv+bdtODk7MrDcTr0pebHs8nxO5mvHsRfAH70fT4jNd/G3sj/N/0GJFC0plLMW2tttImzit1badODE8fvzqvGLpi7G7w26wODL5RWXOep+12v60OEAEEiaExYuhRAk1zZnzzp1EQi2htFzRkhXnVzChxgQ8K3la7f58wwAXl1fbtmEYDK04lLEVJ2Fx/5N2a5sREqbPAGja+9LF34Y2X91M8+XNKZmxJBtabSCZczKrbr95c5g1C168eHW+w/PcOP66k0QJHam+sDrXnl6z6n61WMww4Jdf4O5dmDwZAgKgUyfIkAF694Zz5966CYtY6LS60z+Fv2+ZvlaP2bw5TJz45vzg3Z9T7P5kVl9aSYdVHbCIxer71rR4QUTi3VS8eHGxtcN3Dkui0Ymk8NTC8jTgqU32YbGI9OghUqSIyLJlImfPikyfLpI5s8jUqSJnHpyRlONSSq5JueSh30ObZNAiBhyR2NC2LRaRXbtEWrYUSZBABEQqVBBZvFgkMDDCVfpv7i94IiN2jni3fb2DO3dEsmUT6dpV5MABkUOHRD77TCRTJpFr10RG7xoteCL9NvWzWQbtTWa1az1ZfzI9gBmTrYv/jWc3JN34dJL1x6xy1+euTfdlsYj89ptIlSoiefKINGoksn37v6/vvblXnEc5S9nZZSUgJMCmWbR/xZri/zJvb5GxY0WyZ1cfDa6uIgMHqmobbtrhaYIn0mNtD7FYLO+/ryjGGTpUpFAhkYIFRQYMELkb/udksVjks3WfCZ7IL4d+sWkO7V+6+MedKc4M8vMubDkQim+wL+XmlOPGsxvs67SPfK75bLKfd7H83HKaLmtKm0JtmN9wvh47PRqYNRiKVdq2xQJbtsDUqbBmjeonUKsWpxqVxePOcKrnrsWq5qtwsDP30SBhljAa/d6I9ZfXs77VemrkqGFqnvhAD/ITd+hr/lYkInRY1YEz3mf4vcnvMaLwAzTJ1wSvSl4sPLWQHw/8aHYcLaazs4OaNWHlSrhxA4YOJfT4UQp1HcqNSXasuFgUhwcPzU6JvZ09v37yK/lc89FseTOuPrlqdiRNizV08bei8fvGs/zccsZVG0fNnDXNjvOKIRWG8EneT+i/pT87/t5hdhwttsiUiYAhAykzND1tWruQrHApnL1GQ5Ys0KQJbN2qzhSYJIlTElY2X4mBQaPfG+Efooe21LSo0MXfSv66/hcDtw2kSb4mfFXmK7PjvMEwDOY1mEfuVLlpsaIF917cMzuSFkt8tv4zjjw8SfOhS3HZsQcuX4Y+fWDHDqheHfLkgR9+ePO+02iSPUV2FjdezBnvM/Ra38uUDJoW2+jibwUP/R7SYkULcqbMyZz6c2LsNfUkTklY1nQZL4Jf0GJFC8IsYWZH0mK4hScXMufEHL756Bvq5K6jZubMCd9/D3fuwMKF4OoK/fpBxozQrh0cOKD6CUSjmjlrMqTCEOadmMe8E/Oidd+aFhvp4v+BLGKh3cp2PAl4wtImS0nilMTsSP8pf5r8TPl4Cn/d+IvRu0ebHUeLwS49vkSPdT0on6U8IyqPeHMBZ2do3Rr27oWTJ9XIgX/+CWXKQNGiMG3am4NQ2NDwisOp5FaJXut7ceHRhWjbr6bFRrr4f6BJByex4coGJtScQME0hdm0CXr2hO7dVUfpsBh4cN22cFtaFWzFiL9GsPfmXrPjaDFQcFgwLVe0xMnBid8a/4avjwOTJqnxgAYPhkuXXluhUCGYMkWdDZg2Tc3r0UMNHtSjB9HxoAl7O3sWNVpEQoeEtFjRgqDQIJvvU9NiK138P8CpB6cYsHUA9d3r07FgD+rVg/791VnRvHnBywuqVgU/P7OTvsowDKbUmULWZFlp/WdrfIJ8zI6kxTDDdgzj6L2jzKo3iweXM5EnDxw8CKVLQ2gofPSRGijwDUmSQLducPw47N8PjRvDvHlQuDCULasuEwQG2ix3xqQZmdNgDifun2DojqE224+mxXpmDzRgxmSNQX4CQwKl4JSCkvb7tOLt6y0jRojUry8SEvLvMmFhauC0L7/84N3ZxN6be8VuhJ20+7Od2VHiHGLjID/hdl3fJYanIZ1XdZbQUDXS3vLlry5z/bpI2rQip05FYYOPH4tMmCCSO7cIiKRMqf4oLl364KyR6b6muxiehuz4e4fN9hEfmdWu9WT9yfQAZkzW+ID8/xCn6y6tExE17Ojp028u9/ffIilSiISGfvAubWLItiGCJ/Ln+T/NjhKnxNbi7xPoI24T3STHTznkRdAL2bxZxMMj4mWHDRPp0+cdNm6xiGzbJtKkiYiDg/r4qVZNfbMIDv6g3K/zDfKVnJNyStYfs8rzwOdW3XZ8pot/3Jn0af/3sO/WPr7f9z1di3Xl41wfI6IudebN++aybm4QFKSenxITDa04lKLpitJ1TVce+pk/cItmrn6b+3Hj2Q3mN5xP4gSJI23XAPnyqXYfZYYBVarAsmVw6xaMGgUXL6rxArJmhWHD1HwrSJQgEQsaLuCWzy36brT+g4c0LbbTxf8d+Yf4025lO7Imz8r4GuMB9ZmWNy/s2/fm8sePQ6pUkChRNAeNogT2CVjQaAHPAp/x2YbPzI6jmWjTlU3MODaDr8p8Rbks5QDVrvfvj3gcn717I/9i8Fbp0qmeg3//DatXq7sDRo1S35YbNIANGz548KAymcvQv2x/5pyYw4bLGz5oW5oW1+ji/46GbB/ClSdXmFN/ziu39fXuDX37wpMn/y7r4wNffKGmmHjrv4jqxLVgfAFK+I1g6dml/H56mdmxNBM8D3xO5zWdyZM6DyOrjPxnfsmS6svrt9++euv+nj3w22/QufMH7tjeHurVg3Xr4No1GDBAjRPw8ceq5+y4ceDt/c6bDQiA+fPh+SpPXCU/7f/szLPAZx8YVtPiDl38I/H8uTooCQ7+d96+W/uYeGAiPTx6UDlb5VeW79JF9ezPmVONc9KxI2TPrjo5f/llNIePgrAwlbFFC3VWol7Kr3F55kHrJb24dl+f/o+rROD2bbj32gCP/bf05+6Lu8xtMBdnB+d/5hsGrFihbt8vWBA+/xxq1YJPPlHFP3NmK4Zzc1PfMm7dgiVL1BDCAwdCpkyqoe7aFaXBg65cUZckfv8d3HM6Ud1vLt5+96k5oZ8Vw2paLGd2pwMzpv/qFHXnjsinn4okTSqSJYt6qqmXl4hvYIC4T3aXrD9mFZ9An0jXv3lTZOpUkV9+eeVJqDHOlCki5cqJ+Pn9O+/kvdNiN9xRcvRvYV6wOIIY2OFvzRr1aFxXV9XhvmRJkZ07RbZd2yZ4Iv029Yt0XYtFZMcOkZ9+ElmyRMTf//3el3d27pzIF1+IJEsmAiL58olMmiTy9GmkOUuUEJk8+dX5Pf8YIHgiE9dsjobQcZdZ7VpP1p9MD2DGFNkH5IsX6m6kwYNFnod3EL50SaRiRRGPAYMET2TTlU0RrhvbFCmiOl6/7uu1IwRPZOnJ1dEfKg6JacV/wwaR9OlFNm1SBTI0VHWyT53eVzKOyy65JuUS/+Doqujvwc9PZM4cVdlBxMVFpFMnkcOHX1ns2DF1a2JY2KurB4QEiOuI3JJ4SFZ5EfQiGoPHLbr4x51Jn/Z/yaJFqgPTqFGQNKmalysXeM04zhGn72iWu0OceWb4zZvqNO7rRtUaiMPjgnyxqQfPA59HfzDNJoYPVwPv1aihTuXb26vxd4p+OYw7AdeYVX8WCR0Tmh0zci4u0KEDHDoER45Ay5aweDGUKKGm2bPB35+bNyF/fvVU4pc5OzgzKP9sfO1vMnjbYHN+B02LQXTxf8nWrfDpp6/OC7WE0ndnZ5zCUlM17AdzgtlA7tyqs9/r7t1OgMuW2XgH3GPg1oHRH0yzOh8fOHMG6tR5df7hO4fZ5j8R+2PdqZC1gjnh3kfx4jBzJty9C5Mnq959nTtDhgyUX/YFPgfOERLy5mq+5z6iQEBPJh+azP5b+6M/t6bFIHGm+BuGUcswjIuGYVwxDOO9qpaT05tD8f64/0eO3TtG3r8nk8olhTWixgiffw6DBsGjR//OCw5Wdy10rVuCPqX6MO3oNHbd2GVeSM0q7drRUfWTC3ppqPvgsGA6re5EWpf0JNo/1lpxo1eyZPDZZ3D6NOzeDXXqkHLZdP56lJ/bOSoivy3+55c+exZ+/hlmNhtDpqSZ6LymM8FhwW/ZgabFXXGi+BuGYQ/8AtQG8gEtDMPI967badxYHVCEhqp/X31yleE7h1M1UwOub2hC9erWTG2uFi2gYUNwd1cHTb17Q44cqlCMGgUjq4wkW/JsdFnThcBQ243FrkXOWu06YUJ1J8qcOf/O+37v95z2Pk15nyk0rZ/MWpHNYRjqYQO//gq3b/NiyDgcvW9jtGrJi5RZWJl3EC3KXOfHH6F0sSRMqzuNcw/PMXZPLP3So2nWYHanA2tMQBlg00v/HgQMimz5yDpFhYSI1K4tUquWyO7dFik/s6ok9EoqGfPelmnTIlwl1rtxQ/Xg/v57kRMnXn1t85XNgicyeNtgc8LFMI/8HkV5WazQMepd27X8R9s+fVokTRp158rW4xckgZeTuA9pIhkzqnH64xpLaJgcH7NBLuZrIGGGnVgMQ/1xr1olEhoqzZc3F0cvRznnfc7sqKbzC/YTv2C/ty8o1mnXeooZU5w48gcyAi+PC3o7fN47cXBQ9zNXqwbNxsxn951tZL30HbMmZKRbN6tljVGyZFGDEPXrp8YkeFn1HNVpW7gt4/aO4/SD02+s++gRbNoU+Qhwccnxe8fJ/GNmVl9cHZ27tUq7BihQQA3Mc/2GhY+ndiUkICFln09m/341sm5cY9jbUWRgLXKfXYndzRsYQ4fCiRNq9MBs2Zh5Iis5gxLRZU0XLPJm4z11Sg0yeP169GePbkO2D6HItCL4Bcewx49qNuVgdgAriWj8vFdGAzEMoyvQFSBLliyRbsjJCb76Cjpc2s6TFRnJkXIxxtjFEE/PEM6yhND1DgQvKoekL4qBgUXg6lV4cB/SJYHgEDgUpi4hpEhudmLrE4Swe8fYGhpKsXvr4ef60bXrt7ZriHrbzpULZs00KH+yAwnsE9CyYDqrBY3RMmWCESNgyBBYswamTSPxqHGccbDnj1x7WRPQhwY9fwLD4NIlaNMGHjxQ7fnYMXVFYc4cSBF3uvz84/Cdw/x08Ce6FutKogQxdAxyzSbiypH/beDlscYyAXdfXkBEZoiIh4h4uLq6vnWDKROmJGfKnBF++sYnjnaO5EyZixdBL7jjo57icu0a+PtDqVLqbIGHh7p74NxZ8PM3ObAN3Pa5jW+QLzlT5npl9Lvo2DVvadfwbm3bMAzaF2lPy4ItrZs0NnB0VEMTbt4Mly9j9O5D9VuONPhsMiG5cxI0ZgJNKj+mXTvVxjdtUrfEZsyo+gPJ2wcXjFVCwkLosqYL6RKnY2y1eHp0E5+Zfd3BGhPqDMY1IBuQADgJ5I9seWs80jc+sVgsUntRbUk0OpGcvHFdkicXuX//zeVGjBDp1i3689nS1SdXJeGohFLvt3pisViivB7Wueb/Tu1adNt+Z1fvnJUOTRzlXO4UIiBBdk4ibduK7NunRkMSNSBStmwiBw+aHNbKvt317Ts/ztsa7VpPMWOKE0f+IhIKfAZsAs4DS0XkrLmp4g7DMJhaZyoAXVd3xz2PkDbtm8vVrq3GYIkrRIRua7vhYOfAlDpTMKL56Uy6Xdte9gz5yNf3W/K1fErnZt9zuXxH1fGnbFn1pMFp07D3f0HNmnGrbV96fIkRf42gSb4mNMzT0Ow4mgniRPEHEJH1IpJbRHKIyGiz88Q1WZNn5duq33Lw8UauuCyKsIPfnTtx67rovBPz2HptK+OqjSNT0kymZNDt2vb6lO5D8fTFWez+PfMqjlQNefp0dQthjx6QIQP1N/Qgm89Js6NahUUsdF7dmYSOCZlUa5LZcTSTxJnir9lerxK9KJOpDM9K92H6ogevvBYSAj/8oDpLxQX3fe/z5eYvKZ+lPN084uitHhoADnYOzK4/m2D7J/xy5UseBSWBrl1Vb7/9+3lSpQmVbsyjzuAi6ozAwoUQGHvHvphxdAa7b+5mQo0JpE+S3uw4mkl08deizN7Ontn1Z2Pn7EvfLZ/Tty9s366GWK9QQT33vXVrs1N+OBGhx7oeBIYGMqv+LOwM/WcS1xVOV5iBHw0kIPcCCn2ykWnT4K9dBqO3lSbvgblsnHUHJkyAx4+hbVvVC7BfP7h82ezo7+Tm85t8veVrqmWvRvsi7c2Oo5lIf6pp7ySva16GVxxGUM5l3HD5gxEj1HPdv/gCli9XYyXEdsvOLWPlhZV4VfIid6rcZsfRosmQCkPImzovobW7sGWXD0OHqt7+W7ZAo04poW9fuHBBPQSkShX46Sd1m0u1arBiBRE+UCAG+X8fFhFhZr2Z0d6HRYtZ4sBHtRbd+pfrz4rzK9j7ogfnNlQklUsqsyNZjbefN73W96JEhhL0LdPX7DhaNHJycGJug7mUnVOW1C2+ZkW96W8uZBhqrOSqVeHePTUAwPTp0KQJpE+vxsru0gUyZ35zXZPNOzGPjVc2Mrn2ZNySu5kdRzOZPvLX3pmjvSNzG8zlScATPt/wudlxrEZE6LW+Fz5BPsxtMBcHO/3dOL4plakUX5X5ihnHZrD56ub/Xjh9ehg8GP7+G1avVncHjBoFbm5qJMGNG2PM0Je3fW7Td1NfKmatSM8SPc2Oo8UAuvhr76VwusIMqzCMxWcWs+LcCrPjWMXvZ39n+bnleFb0JH+a/GbH0UziVdmLPKnz0Hl1Z54HPn/7Cvb2UK8erFunhr4cMAAOHFD3vubMCWPHgre37YNHQkTotLoToZZQ1WdH92HR0MVf+wADPxpI8fTF6b6uOw98H7x9hRjs3ot79FzXk1IZS/F1ua/NjqOZyNnBmfkN53P3xV16b+z9bitnywbffgu3bsGSJerhGYMGqSGGW7SAXbuifajA6Uens/nqZr6v/j05UuaI1n1rMZcu/tp7c7R3ZEGjBbwIekGXNV2QaP5QsxYRoePqjgSGBjK/4Xx9ul+jZMaSfFP+G+afnM8f5/949w0kSADNmsHOnXD+PPTsqS4DVKyonrI0eTI8e2b13K+79PgSX23+iurZq9Pdo7vN96fFHrr4ax8kn2s+xlUbx5pLa5hxdIbZcd7LL4d/YeOVjYyvMR731O5mx9FiiKEVhlI8fXG6runK3RdvPFIh6vLkgYkT1eBBc+ZAokTq9pgMGaBTJzhyxHqhXxISFkKbP9vgZK86Mure/drLdPHXPtjnpT6nevbq9N3UlwuPLpgd552c8T5Dv839qJ2zNj08ekS4zKFD0L69Gt+lRQt1MKfFfY72jiz6ZBH+If60X9k+wkf/vhMXF+jQQTWoo0ehVSt1aaBECTXNnq2emGUlnjs9OXTnENPrTidj0jefBB0crL6L1Kypnlw4ZAjc/YDvOFrsoou/9sHsDDvmNZxHogSJaLa8GYGhsWP0M/8Qf1qsaEFy5+SRHhnNmgWNGkGhQvDdd1C+vPr8HqsfghYv5Emdh4m1JrLl2hbG7xtvvQ0XKwYzZ6qzAZMnQ0CAuk0wQwbo3RvOnfugze/4ewdj9oyhY5GONM3f9I3XAwNVf8RFi6B7d3WTgo8PFC8OZ8580K612MLsJwuZMeknn9nG2otrBU+k59qeZkeJUGCgyIkTIhcvqge2dVndRfBENl7eGOHy3t4iyZOLXL786vy7d0VcXUUuXYp8X5j09DPdtq3PYrFIk6VNxMHLQfbf2m+rnYjs2iXSsqVIggQiIFKhgsjixSJBQW9d/cEDkaNHRR4+FHng+0DSjU8n7pPd5UXQiwiXnzhRpHZt9cTCl02fLlK+fOT7Matd68n6k+kBzJj0B6Tt9NvUT/BElpxeEukyW7eKNGki4uEh0ry5+syzJYtFfdilSSOSL59IpkwimessFDyRQVsHRbrelCkirVtH/NqXX4p4eka+T13845anAU8l28RsknlCZnnk9yjCZXx9VTurUEGkdGmRIUNE7t17j515e4uMGyeSPbv6iHZ1FRk4UOTatTcWffhQ/S0lTy5SuLBI0uShkq5/NXEe6Swn75+MdBceHiLbt785PzhY7e7GjYjX08U/7kz6tL9mVd9W/ZaymcvSaXUnzj1889TlmDFqALTq1eGXX9S1xpYt1ZlPW/n5Z3X6fudOOHsW1h46zYOSXXG4U4FPXb0iXe/pU3UWNiIZMqjXtfghuXNyljVdxgO/B7T8oyVhlrBXXvfxUR35d+xQd/aNG6ceA+DhAVeuvOPOXF2hf3/13IANG1Rnk+++gxw54OOP1YBCYWGEhUGtWuouwps34cQJ6PLrcO67bCXr2V8omKZQpLuIrG07OqrdR8ONCJrZzP72Ycakj45s6/bz25L2+7SSa1IueRrw9J/5V66IpE6tTpu/7Pp1deTy+nxrCA4WSZ9e5PRp9e9Hfo8k28Rskn58ehk85p60axf5utu2iRQooM4cvK5KFXVGNjLoI/84aebRmYInMmDLgFfmDxmizhJAFzEhAAAgAElEQVS93la+/16kXj0r7PjWLZFhw1RjBpHMmeV8Sy/5uMidf/a5/OxywRPpuLKT5Mkj8tdfkW+uVSuRCRPenH/1qkiqVCL+/hGvZ1a71pP1J9MDmDHpD0jb23V9lzh4OUiNhTUkJCxERERGjhTp3Tvi5Tt0EPnpJ+vnOHdOJGdO9XNwaLBUnV9VEoxMIPtv7ZeLF0WyZYt8XYtFpFQpkX79RAICwrcRLDJmjEju3P99KVYX/7ir25pugiey6OSif+ZlyyZyMoKz7H5+IkmSiDx9+uZr7yU4WGTFCpHq1UVAwuzsRRo3litLp0vikS5SelZpCQwJlIEDRby8It/MsWPqMtiOHf/Ou3tXpGzZ/15PF/+4M+nT/ppNlM9anml1prH56mZ6b+iNiPD8OaRLF/Hy6dLB8yiMpPquEiVS2w0JEXqu68m2v7cxve50SmcqzePHkDhx5OsaBqxZo8ZoyZJFPbzNzQ02bVJPekuQwPp5tZhvUu1JVHKrRKfVndhzcw9ApG3bxUW1QV9fK+3c0RE++QQ2b2bS55fZVawvYTu2k+PTbpz8KYiND6rj9Nz3rW27aFGYN0/dwlqokLpkkS8fVKqkHlegxQNmf/swY9JHR9Hn681fC57I2N1jZcUKkXLl3lzGYhEpVEhk82bbZChdWuSTn7wET+Sbrd/8s89mzURGjYraNq5eFdm0SeTChagtjz7yj9Me+T2S3JNzS4qxKeSc9zmpU0dk9uw3lztyRCRr1jd71VvDuXMirpmfSbEfC0rHpk7yokRhERCLk5MsTtBW7q/cH/E1q5eEhors26c64T579vZ9mtWu9WT9SR/5azY1ttpYWhRowcBtA/HOPJNnz2D4cAgKUq8HBMDXX4Ozs3pKqi1U7DeVP54Oo6ClDU1Tj2TXLvj0U9Wf6osvoraN7NmhRg1w1wMAakAql1RsaLWBBPYJqLGoBm2/uM7gwbB377/LXL0K7drBwIHq2T/WljWnP84d6nPs6Xlca6zi1vwTrB55kt+cOtKIP0jbsIw6xJ8+HV68iHAb9vZQpoz620uWzPoZtZhLF3/Npv4/AFDtnLXpub4bnX+ez8GD6jR6xYrqv5cvqwei2dmgNc45PodxZ3pSOUNdyjycTcsWdvTtq3ph79wJSZJYf59a/JA9RXY2t9mMb7Avgy5UZcTEm7RsqU6jly4NpUqpAaG6dbP+vgNCAmi4pCG37XbzpdtCji+rScOGMH1/IVIsnoLTo7swbZpauHt31bW/Rw84dcr6YbRYyVBncuIXDw8POWKj8bS1iAWEBNBgSQO2XtvK9LrTqZayC9evq7uXsmSxzT6nHJ5Cr/W9qJmjJiubr8TZwdk2O4qAYRhHRcQj2nYYTrft6HfoziFqLKxBioQp2NRyK0+v5SA4WI2W5+Ji/f29CHpBgyUN2Hl9J3MbzKVdkXaRLywCBw/C1KmwdKka2q9MGfVFoGlTdcrtHZjVrjXr00f+WrRI6JiQVc1XUStnLbqu7cqvt0ZRqZLYpPCLCMN3DKfX+l7Uy10v2gu/Fr+UzFiSrW234hPkQ4X55XDIfJTy5W1T+O/73qfy/MrsurGLBY0W/HfhB9VrtXRpmD9fDSU8YYIagKBtW8iYEb76Sp160+IdXfy1aPP/LwBtCrVh6I6htPmzDf4h1nuQCYBvsC8t/2iJ1y4vOhTpwIpPV+jCr9mcRwYP9nTYg5ODE+Xnluf3M79bfR9H7x6l1KxSnH90nj+b/UnrQq3fbQMpU0LfvnDhAmzbBlWqwKRJkDu3GnUrMHY8k0OzDl38tWjlaO/I/IbzGV1lNL+e/pWSM0ty6oF1rkMev3ecUrNKsfTsUsZWHcvs+rNxtHe0yrY17W3yuublUOdDFE1flOYrmtNzXU/8gv0+eLsWsTDp4CTKzSkHwK72u6jnXu/9N2gYqvAvWwa3bqmn+mTI8M6XALTYLdYXf8MwmhqGcdYwDIthGPpaVCxgGAbflP+GTa038dD/IcVnFGfo9qHv/UHpF+zHN9u+odSsUjwNeMrm1psZ8NGAWP38ct2uY6e0idOyo90OvirzFVOPTKXQtEJsuLyB9+1bdcb7DJXnV6b3xt5Uy16No12PUjxDcesFTpdO3dg/f771tqnFCrG++ANngE+AXWYH0d5NjRw1ONvzLM3yN2PU7lHkmpyLCfsn4BPkE6X1nwU+44d9P5B9UnbG7BlDy4ItOd3jNFWz2+ieweil23UslcA+AeNrjGdnu53YG/Z8/NvHVF1QlS1Xt2ARS5S2cerBKdr+2ZbC0wpzxvsMs+rNYk2LNaR2SW3j9Fp8EWd6+xuGsRPoJyJv7eqse0THPPtu7WPw9sHsvL4TZwdn6uauS43sNSiWvhiZk2UmkWMi/EP8ufH8BsfuHWPT1U1suLyBgNAAKrtVZlSVUZTNXNbsX+Mf1uoV/S7tGnTbjmmCw4KZengqY/eO5b7vfdySu9EoTyMqZq1IPtd8pEmUBjvDjicBT7j85DL7bu1j1cVVHLt3jIQOCelVohcDPhoQY4q+7u0fd+jir8UoR+4eYc7xOay8sJJ7vvciXS594vQ0ytOIzsU6UzR90WhMGDW6+GsvCwoNYvm55Sw6vYgdf+8gKCwo0mVLZSzFp/k/pX2R9qRMmDIaU76dLv5xh4PZAaLCMIytQESjwg8WkVVR3EZXoCtAFlvdWK59MI8MHnhk8OCXj3/h8pPLnH5wmnu+9/AP8SehQ0IszzJxeW9BEtzNQeXcBoXSmJ34/VmjXYdvR7ftGM7JwYlWhVrRqlArAkICOPngJBcfXeSR/yMAEjsm4+65bDw6VZw0JKduBUiZ0OTQWpymj/y1WEFEPeL811+hTRt119Iff4DFAhs3QqpUZid8lT7y16Lq3j01dHTy5FCvHnh7w8KF0KsXDBtmdrpX6SP/uCNWHPlr2vLlqsifPQspUqh5/fur25Z79YIlS8zNp2nvq2NHaNQIvLz+nde/P5Qtq4YIrlnTvGxa3BXre/sbhtHIMIzbQBlgnWEYm8zOpFnf9OnqgUD/L/ygblf28lKP2H340LxstqDbdfxw/TocPQrffPPq/DRpYNCgf4fn1zRri/XFX0T+FJFMIuIkImlFRH9PjoOuX1cPTHld0qSQObMauTQu0e06frh1Sw2wF9H4OoULw40b0Z9Jix9iffHX4odcueDw4TfnP32qPkB1PzctNsqWDc6fB/8IRrk+fFi1e02zBV38tVjhs8/A0xPu3/93XlgY9OsHDRuqDoCaFttkygSVKqlT/C/3vb55E8aMgZ49TYumxXG6w58WK9Spox5Fni8fNG6srv2vWqVO+f/5p9npNO39zZgB9etDgQKqt/+DB7ByJYwYARUrmp1Oi6v0kb8WawwaBCdPQv78kCwZzJkDW7ZAkiRmJ9O095cqFezZAz//rNpysWLqUsAXX5idTIvL9JG/Fqtkzgx9+pidQtOsyzCgcmU1aVp00Ef+mqZpmhbP6OKvaZqmafGMLv6apmmaFs/o4q9pmqZp8Ywu/pqmaZoWz+jir2mapmnxTJx5pO+7MAzjIRCVUbNTA49sHEdniD0ZIOo5soqIq63DvE63bZ3BxhlMadea9cXL4h9VhmEcMfvZ1TpDzMkQk3J8qJjwe+gMOoNmHn3aX9M0TdPiGV38NU3TNC2e0cX/v80wOwA6w//FhAwQc3J8qJjwe+gMis6gRTt9zV/TNE3T4hl95K9pmqZp8Ywu/pqmaZoWz8Tb4m8YRi3DMC4ahnHFMIyBEbzuZBjG7+GvHzQMw+2l1waFz79oGEZNG2b40jCMc4ZhnDIMY5thGFlfei3MMIwT4dNqG2ZobxjGw5f21fml19oZhnE5fGpnwww/vrT/S4ZhPHvpNWu9D3MMw/A2DONMJK8bhmFMCs94yjCMYi+9ZpX3wVp0245yhjjftuNSu9asTETi3QTYA1eB7EAC4CSQ77VlegLTwn9uDvwe/nO+8OWdgGzh27G3UYbKgEv4zz3+nyH8377R9D60B36OYN2UwLXw/6YI/zmFLTK8tvznwBxrvg/h26kAFAPORPL6x8AGwABKAwet+T7otq3bti3adlxp13qy/hRfj/xLAldE5JqIBANLgAavLdMAmB/+83KgqmEYRvj8JSISJCJ/A1fCt2f1DCKyQ0T8w/95AMj0Hvv5oAz/oSawRUSeiMhTYAtQKxoytAAWv8d+/pOI7AKe/MciDYAFohwAkhuGkR7rvQ/Wott2FDP8hzjTtuNQu9asLL4W/4zArZf+fTt8XoTLiEgo8BxIFcV1rZXhZZ1Q39D/z9kwjCOGYRwwDKPhe+z/XTI0Dj8luNwwjMzvuK61MhB+ajgbsP2l2dZ4H6IispzWeh+sRbftd8sQ39t2bGnXmpU5mB3AJEYE816/5zGyZaKyrrUyqAUNozXgAVR8aXYWEblrGEZ2YLthGKdF5KoNMqwBFotIkGEY3VFHjFXeJb8VMvxfc2C5iIS9NM8a70NU2Lo9WItu21HPoNt27GnXmpXF1yP/20Dml/6dCbgb2TKGYTgAyVCnz6KyrrUyYBhGNWAwUF9Egv4/X0Tuhv/3GrATKGqLDCLy+KX9zgSKv0t+a2R4SXNeOy1qpfchKiLLaa33wVp0245iBt22gdjTrjVrM7vTgRkT6ozHNdRptv93xMn/2jK9eLVT1NLwn/Pzaqeoa7xfp6ioZCiK6jCU67X5KQCn8J9TA5f5j45EH5gh/Us/NwIOhP+cEvg7PEuK8J9T2iJD+HLuwHXCB6ay5vvw0vbciLxjVB1e7Rh1yJrvg27bum3bqm3HhXatJ+tPpgcw7RdXvVwvhX8ADQ6f54U6CgFwBpahOj0dArK/tO7g8PUuArVtmGEr8AA4ET6tDp9fFjgd/mFyGuhkwwxjgLPh+9oB5Hlp3Y7h788VoIOtMoT/2xMY+9p61nwfFgP3gBDUUU8noDvQPfx1A/glPONpwMPa74Nu27ptW7ttx6V2rSfrTnp4X03TNE2LZ+LrNX9N0zRNi7d08dc0TdO0eEYXf03TNE2LZ+Llff6pU6cWNzc3s2NocdjRo0cfiYhrdO9Xt23Nlsxq15r1xcvi7+bmxpEjR8yO8Yp9++CHH+DwYUiVCtq0gV69wMnJ7GTa+zAM44YZ+41pbTskBKZPh3nz4MEDKFIEvvwSKlc2O5n2Psxq15r16dP+McCyZdC4MVSvDrt2waRJsHUr1K2rPjw1LTYKC4OmTeHPP+G772DPHvjkE2jbVn0Z0DTNPPHyyD8mCQ6GL76ANWvAw0PNc3ODsmWhUiVYuhRatTIzoaa9n3Xr4NYtOHAAHB3VvA4doFQpqFBBfTFIlMjcjJoWX+kjf5Pt3g1Zs/5b+P/P3h569oTffzcnl6Z9qKVLoVs3cHx4F6ZMUQ16+HDyBR6jWDHYssXshJoWf+kjf5MFBkKyZBG/liyZel3TYqOAACh6dBZ81Rd8fSF5cvDxAS8vvk1Xl5v3ZwNpzI6pafGSPvI3WenScPAgeHu/+dry5bpjlBZ7fWkZT4kZXaBkSTh7Fp48gSdPCPQcS4H7W2jgWRTOnzc7pqbFS7r4myxVKnVq9JNP4MoVNS8wECZMUKdFu3QxN5+mvZflyym38mvWJfqU0RU34++WDwyDG8+SUW/PACY0PYA9YVClCly+bHZaTYt3dPGPAcaMgVq1VCe/3LkhQwZV+HfsgNSpzU6nae/owQPo3h1KlKDQiQUcPGJPxoyqbRcvrjr89f+tCGzfDqGh0KCBuhygaVq00df8YwA7OxgyBPr1g+vXIUUKSJvW7FSa9p769oUXL2DePDLndGL1anj4EB4/Vp1bEyYMXy5fPnWfa7Vq6jaA5cvBMEyNrmnxhT7yj0GcnSFPHl34tVjsxAlYvBj691fFPZyrq2rb/xT+/6tUCcaOhT/+0Df/a1o00sVf0zTrGTZM9er/6quor/P/If+++AJu3rRdNk3T/qGLv6Zp1nHqlBqtql8/9QUgquzsYM4csFjUmNYitsuoaRoQR4q/YRhzDMPwNgzjjNlZNM2aYlXbnjxZndfv0ePd13VzAy8vWLtWXQLQNM2m4kTxB+YBtcwOoWk2MI/Y0LafPIFff4XWrSFlyvfbRu/eUKiQugzg72/dfJqmvSJO9PYXkV2GYbiZncNaAkMDufz4Mndf3CUoLIjECRKTKWkmcqTIgb2dvdnxtGgUa9r2/PlqSL/PPvvPxbz9vLn65CpPAp4gCCkTpiRXyly4JnIFBwd19qBiRfUkIE/P6MmuafFQnCj+UWEYRlegK0CWLFlMTvOmuy/usujUIlZeWMmRu0cIsbz5OL9Ejomo6FaRxnkb0yRfE5I6JTUhqRbTxIi2vWABlCihjtxfIiLsubmHxWcWs+HKBq4/ux7h6lmTZaVmjpq0LNiSCs2aYXz3HXTuDJkyRUN4TYt/DIkjnWvCj47WikiBty3r4eEhMeWZ55ceXeTnPwdxZv9qUviF4Z40G+5ZipE+ZxGS5i+GQ+o0+Ab7cv3ZdQ7fOczGqxu59vQaSRIkoYdHDwZ8NICUCd/zNKtmM4ZhHBURj7cvGaVtuRGT2/bp06roT5oEn38OgEUs/HH+D0buGsmpB6dwcXShRo4afJT5I/K65iVVwlQYhsEj/0dceHSBPTf3sPnqZvxC/Khp7866kdewa9YcY8GC6P1dtP9kzXatmUxE4sQEuAFnorJs8eLFxVT+/hLw63w5UdFdvF0Q4T8mNzeR9u1Fli8X8fcXi8Ui+27uk2bLmonhaUiKsSlk6uGpEmYJM/d30l4BHJH40ra//lrE3l7E21tERE7dPyVlZ5cVPJE8P+eR2cdmi2+Q71s34xvkK3OOzZF8v+STbz9S7f/SpsW2Tq+9A2u2az2ZO+kj/+j07BlMmEDo5J9weObDvcTwd4mcFKjXiaQFikOaNJAgAfj5wb176qEnBw+qcX6fPoWkSVWHqt69IXduTj04RZ+NfdhxfQfZqELZ+wspkScDbduqUQI188SbI38R1VO/QAEsa9cwft94hmwfQjLnZIyrNo52hdu9cz+VMEsYi/dMo9bHn3M6DQxuPIqiAQOpW8eOmjXVnYGaOfSRfxxi9rcPa0zAYuAeEALcBjr91/LRfnQUFiYydapIihRiMQxZlceQFj3SyI4rW6O2fmioyNatIm3aiDg5iRiGyKefily8KAsWWMSl/AxxGO4iiUe4SrXOOyVNGpF9+2z7K2n/DSsdIcX4tn3kiAiI3/Sfpe5vdQVPpPHvjeWh38MP2mxgoMjPBceIgNRqhbiPrCUFSjyVqlVF/PyslF17Z9Zq13oyfzI9gBlTtH5A3rolUqmSCMjFQpmkcDek9qLa8tj/8ftt78EDkUGDRBIlEou9vUx17iMXDj6Tc97nxH2yuzh4OUif+XMlQwaRoCDr/ipa1Jn1IRntxX/QILHY20uZcbnFwctBfj74s1gslg/e7IgRIg0/DhJL9hzyKGdGcfJ0EPfJ7lKn9TX5+msr5Nbeiy7+cWfSJ9BsaedOKFIEOXyYqT08cG90myqN+rKmxZr376SXJg18+y1cu8bRwp3oGvgT7p/kJ++BKxzofIBKbpWY+HcHnKt+x7p1Vv1tNO1VIgQtXcye7PacF2+2tNlCr5K9MKzwcJ6ZM2HEmAQYY74l1ZU7nEzUD28/bw4XLMf0laexWKyQX9PiMV38bWXRIqheHXFNTS+vUvRMe4Tvqn/HhJoTrHOvfpo0TCk8nTXfHFCDqtSvT/LP+rGuwVKaF2jOtRwDmHV55IfvR9MicWnvGpyuXmd9ASd2d9hNJbdKVtmuCNy5A/nzA02bQokSuE9cyJ7mW3BwMPBpVJlDN05aZV+aFl/p4m8LU6dCmzZYKpSn3QB3pr7Yzs+1f+brcl9bdTd588Lq+yXhyBEYNAjmzCFBqbIszDmQFLfasD5gGN/t/c6q+9Q0gPMPz/Pr2JYAdBu+hgJp3toXMcoMA9zdYf/+8H98/z3cuUO+xVuYWvIv7C0Jqbe8GucfnrfaPjUtvtHF39pmz4aePZF69ejRPTMLb6xmQo0J9CrZy+q7at8eVq+G7XsSqEsBW7fCs2dIybK03/Qxn+ZrxoCtA5hxdIbV963FX7ee36LGohpUvxBMUJ5cuBWuaPV9fPGFGuX32TPUiH/16iFjxjDr62R8mWoHDnYOVFtYjRvPblh935oWH+jib02rV0PXrlCrFiN7FWTGuQUMKT+EvmX62mR3rq6wfDm0aAG1akHfNVWoleYYp+2LMOF2C347lZPaOWrRY10P1l3SHQC0D/c88Dm1f62NPH9OuRuCU/1GNtlP9+7w0UeQM6ca6G+Y0zjCfPz40seTMV/nZHPrzfgF+/Hxbx/zNOCpTTJoWlymi7+1HDumqnDx4iwe3pjhB76lfZH2eFX2suluK1aE69ehQwfInBn6jEtP4UfboUMH7EeNZtX6ZJRMVZhmy5tx6sEpm2bR4rZQSyhNlzXl4uOLrE/TFyM0FOrUscm+DAMmTFBXtIoUAdcKefFt1Y1KF6djf/EcBdMWZGXzlVx+fJmmy5oSEvbmcNiapv0Hs283MGOy+u1Q3t4iWbKIZMkiR46tE6eRTlJpXiUJCjXxXjuLRWT0aBGQwEofSe7R6SXLj1nkge8D8zLFI8TBW/16b+gteCKzj80W6dJFJGlSkeBgm+3vDd7eIsmSidSoodq3iMw9PlfwRHqu7Rl9OeIxs9q1nqw/6SP/D2WxQKtW8OABjxbNoP6OLmRIkoHlTZeTwD6BebkMA775BubNw2n3fo4tTUHowwc0W96MUEuoebm0WGn+ifn8dPAn+pTqQ8ciHWDzZqhSBRwdoy+Eq6t60t/mzbBmDQDti7SnX5l+TDkyhbnH50ZfFk2L5XTx/1Djx8OWLYRN/JEmV8fwNOApK5uvJJVLKrOTKe3awZ9/kujCVc4sdeXcmZ0M3DrQ7FRaLHLy/km6r+tOJbdKfF/je7hyBW7cgBo1oj9Mr17qNpe+fdUjhIEx1cZQNVtVeqzrwbF7x6I/k6bFQrr4f4jjx2HwYGjalCE5bvDXjb+YUW8GhdIWevu60alePVi/nhR3n3BySXJ+3fwDqy6sMjuVFgv4BPnQZFkTUiZMyZLGS3Cwc1BH3mBO8Xd0hJ9/hmvXYOxYABzsHFjSZAmuiVxpuqwpzwOfR38uTYtldPF/X8HB6l671KnZ3v9Txu4bR5diXWhdqLXZySJWpQps2EDapyHs+9WZ/ova6tuktP8kInRb242/n/7NksZLSJs4rXph82bIlg1y5DAnWJUq0LKlKv4XLgCQ2iU1vzf5nZvPb9J5TWfU5WlN0yKji//7GjsWTp3i6U/f0WJnLwqkKcBPtX4C1AhlMXL40QoVMNavJ6uPwcqZvvSY31Rf/9ciNffEXJacWYJXZS/KZy0PgCU4VA1bXa2aueEmTIBEidR9gOF/bGUzl2VU5VEsP7ecmcdmmptP02I4Xfzfx+XL8O23SLNPaRnyGz5BPixpvISrFxPSuDE4O4OTkzrbfvSo2WFfU6ECdmvXkeu5PaPGHmb8+iFmJ9JioEuPL/H5hs+pkq0KA8oNZM4cKFAAyjodBR8ffr1fFV9fEwOmTQsTJ8LevTB58j+zvy73NdWzV6fPxj5ceHTBxICaFrPp4v+uROCzz8DJiTltCrLxykZ+qPEDPMxPlSpQvjw8fKhGJqtTRw2+c/iw2aFfU7kyDitXU+iRHeV7jePgpR1mJ9JikJCwEFr90QpnB2cWNFzA6FF2TJyoLrXvG7UNgN2OVahVC0LMvL2+TRv1RzZwIJw7B4CdYcf8hvNxcXSh1R+tCA4LNjGgpsVcRny8Nubh4SFHjhx5v5XXrIH69bk/ciDZjIlUyVaFtS3W0qyZQZkyqhPyy2bPhmXLYOPGD89tbX6/zse5TXv25HHB4/AdEiVKbnakOMMwjKMi4hHd+/2gth1u+I7heO3yYlnTZVRK04RcueD8eUiXDnW6/+FDLMdPUqGCGob300+tk/293L8PBQtCxoxw4IA67QasvLCSRr83Ykj5IYysoh9wZS1va9dHjx5N4+DgMAsogD64NJMFOBMaGtq5ePHi3hEt4BDNgWK34GD46iskTx4aptpMoheJmF1/NmCwerV6DOnrWrWCnj0hMPCfz6UYI1Grdly8eYaK34znUN2SlNx2Aez032t8dvjOYUbvHk2bQm1okq8JixdD5crhhT8wUJ1m79EDO7t/ny1havFPlw7mzYO6daFPH5g2DYCGeRrSvkh7vt3zLXVy16F0ptImhow/HBwcZqVLly6vq6vrUzs7u/h3ZBlDWCwW4+HDh/nu378/C6gf0TL6k/5dzJgBly+zpEMJDnofY1rdaaRLnA5QVwMieoy5YUQ8P6ZwH/Q969uVo+TOy9zo2szsOJqJAkMDabeyHekSp2NS7UnAa+16/371BaBKFUB9T4wRJw7r1IH+/WH6dJgz55/ZE2tOJFPSTLRb2Y6AkAATA8YrBVxdXX104TeXnZ2duLq6PkedgYl4mWjME7u9eAEjR+Jb1oN2gYtpXqA5TfI1AdSHY926MH/+m6stWaL6AcS0o/6XVZ6xmV/LJyfr7OUEjh9rdhzNJMN3DOf8o/PMrj+b5M7qElC1arB9O3h7o36wt4cKFRCBBQtUu48RRo+G6tXVE4F27QIgmXMyZtefzaXHlxi8fbDJAeMNO134Y4bw/w+R1nhd/KPqp5/A25teFV6QwiUlk2tPfuXlYcNg5EiYOhX8/dUB0ty50K8feNn22T7v7cYN6NQJMqR1ocudtfyRBxL0H6Q6KWjxysHbBxm/fzydi3amZs6a/8xPk0YNqlerFvis2o6UKMGNp0np2FENsNe4sYmhX+bgAL//rsYeqF+fHT+dolw5qJuvGi5nu/Pj/olsubDP7JSaFmPo4h+BBw/UXUTffKM+T4IfPocffuIHL9EAACAASURBVOBS2TwscL7I1DpTSe2S+pV1CheGTZtg/XpInhySJlVH/WvWQJkyJv0i/+HmTShXTvWTOnsW7h4tx+w2X7A/E4S2aqWu7Wpxiog6cz98uPpCeuKEmh8UGkSHVR3IkCQD42uMf2O9kSOhV9sXJDx9iHGHqlCkCCRLBlu2QAITH1/xhhQpYNMmfI3EFPyyOiOanePJE9g19DsShWam/uyOPH0RaHZKTYsRdPF/zaJFkCcPnDwJLi7qMuIv7pPg2TPaFL7Cp/k/5ZO8n0S4btGiqtj7+YGvr/oyUDqG9jMaOxZat1ZFIEMG9YVl+ddj6domO38nFqRBfTWegRYnBAXBJ5+ou+NCQ1X7rFcPOnYEr79Gcf7ReWbUnUEy52RvrGsY0Ml9D46E8uXaKjx+rL4cJ01qwi/yFv6ps1CNbSRLZU+1UZVwuXCM4gWTsKL9TAITX6TVjBh6Gk6zuaJFi+Z52zK+vr5GiRIl3ENDQ7ly5YpjqVKlcmfPnj1/zpw5848cOTLN++w3MDDQ8PDwcA8x9b7YN+ni/5ILF+DLL2HfPnXKfsgQ2L7qBT2CfmRtthRccUv6xun+iDg6xrAjogisWgVdurw6L6FjQn7uNJfarUPxC/aHjz+Gx4/NCahZlZeXGgjv/Hl1efy771R7P3H/JGP3jKVt4bbUzlU78g1s3w4JEpCgYpkYfUPI7t3gVMgdxz071bf3ChVg7Vpq5qxB5eQd2PjiO/3wn3jq+PHjbx31afLkyanr16//1MHBAUdHR3744Yfb165dO3v48OHzs2fPTnP06NF37r3l7OwsFStW9Jk1a1bK90tuGzH4zzj6zZypCmLevC/NnDEDZ/+njKz6lF7ZJ5Im0Xt9+YtxwsIifhprRbcK3L7Tg1pNA7HcugmNGqnDRi3WCgtTbfuHH8L/n586BceP45QwlIDqnTACU/JjzR//eyNbt0LZsqqgxmD/tOvcudU1Dnd3qF8fPD3pkuE7HENc6bS6EyFhMesoTLMeHx8fu0qVKuV0d3fPlytXrvwzZ85MAeDi4lL04sWLCbJnz56/efPmWXPmzJm/XLlyuXx9ff+5H2vp/9q787gasz8O4J/TvqeSbAmlTVQy2SJjSSZCWZIRso5hbOM3lrHPEFljzNj3pRlLxhKKxIw1pKlUQiqKUtr3e35/nItQCvd2697zfr3uS93nee7zvbfjnuec55zv+fNPvaFDh74CACMjoxIHB4d8ANDR0REYGxsXJCYmKkVGRirr6OhYN2nSpI25ubmltra2jaGhoVVGRoZchw4dTI8fP64FAD/88EPj0aNHGwLA4MGDXx0+fLhWVf58nn85jx6xbtE3iopQusYX/7aUQ5JOb5jk19JFez6DszO7xTFv3rvPnzsHtHrigycOJ/GTJ+C76wrLn753b+2es8hVKjubpagwMRE+MWYM0KAB1i/oiZjs25A77Q/dFR/5XkpPZwMEltX+ZDldurDbWUlJgKFhI+Cff9gMgCVLYFP/AqaP/RmrUqdg7bW1+MnhJ0mHK9W8T3gbRr6IFOnVolUDq/ydA3YmfWyfY8eOaTVs2LDk0qVL8QDw8uVL+fLbExMTVfbv3/+oc+fOT7755puWe/fu1Zk8eXJGYWEhSUpKUjYzM/sgLWRsbKxSdHS0mqOjY66urq6gffv2ubNmzXru7Oyca29vb7Zp06ZEXV1dweLFi58tWrSoSWpqqkJERIRacHBwPAB89dVXBREREeqi/Cy+lNS0/AkhzoSQWEJIPCHksxasb9ny3Vz89NAhKKQ8x9puilC7sAUmJtJT+c2dy+7bbt7MRm2XlbFbAd7egM8SLfzu8jtWGyUjxLsHu0r45RdJhyyTRFGutbTYbaj4eOETpqYoiYnCwpCFcNB3hUnxkI+/QIgw/XPPnp9z+hqlrQ3Mns2m/l+/DlAVVaSv2YPDLnvRNCMCPn6zsTe2NX69sAgPXvIxLdKoXbt2BVeuXNH67rvvmpw9e1ZDT0+vrPz2Jk2aFHXu3LkAAGxtbfMTEhKUASA1NVVBU1Pzg5XOsrKy5Nzc3Ix9fHySdHV1BQDw4MEDVTs7uwIAePTokUrbtm0LAaBv3765lFJs2rTJ4Pjx448UFFj7WngbgWZmZtaaOlcqWv6EEHkAvwHoDSAZwC1CyN+U0uhPeZ3x49mc/BEjAEsLilc+i/BUH1C09IHGXaNaOWr/c5mZsZ7cuXPZdERC2MItO3cCffsCQD8Maz0MznLH8HyIK+otXMi6UofxREA1RVTlWl6ele1Zs9gsTsVWrSDnfxhqAg0UHfsN30+u4qL2wgVAUxP46qvPfSs1as4cQFeX9QCkpbELW3f3kehx62toLvkeIw/9jQ76ctj5yh3L14SD1OZBDHVYVS10cWnbtm3RnTt3oo8ePao9f/78JsHBwdmrV69Oeb1dSUnpTR4CeXl5WlBQIAcA6urqguLi4ncKQ1FREXFxcTEeMmRIxqhRo14BbFBgUVER0dfXL4uPj1esV69eqYqKCgWAmzdvqqalpSnq6OiU6ujovLO2a0lJCVFTU6s1ORCkpdTbA4inlD6ilBYDOAxgwKe+iLk5aw136QIs6xsAndhEbLZtgbtbp+LIEenr9W7bFjh9mvXqpqQAN268rviZDc4boK6kAbde6aAODsCoUWwnGVQmKIPfDT/kl+TX5GlFUq4BlodCXp6NZ1kT8RzyFDA+MwNtmzfFlClVHBwUBDg6srn0dQAhwMSJbLJKQgIbs7pnD9CgXVPWvXXqFBqo6mPF+v+Q0rE1cEe2BwBGPI/A6bjTkg5DZBISEhQ1NTUFkydPzpg+ffrz8PDwat160NfXLysrKyP5+fkEAAQCATw8PIxMTU0LFy9e/Pz1fnfv3lU1NjYuBICIiAhVExOTAgB48uSJ4rffftvi2LFj8aqqqmVHjx59Mx8mNTVVXkdHp1RZWZlX/iLWBED5q8xk4XNvEEImEELCCCFhaWlplb7QiBFAbCwgr38cYY0A06F/4n6U/Nv7pVJITa3iaVsGGgZY47QGISlXsWfRAJYUwNUVePIEmZlsSfXBg9kt5KCgWpLqVUw239qMaWen1fSXZJXlGqhe2VZWBo4eBfYfEOCc/nkAwOGhNti+vYrlHOLj2WAYZ+fPfxcSQgib+q+s/N4GFxdoxSVgvWdLKEfFAnZ2bLBPcjIANrxh6lQ2NfLnn1lODGlVKijF2L/HYuzfY5FXnCfpcETi9u3bqjY2Nhbm5uaWK1eubLRw4cKUqo9iunXrlnX+/HkNAAgKCtIICAjQ++effzTNzc0tzc3NLf39/bXv3bunamFhUQAAampqgsjISPXbt2+rDBgwwHjlypXJ7dq1K1ywYEHKsmXLGr9+3cDAQK2ePXtmif7dfj6pWNWPEDIEQB9K6Tjh7yMB2FNKp1a0f3VWPqOUIjw1HLaNbEUeb11CKUXvfb1x8+lNPOh9Ega9BqDQoBlscv5B+x5a6N+fpX7dvJklM6qyMqmDErMSYfmbJRyaOSBwRCBINbqARLGq36eWa6B6ZTsz5TF0GrcEVq5kOfE/5rff2BLWDx5A2q6AY9Nj0XV9W2yJaolBgY8BOTn8+/V8eN7+EeO+V4aFBct1tW8fG/ZSB69/qrT22lrMOj8L/oP9MbR11Ss0VVWu7927l2BtbZ0u0iBr0L///qvq6+vbMCAg4LEoX9fJycnY19c32draukanTt27d6++tbV184q2ScvXdDIAw3K/NwXw7EtekBAi8xU/wD6HLf22oERQgonx60D/+gsKcdE4pzsc+3eXYtgw1kq6fZslRpK2zMCUUnx3+jtQUPzR749qVfwiJPJyDQA6jVqwvL1xcVXvfO4cGwkrZRU/AJjVN8M0p4Vws4lB0OmNyHHoiy5nfka8pi0W9LqGwYOBdevYnYKRI9nAWGnyOPMxFoQsQD/TfhhiWcWgTxnRpUuXgu7du2eXln4w7u+zFRYWEldX11c1XfFXRVoq/1sAWhFCWhBClAB4APhbwjFJDWNdYyztvhQnYk9gI8nCfO3fYBR1ho0gE1JTY43IXbskGKgYHI48jDMPzuDXHr+ieb3mNX168ZVrU9OqK//iYjbSv0+fj+9Xh83uMhttGrTBmHtLsLDdTuwacgaKxXmAgwOwYAFQWoouXYB27Vj2TmlBKcWEUxMgT+Txu8vvNX1RW6tNnz79pYIIx7eoqKjQKVOm1LpsaVJR+VNKSwFMAXAOwH0Af1JKoyQblXSZ0WkG2jVqhyW3piDEeghbO93Pj3ULC5mYCFd/kxLp+emYdnYavmr8FabaV9rTLjZiLddmZlVX/qGhLA9w349k/qvjlOSVsN11O1JyUxBYOgdlTn2ByEjAy4tNb3VyAl68kLqyvefeHgQ/CoZPLx801Woq6XA4CZCKyh8AKKVnKKWmlFJjSumvko5H2ijIKWCH6w5klaTjnsEsZM5fzdZz/eEH4OxZAGxGWNu2Eg5UhGacm4HMwkzscN0BeTn5qg8QA7GVazMztoJV+kduzwYEAOrqbF1fKWbfxB7TOkxDrOYfOHztMpvWuGsXmyJw7Rpohw54EhgtNWX7ee5zzDw3Ew7NHDCp/SRJh8NJiNRU/pz42TS0wezOs1HcejcGzr6Igp2HgDZtgKFDEeX/H9asAaZNk3SUohH4IBD7I/ZjnsM8tDFoI+lwRO/1ilNXK1nmViBgN7udnQFV1ZqLS0KWfb0MzbVa4pLWOBzwF97c9/JCWchl5KUV4ECiA7oqScc01ymBU5BXkodt/bdBjvAqQFbxvzz3SRZ1XwRTXTPcbjIehjYU3xudQnqRJrQ9XbDzl2ewlYIxklmFWZhwagIs9S0xr+u8qg+oi9q3Z0nwK1u6+fZt4OlTYODAmo1LQtSV1LFj4DaU1XuAKUcXwc6OJQlq5fkVxphfg3pTHZDevSq/WKojjkYfxZHoI1jkuAjm9atc5I6TYrzy5z6JioIKdg3ciXzFRDivnoNOQ5oicuUpNFHNgMvv/dg94jpudtBsPMt5hp2uO6Gs8P4kcSmhqsrmt1dW+fv7s4uDb76p2bgkqEeLHhjfbjyyrdbAe8EN9OnDZq/8FdYCClevAI0asfEP5XOA1yEvM5/BZ/8k2OuzHjxOtvHKn/tknQ07Y1qHaTgQtxlNuoSg+3RbkD//ZHP9hg1jC8bXUecfnse2O9sws+NMdGjaQdLhiFeXLkBY2IerNhYXs4WcXF1ZnlwZ4tvbF401G+O3p2MwZHgh7OyEGxo3ZoNadHTYBdGjRxKN85MUFQHz50O7gSFurUjHleXPoXgsQNJRic0vv/zSoGXLlq21tLRs5s2b1xAA9u3bV6/8crx+fn56CQkJb9Y1HTZsmNHnLNdbl/HKn/ssv/b8FSa6JvD+2xu5xbnsC/H334EzZ4DJk+tkur+swiyMPzkeZnpmWPr1UkmHI35durCK4f2W7OnTLCm+t7dk4pIgbRVtbO+/HffT72PxpcXvbjQ0ZINbS0tZeX/1SiIxfpKiIrbK0fLlOGwhwOkZLlAyaMQu0oUDdaXNjh079M+cOfMgOzs7fPny5akAEBAQUC8iIuLN4JX9+/fXT0xMfFP5+/v7P7GzsyuURLySwit/7rOoKaph14BdePLqCWadE873nzCBrRG8bVudWP71fTPPzURydjJ2D9wNVUXpH+SGrl1Zvv73MzNt2cJauk5OkolLwvqY9MH4duPhe9UXV5Peu8dvbs5mQTx6BHh4sFWDaitKgdGjgQsXMHWoJtZ+bwsn3+PAlStsoK6nJ/Dsi3NG1Sqenp7NkpOTlV1dXU2WLFnSwMvLq1lQUJB6cHBwvZ9//rmpubm55fz58xtGRkaqeXl5tTQ3N7fMzc0l9vb2ZpcvX1YDADU1NdupU6c2MTMzs7S2tjZPSkpSAICoqChla2trcysrK4vp06c3VlNTq9MjnOrGSh1creTQzAGzOs3C6murMdB8IPq26svmRicnA4sWsQpk3DhJh1ktJ2NPYmf4Tsx1mIuOTTtKOpyaUb8+MGQIW8px6VI2xS0khGX1W7GizizkIw5rnNYg6FEQvI57IXxSODSUNN5u7NoV2LSJrR60eHHtvdDdtQs4fBgHhlliq1U8bg/aC0V5RUBNkV3wWVoCvr4sjaE4eHsbIjKyWovqVJuVVT52Vr5a4MGDBxNDQ0O1Q0ND4/766y9tAOjdu3der169XvXr1y9rzJgxmQAQFBSkvXr16qRu3bp9sFJXQUGBXKdOnXI3btz4dNKkSU03btyov2rVqpQpU6YYTp48+cXEiRMzVq1apS/S9yUBvOXPfZFlPZbBqoEVvP/2Rnp+OltNZft2lhVu4kQ2XayWe5H3AuNOjoO1gTUWOS6SdDg1a9o0IDub/c3y84GZMwEjI5bESYZpKmti94DdeJT56G3PVnkTJrDbIr/8AgQG1nyAVUlMBKZNQ6qdGUaaRePXHr/CqoHV2+2mpmwVs61bP57rQQYpKipSDw+PLACws7PLe/LkiRIA3L17V8Pb2zsDAMaNG1frMvZ9Ktm9tOdEQkVBBfsH7Yf9dnuMPzkex4YeA1FUBI4cAXr2fHtvsXt3SYdaIUopxv49FlmFWbjgdaHS0f1ZT3NBJ0wAFi1GPXvTGo5SjDp0ALp1Y6ma16xh0/uOHAFUZGrsU4Ucmzvix84/wveqL1xMXeBq5vruDps2sQGTo0axwa6NGkkm0IrMmgVBWSl69khCtxaOmNlp5of7/PQTsHcvXq3YjJRxC2FiwiZ4iMxHWui1mYKCApUTrk6moKCA0tJSqcx9zFv+3BezbmiN5T2WIyAmAFtvb2VPamiwwX/GxkD//sCtW5INshKbb23GqbhTWNV71bstI6G8PNbI29NyCeqdOYQhPV5ixAggI0MCwYrL6dNsdSYtLbY2s7u7pCOqNZZ9vQw2DW3gfcIbz3Leuz+uqgocPsymt3p5scRItcHFi8CRI9jqpIdnekrYO2hvhcl8buZaIkzra6RtOIj+/SiaN2fZuuvgWN0qaWholGVnZ8uV/z0rK+uT0nba2Njk7t69WwcAdu7cWeenwfDKnxOJGZ1mwMnYCdPPTUfki0j2pJ4ecP48oK/PMsVFREg2yPeEp4Zj1vlZ6GvSt8Lc/ZQCgwcDeimRmFq2Dhg3DkeedoKeHns7tXms1yfR0AA2bACio6U+le+nUlZQxiH3QygoLcC3x75FmeC9P7qFBbB+PRAczHoCJE0gAGbNQoaBNqZbPcXWflvRTLvZB7vFxrLs3AK3IWhVFov4E1EIDGRLc5dbrkNqjBgxIsPPz6+hhYWFZVRUlLKXl1f61KlTjV4P+KvOa2zcuDFp48aNBm3atLFISUlR1NDQqNPfAIRK42VeFaqz5jn36Z7nPof1H9bQVdXFzfE33w6SevSIdS0XF7PFYiwskJbGepgNDdk1griVlLBB2pcusQZbP/ccTAizQ15JHsInhkNf/cPxO9evA14jyhCr7wAS/4B9Y+rpgVKWHffnn1mnRkWqWvdcXHjZFo9dd3fB+29vLHZcjEXd3xsXQikrCBcugN65izg5cxQXs+uCmhgzmZLCliFISAD65x6CywFPjHADNMdMxB/9/qjwmAkT2P+9BROes9sVCxYAS5YgMhLo3Rt48gRQUvrwuKrK9b179xKsra2lchBBTk6OnLq6ukBOTg5bt27V8ff3171w4cJDScf1Mffu3atvbW3dvKJtvOXPiYyBhgEOuh9E7MtYTDw1EW8uLFu2ZF2R8vIQdP8aM/veh6kpu1VqbMz+zcoSX1xpacBXXwEbN7JxTpqaFC5bxiL+5UMcGHSwwoofYBcKqw03gNy4zg4WXqUQwnrGQ0LEFzNXu4y2GQ0vay8sCV2CoIdB724kBNi2DcWKaoiwG40+vcoweDDQvDmwY4d44zpxArCyAh4/Bmxal6Ddybm4py+PG/ZtsK5P5aP4L10S3t0xMGAX5keOAGCvpa1d9YKPsujff/9Vs7CwsDQ1NbXcunVrgw0bNiRLOqYvwSt/TqR6tOiBpd2X4uB/B7Hx5sa3G0xNURYcgswMYElodyQFRuLePfalpaTEUsiLqxNqyhTWmx0ayga3azqtQ36Lv9D4/gokXnGs9LimryLR9595LNOdh8c72169AtREO4mJq8UIIdj8zWa0btAaHkc98Djz8TvbbyU3wlRsgnXBDTyesgaxscDJk2zG5N694okpLQ0YM4bNzNyyBfBW2oZG2U/wax9lZGw7htLCynNVqKqWu+CeNIn1XBQXQyBgkz9kYC2nT+bs7JwbGxsbHRcXFx0WFhZrZWVVVPVRtRev/DmRm9t1LlzNXDHz3EyEPH7bPA58bI6JZpegUU8eGv26A7dvQ0eHfXGlpLDcI6L28iX7cly4kDXQgh4GYXbQbLhZuGHziNnYtq2SAwsLMfSEJzIF2njxy1Z2sFBWFvtCHzpU9PFytZe6kjqODzsOARVgkP8gltlSyMcHsF7hAQwaBLJoIRAbC1tbVk6WLRPPWMADB9h1afv2AC0qQvbP/8ONJsC38w+ie1uT1435Cg0dCvj5CS+4PTzYG1BSwtGj7C5Ay5aij5erXXjlz4mcHJHDvkH7YFbfDO5/uuPBywcAgMuXgXae5iCXL7NBZj16AKGhkJNjLf/QUNHHkprKvsy0tICY9BgMPTIUlvqW2DNwD6ysCJIr67ibOhVKMf/h4re74OBugEOH2NCFgAA2a9HdHVKzvjtXfSa6Jjjkfgj/vfgPXse9IKCsVg8NBdzcCRstp6YGjB0LCATo1AnIyRFPIr2kJKB1a/bzufkeqJ+eh4fTvOBqPgCtW7PtlZk6FYiJYVP9r19nw1lWrGCZuf383rnW5aQUr/w5sdBS1sLJ4SchR+TwzcFvkJaXBnV14RQ5ExPWzG/ShCUDOnoUmZmAurro4zA0ZBcAkQkv4HLQBUrySjg5/CQ0lDRw7RpgZlbBQdu3s8fcufDY+w1Wr2bJ0nr0YMnQZs9mA7w52eRs4oy1TmtxPOY4/hf0PwB4W7YbNWKF5N9/gd9/R1ERUFAgnltE5ubAtWvAkTv70XpbAGLN6mP4rF0A2PPmH1mxV0uLXbBYWgLjx7OlCuLi2FiALl1EHytX+/DR/pxYXU26ip57e8LawBqb7IPRz0kD0dHCxeJevgRcXUGvXcMilVUYd38WmhmJvskx7vscHNP8GoWa0QgZFYIOTTvg6VPA0ZHNcHNxKbdzSAjLad+jB8tTIP9JU4Hf4KP9pRulFNPOTsPGmxuxxmkNUo/PRFYWu4UFStnSv//8g31zorD/ihHOnRN9DDk5gFH3ixjZ0AkbzpSh+NwZKDn1xcGDwNy5wIMHFY/Y/xKyPNq/LuKj/TmJ6WzYGYfcDyHsWRjmhA/Et6ML0bUrWy4+Nl0Ph8YGI1B9MJYWzEazJWM/XF72C+WX5CPOrj9eqYRD/cxf2L+yA0aOZKOaJ016r+IPDwcGDWJTAvz9P7vi56QfIQTr+qzDYMvBmHV+Fhr3247Ll9nMlWvXCe5P34KiEgLDZeOxZrV4GliRr65BzsUVcy4RhNfrjDmBzujaFZg/Hzh1SvQVvziUlQFPnkAxM1M0dVF6erq8j4/PZ+Xdd3R0NElPT//of/rp06c3DggI0Py86Crn5+en5+Xl9WFChnJOnTqlGRQUJLL+UV75c2I30Hwgdg3YhYuPL+K/1gMwf3EBtm9nSUb2/qUKwYHDbCGgXbsABwc2yVgE8orz4HrIFf8mX8F+970I+s0FLVuyU8TEAD/+WG7n6GjW4tfSYi3+evVEEgMnveTl5LF/0H44mzhjZsgETN62E8bG7KLSbYYRTnRaie7FQbC6uVPk576efB3OB5wxO0IFjfJL8WrWSjRuQvDjj6z7vk0bkZ9SpAQCYNUq6Ddrhja2trBs2hTWTk4wjonBF12yvHz5Un7Hjh0NKtpWWlr60WNDQ0Pj69ev/9HEPevXr382cODAnC8I8bNdvHhR88qVKxpV71lNlFKZe9jZ2VGu5u26u4uSxYR229WNZhZkfrhDQAClWlqU1qtH6ZEjX3SujPwM2mVHFyq3RI7uCd/z8Z1v36a0fn1KGzWiNCbmi877GoAwysu2TMgvzqd99vWhWAy67tq6txvKyih1dGRlOjFRZOcLfhhM1X9VpzYrmtNSnXqUOjuL7LWrUlW5Dg8PT6CUhlX1WLCAJpmY0IJLl2g0pTQsI4PemTOHJjdsSIuSk2l4dV6jooeLi0uGsrKywMzMLH/ChAmpJ0+ejLW3t8/u16/fy5YtWxZQSsN69uyZaWlpmWdsbFzg6+v7Jt7GjRsXPXv2LDwmJiaiRYsWBcOGDUszNjYu6Ny5c1ZOTs5tSmmYm5tb+s6dOx++3n/69OnPLCws8lq1apV/586dSEpp2NOnT8M7deqUZWFhkTd8+PC0Ro0aFT179uyD97R+/frHRkZGhe3bt88ZNmxY2siRI19QSsMOHDjwoE2bNrnm5ub5nTp1yk5MTAyPiYmJ0NPTK9HX1y82MzPLDwwMjKlov/fPIfx7VPi34i1/rsaMthmNg+4HcS3pGrru6oqEVwnv7jBgAHDnDtCqFcurO2rUZyXRf5z5GF12dsHNpzfhP9gfXtZele988iRLcqKmxqYjVDgCkOMqp6qoigCPALhZuGHGuRmYeW4mSwMsJ8eWSy4tZUtbi2B81Z7wPeh7oC9a6LTAleffQP5VFhumX4dkZ0POzw+NTpzAA0dH5AOAjg4EK1Yg1dER2evW4bOXy12zZk2yoaFhUUxMTPSWLVuSASAiIkLd19f36cOHD6MA4MCBAwlRUVH3w8PDo7ds2WKQmpr6QVd/YmKiyg8//PAiPj4+Sltbu2zv3r06FZ2vfv36pdHR0fe9vb3TfHx8DABgzpw5jR0dHXOio6Pvu7m5ZaakpHzQm/HkyRNFHx+fxlevXo25cuVKXFxcJH//0gAADzZJREFU3JvMCr17984NDw+PuX//fvTgwYMzli5d2tDMzKzYy8srbdKkSc9jYmKinZ2dcyva71M+K175czXKw8oDZ0acQVJWEr7a9hXOPzz/7g7GxsA//7B0owcOsByp+/ZVe6L02fizaL+tPVJyUxA0MgiDLQdXvGNJCbs56urKznH9OpuFwHGfQUVBBX8O/hNT7adi3fV1+ObgN3iR94JNmPf1ZWtcbN782a9fXFaMaYHTMPrEaHQ16op/exyAxu87gJEjARsbEb4T8btyBWotWqDQ0hLF72/z9ERGSAi0RHm+tm3b5pmbm78518qVKw3MzMws7ezsLFJTUxWjoqI+WMKySZMmRZ07dy4AAFtb2/yEhIQKl/v09PTMBAB7e/v8pKQkZQC4efOmxqhRozIAYPDgwdlaWlof3Eq4fPmyeseOHXMaN25cqqKiQt3c3N60ch4/fqzUtWvXVqamppZ+fn4NY2JiKky5VN39KsMrf67G9WrZCzfH34SBugGc9ztj1rlZyC/Jf7uDkhKwdClbLrV5c7ZiWseObMW5SlpPecV5mH52Ovoe6IumWk1xa/wtODavJHvfrVuAvT2wfDlrkV2+XLuWY+XqJHk5efj19cO2/tsQmhAKmz9scDL2JPDdd2wlqB9/ZGNLPtF/z/9Dh+0d4HfTDzM6zsDZEWehNXcxG5D6yy+ifyNipqQEWlhYcd2Tnw85BQWIdISkmpram5bDqVOnNENDQzXDwsJiYmNjoy0sLAoKCgo+iEVJSelNDPLy8rSyZX1VVFQowJYBfr0PrWYPD6kkmcKUKVOaTZ48+UVcXFz0pk2bnhQVFVX4WVV3v8rU+cqfEDKEEBJFCBEQQmp8ahX3eUz1THFz/E1Maj8Ja6+vRevNreEf6f8maQoA1qK5dg3YvZtN1ndyYuvPHzwIFBYCAARUgMORh2G52RIbbmzAVPupuD72Okx0K2jFR0QAw4ezij8lBTh6FNi2rVbmMuXluu4a124cboy7gfpq9eF62BWD/nTDw9XzAU1NllovP7/qFwGQnp+OmedmwnaLLZ5mP0XAsACs7bMWiueDgePHWe+YoaGY343ode+OvJcvoRASgneyHwgEwLZtqO/qilef+9ra2tpleXl5ldZrr169ktfW1i7T1NQU3L17V+XevXsizy5ib2+fu2/fPl0AOHbsmFZ2dvYHtxW6deuWd/36dc3U1FT5oqIicvz48Te3FXJycuSbNWtWAgC7d+9+s+yZpqZmWU5OjnxV+1VXna/8AUQCcANwWdKBcJ9GTVENm10249KoS9BS1oLHUQ9YbbbCbzd/w8v8l2wnOTl27//BA9ZtmpkJjBgBQUMDxPa1x//GNMWc7cNRT1kbV8ZcgV9fP6gqCivz0lJW4a9dC3TqBFhbszlQ8+axIdFubpJ781Xj5boOs25ojbAJYVjeYzmCHwXD9Kgjlk0wA6KiIJg0sdIeLEop7qTcwZQzU9B8fXNsuLEB3rbeuP/9fQwwH8ByS0+cyDL4zJxZw+9KNBQVgeXLkTRsGEw2boReairkb96Eqrs7mqemQmnqVHx2noCGDRuW2dnZ5bZq1ar1xIkTm76/3d3dPau0tJSYmppazps3r7G1tXXel72bD/n4+Dy7ePGilqWlpcXp06e19fX1S+rVq/dO17+RkVHJTz/99Kxjx44WDg4Opm3btn1zRTh//vxnw4cPN7azszPT09N7M0XB3d391enTp+uZm5tbnj17VqOy/apLapL8EEIuAfiRUlplhhOeCKX2KROUwT/KH6uvrsbd1LuQI3Kwa2QH24a2aKbdDOpK6sgvyceTjMeQvxQK+0sP4BoD6LIOAFANDRBDQzZVj1J2kZCY+DZvQNu27PaBtzegU+HYHZESVZKfTynXAC/btdHz3OdYf309/rj9B6YFvsLiUGDbtxaIG+kCAw0DyBE5ZBRkIO5lHK4lX0NydjKU5JUwrPUwzHWYCwt9i7cvNmYMWzDg6lXWC1bDRJnk5+RJaPr6ouHdu1DX0kKZmxsyFi9Gqp4ePjrdrrYrKCggCgoKVFFREcHBwepTpkwxiomJ+fT7PSLwsSQ/NbDadO1ACJkAYAIANGv20VwKnATIy8nDs40nPNt4Ijw1HAExAbiUcAlH7h9BRsHbEf96qnpoa9MWDQZ4IqmVK3RTKXDrFsj9+0ByMpCby3oLmjdnswesrYGuXQEjI8m9OTHjZbt2M9AwwIpeK7Co+yIE9juNO+NmYeyB+xhR8gCrLViDTZ7Iw6ieEboYdoGTsRMGmA2Antp7Pbnbt7NbYD//LJGKX9T690dO//6QyJx5cYqPj1caOnSosUAggKKiIt2yZUuCpGOqSJ1o+RNCggFUNI1hPqX0hHCfS+Atf6lUVFqE/JJ85GSqYu0qFfj7A3l5LD3vvHmsR7+2qU7LX9TlGuBlu07IzwecnEBv3ULB/l0ode2HW1fV4LtSAVevss4rT0+WovdNJ9XFiyxlcPfuX5R2+kvx9L51S51P70sp7UUptargcULSsXHip6ygDEG+Dnp1V4FAwNYESkhgDfuBAyGWvOk1gZdrGaWmBpw8CWJrCzWPkXj0/V58O1wenp4sueWFC+yuVbduQHY2WAHv14+lnT50iKed5kSiTlT+HOfnx74M/fzYdHxdXTZLb88eYNYskeRP4biao6MDBAeDOveFzY6piDJxhddX96Gjw/JMbd0KtDfORMzAOazF36oVuyrQ1ZV05FURCAQCviBwLSD8O1SaIKXOV/6EkEGEkGQAnQCcJoTU0XYg9zHHjgETJnz4fJ8+bHWzuLiaj0mceLmWARoaCFv4N1YZrIHuvUtsfV07O8DTE6SvM7adbwb7kJXA6NFsgF+DClPW1zaRaWlp2vwCQLIEAgFJS0vTBps1VKE6P+CPUnocwHFJx8GJV0kJoPJBHi6AEEBZmW2XJrxcy4ZSgRz8m8zE/86OBHbsAAIDWRIqNTWkOY3Aj/GTcGBn3cngV1paOi41NXV7amqqFaSgcVmHCQBElpaWjqtshzpf+XOywdmZ5fZp2/bd52/dYrP5LCwqPo7jajNbWyApCbifrg+LOXOAOXPebFv6HWDc9iMH10J2dnYvALhKOg6uavzKjKsTZsxg9/c3bGCDpSkFLl1iCdOWLeNjoLi6SUUFWLiQDVy9epWV65wcwMeH5aOaPFnSEXLSirf8uTrByAgICQFmz2br8SgpsXT8Pj7AsGGSjo7jPt+UKYCGxttFLIuKWCbr0FCg4Set08Zx1ccrf67OMDdnK/Dm5LDU/vXrs3v+HFfXjR7NKv+0NDYTUEND0hFx0o5X/lydo6nJHhwnTQipKwP6OWnA7/lzHMdxnIzhlT/HcRzHyRhe+XMcx3GcjOGVP8dxHMfJGF75cxzHcZyM4ZU/x3Ecx8kYQmVwOTRCSBqAJ9XYtT4ASa9NzWOoPTEA1Y/DiFKqL+5g3sfLNo9BzDFIpFxzoieTlX91EULCKKXteQw8htoWx5eqDe+Dx8Bj4CSHd/tzHMdxnIzhlT/HcRzHyRhe+X/cVkkHAB7Da7UhBqD2xPGlasP74DEwPAauxvF7/hzHcRwnY3jLn+M4juNkjMxW/oQQZ0JILCEknhAyp4LtyoQQf+H2G4SQ5uW2zRU+H0sI6SPGGGYSQqIJIRGEkAuEEKNy28oIIeHCx99ijGE0ISSt3LnGlds2ihDyQPgYJcYY1pU7fxwh5FW5baL6HHYSQl4QQiIr2U4IIX7CGCMIIe3KbRPJ5yAqvGxXOwapL9vSVK45EaOUytwDgDyAhwBaAlACcA+A5Xv7TAbwh/BnDwD+wp8thfsrA2ghfB15McXwNQA14c/fvY5B+HtuDX0OowFsquBYXQCPhP/qCH/WEUcM7+0/FcBOUX4OwtfpBqAdgMhKtn8DIBAAAdARwA1Rfg68bPOyLY6yLS3lmj9E/5DVlr89gHhK6SNKaTGAwwAGvLfPAAB7hD8fAdCTEEKEzx+mlBZRSh8DiBe+nshjoJSGUErzhb9eB9D0M87zRTF8RB8AQZTSDEppJoAgAM41EMNwAIc+4zwfRSm9DCDjI7sMALCXMtcB1COENILoPgdR4WW7mjF8hNSUbSkq15yIyWrl3wRAUrnfk4XPVbgPpbQUQBYAvWoeK6oYyhsLdoX+mgohJIwQcp0QMvAzzv8pMbgLuwSPEEIMP/FYUcUAYddwCwAXyz0tis+hOiqLU1Sfg6jwsv1pMch62a4r5ZoTMQVJByAhpILn3p/2UNk+1TlWVDGwHQn5FkB7AI7lnm5GKX1GCGkJ4CIh5D9K6UMxxHASwCFKaREhZBJYi7HHp8Qvghhe8wBwhFJaVu45UXwO1SHu8iAqvGxXPwZetutOueZETFZb/skADMv93hTAs8r2IYQoANAG6z6rzrGiigGEkF4A5gNwpZQWvX6eUvpM+O8jAJcA2IojBkrpy3Ln3QbA7lPiF0UM5XjgvW5REX0O1VFZnKL6HESFl+1qxsDLNoC6U645UZP0oANJPMB6PB6BdbO9HojT+r19vse7g6L+FP7cGu8OinqEzxsUVZ0YbMEGDLV673kdAMrCn+sDeICPDCT6whgalft5EIDrwp91ATwWxqIj/FlXHDEI9zMDkABhbgpRfg7lXq85Kh8Y5YJ3B0bdFOXnwMs2L9viKtvSUK75Q/QPiQcgsTfORrnGCb+A5gufWwrWCgEAFQB/gQ16ugmgZblj5wuPiwXQV4wxBAN4DiBc+Phb+HxnAP8Jv0z+AzBWjDGsABAlPFcIAPNyx3oLP594AGPEFYPw98UAfN47TpSfwyEAKQBKwFo9YwFMAjBJuJ0A+E0Y438A2ov6c+Blm5dtUZdtaSrX/CHaB8/wx3Ecx3EyRlbv+XMcx3GczOKVP8dxHMfJGF75cxzHcZyM4ZU/x3Ecx8kYXvlzHMdxnIzhlT/HcRzHyRhe+XMcx3GcjOGVP8dxHMfJGF75cxzHcZyM4ZU/x3Ecx8kYXvlzHMdxnIzhlT/HcRzHyRhe+XMcx3GcjOGVP8dxHMfJGF75cxzHcZyM4ZU/x3Ecx8kYXvlzHMdxnIzhlT/HcRzHyRhe+XMcx3GcjOGVP8dxHMfJGF75cxzHcZyM4ZU/x3Ecx8kYXvlzHMdxnIzhlT/HcRzHyRhe+XMcx3GcjOGVP8dxHMfJGF75cxzHcZyM4ZU/x3Ecx8mY/wMNdFYHdlaVkQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"for i, degree in enumerate([0, 1, 3, 9]):\n",
" plt.subplot(2, 2, i + 1)\n",
" feature = PolynomialFeature(degree)\n",
" X_train = feature.transform(x_train)\n",
" X_test = feature.transform(x_test)\n",
"\n",
" model = LinearRegression()\n",
" model.fit(X_train, y_train)\n",
" y = model.predict(X_test)\n",
"\n",
" plt.scatter(x_train, y_train, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"training data\")\n",
" plt.plot(x_test, y_test, c=\"g\", label=\"$\\sin(2\\pi x)$\")\n",
" plt.plot(x_test, y, c=\"r\", label=\"fitting\")\n",
" plt.ylim(-1.5, 1.5)\n",
" plt.annotate(\"M={}\".format(degree), xy=(-0.15, 1))\n",
"plt.legend(bbox_to_anchor=(1.05, 0.64), loc=2, borderaxespad=0.)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def rmse(a, b):\n",
" return np.sqrt(np.mean(np.square(a - b)))\n",
"\n",
"training_errors = []\n",
"test_errors = []\n",
"\n",
"for i in range(10):\n",
" feature = PolynomialFeature(i)\n",
" X_train = feature.transform(x_train)\n",
" X_test = feature.transform(x_test)\n",
"\n",
" model = LinearRegression()\n",
" model.fit(X_train, y_train)\n",
" y = model.predict(X_test)\n",
" training_errors.append(rmse(model.predict(X_train), y_train))\n",
" test_errors.append(rmse(model.predict(X_test), y_test + np.random.normal(scale=0.25, size=len(y_test))))\n",
"\n",
"plt.plot(training_errors, 'o-', mfc=\"none\", mec=\"b\", ms=10, c=\"b\", label=\"Training\")\n",
"plt.plot(test_errors, 'o-', mfc=\"none\", mec=\"r\", ms=10, c=\"r\", label=\"Test\")\n",
"plt.legend()\n",
"plt.xlabel(\"degree\")\n",
"plt.ylabel(\"RMSE\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Regularization"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"feature = PolynomialFeature(9)\n",
"X_train = feature.transform(x_train)\n",
"X_test = feature.transform(x_test)\n",
"\n",
"model = RidgeRegression(alpha=1e-3)\n",
"model.fit(X_train, y_train)\n",
"y = model.predict(X_test)\n",
"\n",
"y = model.predict(X_test)\n",
"plt.scatter(x_train, y_train, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"training data\")\n",
"plt.plot(x_test, y_test, c=\"g\", label=\"$\\sin(2\\pi x)$\")\n",
"plt.plot(x_test, y, c=\"r\", label=\"fitting\")\n",
"plt.ylim(-1.5, 1.5)\n",
"plt.legend()\n",
"plt.annotate(\"M=9\", xy=(-0.15, 1))\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.2.6 Bayesian curve fitting"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"model = BayesianRegression(alpha=2e-3, beta=2)\n",
"model.fit(X_train, y_train)\n",
"\n",
"y, y_err = model.predict(X_test, return_std=True)\n",
"plt.scatter(x_train, y_train, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"training data\")\n",
"plt.plot(x_test, y_test, c=\"g\", label=\"$\\sin(2\\pi x)$\")\n",
"plt.plot(x_test, y, c=\"r\", label=\"mean\")\n",
"plt.fill_between(x_test, y - y_err, y + y_err, color=\"pink\", label=\"std.\", alpha=0.5)\n",
"plt.xlim(-0.1, 1.1)\n",
"plt.ylim(-1.5, 1.5)\n",
"plt.annotate(\"M=9\", xy=(0.8, 1))\n",
"plt.legend(bbox_to_anchor=(1.05, 1.), loc=2, borderaxespad=0.)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"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.0"
}
},
"nbformat": 4,
"nbformat_minor": 1
}