diff --git a/new_order_prediction_tutorial.ipnb b/new_order_prediction_tutorial.ipnb new file mode 100644 index 0000000000000000000000000000000000000000..59d0c78b7191538ad0efd78131112f020045f194 --- /dev/null +++ b/new_order_prediction_tutorial.ipnb @@ -0,0 +1,351 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Basic setup and data (with plot)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/douglas/miniconda/lib/python2.7/site-packages/matplotlib/__init__.py:1318: UserWarning: This call to matplotlib.use() has no effect\n", + "because the backend has already been chosen;\n", + "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", + "or matplotlib.backends is imported for the first time.\n", + "\n", + " warnings.warn(_use_error_msg)\n" + ] + }, + { + "data": { + "text/plain": [ + "<matplotlib.axes._subplots.AxesSubplot at 0x7fd38f11c8d0>" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nU/8PaSACu+MwelEAAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd38f11cfd0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "import csv\n", + "import requests\n", + "import ggplot\n", + "import matplotlib\n", + "matplotlib.use('agg')\n", + "matplotlib.style.use('ggplot')\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import statsmodels.api as sm\n", + "import numpy as np\n", + "from statsmodels.tsa.arima_process import ArmaProcess\n", + "from StringIO import StringIO\n", + "\n", + "# need ssh tunnel to use this url\n", + "url = 'http://zope:runescape@localhost:2200/erp5/portal_skins/erp5_r_order_prediction_tutorial/SaleOrderModule_getArimaPredictionList'\n", + "response = requests.get(url, auth=('zope', 'runescape'))\n", + "csv_file = StringIO()\n", + "csv_file.write(response.text)\n", + "csv_file.seek(0)\n", + "\n", + "ts = pd.read_csv(csv_file, sep=';', \n", + " parse_dates=[0], \n", + " infer_datetime_format=True,\n", + " squeeze=True,\n", + " index_col='date')\n", + "ts.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Graphics to analyze auto correlation and partial auto correlation" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/douglas/miniconda/lib/python2.7/site-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n", + " if self._edgecolors == str('face'):\n" + ] + }, + { + "data": { + "image/png": "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\n5HeFm/nqWZalm2++WbNnz5bX69XMmTN18803q0+fPqluWod200036f7771dubm6qm9Jhbd68WVlZ\nWfrf//3fSCB7+umn5fF4dP7552v58uWqrq7W5ZdfnuKWdiyx+uXPf/6zsrOzdc4556S4dR1TRUWF\nKioq1K9fP9XV1emOO+7Q7bffrlWrVvF9SaGm+uXNN9/k+5JCPp9PmZmZMk1Td999t6688kqtX7/e\ncd8VSi/qbdu2TT179lT37t3ldrs1ZswYrV+/PtXNgiR+l0utoUOHNvqNfv369Ro3bpwkafz48Xrn\nnXdS0bQOLVa/SHxfUikvL0/9+vWTJGVlZal3794qLy/n+5JiTfWLxPcllTIzMyVJwWBQlmWpU6dO\njvyuUHpRr7y8XPn5+ZFlr9erbdu2pbBFkCTDMDR37ly5XC5NmDBBEyZMSHWTIGnv3r3Ky8uTJHXp\n0kV79+5NcYsQ9vLLL2vNmjUaMGCAvvvd76b8z5Yd1a5du/TZZ59p8ODBfF8cJNwvRx99tLZs2cL3\nJYUsy9Idd9yhnTt3atKkSTryyCMd+V0hKMPR5s6dq65du6qyslJz585V7969NXTo0FQ3Cw0YhpHq\nJqDepEmTdNFFF0mS/vSnP+mpp57SjBkzUtyqjqeurk7z58/X9OnTlZ2dHbWN70vq1NXV6cEHH9T0\n6dOVlZXF9yXFXC6XHnjgAdXU1GjevHl6//33o7Y75btC6UU9r9ersrKyyHJZWZm8Xm8KWwRJ6tq1\nqySpc+fOGj16NKP8DtGlSxdVVFRIkvbs2aMuXbqkuEWQQv1iGIYMw9Dpp5/O9yUFgsGg5s+fr7Fj\nx2r06NGS+L44QbhfTjvttKh+4fuSejk5ORo+fLg++eQTR35XCMr1Bg4cqNLSUu3atUvBYFBr167V\nyJEjU92sDs3n86m2tlZSaCTgP//5j/r27ZviVkGSRo4cqVWrVkmSVq9erVGjRqW2QZAU+g9L2Ntv\nv833pZXZtq3HH39cvXv31tlnnx1Zz/cltZrqF74vqVNZWanq6mpJoRkw/vvf/6p///6O/K4w60UD\nGzdujJoe7oILLkh1kzq0Xbt26YEHHpAUqmU69dRT6ZMUePjhh7V582ZVVlYqLy9PRUVFGjVqlOOm\n8OloDuyXiy++WB988IE+++wzGYahbt266brrrovU+yH5PvzwQ91zzz3q27dv5M/Gl112mQYNGsT3\nJYVi9cull16qN954g+9LinzxxRd69NFHZVmWbNvW2LFjdd555zE9HAAAANBWUHoBAAAAxEBQBgAA\nAGIgKAMAAAAxEJQBAACAGAjKAAAAQAwEZQAAACAGgjIAAAAQA0EZAAAAiIGgDKDDW7p0qdLT0w/r\nPffee68GDx6cpBa1b+PHj9f3v//9uI+zatUquVwu7dixIwGtAoDGCMoAHGf69OlyuVxyuVxKT09X\nv379NGPGDJWXl8d13K+++koul0tr1qyJWj9t2rQWha3w43AP5a233pLL5dLo0aMP+xxhgwYN0pw5\nc1r8ficxDKPZ1y7M7Xbrqaeeilo3ZswYlZaW6ogjjkhk8wAggqAMwJHGjh2r0tJSff7551q4cKH+\n+te/6rvf/W6LjxcIBCKvbduO2paVlaVu3bod9jEPPE5TFi1apFGjRmnDhg167733Dvs8UvNDeWvw\n+/0x1weDwaSd0zCMRtc7PT1d3bt3d9S1AdC+EJQBOFI4BPXq1UvnnXeebr75Zr388svy+XxasWKF\nxo8fr/z8fOXl5Wn8+PF65513ot7vcrn0yCOP6LLLLlNeXp6uvPJK9e3bV5JUWFgol8ulAQMGSGpc\nelFRUaErrrhCRx11lHJycnTMMcfowQcfbNHn2Lt3r4qLizVnzhydddZZWrRoUaN9XC6X/vCHP0St\nmzBhgq666ipJoVKFjz/+WHPmzImMtH/xxReSpHXr1mns2LHKycmR1+vV5Zdfrm+++SbqWK+99ppO\nO+00derUKXK9Pvnkk8j23/zmNxowYIAyMzM1aNAgLViwIOr9/fr10+zZs3XjjTfqW9/6lsaNG6fV\nq1fL5XLpxRdf1Kmnnqrs7GwtWbJEkvTII4/omGOOUXZ2to4++mjdd999Mk2zyWt0qP7s16+fTNPU\nVVddJZfLpbS0NEmxSy8OdT3CJTMvvPCCjjnmGOXm5qqwsFDbtm1rsn0AOi6CMgBHOnCUMCsrS5Zl\nKRgMqrq6Wj/4wQ+0bt06vfnmmxo8eLAmT57cqDRjzpw5OvXUU7Vx40bNmzdPGzZskCT99a9/VWlp\naaNwHebz+XT88cfr+eef1+bNmzV79mzdc889Wrp06WF/jqefflo9evTQ5MmTdf311+uZZ55RTU1N\nsz5/+Br87W9/U79+/XTbbbeptLRUpaWl6tOnj0pLSzVp0iT17dtX77zzjv7+97/r/fff10UXXRQ5\nzmuvvabJkydr1KhRWrdund5++21dddVVkdHfRx99VHfffbdmzZqlDz74QLfffrvuvPNOPfHEE1Ht\nWbhwoXr27Kl169bpySefjIzu3nrrrZo5c6Y+/PBDnXPOObr33ns1f/583X///frwww+1YMECLVq0\n6KBlI4fqz/Xr1ystLU0LFixQaWmpvv7665jHac71kKSvv/5ajz/+uP74xz9q7dq1qqqq0tVXX33I\nPgHQAdkA4DDf+9737AkTJkSWS0pK7AEDBtinnHJKzP1N07S7du1qP/PMM5F1hmHY1157bdR+X375\npW0Yhr169eqo9U8++aTtdrsP2qYf/ehH9sSJEyPL99xzjz1o0KBDfpZhw4bZv/zlLyPt7Nu3r714\n8eKofQzDiGq7bdv2hAkT7KuuuiqyPGjQIHvOnDlR+9x11132kUceaQcCgci69957zzYMw/73v/9t\n27Ztn3rqqfa5557bZPv69Olj33HHHVHrbrnlFnvAgAGR5aOOOiqqP2zbtleuXGkbhmE//fTTkXXV\n1dV2Tk6O/corr0Ttu2zZMjsvLy+yPH78ePv73/9+k22K1Z9ut9tetmxZzDZs377dtu3mXY977rnH\ndrvd9u7duyP7/OlPf7JdLpft8/mabBOAjokRZQCOtGrVKnk8HuXk5Oj444/XoEGD9Mwzz0iSPv30\nU1155ZUaPHiwunTpoi5dumjv3r2RcoSwlt48Z1mWfvWrX+nEE09Ut27d5PF4tGjRokbHP5S33npL\nmzdvjoxWulwuXXPNNTHLL1qipKREJ598stxud2TdCSecoC5duqikpESStGHDBk2aNCnm+ysrK7V9\n+3aNHTs2av3YsWP12Wefqa6uTlJodLupa9lwfUlJiWpra/Wd73xHHo8n8nPDDTeosrJSZWVlMY/R\n3P48lOZcD0nq1auX8vPzI8tHHHGEbNvWrl27Dut8ANo/96F3AYDWd/LJJ2vZsmVyu93q1atXVPg5\n55xz1L17dz322GM68sgjlZ6erlNPPbXRTWadOnVq0bnnz5+vX/3qV3r44Yc1fPhweTwePfjgg/rn\nP/95WMdZtGiRAoGAevfuHVln27Zs29Z7772nYcOGSYp9o1pTN8w1FOt9ydLUtWy43rIsSdJzzz2n\no48+utG+Xbt2jXmM5vbnoTT3emRkZDR6X8P2A0AYI8oAHCkrK0sDBgxQ3759o0JyWVmZNm/erDvv\n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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd3b8218b50>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12, 8))\n", + "ax1 = fig.add_subplot(211)\n", + "fig = sm.graphics.tsa.plot_acf(ts, lags=30, ax=ax1)\n", + "\n", + "ax2 = fig.add_subplot(212)\n", + "fig = sm.graphics.tsa.plot_pacf(ts, lags=30, ax=ax2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Looks like partial correlation going to 0 after lag 3. So **ARMA(3,0)** might be an adequated model for out data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Minimum order selection for ARMA" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n", + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(3, 0)\n", + "(4, 0)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/douglas/miniconda/lib/python2.7/site-packages/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n", + " \"Check mle_retvals\", ConvergenceWarning)\n" + ] + } + ], + "source": [ + "answers = [sm.tsa.arma_order_select_ic(ts, ic=['aic'], trend=trend, fit_kw={'method': 'css'}) for trend in ['c', 'nc']]\n", + "for answer in answers:\n", + " print answer['aic_min_order']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Check if series is stationary" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the Augmented Dicker-Fuller test we can check if out data is stationary. For this, we need to get an **adf statistic** value __smaller__ (more negative) than the critical value at 5% for regression **c**, **ct** and **nc**." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time series is stationary with regression constant only! :D\n", + "\n", + "Time series is stationary with regression constant and trend! :D\n", + "\n", + "Time series is stationary with regression constant, linear and quadratic trend! :D\n", + "\n", + "Time series is not stationary with no constant, no trend. See data below:\n", + " - adf statistics: 0.770156930328\n", + " - p-value: 0.879767773183\n", + " - critical values: {'5%': -1.9444409856898011, '1%': -2.5916151807851238, '10%': -1.6141150636269721}\n" + ] + }, + { + "data": { + "text/plain": [ + "<matplotlib.axes._subplots.AxesSubplot at 0x7fd38d48ff90>" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEiCAYAAADziMk3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X1sW9XdB/DvtR3nxXbsuk0KSekaWjaoIagjSdt1a0JB\n1VSmNWLginZbC502DbRBBFu6rlnDOl76sMx0fQKdWijrJgFBz7D4A02TtiRsLS8JZQMMhYVSQRog\nTZM4sRPXsX2fP6594zTpS+6t7RPn+5Fc+147x8c5ydenP597I8myLIOIiLKOIdMdICKi1GDAExFl\nKQY8EVGWYsATEWUpBjwRUZZiwBMRZSmT3gaCwSD27duH7u5uAMDdd9+Nyy+/HB6PB319fSgqKkJd\nXR0sFovuzhIR0cXTPYM/ePAgli1bBo/Hg9/+9rcoLS2F1+tFeXk59uzZg2uvvRZer/eC7fh8Pr1d\noRTi+IiHYyKudI7N+Z5LV8CPjIzg2LFjWLNmDQDAaDSioKAAnZ2dqK6uBgDU1NSgo6NDVycp8zg+\n4uGYiCsrAr63txeFhYV44oknUF9fj3379iEUCsHv98PhcAAA7HY7/H6/nqeZJJXfvJnadjraTyV+\n37Or7VS3z75fHF0BH41G8fHHH2Pt2rXYvXs38vLyJpVjJEnS1cGpzNRv/kz+oUw1ft+zq+1Ut8++\nXxxJz7loBgcH8ctf/hLNzc0AgGPHjuHFF19Eb28vdu7cCYfDgYGBATz44IN4/PHHJ3ytz+eb8ELd\nbrfWbhARzWotLS3qbZfLBZfLBUBnwAPAzp078aMf/QglJSVoaWlBOBwGAFitVtTW1sLr9SIYDGLT\npk0XbKunp0dPVyiFbDYbhoeHM90NSsIxEVc6x6akpOSc9+leJnnnnXdi7969iEQimD9/Pu6++27E\nYjF4PB60traqyySJiCi9dM/gLyXO4MXF2aJ4OCbiEmUGzyNZiYiyFAOeiChLMeCJiLIUA56IKEsx\n4ImIspSQAR/b3wT5Pxc+fw0REZ2bkAEvR8aAsTOZ7gYR0YwmZMBLRiPkaDTT3SAimtGEDHgYjQAD\nnohIF4EDPpLpXhARzWiCBryJM3giIp3EDHiDEYgx4ImI9BAz4FmDJyLSTdCAN7EGT0Skk6ABzxk8\nEZFeDHgioizFgCciylKCBryJq2iIiHQSM+ANPNCJiEgvMQOeJRoiIt0EDXgukyQi0kvQgDcCsVim\ne0FENKOJG/ARzuCJiPQw6W3gnnvuQX5+PgwGA4xGIx555BEEAgF4PB709fWhqKgIdXV1sFgsF98o\na/BERLrpDngAaGxshNVqVbe9Xi/Ky8uxfv16eL1eeL1ebNq06eIb5DJJIiLdLkmJRpblCdudnZ2o\nrq4GANTU1KCjY3p/X1UyGCHzQ1YiIl10z+AlScKuXbtgMBhw88034+abb4bf74fD4QAA2O12+P3+\n6TXKEg0RkW66A37Xrl2YM2cOhoaGsGvXLpSWlk64X5Kk6TfKZZJERLrpDvg5c+YAAAoLC1FVVYWu\nri7Y7XYMDg7C4XBgYGAAdrt90tf5fD74fD512+12w2azAQDGrFackSRY49uUeWazWR0fEgPHRFzp\nHpuWlhb1tsvlgsvlAqAz4M+cOYNYLIb8/HyEQiG8/fbbuO2221BRUYG2tjbU1taivb0dlZWVk742\nuRMJw8PDAAA5HEYsfEbdpsyz2WwcD8FwTMSVzrGx2Wxwu91T3qcr4P1+Px577DEAQCwWw9e//nVc\nf/31WLx4MTweD1pbW9VlktPCGjwRkW66Ar64uFgN+GRWqxUNDQ3aG+Yf3SYi0k3MI1l5NkkiIt3E\nDHiWaIiIdBM04FmiISLSS9CAN/BUBUREOgka8DzQiYhIL0EDnjV4IiK9BA141uCJiPQSM+ANnMET\nEeklZsAbuQ6eiEgvQQOeJRoiIr0EDXgukyQi0kvIgJcMRgCAzJAnItJMyIAHwKWSREQ6CRzwrMMT\nEekhbsBzqSQRkS7iBjyXShIR6SJwwLNEQ0Skh8ABz6WSRER6CBzwPKMkEZEeAgc8P2QlItJD4IBn\nDZ6ISA9xA95gYMATEekgbsCzBk9EpIvpUjQSi8Wwbds2OJ1ObNu2DYFAAB6PB319fSgqKkJdXR0s\nFsv0GmUNnohIl0syg3/55ZexYMECSJIEAPB6vSgvL8eePXtw7bXXwuv1Tr9Ro5HLJImIdNAd8KdP\nn8Zbb72FNWvWQJZlAEBnZyeqq6sBADU1Nejo6Jh+wyzREBHpojvg//jHP+K73/0uDIbxpvx+PxwO\nBwDAbrfD7/dPv2GWaIiIdNEV8G+++SYKCwtRVlamzt7PlijbTBuXSRIR6aLrQ9YPPvgAb775Jt56\n6y2MjY1hdHQUe/fuhd1ux+DgIBwOBwYGBmC32yd9rc/ng8/nU7fdbjdsNpu6HTTnIsecA3PSPsoc\ns9k8YXwo8zgm4kr32LS0tKi3XS4XXC4XAECSzzX1nqb33nsPL730ErZt24Y///nPsFqtqK2thdfr\nRTAYxKZNmy7YRk9Pj3o79of/AZatgKFq9aXoHulks9kwPDyc6W5QEo6JuNI5NiUlJee875Kug0+U\nY2pra/HOO+/g3nvvxbvvvova2trpN8ZVNEREulySdfAAsHTpUixduhQAYLVa0dDQoK9B/sEPIiJd\nxD2S1cRlkkREeogb8FwmSUSki7gBzxINEZEu4gY8Z/BERLoIHPCswRMR6SFwwHOZJBGRHuIGPGvw\nRES6iBvwRiNLNEREOogb8CaebIyISA9xA54lGiIiXcQNeC6TJCLSReCA5zJJIiI9BA54LpMkItJD\n3IBnDZ6ISBdxA541eCIiXYQNeMlkgswaPBGRZsIGPEs0RET6iBvwLNEQEekicMBzmSQRkR4CB7wR\niMUy3QsiohlL3IA38GRjRER6iBvwrMETEekibsCbWIMnItLDpOeLw+EwGhsbMTY2hkgkgsrKSmzc\nuBGBQAAejwd9fX0oKipCXV0dLBbL9BrnMkkiIl10BbzZbMbOnTuRm5uLaDSKX/3qVzh27Bg6OztR\nXl6O9evXw+v1wuv1YtOmTdNrnCUaIiJddJdocnNzAQCRSASxWAwWiwWdnZ2orq4GANTU1KCjo2P6\nDXOZJBGRLrpm8AAQi8VQX1+PL774AmvXrsUVV1wBv98Ph8MBALDb7fD7/dNvmMskiYh00R3wBoMB\njz32GEZGRvDQQw/h3XffnXC/JEkaG+YySSIiPXQHfEJBQQGWLVuG48ePw263Y3BwEA6HAwMDA7Db\n7ZMe7/P54PP51G232w2bzaZux6JjGI7FJuyjzDGbzRwLwXBMxJXusWlpaVFvu1wuuFwuADoDfmho\nCEajERaLBeFwGO+88w5uu+02VFRUoK2tDbW1tWhvb0dlZeWkr03uRMLw8LB6Ww6FIEfGJuyjzLHZ\nbBwLwXBMxJXOsbHZbHC73VPepyvgBwcH0dzcjFgsBlmWsXr1alx33XUoKyuDx+NBa2urukxy2gxG\nIMoaPBGRVpIsy3KmO5HQ09Oj3pbDZxC7dyOMT/5fBntECZwtiodjIq50jk1JSck57xP3SFajievg\niYh0EDfgDQZAjkHmUkkiIk2EDXhJkuJr4TmLJyLSQtiAB8DTFRAR6SB4wLMOT0SkldgBzzNKEhFp\nJnbAG3m6AiIirQQPeJZoiIi0EjvgDQauoiEi0kjsgOc54YmINBM84PkhKxGRVoIHPGvwRERaCR7w\nnMETEWk1AwKeNXgiIi1mQMBzBk9EpIXYAW/gycaIiLQSO+C5TJKISDPBA54lGiIirQQPeC6TJCLS\nSvCAN0BmwBMRaSJ0wEuswRMRaSZ0wLMGT0SkndgBz2WSRESamfR8cV9fH5qbm+H3+yFJEm666Sas\nW7cOgUAAHo8HfX19KCoqQl1dHSwWy/SfgCUaIiLNdAW8yWTC5s2bsWjRIoRCIdTX16O8vBxtbW0o\nLy/H+vXr4fV64fV6sWnTpuk/AUs0RESa6SrROBwOLFq0CACQl5eH0tJS9Pf3o7OzE9XV1QCAmpoa\ndHR0aHsCLpMkItLsktXge3t7ceLECVx11VXw+/1wOBwAALvdDr/fr61Ro4EBT0Sk0SUJ+FAohKam\nJmzZsgX5+fkT7pMkSXvDrMETEWmmqwYPAJFIBE1NTVi9ejWqqqoAKLP2wcFBOBwODAwMwG63T/o6\nn88Hn8+nbrvdbthstgmPGc0vACAj/6z9lH5ms3nS+FBmcUzEle6xaWlpUW+7XC64XC4AOgNelmXs\n27cPpaWluOWWW9T9FRUVaGtrQ21tLdrb21FZWTnpa5M7kTA8PDxhOxaJAGNhRM7aT+lns9kmjQ9l\nFsdEXOkcG5vNBrfbPeV9ugL+gw8+wD//+U8sXLgQP//5zwEAGzduRG1tLTweD1pbW9VlkpoYTUBo\nRE8XiYhmLV0Bf/XVV+P555+f8r6GhgY9TSu4TJKISDOxj2TlMkkiIs0ED3gukyQi0krwgOcySSIi\nrQQPeNbgiYi0EjvgeTZJIiLNxA54owkySzRERJoIHfASSzRERJoJHfCswRMRaceAJyLKUoIHPJdJ\nEhFpJXjAcwZPRKSV2AHPZZJERJqJHfA8Fw0RkWaCB7yRNXgiIo1mQMBzBk9EpAUDnogoSwke8Fwm\nSUSkleABbwRisUz3gohoRhI74A38kJWISCuxA57LJImINBM84DmDJyLSSvyA55GsRESaiB/wLNEQ\nEWli0tvAE088gbfeeguFhYVoamoCAAQCAXg8HvT19aGoqAh1dXWwWCzTbzxeg5dlGZIk6e0qEdGs\nonsGf+ONN2L79u0T9nm9XpSXl2PPnj249tpr4fV6NbUtSRJgMHCpJBGRBroD/pprrpk0O+/s7ER1\ndTUAoKamBh0dHdqfgEsliYg0SUkN3u/3w+FwAADsdjv8fr/2xrhUkohIE901+As5V+3c5/PB5/Op\n2263GzabbdLj/CYTrPl5MExxH6WP2Wyecnwoczgm4kr32LS0tKi3XS4XXC4XgBQFvN1ux+DgIBwO\nBwYGBmC32yc9JrkTCcPDw5MeJxsMCAz5IQm+4Cfb2Wy2KceHModjIq50jo3NZoPb7Z7yvpSkZkVF\nBdra2gAA7e3tqKys1N6Y0QhEWKIhIpou3TP4xx9/HO+//z6Ghobw4x//GG63G7W1tfB4PGhtbVWX\nSWrGM0oSEWmiO+Dvu+++Kfc3NDTobVrBM0oSEWkifmGbyySJiDQRP+B5ugIiIk1mQMCzBk9EpMUM\nCHjO4ImItGDAExFlqRkQ8CzREBFpMQMCnsskiYi0ED/guUySiEgT8QOeNXgiIk1mQMCzBk9EpIXw\nAS8ZjZA5gycimjbhA54lGiIibWZIwLNEQ0Q0XeIHvIHLJImItBA/4PkhKxGRJjMg4FmDJyLSYgYE\nPGfwRERazICAN3AGT0SkwQwIeBMDnohIgxkQ8KzBExFpIX7AG4xAjAFPRDRd4gc8P2QlItLElOkO\nXBBLNESkgSzLQDgMhM8A4RBwJhS/Hd83FoYcvx6/jCn3R8aU7chY/BKBHL9GNKJkUmRMuY5Fleuk\n235ZVs6hFYsCcgyIyYAsK7dleeLlbJI0fj3hYgAMiWuDUt0wGIBDL5/ze5CygP/3v/+NZ555BrFY\nDGvWrEFtba22hjiDJ5oVZFlWQnM0CIyOAqERYHQECI1AnrA9ql7kMyHl9plRJcAT24kgN5mA3FzA\nnAeYzUnXuUCOGVL8Gjk5QE6ucp8pB8jPV/abcpQ2TDkwJG4bTePXRmPStVENXWthIQIjo/Egjl8S\nIS1BuYYUvy0lfxPi11DeDCCP35bl+BtFVDm6Pxa74OQ3JQEfi8Xw1FNPoaGhAU6nE7/4xS9QUVGB\nBQsWTL8xo4GnKiCaAZQZ8xkgGFBCOn4tjwSBkQAwElQuowFl3+hIfDt+e3RECbx8C5BfAOQVxK/z\nIeXlj+/Lywfsc4C8fBhy84DcfGVfbh6Ql6eEeF4eYM6FZDBm5HthsNkgDQ9n5LmTpSTgu7q6cNll\nl6G4uBgAsGrVKnR2dmoMeJPy3yIiSgs5MqYEcjAIBIeBYADySEC9jeAwMBKAHAzEgzug7B8JKhOy\nAqsS0hYrUGCFVGBRtgsswBwnUHIFDIl9iTAvKADyLZByzJl++VklJQHf39+PuXPnqttOpxNdXV3a\nGjMagcgYZFmGlPxfGSI6LzkyNh7IwQAQHFJCOTmoA8MTwzswDIydUULaYhsPaatN2VdgBYovByw2\nGAqsgMWiPC5+n5STk+mXTUky9iGrz+eDz+dTt91uN2w226THjZVcgeCfn4R8922QrDZI1kLlYrHC\nYC2cuE+9bYNkKYTBqswk+Magn9lsnnJ8KPXk8BnIgWHIwWHIgSHEAsp1ZHQEJv+Asn94CHJgCHJw\nWLl/2A9Exib/blhsMNgKIdkKIV1Wctb9dhisNiC/gL8zOqX796WlpUW97XK54HK5AKQo4J1OJ06f\nPq1unz59Gk6nc8JjkjuRMDxVzWrhEhj/t0X5tHskoM445GAA0cCQsm9oEPjsJOTgkPLfxPjMBCMB\npSaYmHlYlItUYFNmHkn7JfW2BciPX+fm8wc9zmazTT0+dFHksfDE2vRIIKk2HS+HjAQgx8sficcg\nGFA+YLMUKiWO+ExaKrDC7JyLcE4uML8UKPuKMsu2FEIqsECyFiq166SfXzl+Oe8nWtEYEAik+LuR\n/dL5+2Kz2eB2u6e8LyUBv3jxYnz++efo7e2F0+nEkSNHcO+99+pqUzLnKp98O8ZLPxcTvXIkAowM\nq79A6i9RYrv/FNB9ArHEL1rig6CRoPJf1UTtUK0VWiAl3U7sV/blT/6AyJzLN4kZTh4bm7CiA6Oj\nyoeHoyNJHxCOf1AoJ36ORpN+lmRZ+XmxjNen1UlFgVWpTS/4klL2SExGEtfn+BnKt9kQ4ZsunUdK\nAt5oNOKuu+7CQw89pC6T1PQB6yUgmUxA4Rzlkth3kV8rRyLxX9r4DCv+SyyPBMY/9T/dC4wEEQvF\nl2+NBJUlW4llXeGw8ol+4pP+pIukrgDIU1YA5MZXAOTmQUos7cqNv7GpF7OynCvHrLw2AgDIsZiy\nbjkcVt6Y1fXPiTXQZ5QldfHbSNwOKUvr5MRSu6QleOo4AsqbdXxFh3LbEl/ZEX9DtxQC8y4DCiww\nqJOCgniAW5Tx4hs9pZkky1OttM+Mnp6eTHfhkpOj0fHgSIR+fK2ufCY0vn43lBQ44VA8jM4oYRQ+\n6zI2poQYEA/7nPH1u2et3U2+loyJdbxTrd01Kisgkg+gMBji63Yl5OXlIRQOx9fsSknvkokbZ63f\nTV67K8fG1+0mLnLsrINDIuPbUWVbPbAkMqa85mhk/OCTsbHxA1PGzihfk1jLnGMef0NMeoOUzLnj\nb6S5+cp98TdYKfesN+HcPCW88/KF/eCQZTNxpXNsSkpKznkfp4ApJhmN4/8NP/s+nW3LkQgQScxa\n42GXCL+kI/CUI+4i8cePqQGqXicfNDEWAeQzSi026ai7qMmkvLkkH30nJ/5JHHmXeGGGiUfgJd4o\nJhz0YQByc8bfYJLfcIwmICcHBqMRMOYAOfE3KaNp/KAUU86kg1M4QyaaiAE/g0mm+BF1eQUX93gd\nz1XA2SLRjCP+ycaIiEgTBjwRUZZiwBMRZSkGPBFRlmLAExFlKQY8EVGWYsATEWUpBjwRUZZiwBMR\nZSkGPBFRlmLAExFlKQY8EVGWYsATEWUpBjwRUZZiwBMRZSkGPBFRlmLAExFlKQY8EVGWYsATEWUp\nBjwRUZbS/Ee3X331Vbzwwgs4efIkHnnkEVx55ZXqfS+++CJaW1thMBhw55134vrrr78knSUiooun\neQa/cOFCPPDAA1i6dOmE/d3d3Thy5Ah+97vfYfv27Thw4ABisZjujhIR0fRoDvjS0lKUlJRM2t/R\n0YFVq1bBZDKhuLgYl112Gbq6unR1koiIpu+S1+AHBgYwd+5cdXvu3Lno7++/1E9DREQXcN4a/K5d\nuzA4ODhp/x133IGKioqLfhJJkqbfMyIi0uW8Ad/Q0DDtBp1OJ06fPq1unz59Gk6nc9LjfD4ffD6f\nuu12u6cs+ZA4bDZbprtAZ+GYiCudY9PS0qLedrlccLlcAFJQoqmoqMDhw4cRiUTQ29uLzz//HEuW\nLJn0OJfLBbfbrV6SO3gh03nsdM3UtlPdPvuemfbP17be583W74sI7ady3KZqLzlLE+EO6Fgm+cYb\nb+DgwYMYGhrCI488grKyMmzfvh0LFizAypUrUVdXB6PRiK1bt17yEk3yC7jUZmrb6Wg/lfh9z662\nU90++35xNAd8VVUVqqqqprzv1ltvxa233qq5UxcyU7/5M/mHMtX4fc+utlPdPvt+cYQ5knUmh9Ns\nwPERD8dEXOkcm/M9lyTLspy2nhARUdoIM4MnIqJLiwFPRJSl0hLwGzZswN69e9XtaDSKrVu34tFH\nH03H09M0fe9738t0F2gKFxqXxsZGHD9+PE29oTfeeAMbNmxAT09PprtyTmkJ+NzcXHR3dyMcDgMA\n3n77bcydO5dHuAqK4yKmC40Lxy29Dh8+jK9+9av417/+lemunFPaSjTLli3D0aNHASjfmFWrViHx\n+W5XVxd27NiB+vp6NDQ0qO+IO3fuxIkTJ9Q2Ghoa8Mknn6Sry7Pae++9N+F/WE899RTa2toAAPfc\ncw9aWlpQX1+PBx54QOgZTLY537hQ+oRCIXR1dWHr1q149dVXAShH559rbI4ePYq6ujps27YNTz/9\ndNqqF2kL+K997Ws4cuQIxsbG8Mknn+Cqq65S7ystLcWvf/1r7N69G7fffjueffZZAMCaNWvUb1BP\nTw8ikQgWLlyYri5TEkmSJswQCwsLsXv3bqxduxYvvfRSBns2u509LpQeHR0duP766zFv3jwUFhbi\n+PHjk8YhMTbhcBj79+/H9u3b8eijj2J4eDhtY5a2gF+4cCFOnTql/rcmWTAYRFNTE+6//34cOnQI\n3d3dAIAVK1bg6NGjiEajaG1tRU1NTbq6SxewfPlyAEBZWRlOnTqV4d4Qpdfhw4excuVKAEpOHT58\neMrHybKMnp4ezJ8/H0VFRQAwoXqRapqPZNXihhtuwJ/+9Cc0NjZiaGhI3f/888/juuuuw89+9jOc\nOnUKjY2NAJTafXl5OTo6OvDaa69h9+7d6ezurGYwGCb8ECY+P0nIyclRH8c/6JI+FxoXSr1AIACf\nz4dPP/0UABCLxSBJEiorK4Ubm7Quk1yzZg1uv/12XHHFFRP2j46OYs6cOQCA1tbWSV9z8OBBLF68\nGAUFBWnr62xXVFSE7u5uRCIRBINBvPvuu5nuEoHjIoLXXnsNq1evRnNzM5qbm/Hkk0+iuLgYsVhs\n0thIkoSSkhJ88cUX6v90jxw5krYSTVpm8IkX43Q68c1vflPdl9j/7W9/G83NzfjLX/6CZcuWTXjx\nV155JQoKCnDjjTemo6uzXjQaRU5ODubOnYuVK1fi/vvvR3FxMcrKyqZ8POu/6THdcaHUOXz4MGpr\nayfsW758OY4cOTLl2JjNZvzgBz/Aww8/jNzcXCxevDhtfRX+VAX9/f148MEHsWfPnkx3ZVY4ceIE\n9u/fj4ceeijTXaEkHJeZLRQKIS8vDwBw4MABlJSUYN26dSl/3rTW4Kervb0dzz33HDZv3pzprswK\nf/vb3/DXv/4VW7ZsyXRXKAnHZeb7+9//jvb2dkQiEZSVleHmm29Oy/MKP4MnIiJteC4aIqIsldIS\nTV9fH5qbm+H3+yFJEm666SasW7cOgUAAHo8HfX19KCoqQl1dHSwWCwKBAJqamvDRRx+hpqYGd911\nl9pWY2MjBgcHYTabAQA7duxAYWFhKrtPRDSjpTTgTSYTNm/ejEWLFiEUCqG+vh7l5eVoa2tDeXk5\n1q9fD6/XC6/Xi02bNiEnJwcbNmzAp59+qq4xTZAkCT/96U9x5ZVXprLLRERZI6UlGofDgUWLFgEA\n8vLyUFpaiv7+fnR2dqK6uhoAUFNTg46ODgDKgU1XX321ehANERFpl7ZVNL29vThx4gSuuuoq+P1+\nOBwOAIDdboff77+oNpqbm2E0GrF8+XJ85zvfSWV3iYhmvLQEfCgUQlNTE7Zs2YL8/PwJ913sgTI/\n+clP4HQ61bZeeeUVrF69OhXdJSLKCilfRROJRNDU1ITVq1ejqqoKgDJrHxwcBAAMDAzAbrdfsB2n\n0wlAKfWsWrUKXV1dqes0EVEWSGnAy7KMffv2obS0FLfccou6v6KiQj0NcHt7OyorK8/bTiwWU09O\nFolE8Oabb/K0wUREF5DSA52OHTuGnTt3YuHChWopZuPGjViyZMmUyyQB5Y9JjI6OIhKJwGKxYMeO\nHZg3bx527tyJaDSKWCyG6667Dps3b+Z5UIiIzoNHshIRZSkeyUpElKUY8EREWYoBT0SUpRjwRERZ\nigFPRJSlGPBERFmKAU8E5TxHzz33XKa7QXRJMeCJMPGPwJ9PY2Mj/vGPf6ShR0T6MeCJ4i7mmD8e\nPU0zidB/dJsoVT7++GPs27cPn3/+OZYtW6buDwaD2Lt3L7q6uhCNRvGVr3wFP/zhD+F0OvHss8/i\n/fffx4cffohnnnlG/atjJ0+exNNPP42PP/4YhYWF2LBhA1auXJnBV0ek4AyeZp1IJILHHnsM1dXV\nOHjwIFasWIHXX38dkiRBlmWsWbMGTzzxBJ588kmYzWY89dRTAIA77rgD11xzDbZu3YpDhw7hrrvu\nQigUwm9+8xt84xvfwIEDB3DffffhwIED6O7uzvCrJGLA0yz04YcfIhqNYt26dTAYDFixYgWWLFkC\nALBaraiqqoLZbEZeXh5uvfVWvPfee+ds6+jRoyguLkZNTQ0MBgMWLVqE5cuX47XXXkvXyyE6J5Zo\naNYZGBhQ/75Awrx58wAA4XAYzzzzDP7zn/8gEAgAUP5gjSzLU9bfT506hf/+97+488471X3RaJR/\njIaEwICnWWfOnDno7++fsK+vrw/z58/HSy+9hM8++wwPP/ww7HY7Tpw4gfr6+nMG/Lx587B06VLs\n2LEjXd3aBje5AAAA+ElEQVQnumgs0dCs8+UvfxlGoxEvv/wyIpEIXn/9dfUvhIVCIZjNZhQUFCAQ\nCOCFF16Y8LV2ux1ffPGFun3DDTfgs88+wyuvvIJIJIJIJIKuri6cPHkyra+JaCo8HzzNSsePH8cf\n/vCHCatoLr/8cqxduxa///3v8dFHH8HpdOJb3/oW9u/fj2effRYGgwEffvghmpubMTQ0hOrqamzZ\nsgU9PT04dOgQurq6IMsyFi1ahO9///v40pe+lOFXSbMdA56IKEuxRENElKUY8EREWYoBT0SUpRjw\nRERZigFPRJSlGPBERFmKAU9ElKUY8EREWYoBT0SUpf4fXVIjE1k+xHIAAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd38da0f310>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def check_stationarity(series, regression='c'):\n", + " regressions = {\n", + " 'c': 'constant only',\n", + " 'ct': 'constant and trend',\n", + " 'ctt': 'constant, linear and quadratic trend',\n", + " 'nc': 'no constant, no trend'\n", + " }\n", + " result = sm.tsa.adfuller(series, regression=regression, autolag='t-stat', store=True)\n", + " store = result[-1]\n", + " if store.adfstat > result[2]['5%']:\n", + " print 'Time series is not stationary with %s. See data below:' % regressions[regression]\n", + " print ' - adf statistics: ', store.adfstat\n", + " print ' - p-value: ', result[1]\n", + " print ' - critical values: ', store.critvalues\n", + " return False\n", + " else:\n", + " print 'Time series is stationary with regression %s! :D\\n' % regressions[regression]\n", + " return True\n", + "\n", + "stationarity_tests = [check_stationarity(ts, regression) for regression in ['c', 'ct', 'ctt', 'nc']]\n", + "diff_ts = ts.diff()\n", + "diff_ts.plot()\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fit the ARIMA model and plot the data + forecast" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEiCAYAAAAWOs4eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt4VPWh7//3d5IMJGFymUAIhGsI3qJAKohIBaQen6q0\nemyNtTdFPPZwuqvy1F3745EjbqrUesCCTXU/ePvZ49bi/lXavbtr934KooKWoFJt0HKv3AIkExKS\nEDKT+f7+WMkiIQEizGUNfF7P4yNzyZrvrDUzn/W9LmOttYiIiAC+ZBdARES8Q6EgIiIuhYKIiLgU\nCiIi4lIoiIiIS6EgIiKu9LPdwC9/+Us+/PBDcnJyWLJkCQBNTU08+eST1NbWMmjQIObNm0d2djYA\nr7/+OmvWrMHn8zF79mzGjx8PwI4dO6isrCQcDlNeXs7s2bPPtmgiIvI5nXVN4ZprrmH+/Pnd7lu1\nahXjxo1j2bJlXHrppaxatQqAPXv2sH79epYuXcr8+fN59tln6ZwmsWLFCubOncvy5cupqalh06ZN\np33t6urqsy2+xJGOj7foeHhbIo/PqV7rrEPh4osvdmsBnTZu3Mj06dMBmDFjBlVVVQBUVVUxdepU\n0tPTKSwspKioiK1bt1JfX09rayulpaUATJs2jQ0bNpz2tfUh9zYdH2/R8fC2cyYUetPQ0EBeXh4A\nubm5NDQ0AFBfX09BQYH7vIKCAkKhEPX19QSDQff+YDBIKBSKWXnivbPjuf1ULns8pfJ+UdmTs/1U\n3XYitt9V3DuajTHxfonTSuUDlsplj6dU3i8qe3K2n6rbTsT2uzKxWPvo4MGDPP74425H8/3338/C\nhQvJy8ujvr6eRx55hJ///Odu38LNN98MwKOPPkpFRQWDBg3ikUce4cknnwTgnXfeYfPmzdxzzz3d\nXqe6urrbzqmoqDjboouInJdWrlzp/rusrIyysjIgBqOPejNx4kTefPNNbr75ZtauXcukSZPc+5ct\nW8asWbMIhULU1NRQWlqKMYbMzEy2bt1KaWkpb7/9Ntdff32P7XYteKd9+/bF4y1IDAQCAY4cOZLs\nYkgHHQ9vS+TxGTp06ElPqs+6pvDzn/+cTz75hMbGRvLy8qioqGDSpEknHZL6m9/8hjVr1pCWlsad\nd97JhAkTgONDUtva2igvL+euu+7q0+srFLxLP0LeouPhbYkOhZOJSfNRMikUvEs/Qt6i4+FtXgkF\nzWgWERGXQkFERFwKBRERcSkURETEpVAQERGXQkFERFwKBRERcSkURETEpVAQERGXQkFERFwKBRER\ncSkURETEpVAQERGXQkFERFwKBRERcSkURETEpVAQERGXQkFERFwKBRERcSkURETEpVAQERGXQkFE\nRFwKBRERcSkURETEpVAQERGXQkFERFwKBRERcSkURETEpVAQERGXQkFEPM0ebSH61h+TXYzzhkJB\nRLxt7y7sH19PdinOGwoFEfG25mZobUl2Kc4bCgUR8TTb0qRQSCCFgoh4W0sTtLVhI5Fkl+S8oFAQ\nEW9raXb+f+xocstxnlAoiIi3tTQ5/z+qJqRESI/nxr///e+TmZmJz+cjLS2NxYsX09TUxJNPPklt\nbS2DBg1i3rx5ZGdnA/D666+zZs0afD4fs2fPZvz48fEsnoikguaOUFC/QkLENRQAFi5cyIABA9zb\nq1atYty4cdx0002sWrWKVatW8a1vfYs9e/awfv16li5dSigUYtGiRSxbtgyfT5UZkfOZdWsKaj5K\nhLj/4lpru93euHEj06dPB2DGjBlUVVUBUFVVxdSpU0lPT6ewsJCioiK2bdsW7+KJiNe1NIHfr5pC\ngsS1pmCMYdGiRfh8Pq699lquvfZaGhoayMvLAyA3N5eGhgYA6uvrGTt2rPu3BQUFhEKheBZPRFJB\nSzMEC7FHWzDJLst5IK6hsGjRIvLz82lsbGTRokUUFxd3e9yYUx/i0z0uIueB5iYYOkI1hQSJayjk\n5+cDkJOTwxVXXMG2bdvIzc3l8OHD5OXlUV9fT25uLgDBYJC6ujr3b+vq6ggGg922V11dTXV1tXu7\noqKCQCAQz7cgZ8Hv9+v4eEiqHo/DR5vxFw3FF43SPwXL31eJPj4rV650/11WVkZZWRkQx1A4duwY\n0WiUzMxMWltb+eijj/j617/OxIkTefPNN7n55ptZu3YtkyZNAmDixIksW7aMWbNmEQqFqKmpobS0\ntNs2uxa805EjR+L1FuQsBQIBHR8PScXjYSNhiIQJZwegoZ5wipX/80jk8QkEAlRUVPT6WNxCoaGh\ngSeeeAKAaDTKF7/4RcaPH8+YMWN48sknWbNmjTskFWDYsGFMmTKFefPmkZaWxpw5c9R8JHK+a2mC\nzGznv7qDyS7NecHYE4cHpZh9+/YluwhyEql4ZnouS8XjYWv2EH3qJ5gv3wLbP8F3533JLlLcJPL4\nDB069KSPaRKAiHhXcxNkD8BkZmE1TyEhFAoi4l0tzZDV0Xyk0UcJoVAQEc+yLU2YrAHQP1NrHyWI\nQkFEvKvFaT4iM0uhkCAKBRHxruYmyBoA/bPUfJQgCgUR8a6Wpo4+hSwtiJcgCgUR8a6WjppCv/7Q\ndgwbbU92ic55CgUR8Szb3IzJGoDx+aBfP2htTXaRznkKBRHxrs7mI1C/QoIoFETEu1qandFHoH6F\nBFEoiIh3dfYpgDNXQTWFuFMoiIh3dQ0FzVVICIWCiHiSbW+HtmNODQHUp5AgCgUR8aaWZsjMdkYe\nASYzE6uaQtwpFETEm7qOPIKOmoI6muNNoSAi3tS1PwHUp5AgCgUR8abm3moKCoV4UyiIiCe5y2Z3\nysxU81ECKBRExJs6l83u1F/NR4mgUBARb2pp7tanYDKzsWo+ijuFgsh5zu7cQnTN75NdjJ56dDTr\n6muJoFAQOc/ZTz/GvvXHZBejp5ZmyD6ho1mhEHcKBZHzXd0B2PsZ1mOduLb5xI5mjT5KBIWCyHnO\n1h5w/vH3bcktyIlObD7qr1VSE0GhIHK+qzsIF4/D7tiS7JJ012P0kTMk1VqbvDKdBxQKIucxG41C\n3SHMxC9id/4t2cXprrl7TcGkpUFGBhzT1dfiSaEgcj5rPAz9MzEXj4cdW7x1Fn7CkFRA/QoJoFAQ\niTEbidC+YC72cF2yi3J6tQdg4GAoKIRoO9TXJrtEANhouzN7OTOz+wPqV4g7hYJIrG3+EGr2wp5d\nyS7Jadm6g5iCQowxUHIh7PRIv8LRFqcG40vrfr+uvhZ3CgWRGLPvroHsAHb/nmQX5fQ6awqAGX0B\ndodH+hVOXAyvk1ZKjTuFgkgM2ZYmbPUHmGu/CjUpEAp1B4+HQsmF3hmBdLS5+8ijTimwUqptbnKa\nv1KUQkEkhuzGdXDxBMyYi7D7dye7OKdlaw9gCgqdG6PGwu4d2EgkuYWCHiOPOjlXX/N2n0L0xWXY\nf30x2cU4YwqFJIhWvU302SWeGulhd27Bhg4luxgpz767Gt+Ua2DIMKdfweu6Nh9lZjkdznv/nuRC\n0XPiWqcUqCmwZxf2rT+mxElBbxQKybD9U2zV29i1f0h2SQCw+3cTXbIAu351souS0uzB/XBgH1z6\nBcgNQiSMbWpMdrFOynaONioY5N5nRl/gifkKtqUJ01vzkcf7FOyxVmisx3z1dqKvrvDEiZ9tbyf6\n76/2+frW50wo2IP7kl2EPrM1ezBfn4397b9gkzxCxbY0E618DEougIP7k1qWM2X/+j5232fJLgb2\nvTWYSVdj0jOc0TxFw7zdr3A4BANyMBn+4/eVXAhe6Gxubu69o9nrNYWavVA4FDPzK1BfB5v+nNTi\n2GgU+8LPsb/9F9i9o09/46lQ2LRpE/fffz/33nsvq1at6vPf2YP7iT40F/vZ9jiWLoZq9mLGT8J8\nfTbRFf8H23YsKcWw0SjR55ZiLhmPb9Zt2EOpGQrR/1xF9LEHsBvfSVoZrLXYd9dgplzj3meKhnl7\nBFLtAae5qAtTcgF2+9+cmc5JYuvrsB9tcGpbJ8rM9PQ8Bbv/M8yQ4Zj0dHy330N05XPJ+35bi335\naWx9HYy/wvl/H3gmFKLRKM899xzz589n6dKlrFu3jj17+vaFsn/6N8jMwr6/Ps6lPHs23AYN9VAw\nGHPVTEzxSOzLz2BbmhJcjjB21a/gaDOm4m4oHJKyNQUiYczN3yb6ry8Sfe0FbHtiR37Yz7Zjn1sK\n/frDyNLjDwwZ7umagq09iOnoT3ANHQF5+UQfuRf7/vqEhoONRom++Qei/3Qf5uLxmBk39HyS12sK\n+3bD0OEAzizxEWOwr65I+ERGG41iX3seu3snvh88hBlcDKG+TUxMj3PZ+mzbtm0UFRVRWOicuUyd\nOpWNGzcybNiwU/6dbW7Cvvcmvtn3EX3tRezN33aq7l51cD8MHOys4wLw7f9F9P99Cvvju2HMRZgv\nXIUZPRYGFmH6Z556W5+DDbdB3UHsrm2w6c/YzZtg+Gh833sQk56OzQ1Cawu2tQXTPytmr5sQ4TBm\nzEWYK2cQXbEE+7//l/OFHFuGKb0Y8gt6ToI6C7b5COzbjd37d+yGtVB7EHPNDfi+8T+6ffbMkGKi\nb1XH7HVjrvYAFHQPBeNLw/fAY/DxRqK//Rf4/a8xk6Zhho+C4SWY3PyYvby11llmY+cWZ6BD9YeQ\n5ry+KR7R69+YzGyiXu5T2L8b35Uz3Nu+b34P+/qviD78Axg5xmleHFHiNDFlxu57ZiNhCNVid3wK\nf/3A2ZdFxfjuexjTPwubX9Dnkz7PhEIoFKKgoMC9HQwG2bbt9Ev52rf+iBk3CcZPhlefdUZODBsV\nx5KepQN7YfBQ96bJyiZt7o+xrS3Yj9+HD98j+l+/dda475cJ+QOd8dpZ2ZjMbGdBsPSO/3xdKnrW\nQiQMkQiE25zVJFuanPVj6uugqQGCg2DoCMy4Sfi++T1MTt7xchgDg4bAwRoYUZLIPXL2ImFIz8AM\nyMF338POsMqt1dj312FfewGaGiE3D/IKIDvghG3/TPD3g7R0SEs7vi+tBRuFcATCx6Ctzek8bGqE\n5iPOj1i4DYYMxwwdjrlmFqb8Skx6L1+louHg5REodQeh9OIedxtjYNwkfJdNhI82Yj/9iOgfX4fd\nOyEahZw8CORCIAfTr2M/+vtBejoY4+xLY6C93Xl+ezu0tcKx1uP7sqEeGkKQ7ofRYzGjL8B307eg\nbMKpA9zrV1/bv8epIXYwufmYO+/FfvN78PFG7Pvria7+PRza7+yzvCBkByBrAC05uUQxx7/jpuMz\naejYj5GOfXkMjrZgjzZ3fL9r4Uijs63hozGXXo7vv3/n+FBjwAQHEv3bx316C54JhTNlV/87vh8s\nwBiDufwq7PvrMB4OBVuzF1NU3ON+0z8LM+lqmHS187xoFBrroT4ER5uwzc3OhJ5wuOPHP+z8eB3f\ngtMx1xkYmVn4srIhM9v5McwPnv5sedAQ58OaoqEAYHw+GFmKGVkK194EdJxFHQ7B4Tpobnau89t6\n1FltM9rufNHa24//oAEMyIAMP2T4Mf0yMQMCEMiBAbmQm9+32uigIjgcwrYdw/j7xevdnzFbe6Db\nWe2JjDEwfhJm/CTn+dY6wXikEY4chiMNzo982zE4dsz50bLW+QGzFvplgC8N0nzg7w/9+uPr1w+y\ncyA3H/LyP3+t1MPNRzYchtAhpyn2BMbfDy6firl8qvNca53PZONhZ5+2NJFmo4SPNDqf53DY2YdY\nsECGr+O7nX78+52Z7YzGyh8IecHjrQ+9yR/onBz2gWdCIRgMUld3vNB1dXUEg907mqqrq6muPl4d\nr6ioIL14BAPKxgMQufq/0fLMzwh8+38mptBnoLnuIOkXXUa/QOD0T87NheGj4l6mTkeHjcQ0hOjf\nl7L1gd/vJxCjbZ1KQyRCdl4+aad6rfwgUHryx+OksWgo2U2HSRuZ+Nc+0YnHoyF0iOyRJafebyfK\nyYEhPU9qEqV94CCaj7Um5HP1ebV/toPmwiHk5PfSQd6bnJxuN/1+P/3a2uJQMogOG8mRw3Xd9tvK\nlSvdf5eVlVFWVgZ4KBTGjBlDTU0NBw8eJBgMsn79eu67775uz+la8E7RmbM4cuQIALawmGhLM41/\nq8YM7d4maa2F2gPYnVucavPhkNP509zUcdZ41DnbibZ3VNOiTrXNdFSF09OdM0d/P6dDcUAOZkCO\nU40ePNR5veIRpz3zad/7d9onz6Cto8xeEs0rgL9vI3yastlwG+zfjd3zd6c57EgD9kiD0yzQ2nHm\n2HYME213xsJHo87ZTprPOXP0pTn7sb9z9kh2AJMXdEabBAc5fSqDi52z/j6w4Taajx3DeHGfFhbT\ntH0LvuDgXh+3h+uc/omD++FQjfO5bGlyzh5bjzpNVZ01w2jHmSM4n8vOs8aOM0cys5xmxrwCp99q\nYCEUj8IMKgIgEAgc/65EItjDdTT7Mz25307GtluiLc3u++j2WOf3O1QL9bXOaJuWJqe56dhR53PZ\nfsL3GwM+4+zDjprh8e93AAJ5zvd7yHAYMsz5zp9EdNun2MHFvZatL7oen1izaenYpiM0hkKYjAwC\ngQAVFRW9PtczoZCWlsZdd93Fo48+SjQaZebMmaftZAbg0svdfxqfr6MJab0bCvazHdg//Ct222bn\n+zTmQudLMmgwvrGXwIAcp+3ebWNOc9qZ3TbmqPOj1tlWHz7m/PA1NTo/hEcaYOtmomvfcNqPi0fi\nu+5m+MKU3ptravZCL81HXmAKhxCtervXx6y18OlHRP/wr7DtExhU5DTTFQ2DkaX4ArnOvuzcj34/\nA3LzaGo56nzpMM5+7AzdtmNO803nvmwIOdXpv75P9N9ecdpKSy7E9+WvYS689NQFD7c57bAeZIqG\n9ehXsPV12PffwVa940x2GzYKUzjEaW4aNgpf9gBnNm/XPqSMrn1IHfuyvUsf0tEWp525pclpJji4\nn+jmTc4lNrMDmHETiXzxWqefA5x26Jz83vtCvKxjlVRrLcYY7I6/Yde+gf3bx85+GHMRpsBZCtyM\nudiZAJeZ1cv3u+O7aTuauiLH+5BoPQrNR5yJh42HYfunRN/5L2ck2dARmOnXYyZO7T6/A2DfbszQ\n4T3L7AHGl+Y02R2ucz5np+CpT0R5eTnl5eWf629OPJs0l19F9P8+jZ11G3bN77H/9irmK9/Ad8t3\nnbOnGI5MOnFLNtoOf6ki+sffwG9ewnzldmfJg87HjzQ6X+ZAbszKEFMnGZZqP/kL0d++DM1HMNff\nivnB/8b04UfYFwhg0vp25tNjXzbUYzdvIvrs/3FGbPz37/T8EnaKhJ0OSy8aMgw+qnJv2o/fd97T\nhCvxfeUbcNH4mP4w9/xMRuHv27EfVdG8ZAHmG/dgLr+qY3mLwl634WUmo6MDNtxG9IP12JXPY264\nFd+Xb4GiYfH9fre3w0dVRN/8A/a15zFfuwPf1GuPP77/M8wXrorZ68dccKBzMpBKoRATJRdB0xGi\nSx6C1qP4/p+fYQqHnv7vYsD40qD8StLKr8Ru20x02SPYcZOOT9c/4NQSPDtkNr/AOWvv0jFqw2Gi\nv3wM891/wFx+VUyHdp6Kyc3HTLkGe+nlRF/+JXbRPGf4bHEvzYLhCGR486NshgxzThLomD3+fyvx\n/c8fO0NmE/H6Pl/H6J6xZE6dSdOjD+DLze+4jkLvTVqel5mFfe0F7Mcb8f3w0ZMOX401k9bl+/33\n7UR//jB20tXHBxHs24250Zs1BQCTPxBbX9cj7E7kmclrsWJ8PsyXvoIZWYrvx48nLBB6lKP0Erjw\nMuzHXc4SD+zFDE5OefrC+NKcGa6HDhy/c8ffYMhwfJOuTlggdCtTIMcJgwmTsav/recT2tvBZ5JS\ntj4ZXAwH92Gj7dj/70XMpZcnLBBOlD56LL675hF9ejFs3pSSNQXACYXPtuOb/0TCAuFEZuQYGH0B\ndsNbgNNHQ+2BbsPNPSd/YJ8msJ1zoQDgu/5r+G6djUlPbjuzKZ+C/bDL2icH9jo/El5WOAQOHV9H\nyn6yCXPRuCQWiOPrCPU2MqPLcFQvMv0zYUAOdt2fsB+/j/nancktz2WXY276JrbqbXd11FTj+96P\n8P3wJ5ic2E2kO6NyzLwRu/rfndrqoRpnkqQHhx678gv6dLnVczIUvMKMmwSfbHLXPrE13g8FM6jI\nGQnTwX76UdLObLvJ8DsdiScKezsUACgajv2XZ/B9ey6mt0XeEsw37cuYO+/FXPL5+u+8wowY440f\n30vKnRGL2z+B/Z91m7TmRSY4ENuHUPBmQ+w5wgRyYHgJfPIXGH+FsxCeR0ceuQqHQMeKo7alGfb8\nvddZr4lmMjKIRsI9H4iEPTvyqJMZWeJMeBs3KdlFcXXtIJUzY3w+zDU3YFf/3hmV5NGRR64+TmBT\nTSHOTPmV2A/fdUYm1R7odbajl5jCIcdrClv+CiUXnHzUTyL5T1JT8HjzEYC56duY2fed/omScsxV\nX8JWf4j95C8wJDn9G32m5iNvMBMmY/9S5XTeBnIw/fonu0in1mVYqmeajsAZctpr81Gb07TkYSYt\nzbsjzuSsmKxszBVXw5a/er+mkJMHzU3OchynoFCIMzNwMAQHYtf9l+f7EwAIFkJDPTYSxm7e5J1Q\nyPA7/QcnioSdmb0iSWJm3OhMLPT497vbBLZTUCgkgJlwJfbNN5w1zT3OpKc71cztf3NWsvTK4ngZ\nGanb0SznNFM8At9PnonpUvdx0zmB7RQUCglgyq90Vjj1eidzp8Ih2LfegIsu8874/1PVFDzefCTn\nPnOaWcJe0TmB7VQUColQPNJZK6ioD2s5eYApHIL9YL13mo7AqSlEVFMQOSt9mMCmxtgEMMbg+9Fi\nSPJkmz4rHAKRCOYiL4WC/yST17y7GJ6I5/ThCmyqKSSIySvo81LQyWYGDXXaHr00ZT8jo9fmIxuO\nJH3mukiq6MsEttT4lZLEunics96Ql4ZRpvt7bz5KgclrIp7RhwlsCgXpwfj7YUouTHYxuktLg6h1\nli/uKgXmKYh4Rh8msCkUJCUYY5xZzScudaF5CiJ91zGB7VQUCpI6epurENaQVJG+ciewnYJCQVJH\nei9zFVJg7SMRTwkOPOXDCgVJHb3VFBQKIp+LyVcoyLmit1nNYc1TEPlcFApyzsjwQ/hY9/siEdUU\nRD4HM/6KUz6uUJDU0dsEtnCbQkHkczAXlJ3ycYWCpI7eLsmp0UciMaVQkNSR3ktNQfMURGJKoSCp\nI6PnUhc2HPbG5UJFzhEKBUkZJiMD29uQVI0+EokZhYKkDn8/TV4TiTOFgqSO9N6WudA8BZFYUihI\n6uht8prmKYjElEJBUkdGRs/Ja1o6WySmFAqSOnqtKahPQSSWFAqSOrQgnkjcKRQkdfS6IJ6GpIrE\nkkJBUkdvo49UUxCJKYWCpI6TLp2tjmaRWFEoSMowGX5sl2UurLXQ3q61j0RiKC7fppUrV7J69Wpy\ncnIAuP322ykvLwfg9ddfZ82aNfh8PmbPns348eMB2LFjB5WVlYTDYcrLy5k9e3Y8iiapzH9CTSES\ngbQ0jDHJK5PIOSYuoWCMYdasWcyaNavb/Xv27GH9+vUsXbqUUCjEokWLWL58OcYYVqxYwdy5cykt\nLWXx4sVs2rSJCRMmxKN4kqpO7FNQ05FIzMWt+cha2+O+qqoqpk6dSnp6OoWFhRQVFbF161bq6+tp\nbW2ltLQUgGnTprFhw4Z4FU1S1YnXU1Ans0jMxa0x9o033uCtt96ipKSE7373u2RnZ1NfX8/YsWPd\n5xQUFBAKhUhPTycYDLr3B4NBQqFQvIomqerEUAgrFERi7YxDYdGiRRw+fLjH/bfffjvXXXcdX//6\n1wH49a9/zUsvvcTcuXPPvJQi0PNynFo2WyTmzjgUFixY0KfnzZw5k8cffxxwagB1dXXuY3V1dRQU\nFPSoGdTV1XWrOXSqrq6murravV1RUUEgEDjTtyBx5vf7Y3p82vPyaW6PuNtsP+yn2d9Pn4E+ivXx\nkNhK9PFZuXKl+++ysjLKypxrN8el+ai+vp78/HwANmzYwIgRIwCYOHEiy5YtY9asWYRCIWpqaigt\nLcUYQ2ZmJlu3bqW0tJS3336b66+/vsd2uxa805EjR+LxFiQGAoFATI+PbWsjeuyYu017uJ5oWro+\nA30U6+MhsZXI4xMIBKioqOj1sbiEwssvv8yuXbswxjBo0CDuueceAIYNG8aUKVOYN28eaWlpzJkz\nxx1OePfdd1NZWUlbWxvl5eUaeSQ99drRrDkKIrEUl2/UP/zDP5z0sVtuuYVbbrmlx/0lJSUsWbIk\nHsWRc0X6CddoVkezSMxpRrOkjo6OZne4cySseQoiMaZQkJRhfD5IS4P2iHOHagoiMadQkNTSZVE8\nG27DaEiqSEwpFCS1pHe5JKeuzywScwoFSS1dl8/W5DWRmFMoSGrpOixVC+KJxJxCQVJL16UuNE9B\nJOYUCpJautUUNCRVJNYUCpJaetQU1KcgEksKBUkt6V1qCgoFkZhTKEhqycg4vtRFuE2jj0RiTKEg\nKcX4+2Hd5iPNUxCJNYWCpJb0DGjTkFSReFEoSGo5cfSRagoiMaVQkNTSpU/BRsKYDM1TEIklhYKk\nlq7LXITDzmgkEYkZhYKkloyM7kNSNfpIJKYUCpJaTlwQT30KIjGlUJDU0rWmoHkKIjGnUJDUkt61\npqB5CiKxplCQ1KKls0XiSqEgqcWvtY9E4kmhICnFZGRgFQoicaNQkNSSfsI8BXU0i8SUQkFSS4b/\n+CqpqimIxJxCQVJLx0V2bLQdohbS0pJdIpFzikJBUkvn6KNwBDLSMcYku0Qi5xSFgqSWzstxqulI\nJC4UCpJa3JqC5iiIxINCQVJL5zIXqimIxIVCQVJLut8JBK2QKhIXCgVJLX6/czlOXXVNJC4UCpJa\n0tIh2g5txxQKInGgUJCUYoxxmo2ONqv5SCQOFAqSetL92KMtqimIxIFCQVJPht+pKSgURGIu/Uz/\n8N133+W1115j7969LF68mJKSEvex119/nTVr1uDz+Zg9ezbjx48HYMeOHVRWVhIOhykvL2f27NkA\nhMNhfvGBppPIAAAPUUlEQVSLX7Bz504CgQD3338/gwYNOsu3JuesjAxoadY8BZE4OOOawogRI3jg\ngQe45JJLut2/Z88e1q9fz9KlS5k/fz7PPvss1loAVqxYwdy5c1m+fDk1NTVs2rQJgNWrVxMIBFi+\nfDk33ngjL7/88lm8JTnnZfjhaAtGNQWRmDvjUCguLmbo0KE97q+qqmLq1Kmkp6dTWFhIUVERW7du\npb6+ntbWVkpLSwGYNm0aGzZsAGDjxo1Mnz4dgMmTJ/Pxxx+fabHkfODWFBQKIrEW8z6F+vp6CgoK\n3NsFBQWEQiHq6+sJBoPu/cFgkFAoBEAoFHL/Ji0tjaysLJqammJdNDlXdPYpKBREYu6UfQqLFi3i\n8OHDPe6//fbbmThxYtwKJXJK6RnYlmZMIDfZJRE555wyFBYsWPC5NxgMBqmrq3Nv19XVUVBQ0K1m\n0PX+zr+pra0lGAzS3t5OS0sLAwYM6LHt6upqqqur3dsVFRUEAoHPXUZJDL/fH5fj05SVhW1pJj17\nAJk6/n0Wr+MhsZHo47Ny5Ur332VlZZSVlQFnMfroZCZOnMiyZcuYNWsWoVCImpoaSktLMcaQmZnJ\n1q1bKS0t5e233+b66693/2bt2rVccMEFvPfee1x22WW9brtrwTsdOXIk1m9BYiQQCMTl+LQbHzQd\nIRqNEtHx77N4HQ+JjUQen0AgQEVFRa+PnXEobNiwgRdeeIHGxkYWL17M6NGjmT9/PsOGDWPKlCnM\nmzePtLQ05syZ414I5e6776ayspK2tjbKy8uZMGECADNnzuSpp57i3nvvJRAIcN99951pseQ8YNL9\nWA1JFYkLYzvHi6aoffv2JbsIchLxOvOJvrgc+/46zFe/ie+/3RTz7Z+rVFPwtkQen95GjnbSjGZJ\nPRl+aD2qGc0icaBQkNTTORRVQ1JFYk6hIKmnsy9BNQWRmFMoSOrpqCEYdTSLxJxCQVKPagoicaNQ\nkNST3hEKGTGfZiNy3lMoSOrxd9YU1HwkEmsKBUk9Gn0kEjcKBUk5Rn0KInGjUJDU4/YpKBREYk2h\nIKmnMwxUUxCJOYWCpJ7O5iPNUxCJOYWCpB7VFETiRqEgqUcdzSJxo1CQ1OMOSdXkNZFYUyhI6kn3\nQ1oaxpeW7JKInHMUCpJ6/H41HYnEiUJBUk92AN//+Mdkl0LknKRGWUk5xhgYPynZxRA5J6mmICIi\nLoWCiIi4FAoiIuJSKIiIiEuhICIiLoWCiIi4FAoiIuJSKIiIiEuhICIiLoWCiIi4FAoiIuJSKIiI\niEuhICIiLoWCiIi4FAoiIuJSKIiIiOuML7Lz7rvv8tprr7F3714WL15MSUkJAAcPHmTevHkUFxcD\ncMEFF3D33XcDsGPHDiorKwmHw5SXlzN79mwAwuEwv/jFL9i5cyeBQID777+fQYMGne17ExGRz+mM\nawojRozggQce4JJLLunxWFFRET/72c/42c9+5gYCwIoVK5g7dy7Lly+npqaGTZs2AbB69WoCgQDL\nly/nxhtv5OWXXz7TYomIyFk441AoLi5m6NChfX5+fX09ra2tlJaWAjBt2jQ2bNgAwMaNG5k+fToA\nkydP5uOPPz7TYomIyFmIyzWaDx48yI9+9COysrL4xje+wUUXXUQoFCIYDLrPCQaDhEIhAEKhEAUF\nBQCkpaWRlZVFU1MTAwYMiEfxRETkJE4ZCosWLeLw4cM97r/99tuZOHFir38TDAZ5+umnGTBgADt2\n7OCJJ55g6dKlsSmtiIjE1SlDYcGCBZ9/g+np7hl+SUkJRUVF7N+/v1vNAKCurs6tHQSDQWprawkG\ng7S3t9PS0tJrLaG6uprq6mr3dkVFxedqwpLECwQCyS6CdKHj4W2JPD4rV650/11WVkZZWRkQhyGp\njY2NRKNRAA4cOMD+/fsZPHgw+fn5ZGZmsnXrVqy1vP3220yaNAmAiRMnsnbtWgDee+89Lrvssl63\nXVZWRkVFhftf1zd1Kn193pmK5/ZV9sRvO97bT1bZY/G62u/x2/apthHrsq9cubLbb2lnIMBZ9Cls\n2LCBF154gcbGRhYvXszo0aOZP38+mzdv5rXXXiMtLQ1jDPfccw/Z2dkA3H333VRWVtLW1kZ5eTkT\nJkwAYObMmTz11FPce++9BAIB7rvvvrN8y911fcPxEM/tp3LZ4ymV94vKnpztp+q2E7H9roy11ibs\n1WKsM+3Em3R8vEXHw9sSeXxO9VopPaM5Vc9yzxc6Pt6i4+FtiTw+p3qtlK4piIhIbKV0TUFERGJL\noSAiIi7PhsJtt93GU0895d5ub29nzpw5/PSnP01iqaQ33/nOd5JdBDmJ0x2bhQsXsmPHjgSVRjZs\n2MBtt93Gvn37kl2Uk/JsKPTr1489e/bQ1tYGwEcffURBQQHGmCSXTE6kY+Jdpzs2OnaJtW7dOr7w\nhS/wzjvvJLsoJ+XZUAAoLy/ngw8+AJydOXXqVDr7xbdt28ZDDz3Egw8+yIIFC9zkffjhh9m1a5e7\njQULFvDZZ58lvOznm82bN3erxT333HO8+eabAHz/+99n5cqVPPjggzzwwAOePks6F53q2EjitLa2\nsm3bNubMmcO7774LOKs0nOzYfPDBB8ybN48f//jHPP/88wlrJfF0KFx11VWsX7+ecDjMZ599xtix\nY93HiouL+ad/+icef/xxbr31Vl555RXAmQjXuVP37dtHJBJhxIgRySj+ec0Y0+0sNCcnh8cff5zr\nrruO3/3ud0ksmZx4bCQxqqqqGD9+PAMHDiQnJ4cdO3b0OA6dx6atrY0VK1Ywf/58fvrTn3LkyJGE\nHTNPh8KIESM4dOiQW+Xqqrm5mSVLlvDDH/6Ql156iT179gBw5ZVX8sEHH9De3s6aNWuYMWNGEkou\nJ5o8eTIAo0eP5tChQ0kujUjirVu3jilTpgDO79S6det6fZ61ln379jF48GD3YmNdW0niLS5LZ8fS\n5Zdfzq9+9SsWLlxIY2Oje/+vf/1rLrvsMv7xH/+RQ4cOsXDhQsDpixg3bhxVVVW89957PP7440kq\n+fnF5/N1+9B29gV1ysjIcJ/XuTaWJMbpjo3EX1NTE9XV1ezevRuAaDSKMYZJkyZ57th4uqYATnPQ\nrbfeyvDhw7vdf/ToUfLz8wFYs2ZNj7954YUXGDNmDFlZWQkr6/ls0KBB7Nmzh0gkQnNzM3/961+T\nXSTpoGOTfO+99x7Tpk2jsrKSyspKnn76aQoLC4lGoz2OjTGGoUOHcuDAAbdWvX79+oQ1H3m2ptC5\nA4LBIF/+8pfd+zrv/+pXv0plZSW/+c1vKC8v77bDSkpKyMrK4pprrkl8wc8z7e3tZGRkUFBQwJQp\nU/jhD39IYWEho0eP7vX5astOnM97bCR+1q1bx80339ztvsmTJ7N+/fpej43f7+fuu+/mscceo1+/\nfowZMyZhZT0nl7kIhUI88sgjLFu2LNlFOeft2rWLFStW8Oijjya7KHICHZvU1traSv/+/QF49tln\nGTp0KDfccEPcX9ezNYUztXbtWl599VXuuOOOZBflnPef//mfvPHGG9x5553JLoqcQMcm9f3pT39i\n7dq1RCIRRo8ezbXXXpuQ1z0nawoiInJmPN/RLCIiieOp5qPa2loqKytpaGjAGMOXvvQlbrjhBpqa\nmnjyySepra1l0KBBzJs3j+zsbJqamliyZAnbt29nxowZ3HXXXe62Fi5cyOHDh/H7/QA89NBD5OTk\nJOutiYikBE+FQnp6OnfccQejRo2itbWVBx98kHHjxvHmm28ybtw4brrpJlatWsWqVav41re+RUZG\nBrfddhu7d+92x/92MsZw7733UlJSkqR3IyKSejzVfJSXl8eoUaMA6N+/P8XFxYRCITZu3Mj06dMB\nmDFjBlVVVYAzUe2iiy5yJ0aJiMjZ8VRNoauDBw+ya9cuxo4dS0NDA3l5eQDk5ubS0NDQp21UVlaS\nlpbG5MmT+drXvhbP4oqInBM8GQqtra0sWbKEO++8k8zMzG6P9XXy0w9+8AOCwaC7rbfeeotp06bF\no7giIucMTzUfAUQiEZYsWcK0adO44oorAKd2cPjwYQDq6+vJzc097XaCwSDgNENNnTqVbdu2xa/Q\nIiLnCE+FgrWWZ555huLiYm688Ub3/okTJ7rLYa9du5ZJkyadcjvRaNRdPC8SifD+++9r+WwRkT7w\n1OS1Tz/9lIcffpgRI0a4zUTf/OY3KS0t7XVIKjgXcDl69CiRSITs7GweeughBg4cyMMPP0x7ezvR\naJTLLruMO+64Q+vuiIichqdCQUREkstTzUciIpJcCgUREXEpFERExKVQEBERl0JBRERcCgUREXEp\nFETOUGVlJa+++mqyiyESUwoFkTNkjOnThMiFCxeyevXqBJRI5OwpFETOQl/mfmomvaQST66SKuJF\nO3fu5JlnnqGmpoby8nL3/ubmZp566im2bdtGe3s7F154Iffccw/BYJBXXnmFTz75hC1btvDiiy+6\nVwjcu3cvzz//PDt37iQnJ4fbbruNKVOmJPHdiThUUxDpg0gkwhNPPMH06dN54YUXuPLKK/nzn/+M\nMQZrLTNnzuSXv/wlTz/9NH6/n+eeew6A22+/nYsvvpg5c+bw0ksvcdddd9Ha2spPfvITrr76ap59\n9lnuv/9+nn32Wfbs2ZPkdymiUBDpky1bttDe3s4NN9yAz+fjyiuvpLS0FIABAwZwxRVX4Pf76d+/\nP7fccgubN28+6bY++OADCgsLmTFjBj6fj1GjRjF58mTee++9RL0dkZNS85FIH9TX17vX6Og0cOBA\nANra2njxxRf5y1/+QlNTE+BcKMpa22t/wqFDh9i6dSuzZ89272tvb9dFoMQTFAoifZCfn08oFOp2\nX21tLYMHD+Z3v/sd+/fv57HHHiM3N5ddu3bx4IMPnjQUBg4cyCWXXMJDDz2UqOKL9Jmaj0T64IIL\nLiAtLY3/+I//IBKJ8Oc//9m9ml9rayt+v5+srCyampp47bXXuv1tbm4uBw4ccG9ffvnl7N+/n7fe\neotIJEIkEmHbtm3s3bs3oe9JpDe6noJIH+3YsYN//ud/7jb6aMiQIVx33XUsX76c7du3EwwGmTVr\nFitWrOCVV17B5/OxZcsWKisraWxsZPr06dx5553s27ePl156iW3btmGtZdSoUXz3u99l5MiRSX6X\ncr5TKIiIiEvNRyIi4lIoiIiIS6EgIiIuhYKIiLgUCiIi4lIoiIiIS6EgIiIuhYKIiLgUCiIi4vr/\nAXfYurXtWtTCAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd38cea79d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEiCAYAAAD+lrlwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VNX9wP3PnZlMNrIwWQkhbCGBJCREEYxBwL0qKrYY\nRWsVob8Wl1rqTlVQFFdAtLH2By4/7COKrfDIU6zVGpGK1iCgEJYkhkBCNjKThOyz3eePISORAFkm\nmSXf9+sVZU7u3Dnfycz3nnvuuecoqqqqCCGEGDQ07q6AEEKIgSWJXwghBhlJ/EIIMchI4hdCiEFG\nEr8QQgwykviFEGKQ0bliJ3a7nYcffhiDwcDDDz9MU1MTq1atora2lqioKBYtWkRwcDAAGzduJC8v\nD41Gw7x588jIyHBFFYQQQnSTS1r8W7ZsIT4+HkVRANi0aRPp6emsXr2atLQ0Nm3aBEB5eTnbt29n\n5cqVLF68mLVr12K328+6/4KCAldU02P4Sjy+EkcHiccz+UocHQYyntO9Vp8Tv9FoZNeuXVx88cV0\n3Au2Y8cOZsyYAcDMmTPJz88HID8/n+zsbHQ6HdHR0cTGxlJcXNzrynsrX4nHV+LoIPF4Jl+Jo4NP\nJP7/+7//45e//CUazY+7amhoIDw8HICwsDAaGhoAqKurIyIiwrldREQEJpOpV6/b0zevJ9v35757\nqr/r4s3vo7fWpafbe1Jderq91MU127t6331K/N9++y2hoaGMHj2a08380NH9czpn+/3peNOb3Bee\n9OHr6fZSF9ds70l16en2UhfXbO/qfSt9mavnnXfeYdu2bWg0GiwWC62trUyZMoUffviBpUuXEh4e\nTl1dHU888QQvvfSSs69/9uzZADz99NPk5OQwbty4Uyp9csVzcnJ6W0UhhBjUNmzY4Px3amoqqamp\nfUv8J9u3bx8ffvghDz/8MH/9618ZMmQIs2fPZtOmTTQ3N3PLLbdQXl7O6tWreeaZZzCZTCxbtoyX\nX365W63+iooKV1TTI4SEhNDY2OjuavSZr8TRQeLxTL4SR4f+jEdVVcrLyzl69Ch+fn5cc801XW7n\nkuGcHToS+OzZs1m1ahV5eXnO4ZwA8fHxZGVlsWjRIrRaLfPnz+91V48QQogftbe3c/DgQVpbW/Hz\n8zvjti5r8fc3afF7Hl+Jo4PE45l8JY4O/RFPdXU1paWlaLXaTo3pAWnxCyGEGDg2m43i4mLq6+vR\n6bqfziXxCyGEF2psbKSwsBCbzdajpA+S+IUQLhYSEuLS/Wm1Wpfv0536Go+qqrS3tzNkyBDOPfdc\nwNG/v3fv3m7vQxK/EMLlfKlP3lOd3Jfv7+/fo+fK7JxCCDHISOIXQohBRhK/EEIMMpL4hRBigN16\n66387W9/c9vrS+IXQoh+tGLFCu65555OZW+//TZz5swB4L333uP6668f0DpJ4hdCiEFGEr8QYtDY\nu3cvV1xxBcnJySxcuJCFCxfy/PPPd9nqjo+P5/DhwwB8+umnXH755YwfP57zzjuPlStXOrcrKysj\nPj6e999/nylTpjBx4kRefvllAPLy8vjTn/7E5s2bSUpK4vLLLwdgzpw5rF+/nuLiYh555BG+/fZb\nkpKSSE1N5bvvviMjI6PTVPdbtmzhsssuc9n7IIlfCDEomM1m7rjjDm644Qb27dvHrFmz+Oijj1AU\n5ayTRQYHB/PKK69w4MAB1q1bx7p16/j44487bZOfn8+2bdt47733eOmllyguLuaiiy7innvu4dpr\nr6WwsJB//etfzu0VRSExMZFnn32Wc889l8LCQgoKCsjIyMBgMPD55587t/373//ODTfc4LL3QhK/\nEGJQ2LlzJzabjQULFqDVarn66qtPaVmfTlZWFsnJyQBMmDCBa6+9lq+++qrTNn/4wx/w9/cnJSWF\nlJQU9u3bBzjutD3Ta3T1uzlz5vDBBx8AjpULt27d6tLrAHLnrhBiQNl+fa1L9qNd82GPtq+uriY2\nNrZTWXx8fLeeu3PnTpYvX05hYSEWiwWz2cysWbM6bRMdHe38d0BAAC0tLT2q38muv/56Lr74Ylpb\nW9m8eTPnn38+UVFRvd7fT0niF0IMqJ4mbFeJjo6mqqqqU1l5eTkjR44kKCiI1tZWZ3lNTU2n7e6+\n+27uuOMO3nnnHfR6PUuWLOn2euG9WX42Li6Oc845hy1btvDBBx9w2223deu1uku6eoQQg8LkyZPR\narW8/vrrWCwWtmzZwnfffYeiKKSkpDj72Nva2lixYkWn5zY3NxMWFoZer2fXrl1s2rSp24tIRUVF\nUV5eftrunqioKCorK7FYLJ3K58yZw6uvvsrBgwe58sorexf0aUjiF0K4lM1mc3cVuuTn58fatWvZ\nsGEDaWlpbN68mSuvvBJVVRkzZgy///3vuemmm5g+fTpTp07tlNiXL1/Oiy++SHJyMi+99BLXXtu5\nu+pMB4GOLqG0tLQuE/i0adNISkpi0qRJpKenO8uvvPJKjh49ys9+9jMCAgL6Gn7n+soKXAPPV1YU\n8pU4Okg8fWM2mykpKSE5OdlrllRdtGgRw4YN48EHH3R3VbqUnZ3Nc889x7Rp08667bfffntKmazA\nJYToF3a7nbKyMqqqqtBoNF6T9KHrETWeYsuWLSiK0q2k31N9Svxms5mlS5disViwWq2cd9553Hzz\nzTQ1NbFq1Spqa2udi60HBwcDsHHjRvLy8tBoNMybN4+MjAyXBCKEGHiNjY0UFRVhtVp7vAqUJ+jO\nGH53mDNnDsXFxc4bwVytz1097e3t+Pv7Y7PZePzxx7n11lvZsWMHISEhXHfddWzatInm5mZuueUW\nysvLWb16Nc888wwmk4lly5axevVqNJqzX2qQrh7P4ytxdJB4uk9VVUpLS6murkan03VKnh2rQomB\n1ZOunj5f3O1Y+cVqtWK32wkODmbHjh3MmDEDgJkzZ5Kfnw847mzLzs5Gp9MRHR1NbGwsxcXFfa2C\nEGIAtbe38/3333Ps2DH8/Pw8ssUszqzP52Z2u52HHnqI6upqLr/8ckaMGEFDQwPh4eEAhIWF0dDQ\nADjuQBs3bpzzuREREd0eCyuEcL/6+noKCwvRaDRotVp3V0f0Up8Tv0aj4YUXXqClpYWnn376lAV/\ne3PzghDC81RUVFBWVoZWq5XvrZdz2dWYoKAgMjMzKSkpISwsjPr6esLDw6mrqyMsLAwAg8GA0Wh0\nPsdoNGIwGE7ZV0FBAQUFBc7HOTk5fVqV3tPo9XqfiMdX4ugg8XRNVVUKCwuprq4mKCjorNsriuLR\no2V8kaIo6PX6U8oANmzY4CxLTU0lNTW1b4n/+PHjaLVagoODMZvN7Nmzhzlz5jB58mQ+//xzZs+e\nzdatWznvvPMAx51zq1evZtasWZhMJqqqqkhMTDxlvx2VO5lcdPM8vhJHB4nnVHa7naKiIurr69Hp\ndJjN5rM+R5L+wFNV9bR/m5ycnFPK+pT46+vryc3NxW63o6oq06dPZ+LEiYwePZpVq1aRl5fnHM4J\njgmRsrKyWLRoEVqtlvnz58spoxAeym63s3//fpqbm71yqGZXiouLWbhwIUeOHOHhhx9m3rx57q6S\nW8idu27gKy1LX4mjg8TzI7vdTkFBAa2trT2+iOvJwznvu+8+QkNDWbJkiburclZTp05lxYoV3b6B\na0CHcwohfEtfkr6nKy8vJykpqcfPc8f8Q/15rUQSvxDCyW63s2/fPp9M+jfccANfffUVjz76KMnJ\nyezbt4/f/e53pKenM3XqVFavXu1MtO+99x7XXXcdS5cuJS0tjZUrV2I2m3nyySeZMmUKkyZN4uGH\nH6atrc25/48//pjLLruM8ePHk52d7VxB67333mPmzJkkJydzwQUX8Ne//tX5HJPJxK9+9StSUlJI\nTU3l5z//Oaqqcs8993D06FFuv/12kpKSeO2111z6XvhGx50Qos9UVeXAgQM+1ad/svfff585c+Yw\nZ84cbrrpJn73u9/R3NzM119/jclkYu7cucTExHDTTTcBsHv3bq6//nq+//57zGYzTz/9NGVlZXzy\nySfodDruuusuVq1axSOPPMKuXbv4/e9/z//+7/9y4YUXUlVVRVNTEwCRkZGsW7eOhIQEvv76a375\ny18yadIk0tLS+Mtf/kJcXBx79uwBHAu+KIrCK6+8Qn5+Pi+++GK/zNUjLX4hBKqqUlRURFNTk08m\n/Z+y2Wxs3ryZRx55hKCgIOLj4/nNb37D3/72N+c2MTEx3H777Wg0Gvz9/XnnnXdYsmQJYWFhBAcH\nc/fdd/Phh45FZdavX89NN93EhRdeCEBsbKxzxOIll1xCQkICAOeffz4zZszgv//9L+CYKrqmpsZ5\nf0THCMj+5vt/YSHEWZWWllJXVzcgSf+6/+eAS/bz/94yvtfPNZlMWCwWhg8f7iwbPnx4pxW64uLi\nnP82Go20trZ2mk9fVVXsdjsAlZWVXHLJJV2+1meffcbKlSs5dOgQqqrS2trKhAkTAFi4cCErVqzg\n5ptvBuCWW27hrrvu6nVc3SWJX4hBrqKigurqavz8/Abk9fqSsF3FYDDg5+dHeXm5cxqZo0ePMmzY\nMOc2Jw81NxgMBAQEkJeXR0xMzCn7i4uLo7S09JTy9vZ2fv3rX/PKK69wxRVXOIexd1xLCA4O5vHH\nH+fxxx/n4MGD5OTkMGnSJLKzs/t1qLt09QgxiJlMJo4cOTJgSd9TaLVaZs2axXPPPUdzczPl5eWs\nWbOGX/ziF11ur9FouPnmm1myZIlz9oHKykq2bt0KwNy5c9mwYQP/+c9/sNvtVFZWUlxcjMViwWKx\nYDAY0Gg0fPbZZ87nAHzyySfOM4EhQ4ag1WqdsxVHRkZy+PDhfolfEr8Qg1RzczPFxcWDLul3eOqp\npwgMDCQrK4vrr7+e66+/nhtvvBHoep7+P/7xj4waNYprrrmG8ePHM3fuXEpKSgCYNGkSK1euZOnS\npUyYMIE5c+ZQUVHBkCFDePLJJ/ntb39LamoqmzZt4oorrnDus7S0lLlz55KUlMR1113HbbfdRlZW\nFgD33HMPq1evJiUlhb/85S8ujV1u4HIDX7lRyFfi6DCY4rFarezevRtw/USJnnwDly+TG7iEEKel\nqir79+9HVVWZMmWQksQvxCBTUlJCa2trt1a+E75J/vJCDCLV1dUcO3bM5+7KFT0jiV+IQaK5uZnS\n0tJBezFX/EgSvxCDgM1m48CBA9LSF4AkfiF8nqqqHDx4EJvNJhdzBSCJXwifV1FRQWNjo7T2hZMk\nfiF8WFNTE+Xl5YNi4jXRfZL4hfBRVquVgwcPSkvfA916662dZgIdaJL4hfBR+/fvl359D7BixQru\nueeeTmVvv/02c+bMARwLtVx//fUDWqc+nf/V1taSm5tLQ0MDiqJwySWXcNVVV9HU1MSqVauora11\nLrYeHBwMwMaNG8nLy0Oj0TBv3jwyMjJcEogQ4kfV1dWYTCZp7Ysu9anFr9PpuO2221i5ciVPP/00\nH3/8MeXl5WzatIn09HRWr15NWloamzZtAhzrXW7fvp2VK1eyePFi1q5d65zPWgjhGm1tbTJe/zT2\n7t3LFVdcQXJyMgsXLmThwoU8//zzXba64+PjnbNjfvrpp1x++eWMHz+e8847j5UrVzq3KysrIz4+\nnvfff58pU6YwceJEXn75ZQDy8vL405/+xObNm0lKSuLyyy8HYM6cOaxfv57i4mIeeeQRvv32W5KS\nkkhNTeW7774jIyOj03q7W7Zs4bLLLnPZ+9CnxB8eHs6oUaMACAgIYPjw4ZhMJnbs2MGMGTMAmDlz\nJvn5+QDk5+eTnZ2NTqcjOjqa2NhYiouL+xaBEMKpY/lEaemfymw2c8cdd3DDDTewb98+Zs2axUcf\nfdTlTJw/FRwczCuvvMKBAwdYt24d69at4+OPP+60TX5+Ptu2beO9997jpZdeori4mIsuuoh77rmH\na6+9lsLCQv71r385t1cUhcTERJ599lnOPfdcCgsLKSgoICMjA4PB4FyzF+Dvf/87N9xwg8veC5f1\n8dfU1FBaWsq4ceNoaGggPDwcgLCwMBoaGgCoq6sjIiLC+ZyIiAhMJpOrqiDEoHf48GHMZrP063dh\n586d2Gw2FixYgFar5eqrrz6lZX06WVlZJCcnAzBhwgSuvfZavvrqq07b/OEPf8Df35+UlBRSUlLY\nt28f4DgYn+k1uvrdnDlz+OCDDwBH3ty6datLrwO4ZIxXW1sbK1as4PbbbycwMLDT7872AZQPqBCu\ncfz4caqqqjy+i2fze/Uu2c81N4b3aPvq6mpiY2M7lcXHx3fruTt37mT58uUUFhZisVgwm83MmjWr\n0zbR0dHOfwcEBNDS0tKj+p3s+uuv5+KLL6a1tZXNmzdz/vnnExUV1ev9/VSfE7/VamXFihVMnz6d\nKVOmAI5Wfn19PeHh4dTV1REWFgY4li/rWL0GHOtYGgyGU/ZZUFBAQUGB83FOTg4hISF9rarH0Ov1\nPhGPr8TRwZvjsdls7N27l6CgIGdjSqvVotfrB7wuiqKcsYXb04TtKtHR0Z3W1AXHdceRI0cSFBRE\na2urs7ympqbTdnfffTd33HEH77zzDnq9niVLlnS7t6I3jd+4uDjOOecctmzZwgcffMBtt9121n38\n9G/dsd8NGzY4y1JTU0lNTe1b4ldVlddee43hw4dz9dVXO8snT57M559/zuzZs9m6datz5fjJkyez\nevVqZs2ahclkoqqqyrkS/ck6KneywbJAhjfxlTg6eHM8hYWFtLS0dOrb1+v1mM3mAa+Lp67tNHny\nZLRaLa+//jq/+tWv+OSTT/juu++YNm0aKSkpzj72sWPHsmLFik7PbW5uJiwsDL1ez65du9i0aZPz\nOubZREVFsW3bttOufxAVFUVlZSUWi6XT2dqcOXPIzc2loqKi0yLvXVFV9bR/65ycnFPK+tTHf/Dg\nQbZt20ZBQQEPPvggDz74ILt372b27Nns2bOHe++9l7179zJ79mzAcVqVlZXFokWLWL58OfPnz5eu\nHiH6yGg0UldXJxd0z8LPz4+1a9eyYcMG0tLS2Lx5M1deeSWqqjJmzBh+//vfc9NNNzF9+nSmTp3a\nKTctX76cF198keTkZF566SWuvfbaTvs+Ux7r6BJKS0vrMoFPmzaNpKQkJk2aRHp6urP8yiuv5OjR\no/zsZz8jICCgr+F3rq8svTjwvLlleTJfiaODN8ZjtVrZtWtXl4uquKvF701LLy5atIhhw4bx4IMP\nursqXcrOzua5555j2rRpZ91Wll4UYhBQVZXCwkJ3V8OreXK7d8uWLSiK0q2k31Myc5MQXqqmpobj\nx497/CgeT9adMfzuMGfOHIqLi503grmaJH4hvFB7ezuHDx+WpN9Hq1atcncVutTfE7hJV48QXkZV\nVYqKimSxdNFr8skRwstUVFTQ3NzskV0UwjtI4hfCi7S1tcnCKqLPJPEL4SU6RvHIeH3RV5L4hfAS\n5eXltLa2enwXT3t7u0v35+nx9lR/xNPT91zOF4XwAq2trVRUVHhFF8/evXtduj933YjWXzwhHmnx\nC+HhVFWVtXOFS0niF8LDHTlyhPb2dp/r8hDuI4lfCA/W3NxMVVWVV3TxCO8hiV8ID2W322UUj+gX\nkviF8FClpaVYLBbp4hEuJ4lfCA/U0NBATU2NtPZFv5DEL4SHsdlsFBcXS7++6DeS+IXwMD/88AM2\nm026eES/kcQvhAcxGo2YTCbp4hH9ShK/EB7CarVSUlIic+yLftfnTsRXX32VXbt2ERoa6lyZvqmp\niVWrVlFbW0tUVBSLFi0iODgYgI0bN5KXl4dGo2HevHlkZGT0tQpCeL2Ou3OFGAh9bvFfdNFFLF68\nuFPZpk2bSE9PZ/Xq1aSlpbFp0ybAMcnU9u3bWblyJYsXL2bt2rXY7fa+VkEIr1dZWUljY6MsriIG\nRJ8/ZRMmTHC25jvs2LGDGTNmADBz5kzy8/MByM/PJzs7G51OR3R0NLGxsRQXF/e1CkJ4tdbWVsrK\nyqSLRwyYfmleNDQ0EB4eDkBYWBgNDQ0A1NXVERER4dwuIiICk8nUH1UQwivY7XYOHDggF3PFgOr3\n88qzDUmTIWtiMCspKcFsNsv3QAyofrlDJCwsjPr6esLDw6mrqyMsLAwAg8GA0Wh0bmc0GjEYDKc8\nv6CggIKCAufjnJwcQkJC+qOqbqHX630iHl+Jo8NAx1NTU0NjYyNBQUH9sn+tVoter++XfQ8kX4mj\nw0DF09GY2LBhg7MsNTWV1NTU/kn8kydP5vPPP2f27Nls3bqV8847z1m+evVqZs2ahclkoqqqisTE\nxFOe31G5kzU2NvZHVd0iJCTEJ+LxlTg6DGQ8bW1t7NmzB61W22+LcnjCgh+u4CtxdBjoeHJyck4p\n63Pif+mll9i/fz/Hjx9n4cKF5OTkMHv2bFatWkVeXp5zOCdAfHw8WVlZLFq0CK1Wy/z58+UUVww6\nHf36MoJHuIuiqqrq7kp0R0VFhbur4DK+0lL2lTg6DFQ8RUVFmEymfp+Lx1dayr4SR4eBjOeaa67p\nslyaHEIMoOrqaoxGo0zAJtxKEr8QA6SpqYnS0lIZry/cThK/EAPAYrGwf/9+Ga8vPIIkfiH6md1u\nZ//+/YDctyI8gyR+IfqRqqoUFhbS2toqo3iEx5BPohD9qLS0lIaGBrmYKzyK13wa7e+ugeZGUDSg\n1YLOD/z8wD/A8RMQBEHBKMEhMCQUQkIhNBxFJxfShHscPXqUmpqafkv6qgqtNmiyKbTYFNpsCq02\nhXY7tNsV7IqGdqseqwr2Ez8qjq4mBRWNAloFdAroNCp6Bfw1Kv5aCNCoBGlVgnQqQ7Qqeg1IL5Xv\n8JrEr277F8otC0G1g80GVgtYLNDeBo0NUFMJLc3YW5qg8Tg0NTj+HxgIYQYYGokSEQURMRAZgxId\nC9FxKIH9c7u8GNyqqqooLy/vU9K3qdBgUTCZNdRZFOotCg0WDQ0WhUarQpNVQa+BYN2JJK1VCdCq\n+GtAr1EJ1EGQYkd7IsFrFEfC7/ivTXX8WFWw2hXMKjSZNbTZFVpt0HrigNJkdWwfolMJ1amE+dkJ\n81MJ91MZ6mfHoFcJ0alyYPAiXpP4MUSiueDiHj1Ftduh6TjUG6HOiGqsAWMNamkhak0VHKt0nC3E\nxqMMi4e4BJThI2H4SJQhof0UiPB1VVVVHD58uNtJ32qHWrOGmnaFY+0aas2On3qLQohOZaifikHv\nSLbDAqyEnkjAQ3QqujN01ur1Cmaz1SUxtdug0apw3Kpw3OKo2+EWDbstOkxmBbNdIUJvJ9JfJVJv\nJ9rf8TPUTw4Insh7En94xNm3+QlFo4HQcMdPwlh++vlTVRXqjFBVjlpZDkePYM/fBkcPOw4II8ag\njBiDMnIsjEp0nDXIp1icQUVFBWVlZadN+mY7VLZpqGzTUNWmoapdi8msEO6nEuNvJ9LfTnqolQh/\nOwa/Myf2geSvBX+tSqS/Cpy6eFKbDYwnDljH2hV21euoadfQaleI9rcT629nWIDjJ8rfcRYi3Mdr\nEr/Si8R/1n0qChgiwRCJkjLJWa6qKtRWQ9kh1CM/YP/PJ/DXVx2/HJ2EMjoJZUyy49/SVSRwfGYO\nHz5MVVWV8wYtuwrH2hXK27QcbdVwtFVLvUUhyt9OXICdhCA7UwxWovV2j0nwvRWgheGBdoYHdj4o\ntNqguk1DVbuG0hYtX5n8aLA4DgbxgXaGB9qID3CczUibauB4TeJn6KnTN/cXRVEgKhaiYlHOyQJO\nHAxMtVBaiFpSiP3/exeOlDiuF4ydAIkTUBInOB7LJ3hQsdlsHDhwAOPxJqosAZTVayhr1VLRpmGI\nTiU+wMbwQDvnDbUSPchau4FaGBVsZ1SwHXB0O7XbHGc9R9u07Duu41/VjqNefKCdEUE2EgLtxAYM\nrvdpoHlP4u+HFn9PKIoCEVEQEYVybjYAqtXqOCv4YT/qd/9F/ftboGhQxqXAuFSUpFQYNsLR5SR8\nTpOpju8PG/m2ScfeKhWjJZRhAXZGBNqYarAQH2gjSG7UPYV/p4OBY3RSg0WhrNVxwPy+QUedReM4\nKwq0MTZUIdYP/ORr5DJek/iV8IFr8XeXotPB6HEoo8fBpdc6zgqOVaEW7YOivdg/2QStzZCYipKc\nipI0EeJHubvaopfUhjrUwr1QuBf14F6OWvz5JG0OY5ITuDSyhbhAlQA/r/lKeQxFgXC9SrjexsQw\nG+C4ZnCkVcuRFg3/rtZQ2RpETICdkUE2RgbaSQiyoZcDQa95zbTMR/+T5+hX9zJqnfHHZFG4F443\noEvJwDZ2vPNA4K1nBL4+LbMz0R/cg3pwLxyvc57JKUlpjov/J+besVqt1NTUUF1dTXt7u0dMxOYr\n0xnr9Xqa28yUtWo43KLlcIuWyjYN0f52RgXZGBnkXQcCT5iW2XsS/97vUQyR7q5Gn6n1RgLKSmjd\n/Y0jmTQ2wLgUlOSJKMlpJw4E3tE/4GuJP9hqpnHn13BwL2rhHjhe70j0PfjbqKqKyWTi8OHDWCwW\nt96x60uJ/6dxWOxQfuJAUHrSgWBkx4Eg0Ia/h36NJPH3wNGyMmfrytudnDDVehPqwT1QWHDijKAO\nElNQktIc1whGjHF0KXkgb0/8qvEYatHeE+99AUrTcdTECY5En5QGI3p/EFZVlbKyMiorK9FqtW65\n4O/Lif+nTj4QHG5xXFiPOnEgSDjRNRToIelDEn8PDJYVuNSGOihyHATUwgIw1jiGjY5LdYwaGpOM\n4h8wwDXumjclftVuh8py1OJ9ULzPcR3G3P5j1824VEImTKSpudmlr9va2srBgwcxm80DPiXzYEr8\nP2W1Q3mbhiMnDgRH2zSE+6kkBNpIOHEwCPVzT+qTxN8DgyXx/5Ta3AjF+1GLClCL90PZIcdIobHj\nHQeBMcluG0LqyYlfbW2B0iLUHw6glhyEHw5A8BDHwTMxxXE2FTO80/vWX/HY7XZKSkqora0d0L7/\nwZz4f8qmOoaQlrVoONKqpaxVi5+iEh9oJz7QRvwADiEdtIl/9+7dvPXWW9jtdi6++GJmz5591ucM\n1sT/U6qDQBzuAAAgAElEQVTFDIeLUX84iPrDfigpBLsNRo1DGTUOZVQijExECRvq0jp3xVMSv2pu\nh/JS1MM/OJL9oUIwHYMRo1HGJDvusxg7/qzvSX/HU11dTWlp6YB1/UjiPz1VBZNFoaxFS3mrhqNt\nGkxmx3WC4YGOO4zjAmxE6B2T2bmSJyT+Ae88ttvtvP766zz22GMYDAYeeeQRJk+eTHx8/EBXxSsp\nfnpHizUxBbj+x2knDhWiHi7C/umHcPgH8NNDwhiU+FGOi5LDR0JMnFfPVqqqKtSb4Ohh1KOHofwQ\natkhx5xLMcNRRibCmGQ0F89yzLfkYddGYmJiCAgI4ODBg2g0GrnRz40UBSL0KhF6K5PCHWXtNqhs\n11DRqqWoScu2Wj8arSemnAiwE3Ni/qEof7vHXC/orQH/ZhQXFxMbG0t0dDQA2dnZ7NixQxJ/L3Wa\nduLcC4COu4yPwZES1LJDqN9+ifrhekdZRLRjUrrY4RA9DCU6DqJiINzgMaOJ1OYmx5QZxypRqyug\nugK1+ihUloNO55hML34UJE9Ec+l1jsceMHyyO8LCwpg4cSJ79+4FZEUuT+KvhVFBdkYF/TjtRJsN\nqtsd8ypVtmnY3aCj1qxBr1GJ1DsmpDPoHTOUDvWzE+6nesyNZrYz9OUMeOI3mUxERPx4F67BYKC4\nuHigq+HTHHcZR0NENErm+c5y1WKB6nKoOupIqEX7sG//DI5VQfNxx93RhkjHvEjhBsfkdiFhjplK\ng0MgeIhj3YOAQND7d6suqqo6ptBua4O2FscNbc1NqE3HHUNZj9dDQx3qiRlUMdU6pt6OjHFMmRE1\nDMaloLnwcscBK8T7Z00NDAwkPT2dgoICbDabrMzlwQK0MDLIzsiTDgaqCsetCrVmDcZ2BaNZww/N\nCvUnZi3110CYn51QnWO66iE6leATaxsEalVCbaC1K+g1jnUOuntdwa46Jvkz2xXa7I5ps9tsCs02\nheYT03Q3nvhpsCq0WBVO14nuWefCol8pfn4QPxriR586U6nFDHW1YKpFrTc5prJuqIPyUuxNx6G5\nyfHT3gqtLWAxU6/TORbE0WodC+RoNI5vhd3uuO5gtTrWTNBoHLOdBgZBYLDjADIkBCUkDEKHwqhx\naMLPh6GOAw/BIT7fEvb392fixIns2bNHkr+XURQI81MJ87MxNrjz71TVsTBOx5oJHesmVLZpaD6x\nvoFZ1dBq1dJuVzCfOJ7oTiyIozjXTHAsmqOqYMMxSknFMW2Fv0YlQOOYLTXopB+D3k5CkEqon+o8\n6JzOgCd+g8GA0Wh0PjYajRgMnadjKCgooKCgwPk4JyeHkJCQAatjf9Pr9Z4ZjyECxnbv7mhVdazY\n1N7c7FgYx25zJHzNiaWatDpHH7uf3mvuv3DH3+WCCy5gx44d/ZL8tVoter3epft0B2+Lwx/oemYx\nFVDRahVsNpuz1Gr/cUEcVYWOdK1w4qt04qCgVc60Cppy4uekkhMbb9iwwVmWmppKamrqwCf+sWPH\nUlVVRU1NDQaDge3bt3Pvvfd22qajcifzhNEjruIpo2H6KiQkhGa7emI5TA2cnN9VwGJ1/HgJd/1d\nkpOT2bNnDxaLxaVnOjKqxzN1FY8CdHmV6sRRwE5XqyB0T05OzillA574tVotd9xxB08//bRzOKdc\n2BWDmZ+fH6mpqezZswdVVX2+m0u4n1v6+DMzM8nMzHTHSwvhkfz9/Z3JX4Z6iv4mV5SE8BCBgYGk\npKR06v8Voj9I4hfCgwwZMoSkpCSsVu+5NiK8jyR+ITzM0KFDGTVqlCR/0W8k8QvhgWJiYoiNjZXk\nL/qFJH4hPFRCQgJhYWGS/IXLSeIXwkMpikJSUhIBAQHY7b0dxS3EqSTxC+HBNBoNKSkpwIl5j4Rw\nAUn8Qng4Pz8/JkyYIMM8hctI4hfCCwwZMoTRo0djsVjcXRXhAyTxC+EloqOjiYmJkYu9os8k8Qvh\nRUaNGkVwcLBc7BV9IolfCC+iKArjx49HURS52Ct6TRK/EF5Gp9PJxV7RJ5L4hfBCwcHBjB49Wvr7\nRa9I4hfCS0VHRxMZGSktf9FjkviF8GJjxoyRO3tFj0niF8KLKYrChAkTUFVVLvaKbpPEL4SX8/Pz\nIzk5Wbp8RLdJ4hfCB4SFhREXFycXe0W39HrN3a+++or333+fo0eP8swzzzBmzBjn7zZu3EheXh4a\njYZ58+aRkZEBQElJCbm5uVgsFjIzM5k3b17fIxBCABAfH09jYyNNTU1otVp3V0d4sF63+BMSErj/\n/vudMwd2KC8vZ/v27axcuZLFixezdu1aZ9/jmjVrWLhwIS+//DJVVVXs3r27b7UXQjgpikJycjJa\nrVb6+8UZ9TrxDx8+nLi4uFPK8/Pzyc7ORqfTER0dTWxsLEVFRdTV1dHW1kZiYiIA06dP55tvvul9\nzYUQp9BqtYwfP176+8UZubyPv66ujoiICOfjiIgITCYTdXV1GAwGZ7nBYMBkMrn65YUY9IKDg2XN\nXnFGZ+zjX7ZsGfX19aeUz507l8mTJ/dbpYQQfRMTE4PZbKaiogKdrteX8oSPOuMn4rHHHuvxDg0G\nA0aj0fnYaDQSERFxSgvfaDR2OgM4WUFBAQUFBc7HOTk5hISE9Lgunkqv1/tEPL4SRwdfiyc9PZ2m\npiYsFguKori7Or2m1WrR6/XurobLDFQ8HX/zDRs2OMtSU1NJTU3t/aie05k8eTKrV69m1qxZmEwm\nqqqqSExMRFEUAgMDKSoqIjExkW3btnHllVd2uY+Oyp2ssbHR1VV1m5CQEJ+Ix1fi6OCL8YwZM4bv\nvvvOq0f56PV6zGazu6vhMgMdT05OzillvU7833zzDW+++SbHjx/nmWeeYfTo0SxevJj4+HiysrJY\ntGgRWq2W+fPnO488CxYsIDc3F7PZTGZmJpMmTep9NEKIs/L39ycxMZGioiLp8hFOiuol474qKirc\nXQWX8ZWWpa/E0cGX4zl8+DBVVVVemfylxd9711xzTZflcueuEINAQkICQ4YMkcncBCCJX4hBoePm\nLlm5S4AkfiEGDVm5S3SQxC/EICI3dwmQxC/EoBMTEyMrdw1ykviFGITGjBlDYGCgXOwdpCTxCzEI\ndazcJRd7BydJ/EIMUnKxd/CSxC/EIBYcHMyYMWOwWCzurooYQJL4hRjkoqKiGDZsmIz0GUQk8Qsh\nSEhIIDQ0VLp9BglJ/EII5529er1eRvoMApL4hRAAaDQa53ToMtLHt0niF0I4+fn5kZKSIq1+HyeJ\nXwjRSXBwMOPGjZOLvT5MEr8Q4hRDhw5l5MiRkvx9lCR+IUSXYmNjZZinj5LEL4Q4rREjRhARESHJ\n38dI4hdCnJaiKIwdO1bG+PuYXi/A+fbbb7Nz5050Oh0xMTHceeedBAUFAbBx40by8vLQaDTMmzeP\njIwMAEpKSsjNzcVisZCZmcm8efNcE4UQot90jPHfv38/zc3NaLVad1dJ9FGvW/wZGRmsWLGCF154\ngWHDhrFx40YAysvL2b59OytXrmTx4sWsXbvWOSZ4zZo1LFy4kJdffpmqqip2797tmiiEEP1Ko9Ew\nYcIEAgMDpeXvA3qd+NPT09FoHE8fN24cRqMRgPz8fLKzs9HpdERHRxMbG0tRURF1dXW0tbWRmJgI\nwPTp0/nmm29cEIIQYiBoNBpSUlIICAiQ5O/lXNLH/9lnn3HOOecAUFdXR0REhPN3ERERmEwm6urq\nMBgMznKDwYDJZHLFywshBohWqyU1NVWSv5c7Yx//smXLqK+vP6V87ty5TJ48GYAPPvgAnU7HtGnT\nXFapgoICCgoKnI9zcnIICQlx2f7dTa/X+0Q8vhJHB4mn+84//3x27dpFa2trv/f5a7Va9Hp9v77G\nQBqoeBRFAWDDhg3OstTUVFJTU8+c+B977LEz7vjzzz9n165dnbYzGAzObh8Ao9FIRETEKS18o9HY\n6QzgZB2VO1ljY+MZ6+JNQkJCfCIeX4mjg8TTM4mJiezbt6/fk79er8dsNvfb/gfaQMeTk5NzSlmv\nu3p2797Nhx9+yAMPPNDp6DV58mS+/PJLrFYrNTU1VFVVkZiYSHh4OIGBgRQVFaGqKtu2bWPKlCm9\nfXkhhJt1dPsEBwdLt4+X6fVwzjfeeAOr1cpTTz0FQFJSEgsWLCA+Pp6srCwWLVqEVqtl/vz5zlOO\nBQsWkJubi9lsJjMzk0mTJrkmCiGEW3Rc8C0sLKS+vh6drtcpRQwgRfWS+VcrKircXQWX8ZUuBV+J\no4PE03uqqlJaWkp1dTV+fn4u3bd09fTeNddc02W53LkrhOgzRVEYPXo0CQkJWK1Wmc/fw0niF0K4\nTFxcHElJSdjtdkn+HkwSvxDCpYYOHcrEiRPRaDRy0ddDSeIXQrhcYGAgGRkZhIaGysyeHkgSvxCi\nX2i1WpKTkxkxYoT0+3sYSfxCiH6jKApxcXGkpaWh1Wql68dDSOIXQvS74OBgMjIyiIqKwmKxSOvf\nzSTxCyEGhEajYfTo0aSlpaHT6aTv340k8QshBtSQIUPIyMggPj4em82G3W53d5UGHUn8QogBpygK\nw4cP55xzziE8PFwu/g4wmVhDCOE2Op2OcePG0drayqFDhzh+/Dg6nc45v5foH5L4hRBuFxgYSEpK\nCq2trZSWltLQ0IBWq3Wu8idcSxK/EMJjBAYGMmHCBMxmM0eOHKGurg6LxeLuavkcSfxCCI+j1+tJ\nTEzEbrfT3NzMoUOHaGlpQaPR9PuKX4OBJH4hhMfSaDTExcUREhKC2WymoqKC+vp62tra5CDQB5L4\nhRBeQa/XM2rUKADa29uprq6moaGBlpYWVFWVi8I9IIlfCOF1/P39SUhIAMBms1FXV4fRaKS5uRmz\n2YyiKGi1WjkQnIYkfiGEV9NqtURGRhIZGQmA2WzGZDJRX19PS0uLc7UrOSP4kSR+IYRP0ev1xMbG\nEhsbCzgOBPX19dTV1TkPBIO9a6jXif/dd9/l22+/BRxre955553OI+7GjRvJy8tDo9Ewb948MjIy\nACgpKSE3NxeLxUJmZibz5s1zQQhCCHF6er2e6OhooqOjAbBYLNTV1WEymZwHgsF2objXif+6667j\npptuAuCjjz7ib3/7G7/97W8pLy9n+/btrFy5EpPJxLJly3j55ZdRFIU1a9awcOFCEhMTeeaZZ9i9\nezeTJk1yWTBCCHE2fn5+nQ4EbW1t1NbWUl9fT3Nz86A4G+h14g8MDHT+u62tjZCQEADy8/PJzs5G\np9MRHR1NbGwsRUVFREVF0dbWRmJiIgDTp0/nm2++kcQvhHCrgIAA4uPjnZPGmUwmjh07RlNTk/Mg\n4Gv6FNH69ev54osv0Ov1PPPMMwDU1dUxbtw45zYRERGYTCZ0Oh0Gg8FZbjAYMJlMfXl5IYRwKa1W\nS1RUFFFRUdhsNoxGI9XV1TQ3N/vUFBJnTPzLli2jvr7+lPK5c+cyefJk5s6dy9y5c9m0aRNvvfUW\nd955p0sqVVBQQEFBgfNxTk6O84zCF+j1ep+Ix1fi6CDxeCZ3xhEeHs7YsWNpb2/n8OHD1NbWYrVa\n+3QWoNVq0ev1Lqxl1zq6qjZs2OAsS01NJTU19cyJ/7HHHuvWC0ybNs3Z4jcYDBiNRufvjEYjERER\np7TwjUZjpzOAk3VU7mSNjY3dqos3CAkJ8Yl4fCWODhKPZ/KUOIYNG0ZMTAy1tbVUVFTQ2tqKn59f\nj68F6PV65xDTgZCTk3NKWa/PWyorK53/zs/Pd95RN3nyZL788kusVis1NTVUVVWRmJhIeHg4gYGB\nFBUVoaoq27ZtY8qUKb19eSGEGHAajYbo6GgyMjKYMGEC/v7+XrmUZK/PV9555x0qKirQaDTExMTw\n61//GoD4+HiysrJYtGgRWq2W+fPnO4+ICxYsIDc3F7PZTGZmplzYFUJ4JUVRCA8PJzw8nOPHj3P4\n8GGam5u9ZjSQonrJoaqiosLdVXAZTzl17StfiaODxOOZvCWOuro6Dh8+THt7+xmvAQxkV88111zT\nZbnvjVMSQgg3GDp0KOHh4dTU1FBeXt7ni8D9yTfGJgkhhAdQFIWYmBgyMzOJiYnx2LWEJfELIYSL\naTQaRo0aRUZGBgEBAR63ipgkfiGE6CcBAQGkpaWRmJiIqqrYbDZ3VwmQPn4hhOh3kZGRDB06lEOH\nDnH8+HFUVXXr6B9p8QshxADQarUkJiaSkZGBVqt1a+tfEr8QQgyg8PBwMjIyiI6OdtvFX0n8Qggx\nwDou/qalpaHVarFarQP7+gP6akIIIZyCg4PJyMggNjZ2QFv/kviFEMKNNBoNI0eOJC0tDZ1ONyCt\nf0n8QgjhATpa/8OGDev31r8kfiGE8BCKopCQkEB6ejp+fn791vqXxC+EEB4mMDCQ9PR04uPj+6X1\nL4lfCCE8kKIoDB8+nEmTJrl82gdJ/EII4cH8/f1JTU1l7NixLpv2QRK/EEJ4OEVRiIqKIjMzk4iI\niD53/0jiF0IIL6HVahk7dizp6enO7p/eHAAk8QshhJcJDAwkLS2NpKQktFptj/v/+zw75+bNm/nr\nX//K66+/zpAhQwDYuHEjeXl5aDQa5s2bR0ZGBgAlJSXk5uZisVjIzMxk3rx5fX15IYQYtAwGA0OH\nDqW6upqjR492e9WvPrX4a2tr+f7774mMjHSWlZeXs337dlauXMnixYtZu3at81RkzZo1LFy4kJdf\nfpmqqip2797dl5cXQohBT1EUYmNjyczMZMSIESiKctYzgD4l/nXr1vHLX/6yU1l+fj7Z2dnodDqi\no6OJjY2lqKiIuro62traSExMBGD69Ol88803fXl5IYQQJ2g0GuLi4sjMzGTs2LEEBwefdtted/Xk\n5+djMBgYOXJkp/K6ujrGjRvnfBwREYHJZEKn02EwGJzlBoMBk8nU25cXQgjRhY4RQFFRUafd5oyJ\nf9myZdTX159SPnfuXDZt2sQf//hHZ5knLigshBDiVGdM/I899liX5UeOHKGmpoYHHngAAJPJxMMP\nP8zTTz+NwWDAaDQ6tzUajURERJzSwjcajZ3OAE5WUFBAQUGB83FOTg5xcXHdj8oLhISEuLsKLuEr\ncXSQeDyTr8TRYSDj2bBhg/PfqamppKamguoCd955p9rY2KiqqqqWlZWp999/v2qxWNTq6mr17rvv\nVu12u6qqqvrII4+ohYWFqt1uV5cvX67u2rWrW/t/7733ulXW0324YtvBVJefbn+253pS3buzbU9i\n60tderp9b/fd3ed5Yt27uw9v/C719O/Tl7qc7nkuWWz95EWD4+PjycrKYtGiRWi1WubPn+/8/YIF\nC8jNzcVsNpOZmcmkSZN6/Zqpqan9tn1/7run+rsu3vw+emtderq9J9Wlp9tLXVyzvcv33aPDiJv0\n9Gjn6XwlHl+Jo4PE45l8JY4OAxnP6V7LK+7c7c8WtTv4Sjy+EkcHiccz+UocHQYyntO9lqKqMhxH\nCCEGE69o8QshhHAdSfxCCDHIuDXx33jjjbzyyivOxzabjfnz5/Pss8+6sVauc+utt7q7Ci51tniW\nLl1KSUnJANWmd7755htuvPFGKioq3F2VPvvggw+47777eOCBB3jwwQcpLi52d5V6zWg08vzzz3Pv\nvfdyzz338NZbb51xvdl//OMfmM3mAaxh99x4442sW7fO+fjDDz/k/fffd2ONuubWxO/v7095ebnz\nD/j9998TERHRaXioN/OVODqcLR5viPfLL7/knHPO4T//+Y+7q9InhYWF7Ny5k+eee44XXniBxx9/\nnIiICHdXq1dUVeXFF19kypQprF69mtWrV9PW1sa777572uds2bKF9vb2Aaxl9+h0OvLz82lsbAQ8\n9zvh9q6ezMxMdu7cCTi+lNnZ2c7pH4qLi3n00Ud56KGHeOyxx5yttCVLllBaWurcx2OPPcaRI0cG\nvO7dsW/fvk5nMK+//jqff/45AHfddRcbNmzgoYce4v777/eKVuiZ4vF0bW1tFBcXM3/+fL766ivA\ncZf46eLZuXMnixYt4uGHH+aNN97wqDPR+vp6QkJCnFPwDhkyhKFDh1JSUsLSpUudd9J3TLmydOlS\n3nrrLR588EHuu+8+jzo72Lt3L3q9npkzZwKOycZuu+028vLyaG9vZ926dc4zm3/+85989NFH1NXV\n8cQTT/Dkk0+6t/I/odVqueSSS/jHP/5xyu9qamp44okneOCBB1i2bBm1tbW0tLRw1113Obdpa2tj\n4cKF2O32fq2n2xP/BRdcwPbt27FYLBw5cqTTBG/Dhw/nySef5LnnnuOGG25g/fr1AFx88cXOL2dF\nRQVWq5WEhAR3VL/HFEXp1AoIDQ3lueee4/LLL+fDDz90Y81656fxeLL8/HwyMjKIjIwkNDSUkpKS\nU+reEY/ZbGbNmjUsXryYZ599lsbGRo+KMz09HaPRyL333svatWvZt28fVquVN954g/vuu49nn32W\niy66yPmd6Yjp+eefZ8GCBfz5z392cwQ/KisrY8yYMZ3KAgMDiYyM5N///je1tbW88MILvPDCC0yb\nNo0rr7ySoUOHsnTpUh5//HE31fr0rrjiCrZt20ZLS0un8jfeeIOLLrrIGcebb75JUFAQI0eOdE5R\ns3PnTiZNmoRG07+p2e2JPyEhgWPHjjlPwU/W3NzMihUruO+++1i3bh3l5eUAnH/++ezcuRObzUZe\nXp6zpeCNpk6dCsDo0aM5duyYm2vj27788kuysrIAx2foyy+/7HI7VVWpqKggJibGOcPhyWeiniAg\nIIBnn32W3/zmN4SGhvLSSy/x6aefUlZWxrJly3jwwQf54IMPOs2PlZ2dDcCECRNobW09JTG5y+kO\nqKqqsm/fPi677DJnIuxY7MmTBQYGMmPGDD766KNO5UVFRUybNg2ACy+8kAMHDgA/Nn7B8Rm94IIL\n+r2OLpmyoa/OPfdc3n77bZYuXcrx48ed5e+99x4TJ07kgQce4NixYyxduhRwXBtIT08nPz+fr7/+\nmueee85NNT87jUbTKWH89IKUn5+fc7v+Pr1zhbPF46mampooKCigrKwMALvdjqIonHfeeV4ZDzj+\nFikpKaSkpJCQkMDHH3/MiBEjeOqpp7r1fE85g4mPj+frr7/uVNbS0oLRaCQ6OtqjDrjdddVVV/HQ\nQw9x0UUXdSrvKpbJkyezfv16mpqaOHToEGlpaf1eP7e3+MHRdXPDDTcwYsSITuWtra0MHToUgLy8\nvFOe8+abbzJ27FiCgoIGrK49FRUVRXl5OVarlebmZvbu3evuKvWJt8bz9ddfM336dHJzc8nNzeXP\nf/4z0dHR2O32U+JRFIW4uDiqq6udZ2Hbt2/3mEQJji7OyspK5+PS0lKGDx9OY2MjhYWFAFitVudZ\nMuBsVR44cIDg4GACAwMHttKnMXHiRMxmM1988QXgOCivW7eOmTNnkpGRwaeffupsFDU1NQGOVrWn\nnLF0ZciQIWRlZfHZZ585PzfJycnOs8z//Oc/TJgwAXCcvY0dO5Y333yTc889d0A+Z25t8XcEaDAY\n+NnPfuYs6yi/9tpryc3N5YMPPiAzM7PTGzJmzBiCgoJOOaJ6CpvNhp+fHxEREWRlZXHfffcRHR3N\n6NGju9zek5JKV3oaj6f58ssvmT17dqeyqVOnsn379i7j0ev1LFiwgOXLl+Pv78/YsWPdUe3Tamtr\n480336S5uRmtVktsbCy/+c1vuPTSS3nzzTdpaWnBbrdz9dVXEx8fDzjOLh966CFsNhsLFy50cwSd\n3X///axdu5a///3v2O12zjnnHObOnYtGo6GyspL7778frVbLpZdeyhVXXMGll17K8uXLMRgMHtXP\nf/L3+JprruHjjz92Pr7jjjt49dVX2bx5M6Ghodx5553O311wwQWsWrXK2avR7/X01ikbTCYTTzzx\nBKtXr3Z3VbpUWlrKmjVrePrpp91dFZfwtXi6o62tjYCAAADWrl1LXFwcV111lZtr1TtPPPEEt956\n6ykXUcXg5BF9/D21detW3n33XW677TZ3V6VL//rXv/jnP//J7bff7u6quISvxdNd//73v9m6dStW\nq5XRo0dz6aWXurtKQriE17b4hRBC9I5HXNwVQggxcNzS1VNbW0tubi4NDQ0oisIll1zCVVddRVNT\nE6tWraK2tpaoqCgWLVpEcHAwTU1NrFixgh9++IGZM2dyxx13OPe1dOlS6uvr0ev1ADz66KOEhoa6\nIywhhPAKbkn8Op2O2267jVGjRtHW1sZDDz1Eeno6n3/+Oenp6Vx33XVs2rSJTZs2ccstt+Dn58eN\nN95IWVmZcxx2B0VR+N3vficXrYQQopvc0tUTHh7OqFGjAMcY1uHDh2MymdixYwczZswAYObMmeTn\n5wOOG7bGjx/vvNlJCCFE77l9VE9NTQ2lpaWMGzeOhoYGwsPDAQgLC6OhoaFb+8jNzUWr1TJ16lR+\n8Ytf9Gd1hRDC67k18be1tbFixQpuv/32U+4i7O4NTffccw8Gg8G5ry+++ILp06f3R3WFEMInuG1U\nj9VqZcWKFUyfPp0pU6YAjlZ+xzSydXV1hIWFnXU/BoMBcHQZZWdne9R0s0II4YnckvhVVeW1115j\n+PDhXH311c7yyZMnO6db3rp1K+edd94Z92O3252TulmtVr799luvmZ5ZCCHcxS03cB04cIAlS5aQ\nkJDg7NK5+eabSUxM7HI4JzgWLWltbcVqtRIcHMyjjz5KZGQkS5YswWazYbfbmThxIrfddpvHz3sj\nhBDuJHfuCiHEICN37gohxCAjiV8IIQYZSfxCCDHISOIXQohBRhK/EEIMMpL4hRBikJHEL8QZ5Obm\n8u6777q7GkK4lCR+Ic5AUZRu3RC4dOlSPvvsswGokRB9J4lfiLPozj2Ocre48CZun5ZZCE9y6NAh\nXnvtNaqqqsjMzHSWNzc388orr1BcXIzNZiM5OZn/+Z//wWAwsH79evbv309hYSFvvfWWc5W4o0eP\n8sfIpZgAAAI4SURBVMYbb3Do0CFCQ0O58cYbycrKcmN0QjhIi1+IE6xWKy+88AIzZszgzTff5Pzz\nz+e///0viqKgqioXX3wxr776Kn/+85/R6/W8/vrrAMydO5cJEyYwf/581q1bxx133EFbWxtPPfUU\nF154IWvXruX3v/89a9eupby83M1RCiGJXwinwsJCbDYbV111FRqNhvPPP5/ExEQAhgwZwpQpU9Dr\n9QQEBPDzn/+cffv2nXZfO3fuJDo6mpkzZ6LRaBg1ahRTp07l66+/HqhwhDgt6eoR4oS6ujrn+g4d\nIiMjATCbzbz11lt89913NDU1AY6FhFRV7bJ//9ixYxQVFTFv3jxnmc1mk0WChEeQxC/ECUOHDsVk\nMnUqq62tJSYmhg8//JDKykqWL19OWFgYpaWlPPTQQ6dN/JGRkaSkpPDoo48OVPWF6Dbp6hHihKSk\nJLRaLVu2bMFqtfLf//7XuaJbW1sber2eoKAgmpqaeP/99zs9NywsjOrqaufjc889l8rKSr744gus\nVitWq5Xi4mKOHj06oDEJ0RWZj1+Ik5SUlPCXv/yl06ieYcOGcfnll/Pyyy/zww8/YDAYmDVrFmvW\nrGH9+vVoNBoKCwvJzc3l+PHjzJgxg9tvv52KigrWrVtHcXExqqoyatQofvWrXzFy5Eg3RykGO0n8\nQggxyEhXjxBCDDKS+IUQYpCRxC+EEIOMJH4hhBhkJPELIcQgI4lfCCEGGUn8QggxyEjiF0KIQUYS\nvxBCDDL/P/9vfh3YI5WFAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd38cdb9d90>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "arima = sm.tsa.ARIMA(ts, (3,0,0))\n", + "arima_fit = arima.fit()\n", + "\n", + "arima_fit.resid.plot()\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax = ts.plot(ax=ax)\n", + "fig = arima_fit.plot_predict(100, 200, dynamic=True, ax=ax)\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}