ml-finance-python
python scripts for finance machine learning
git clone https://9o.is/git/ml-finance-python.git
notebook.ipynb
(42487B)
1 {
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {},
6 "source": [
7 "# Quandl: US Gross National Product\n",
8 "\n",
9 "In this notebook, we'll take a look at data set , available on [Quantopian](https://www.quantopian.com/data). This dataset spans from 1947 through the current day. It contains the value for the United States gross national product (GNP) by the US Federal Reserve via the [FRED data initiative](https://research.stlouisfed.org/fred2/). We access this data via the API provided by [Quandl](https://www.quandl.com). [More details](https://www.quandl.com/data/FRED/GNP) on this dataset can be found on Quandl's website.\n",
10 "\n",
11 "### Blaze\n",
12 "Before we dig into the data, we want to tell you about how you generally access Quantopian partner data sets. These datasets are available using the [Blaze](http://blaze.pydata.org) library. Blaze provides the Quantopian user with a convenient interface to access very large datasets.\n",
13 "\n",
14 "Some of these sets (though not this one) are many millions of records. Bringing that data directly into Quantopian Research directly just is not viable. So Blaze allows us to provide a simple querying interface and shift the burden over to the server side.\n",
15 "\n",
16 "To learn more about using Blaze and generally accessing Quantopian partner data, clone [this tutorial notebook](https://www.quantopian.com/clone_notebook?id=561827d21777f45c97000054).\n",
17 "\n",
18 "With preamble in place, let's get started:"
19 ]
20 },
21 {
22 "cell_type": "code",
23 "execution_count": 1,
24 "metadata": {
25 "collapsed": true
26 },
27 "outputs": [],
28 "source": [
29 "# import the dataset\n",
30 "from quantopian.interactive.data.quandl import fred_gnp\n",
31 "# Since this data is public domain and provided by Quandl for free, there is no _free version of this\n",
32 "# data set, as found in the premium sets. This import gets you the entirety of this data set.\n",
33 "\n",
34 "# import data operations\n",
35 "from odo import odo\n",
36 "# import other libraries we will use\n",
37 "import pandas as pd\n",
38 "import matplotlib.pyplot as plt"
39 ]
40 },
41 {
42 "cell_type": "code",
43 "execution_count": 3,
44 "metadata": {
45 "collapsed": false
46 },
47 "outputs": [
48 {
49 "data": {
50 "text/html": [
51 "<table border=\"1\" class=\"dataframe\">\n",
52 " <thead>\n",
53 " <tr style=\"text-align: right;\">\n",
54 " <th></th>\n",
55 " <th>asof_date</th>\n",
56 " <th>value</th>\n",
57 " <th>timestamp</th>\n",
58 " </tr>\n",
59 " </thead>\n",
60 " <tbody>\n",
61 " <tr>\n",
62 " <th>0</th>\n",
63 " <td>1947-01-01</td>\n",
64 " <td>244.1</td>\n",
65 " <td>1947-01-01</td>\n",
66 " </tr>\n",
67 " <tr>\n",
68 " <th>1</th>\n",
69 " <td>1947-04-01</td>\n",
70 " <td>247.4</td>\n",
71 " <td>1947-04-01</td>\n",
72 " </tr>\n",
73 " <tr>\n",
74 " <th>2</th>\n",
75 " <td>1947-07-01</td>\n",
76 " <td>251.2</td>\n",
77 " <td>1947-07-01</td>\n",
78 " </tr>\n",
79 " <tr>\n",
80 " <th>3</th>\n",
81 " <td>1947-10-01</td>\n",
82 " <td>261.5</td>\n",
83 " <td>1947-10-01</td>\n",
84 " </tr>\n",
85 " <tr>\n",
86 " <th>4</th>\n",
87 " <td>1948-01-01</td>\n",
88 " <td>267.6</td>\n",
89 " <td>1948-01-01</td>\n",
90 " </tr>\n",
91 " <tr>\n",
92 " <th>5</th>\n",
93 " <td>1948-04-01</td>\n",
94 " <td>274.4</td>\n",
95 " <td>1948-04-01</td>\n",
96 " </tr>\n",
97 " <tr>\n",
98 " <th>6</th>\n",
99 " <td>1948-07-01</td>\n",
100 " <td>281.0</td>\n",
101 " <td>1948-07-01</td>\n",
102 " </tr>\n",
103 " <tr>\n",
104 " <th>7</th>\n",
105 " <td>1948-10-01</td>\n",
106 " <td>282.1</td>\n",
107 " <td>1948-10-01</td>\n",
108 " </tr>\n",
109 " <tr>\n",
110 " <th>8</th>\n",
111 " <td>1949-01-01</td>\n",
112 " <td>276.8</td>\n",
113 " <td>1949-01-01</td>\n",
114 " </tr>\n",
115 " <tr>\n",
116 " <th>9</th>\n",
117 " <td>1949-04-01</td>\n",
118 " <td>273.0</td>\n",
119 " <td>1949-04-01</td>\n",
120 " </tr>\n",
121 " <tr>\n",
122 " <th>10</th>\n",
123 " <td>1949-07-01</td>\n",
124 " <td>274.5</td>\n",
125 " <td>1949-07-01</td>\n",
126 " </tr>\n",
127 " </tbody>\n",
128 "</table>"
129 ],
130 "text/plain": [
131 " asof_date value timestamp\n",
132 "0 1947-01-01 244.1 1947-01-01\n",
133 "1 1947-04-01 247.4 1947-04-01\n",
134 "2 1947-07-01 251.2 1947-07-01\n",
135 "3 1947-10-01 261.5 1947-10-01\n",
136 "4 1948-01-01 267.6 1948-01-01\n",
137 "5 1948-04-01 274.4 1948-04-01\n",
138 "6 1948-07-01 281.0 1948-07-01\n",
139 "7 1948-10-01 282.1 1948-10-01\n",
140 "8 1949-01-01 276.8 1949-01-01\n",
141 "9 1949-04-01 273.0 1949-04-01\n",
142 "..."
143 ]
144 },
145 "execution_count": 3,
146 "metadata": {},
147 "output_type": "execute_result"
148 }
149 ],
150 "source": [
151 "fred_gnp.sort('asof_date')"
152 ]
153 },
154 {
155 "cell_type": "markdown",
156 "metadata": {},
157 "source": [
158 "The data goes all the way back to 1947 and is updated quarterly.\n",
159 "\n",
160 "Blaze provides us with the first 10 rows of the data for display. Just to confirm, let's just count the number of rows in the Blaze expression:"
161 ]
162 },
163 {
164 "cell_type": "code",
165 "execution_count": 4,
166 "metadata": {
167 "collapsed": false
168 },
169 "outputs": [
170 {
171 "data": {
172 "text/html": [
173 "275"
174 ],
175 "text/plain": [
176 "275"
177 ]
178 },
179 "execution_count": 4,
180 "metadata": {},
181 "output_type": "execute_result"
182 }
183 ],
184 "source": [
185 "fred_gnp.count()"
186 ]
187 },
188 {
189 "cell_type": "markdown",
190 "metadata": {},
191 "source": [
192 "Let's go plot it for fun. This data set is definitely small enough to just put right into a Pandas DataFrame"
193 ]
194 },
195 {
196 "cell_type": "code",
197 "execution_count": 5,
198 "metadata": {
199 "collapsed": false
200 },
201 "outputs": [
202 {
203 "data": {
204 "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0wAAAHYCAYAAAB+9WjLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdgFGXi//HP7qYQSG/0IggEaQm9iVIkBEVRERFBRPTu\nPEX0h8cBJ4iegOKhniiKIipFQQGxAYKKoEgzoUkvUhKSkE56Ntn5/cHdfuVgpSWZZPN+/cXOzs5+\nJiN3+fDMPI/FMAxDAAAAAIALWM0OAAAAAAAVFYUJAAAAAFygMAEAAACACxQmAAAAAHCBwgQAAAAA\nLlCYAAAAAMAFChMAuKH4+Hi1bNnygu0rVqzQqFGjnK8XLFiggQMHKiYmRn379tWECROUm5t70WPa\n7XbNnj1bt912mwYMGKB+/fpp7NixOnXqVJmdhysTJkxQly5dlJ2dfd723r176/Tp05f8/CeffOL8\nc0xMjNLT00s949atW9WvX7+LvhcREaF+/fopJiZG0dHRGjx4sDZv3nzN3zlnzhxNnDjxqj//+58L\nAOAcChMAVFEbN27UkiVLtGjRIq1evVqrVq1SXl6eXn755YvuP2HCBB04cEBLlizRqlWr9NVXX6lx\n48YaNWqU7HZ7uWa3WCyqUaOG3njjjSv+bEpKit577z3n69WrVys4OLg0412WhQsXavXq1frmm280\nadIkPfnkkxcUN4fDcUXHtFgsV52npKTE5bUHgKqMwgQAVdShQ4fUoEEDBQQESJK8vLw0ffp0jR8/\n/oJ9Dx8+rA0bNuill16Sr6+vc/+xY8fqyy+/lKenp6RzIzxvvfWWoqOjdfr0aZ0+fVqjR49W//79\nNXDgQK1cuVKSVFxcrH/84x/q37+/+vXrpzFjxignJ8fl9osZNWqU1q5dq99+++2i73/33XcaOHCg\noqOjddddd+nAgQOSpKFDhyohIUEDBgyQ3W5XRESEkpOTJZ0bcbv11lsVExOjv/71r84CM2HCBL3+\n+ut66KGH1Lt3bz300EMqKCiQJO3YsUN33XWXYmJidOutt17VSFG7du3UoEED7dq1S/Hx8erRo4de\neukljRgxQtK50ar/fseQIUP066+/SpIKCgr05JNPqnfv3hoxYoSSkpKcx+zdu7diY2PPex0XFydJ\nWrlypaKjoxUdHa3x48erqKhIo0aNUnZ2tgYMGKCEhIQrPgcAcFcUJgCoorp3765NmzZpwoQJ2rhx\no3JycuTr66vq1atfsO+2bdsUFRXlLEu/5+Pjc97rpKQkffPNN6pTp44mT56szp07a82aNZo7d66m\nTZumhIQE/fTTT0pISNCaNWu0du1aRUREaOfOnS63X0yNGjX02GOP6aWXXrrgveLiYk2cOFHPP/+8\nvvnmG/Xp08e534wZM1SnTh2tWrXKWfQkaefOnZo/f75z5KdOnTp65ZVXnO9/8803eu2117Ru3Tql\np6fr22+/lSRNmTJFo0aN0urVq/XII4/o2WefvYyf/oWKi4vl5eUlScrMzFTz5s21ePFi5ebm6skn\nn9TkyZO1evVqPfzwwxo3bpwMw9Dy5cuVlpamb7/9VrNnz9ZPP/103jEvNuIUHx+vmTNnatGiRfrm\nm2+Un5+vRYsWacaMGbLZbFq1apXq1q17VecAAO6IwgQAVVSLFi308ccfy+FwOJ8Jevzxx5WYmHjB\nvmfPnlVQUJDz9eHDhxUTE6OYmBjdeOONWrVqlfO9m2++WdK5Z542b96sYcOGSZLq1Kmjzp07a8uW\nLQoODtaRI0e0bt065eXl6bHHHlOPHj1cbr8Yi8Wiu+++W2fOnLmgKHh4eOjHH39UVFSUJKl9+/bO\nZ60Mw7jo8X744Qf179/feXve4MGDtWnTpvPOy9/fXzabTc2aNXM+K7VixQrdeuutF3zPldiwYYNS\nU1PVrl07SefK0y233CJJ2r17t2rVquU8l379+ikzM1Px8fH65Zdf1K9fP1mtVgUGBqpXr15/+D2G\nYWjTpk1q166dwsLCJEmzZs3SyJEjXf5cAKCq8zA7AACg9Fmt1ov+AlxSUiKr9f/+raxVq1aaOXOm\nJGnv3r3697//raeeekpLliw573MhISHaunWr83XTpk21evVqSedujSsqKnK+999b/DIzM2UYxnmj\nUv7+/kpPT1ebNm00efJkLVy4UH//+9/Vq1cvTZ061eV2Pz+/C87FMAxZLBZNnDhRzz33nD7//PPz\n3l+8eLFWrlypoqIiFRUVXfL5noyMDIWHh5+XNS0tTdK5cvb787DZbM7ni77++mstXLhQubm5V/TM\n0YgRI5zHqVevnt59913naJ3NZlONGjUkSenp6fL39z/vs35+fkpPT9fZs2fP+9n4+fm5nLTjvzIz\nM8/7zH9HtQAAF8cIEwC4oaCgIFkslgtGi44fP+683So2Ntb57I4ktWzZUuPGjdPBgwcvOF6XLl20\na9cupaSkXPCeq5GJoKAgWa1WnT171rktIyNDoaGhkqTo6GgtWLBA69evV0FBgebNm/eH213p2LGj\nGjdurI8//ti5LS4uTvPmzdPbb7+tNWvW6J///OclR1BCQ0OVmZnpfJ2ZmenM6kpycrImT56sadOm\nac2aNXrnnXcue6Tm95M+vPfee4qIiLisXIZhKCsrSyEhIfL39z/v5/v7SSN+X+qkc6OEFotFQUFB\nysjIcG7PyclxFkMAwIUoTADghnx8fDRo0CC9/vrrzhns9u3bp88//1zDhw+XJH355Zd69tlnnZMq\nFBcX6+uvv1bnzp0vOF6DBg00aNAgPfXUU85frouKirRo0SLt2LFD9erVu+AzHh4e6tGjh3O06uTJ\nk4qNjVW3bt20YsUKzZkzR9K5EanGjRvLarVesP266647b0TMlb/97W96++23lZeXJ8MwlJ6erpCQ\nENWuXVv5+fn67LPPlJ+f78yVl5enkpKS845x0003ad26dc5ysmTJEufthRcrQYZhKCMjQ9WrV1fj\nxo1VXFyspUuXSpLy8vIumflytW7dWqmpqc5nub7++mvVqlVL9erVU2RkpL7//ns5HA6lp6dr48aN\nzs+FhYVp//79kqRVq1apsLDQeZ5xcXFKSEiQYRh69tlntXz5cnl6esrhcFxyhAoAqhoKEwC4qWee\neUYBAQEaNGiQBgwYoH/+85+aNWuWmjVrJkmaNGmSrrvuOt19993q37+/+vfvr/T0dE2fPv2ix5sy\nZYpuuukmjRw5UjExMerfv7+2bdumxYsXq0OHDhf9zHPPPadt27YpJiZGjz/+uKZNm6aaNWuqT58+\n2rt3r6KjozVgwAAdPXpUo0aNumD7sWPHzls36vd+f4td/fr1NWjQIGVlZclisahnz54KDw9X3759\n9fDDD+vBBx+Un5+fxo4dq4iICAUEBKhHjx5KTEx0HqdNmzZ65JFHdP/99ysmJka5ubl66qmnnN/1\nv7f0WSwWRUREqGfPnoqOjtZ9992nPn36KDIyUg888MBFP3Ox7Jd6v3r16nrttdf0/PPPKyYmRkuW\nLNGrr74qSRoyZIj8/PzUt29fPfHEE4qOjnZ+7q9//avef/99DRw4UMeOHVPTpk0lSTVr1tTzzz+v\nkSNHqn///rJarXrwwQcVHh6u9u3bq1evXi4n2gCAqshilOFTnjNnzlRcXJyKi4v15z//Wa1atdL4\n8ePlcDgUFhammTNnysvLS1988YUWLFggq9WqIUOGaPDgwbLb7ZowYYISExNls9k0ffp01a9fXwcO\nHNDUqVNlsVjUvHlzTZ06taziAwAAAKjiymyEacuWLTpy5IiWLFmiefPmadq0aXr99dc1fPhwLV68\nWA0bNtTy5cuVl5enOXPm6IMPPtDChQv14YcfKisrS1999ZUCAwP10Ucf6S9/+Ytzatdp06bpmWee\n0ccff6zs7Ozzbj8AAAAAgNJUZoWpY8eOeu211ySdm7UnPz9f27dvV+/evSVJvXr10ubNm7V79261\nbt1avr6+8vb2VlRUlOLi4rRlyxb17dtXktS1a1fFxcXJbrcrISFBrVq1knRuEb6rWSAQAAAAAC5H\nmRUmm83mXPxw2bJluummm5SXl+dcJDA4OFhnzpxRamqqc80L6dzUtSkpKUpNTXWu+WG1WmWxWJSa\nmuqcrvb3xwAAAACAslDm6zB9++23WrFihd577z3169fPud3Vo1NXsv1yHr+KjY29zKQAAAAAqrL2\n7dtfsK1MC9OPP/6ouXPn6r333pOvr6+qV6+uoqIieXl5KTk5WeHh4QoPD1dqaqrzM8nJyYqMjDxv\nu91ul2EYCgsLO28tiv8e41IuduKuxMbGXtH+qJi4ju6B6+geuI7ugevoHriO7oHrWDZcDbSU2S15\n2dnZmjlzpubOnetcobxbt25as2aNJGnt2rXq2bOn2rZtqz179ig7O1u5ubmKi4tThw4d1L17d+e+\n69evV5cuXeTh4aHGjRs7T2bdunXq2bNnWZ0CAAAAgCquzEaYVq1apczMTI0dO1bSuTUlXnzxRT3z\nzDNaunSp6tatqzvvvFM2m03jxo3T6NGjZbFYNGbMGPn6+mrAgAHatGmThg0bJm9vb7344ouSzq0b\nMmXKFDkcDkVGRqpr165ldQoAAAAAqrgyK0z33nuv7r333gu2z58//4Jt0dHR5y22J52b6GHGjBkX\n7NukSRMtXry49IICAAAAgAtldkseAAAAAFR2FCYAAAAAcIHCBAAAAAAuUJgAAAAAwAUKEwAAAAC4\nQGECAAAAABcoTAAAAADgAoUJAAAAAFygMAEAAACACxQmAAAAAHCBwgQAAAAALlCYAAAAAMAFChMA\nAAAAuEBhAgAAAAAXKEwAAAAA4AKFCQAAAABcoDABAAAAgAsUJgAAAABwgcIEAAAAAC5QmAAAAADA\nBQoTAAAAALhAYQIAAAAAFyhMAAAAAOAChQkAAAAAXKAwAQAAAIALFCYAAAAAcIHCBAAAAAAuUJgA\nAAAAwAUKEwAAAAC4QGECAAAAUGVlnC3QZz8ccfk+hQkAAABAlXQkPlP/77UNmv/lXpf7eJRjHgAA\nAACoEH7cmaDXluyQvbhEDwxoISn7ovsxwgQAAACgStn3W5pmLvxFNqv0zKjOuqdPM5f7MsIEAAAA\noMowDEMLVu2XJE0e3UWtm4T+4f6MMAEAAACoMnYcTNHeY2nq0KLmJcuSRGECAAAAUEUYhqGFa86N\nLo2IaXFZn6EwAQAAAKgStvyaqCOnMtWjbR01rhtwWZ/hGSYAAAAAbulk0lm9/9U+nUg6K0+bVVk5\nhbJapPv7R1z2MShMAAAAANxKQWGxlqw7qJUbjqrEYSgkoJryi4tltVp0583Xq16432Ufi8IEAAAA\nwG0YhqEX3t+qXYdTFR7koz8Naq3OrWpf9fEoTAAAAADcRuyBM9p1OFWRTcP0j4c6qZrXtVUeJn0A\nAAAA4BYcDkMLV+2XxSKNvqPVNZclicIEAAAAwE1s2nVax05n6aaoempU279UjklhAgAAAFDpFZc4\ntGjNftmsFg2LvvxZ8C6FwgQAAACg0vtu+0mdTs1Vvy4NVTu0Rqkdl8IEAAAAoFKzFzu09NtD8vKw\naugtzUv12BQmAAAAAJXa+thTSsnIV3TXRgr2r1aqx6YwAQAAAKi0Skoc+vS7Q/KwWXV3r+tL/fgU\nJgAAAACV1oYd8UpKy1O/zg0UEuBT6senMAEAAAColEochpauOyQPm0V3925aJt9x7Ss5AQAAAEA5\nycop1Lsrf9WJpLNKychTbkGxors0VHhQ9TL5PgoTAAAAgEpj3ue/asOOePl4eygsyEdRNf10f//S\nW3fpf1GYAAAAAFQKe46k6oe4eF1fP1D/eqKnbFZLmX8nzzABAAAAqPCKSxx6a8VuWSzSo3e1KZey\nJFGYAAAAAFQCX2w8qlPJ2Yru0kjNGgSV2/dSmAAAAABUaGcy8vTx2oPyr+GlBwa0KNfvpjABAAAA\nqLAMw9CcZbtUUFSiUbe1lF91r3L9fgoTAAAAgArrh7h4xR44o8hmYerTsX65fz+FCQAAAECFlJld\nqHdX7lE1L5sevydSFkv5TPTwexQmAAAAABVOicPQWyt2KTvPrhEDWqhmcNksTHsprMMEAAAAoELJ\nySvSy4tiFXfwjFo0Ctat3RubloXCBAAAAKDCOJl0Vi+8v02JqblqHxGup4d3KLc1ly6GwgQAAACg\nQtj/W7qee2+LcvPtuqdPU93fv4WpZUmiMAEAAACoAHYcPKNpH2yTvdihp+5rp94dyn9GvIuhMAEA\nAAAwTaG9ROu2ntB7X+yVxSJNGtlRnVvVNjuWE4UJAAAAQLnLzivS5xuOatXPx5WdVyQfb5v+8WBn\ntW0WZna081CYAAAAAJSro/GZmv7BNp3JyJdfdS8N6dtMt3a/TsH+1cyOdgEKEwAAAIBy8/0vp/Tm\npztVVOzQvbc00+DeTVXNq+LWkoqbDAAAAIDbMAxDC1fv16ffHVaNah76+8iO6nRDLbNjXRKFCQAA\nAECZKilx6M1lu7Ru20nVDq2hqQ93UZ0wX7NjXRYKEwAAAIAyYy8u0UsLftHWvUm6vl6Ann24qwL9\nvM2OddkoTAAAAADKhGEYmv3JTm3dm6S2TUM16cFOql7N0+xYV4TCBAAAAKBMfPLdIa2PjVfzBkGa\nPLqLvD1tZke6YlazAwAAAABwPz/uTNCi1QcUFuSjfzzUqVKWJYnCBAAAAKCUnUrO1msfx8nH20NT\nRndRkF/FW1/pclGYAAAAAJSaEoehfy/ZoaJih54cGqVGtf3NjnRNKEwAAAAASs3nG47o4MkM9Yyq\nq25t6pgd55pRmAAAAACUilPJ2Vq05oACfb31p0GtzY5TKihMAAAAAK5Zob1Ery2Jk73YoUfvbqMA\n38qz1tIfoTABAAAAuCbFJQ69tGC7Dp3M1M3t67nFrXj/RWECAAAAcNUcDkOvfbxD2/clK7JZmJ4Y\nEml2pFJFYQIAAABw1d7/aq827IhXRMMg/ePBTvL0qJzrLblCYQIAAABwVfYeS9PKDUdVv6avnn24\ni6p5e5gdqdRRmAAAAABcseISh+Ys3yVJemJIlHyre5mcqGxQmAAAAABcsc83HNXJpGxFd2moiEbB\nZscpM+43ZgYAAACgzJQ4DJ1IPKuP1h5UgK+XRt56g9mRyhSFCQAAAMAl7TqUonlf/KqElBzZix2S\npMfvaSs/N70V778oTAAAAAD+UHJ6nmYs2K6CwmJdV8dfdcJ81bpJqG5uV8/saGWOwgQAAADAJXvx\nuUVpc/PtGjMkUv06NzQ7Urli0gcAAAAALr3/1V4dPpWp3h3q65ZODcyOU+4oTAAAAAAu6oe4eH35\n4zE1qOWnR+9qI4vFYnakckdhAgAAAHCBvcfS9O8lO1SjmocmPNDRLRelvRxlWpgOHDigvn37avHi\nxZKkCRMmaODAgRoxYoRGjBihDRs2SJK++OILDR48WEOGDNGyZcskSXa7XePGjdOwYcM0YsQInTp1\nynnMoUOH6r777tPUqVPLMj4AAABQJSWk5Gja+1tlGIYmjuyk+jX9zI5kmjKrifn5+XrppZfUo0cP\n5zaLxaKnn35aN910k3NbXl6e5syZo2XLlsnT01ODBw/WLbfcou+//16BgYGaNWuWNm3apFdeeUWv\nvvqqpk2bpmeeeUatWrXSuHHjtHHjRvXs2bOsTgMAAACoUnLy7Xpu3hZl59n1xJBItW0WZnYkU5XZ\nCJOXl5fmzp2r0NDQ87YbhnHe6127dql169by9fWVt7e3oqKiFBcXpy1btqhv376SpK5duyouLk52\nu10JCQlq1aqVJKl3797avHlzWZ0CAAAAUKHl5Nv13faT+teiWO37La1Ujvnuyj1KTM3V3b2u1y1V\nbEa8iymzESabzSabzXbB9kWLFun9999XSEiIJk+erNTUVAUHBzvfDwkJUUpKilJTUxUUFCRJslqt\nslgsSk1NVUBAgHPf4OBgnTlzpqxOAQAAAKiQCu0leuPTnfpp52kVl5xbRPZMRp5mjrnxmo67fV+S\nvv/llK6vF6ARMS1KI2qlV65Pbt1+++0KCgpSRESE3nnnHb3xxhuKioo6b5//HYH6o+2u9v1fsbGx\nV5TzSvdHxcR1dA9cR/fAdXQPXEf3wHWs/IpLDE18/VsdPl2gUH8PtbnOV4dPF2j/8XR9s36LQv09\nr+q4+UUOzfk6SVardEubatq5c0cpJ6+cyrUwde3a1fnnPn36aOrUqYqOjlZqaqpze3JysiIjIxUe\nHu7cbrfbZRiGwsLClJmZed6+4eHhl/ze9u3bX3bG2NjYK9ofFRPX0T1wHd0D19E9cB3dA9excjqd\nkqNjp7PUtH6QQgN99I/Z63T4dIHaNQ/XMw91kqeHTRt3xOvlRbFKyvNXdK8brvg7DMPQa0t2KDvf\noeExERrQp3kZnEnF5uofE8p8WvHfjwI98cQTOnjwoCRp27Ztatasmdq2bas9e/YoOztbubm5iouL\nU4cOHdS9e3etWbNGkrR+/Xp16dJFHh4eaty4sfNk1q1bx4QPAAAAcFuJqbka/8aPemnBL3p42joN\nm7xKe0/mq2XjEE18sKM8Pc49AtOlVW3V8PHU97+cVMl/btG7EkvWHnTeije4V9PSPo1KrcxGmHbu\n3KnJkycrLS1NNptNS5Ys0ZgxYzRx4kTVqFFDNWrU0PTp0+Xt7a1x48Zp9OjRslgsGjNmjHx9fTVg\nwABt2rRJw4YNk7e3t1588UVJ0qRJkzRlyhQ5HA5FRkaeN2oFAAAAuIusnEJNfXezsnKK1L9rI53N\nLdTBExkK9bNqyujOqub1f7/Ke3nadFNUXa36+bh2HEpRhxY1L/t7Pv3ukD5ae1A1g6tr0oOdZbOx\nVOvvlVlhioyM1JdffnnB9n79+l2wLTo6WtHR0edts1qtmjFjxgX7NmnSxLmuEwAAAOCOCu0lemH+\nVp1OzdXg3k018tb/u80uNjZW1atd+JxS304NtOrn4/p228nLLkyfbzyqBav2KyzIR9Me7a6wIJ9S\nOwd3QX0EAAAAKpi3l+/WgRMZ6hlV97Jnq7u+XqAa1fbX1r2JysopvOT+W39N1LzPf1WwfzW98Jdu\nqhlc/VpjuyUKEwAAAFCBbNuXpG+3n1TjugF6cmiUrFbLZX3OYrGoT8cGKi4xtPibA384o/SJpLOa\n9VGsvDxtevbhLqoT6lta8d0OhQkAAACoILLzivTGJzvlYbPq/93Xzjmpw+Xq17mBGtby0+qfj2vZ\n94ddfse0+duUX1iiJ4dGqXHdgIvuh3MoTAAAAEAFMXfFHmVkF2pYdHM1rO1/xZ+vXs1Tz/2pq0ID\nfbRg1X59u+3kee+fTsnRlLk/KzEtV0P6NtONkXVLK7rbKtd1mAAAAABc3M+7T2vDjng1axCou26+\n/qqPExLgo+f/1FXjZ/+o2Z/u1LZ9SbqxbV1l5xdp/pd7VVhUor4dG+j+6IhSTO++KEwAAACAybJy\nCjVn+S55elj15NB21zy1d/2afnr2kS56fekObd6TqM17EiVJNXw8NXZ4lG6MYmTpclGYAAAAAJO9\ntWK3snKK9NDAlqpf069UjhnRMFhv/q23TiRl68edCcrJK9I9fZopNJCpw68EhQkAAAAw0Y87ErRp\n12m1aBSs23s2KdVjWywWNartr0ZX8TwUzmHSBwAAAMAkaVn5emvFLnl52vTkfVGyXeYU4ig/FCYA\nAADABAWFxXr+va3KzrProdtuYC2kCorCBAAAAJQzh8PQrI9idSwhS/06N9SA7teZHQkuUJgAAACA\ncvbh1/u05dcktbk+VI/e3UYWC7fiVVQUJgAAAKAcfbPlhFb8cER1w3w1cWRHeVzjFOIoW1wdAAAA\noJzsOpyit5bvkl91T015uLN8q3uZHQmXQGECAAAAykH8mWzN+HC7LBZp0oOdmOShkmAdJgAAAKCM\n7f8tXf9a/Ity8+16cmiUWjUJNTsSLhOFCQAAACgjRfYSLVpzQCs3HJEkPTCghfp0bGByKlwJChMA\nAABQBnLy7Zo892cdOZWp2qE19OTQKN1wXYjZsXCFKEwAAABAKcsvLNZz727WkVOZ6tW+nv56d1tV\n8+ZX78qIqwYAAACUokJ7iV6Yv1UHTmTo5nb1NHZoO9msrLNUWTFLHgAAAFCK5q7Yrd1HUtW1dW09\nOTSKslTJUZgAAACAUnIi6ay+3X5SDWv56W/D28vGorSVHlcQAAAAKCWLVu+XYUgP3HqDPD1sZsdB\nKaAwAQAAAKXgwIl0bfk1SS0aBatji5pmx0EpoTABAAAA18gwDC1ctV+SNPLWG2Sx8NySu6AwAQAA\nANco9sAZ7T6SqvYR4WrZmLWW3AmFCQAAALgGh05maObCX2SzWvTAgBvMjoNSRmECAAAArtKR+ExN\neWezCouK9bfhHdS4boDZkVDKKEwAAADAVUhIydGUuZuVV2DXU/e1U/e2dcyOhDJAYQIAAACukGEY\nenv5bmXnFemxwW11c/v6ZkdCGaEwAQAAAFdoy69J2nk4Re0iwtWvc0Oz46AMUZgAAACAK1BkL9F7\nX/wqm9WiR+5oxRTibo7CBAAAAFyBzzYcUXJ6ngbe2Fj1wv3MjoMyRmECAAAALtPplBx9+t1hBfp6\na+gtzc2Og3JAYQIAAAAuQ2pmvp6Z+7MKi0o0+vaWquHjaXYklAMKEwAAAHAJWTmFmjz3Z6Vk5Gt4\nTASz4lUhFCYAAADgD5SUODR13hbFn8nRnTdfryF9mpkdCeWIwgQAAAD8gfWx8TpyKlM9o+pq1G03\nMCteFUNhAgAAAFwoKXHok28PycNm1ajbWlKWqiAKEwAAAODC+th4JablKrpLQ4UG+pgdByagMAEA\nAAAX8fvRpcG9m5odByahMAEAAAAX8UPcudGlfp0bMLpUhVGYAAAAgP9xNrdIH31z4D+jS8yKV5VR\nmAAAAIDfsRc7NP2DbTqTka97+jRVWBCjS1UZhQkAAAD4D8Mw9Oayndp7LE3d29bR0Fuamx0JJqMw\nAQAAAP/x2Q9H9N32U2paP1BPDo2S1co04lUdhQkAAACQdOB4uj5ctV8hAdX0zEOdVc3Lw+xIqAAo\nTAAAAKjdFcmSAAAgAElEQVTy8grs+tfiWBmGoXH3t1ewfzWzI6GCoDABAACgynt7xW4lp+dpcO+m\nat0k1Ow4qEAoTAAAAKjSfog9pfWx8WrWIFDDoiPMjoMKhsIEAACAKuvQyQzN/mSnfLw9NO7+9vKw\n8esxzsd/EQAAAKiSUjPzNe39rSoucWj8iA6qE+prdiRUQBQmAAAAVDkFhcX65/ytSj9bqIdub6UO\nLWqaHQkVFIUJAAAAVYphGHrj0106lpCl6C4NdfuNjc2OhAqMwgQAAIAqZe3WE9qwI17NGwbpz3e2\nkcXC4rRwjcIEAACAKuO301ma+9ke+fp4avyIDvL04Ndh/DH+CwEAAECVkFdg10sLtste7NBT97VT\neFB1syOhEqAwAQAAoEr44Ot9SkjJ1aCbmqhTy1pmx0ElQWECAACA29tzNFWrfz6uBrX89MCAG8yO\ng0qEwgQAAAC3VlBUrNlLd8pqkcbeG8VzS7gi/NcCAAAAt7Z4zQElpuXq9p5N1KxBkNlxUMlQmAAA\nAOC2jsZn6ouNR1U7tIbu7x9hdhxUQhQmAAAAuCXDMDT/y71yGNKjd7VRNS8PsyOhEqIwAQAAwC39\nsj9Zu4+kqkOLmopqHm52HFRSFCYAAAC4nZISh97/ap+sFunB25gVD1ePwgQAAAC3s27bSZ1KztYt\nnRuqYS1/s+OgEqMwAQAAwK2kZeVr8ZoDquZl07BoJnrAtaEwAQAAwG3k5Nv17DublZlTqPv7RyjY\nv5rZkVDJUZgAAADgFgrtJXph/ladSMrWbd2v0x09m5gdCW6AuRUBAABQ6eUV2PXyoljtPZam7m3r\n6OFBrWWxWMyOBTdAYQIAAECldio5W9M/2Kb4MzmKbBamccPayWalLKF0UJgAAABQKRmGoY07EvTm\nsl3KLyzWHT2b6MHbbpCHjadOUHooTAAAAKh0TiSe1Tsr92j3kVR5edr09P3tdVO7embHghuiMAEA\nAKDScDgMLVl3UEu/PSSHw1DHG2rq4TtaqU6or9nR4KYoTAAAAKgUCgqL9crHcdq8J1HhwdX16F1t\n1KFFTbNjwc1RmAAAAFDhJaTk6KUF2/Xb6bNq3SRUE0Z2lH8NL7NjoQqgMAEAAKDCyiuwa+m6Q/ri\nx6MqLjHUv2sj/fnO1kzsgHJDYQIAAECF9PPu03p7xW5lZBcqPLi6Rg9sqa6ta7O+EsoVhQkAAAAV\nSmZ2od7+bLc27TotTw+rhvVrrrt6N5W3p83saKiCKEwAAACoMA4cT9cL729VVk6RIhoG6Yl7o1S/\npp/ZsVCFUZgAAABQIfy8+7RmLY5VscPQQwNb6vaeTWSzcvsdzEVhAgAAQLkrspfo7RW7dfhUpuqG\n+aqGj6fWbTshb0+bJj/YienCUWFQmAAAAFCuiuwlmvHhdv2yP1k2q0XHE89KkoL8vDXl4S66vl6g\nyQmB/0NhAgAAQLn5fVlqHxGuSQ92UnZekRJTc9Wwtr/8qrO2EioWChMAAADK1OFTGVqx/ohOJWfr\ndGqu7MUOZ1ny8rQpJMBHIQE+ZscELorCBAAAgDKz91ianpu3WfmFJfLxtqlhbX+1vC5EDwxoIS+m\nCUcl8IeFKSsrS/Hx8WrSpImqVatWXpkAAADgBvYcSdVz721RcbFD40d0UI+2dVh0FpWOy8K0bt06\nTZ06VTVr1lR6erpmz56t1q1bl2c2AAAAVEL24hKt2XxCH3y9Tw6HQxNGdlSXVrXNjgVcFZeFad68\neVq5cqXCwsJ0+PBh/etf/9LcuXPLMxsAAAAqEcMwtCEuXgvXHNCZ9Dz5eHtowgOd1PGGWmZHA66a\ny8Lk5eWlsLAwSVLTpk2Vl5dXbqEAAABQ+WzYkaBZH8XJw2bVHT2b6J4+TRXg6212LOCaMOkDAAAA\nrllBUbE+/GqvPD2s+vf/u1n1a/qZHQkoFS4LU0pKipYtWybp3PDqf18bhiGLxaLBgweXW0gAAABU\nbJ9vPKrUrAIN7t2UsgS34rIwRUZGKjY21uXryylMBw4c0OOPP65Ro0bp/vvvV2JiosaPHy+Hw6Gw\nsDDNnDlTXl5e+uKLL7RgwQJZrVYNGTJEgwcPlt1u14QJE5SYmCibzabp06erfv36OnDggKZOnSqL\nxaLmzZtr6tSp1/YTAAAAwDXJOFugZd8dVoCvl+7p09TsOECpclmYXnzxxWs6cH5+vl566SX16NHD\nue3111/X8OHDFR0drVdffVXLly/XHXfcoTlz5mjZsmXy9PTU4MGDdcstt+j7779XYGCgZs2apU2b\nNumVV17Rq6++qmnTpumZZ55Rq1atNG7cOG3cuFE9e/a8pqwAAAC4eovWHFBBUYkeur2VqlfzNDsO\nUKpcFqaJEyf+4QdnzJjxh+97eXlp7ty5euedd5zbtm3bpueff16S1KtXL82fP1/XXXedWrduLV9f\nX0lSVFSU4uLitGXLFg0aNEiS1LVrV02aNEl2u10JCQlq1aqVJKl3797avHkzhQkAAMAERfYSfbhq\nn9ZuPaEGtfzUr1MDsyMBpc5lYRo0aJAsFosMw5AkWSwW5eXl6a233lJGRsYlD2yz2WSznb96c35+\nvjw9z/2rQ3BwsM6cOaPU1FQFBwc79wkJCVFKSopSU1MVFBQkSbJarbJYLEpNTVVAQIBz3/8eAwAA\nAOXrROJZ/WtxrI4nnlXdMF+NH9FBNpvV7FhAqXNZmDp37nze66+++kqzZ8/WnXfeqYceeuiav/i/\nRexatrva93/9/tmrstgfFRPX0T1wHd0D19E9cB3dQ2lcx7N5JZrzdZIK7IY6XF9D/dr5KzXhsFIT\nSiEgLgt/H8vPJacVP3jwoF544QWFhIToww8/VK1aV7/wWPXq1VVUVCQvLy8lJycrPDxc4eHhSk1N\nde6TnJysyMjI87bb7XYZhqGwsDBlZmaet294ePglv7d9+/aXnTE2NvaK9kfFxHV0D1xH98B1dA9c\nR/dQWtdx+gfbVGA39MigVrr9xialkAxXgr+PZcNVCXU5bpqdna0XXnhB48eP12OPPabXXnvtqsrS\n70eBunXrpjVr1kiS1q5dq549e6pt27bas2ePsrOzlZubq7i4OHXo0EHdu3d37rt+/Xp16dJFHh4e\naty4sfNk1q1bx/NLAAAA5WjzntPavCdRLRuH6Lbujc2OA5Q5lyNM0dHRqlWrloYPH67ExER99tln\nzvcsFotzQgZXdu7cqcmTJystLU02m01LlizRvHnzNHHiRC1dulR169bVnXfeKZvNpnHjxmn06NGy\nWCwaM2aMfH19NWDAAG3atEnDhg2Tt7e3c9a+SZMmacqUKXI4HIqMjFTXrl1L6UcBAACAP5Kbb9fb\nK3bLw2bVY4Pbymq1mB0JKHMuC9N9990ni8Wi5OTkqzpwZGSkvvzyywu2z58//4Jt0dHRio6OPm+b\n1Wq96Ex8TZo00eLFi68qEwAAAK6OYRh674tflX62UPf3j2BxWlQZLgvTmDFjtHbtWvXr10+SNHbs\nWKWkpMjHx0cvv/xyuQUEAACA+T797rDWbTupRrX9dXcvFqdF1eHyGaYFCxZo9uzZKi4uliQlJSXp\nySefVMuWLTV37txyCwgAAABzrf75Ny1cvV9hQT569uEu8vRg+nBUHS5HmFasWKEPPvhAHh7ndvHy\n8lKnTp0UFRWle++9t9wCAgAAwDzrY0/prRW7FeDrpX/+uZtCA33MjgSUK5eFqUaNGgoJCXG+Hjhw\noCTJ09NT1atXL/tkAAAAMI3DYeijtQe0dN0hVa/moamPdFXdMF+zYwHlzmVhys3NPe/1kCFDnH/O\nyckpu0QAAAAwVUFhsV75OE6b9ySqVkh1PfNQZzWs5W92LMAULm9Abd68uZYuXXrB9nfeeUedO3cu\n01AAAAAwR1ZOof7x9iZt3pOo1k1C9a8nelKWUKW5HGF6+umn9de//lUrV65Uq1atVFJSop07dyow\nMFBvvfVWeWYEAABAOUjJyNeUd35W/Jkc9e5QX2OGRMrDxgQPqNpcFqawsDB98skn2rx5sw4fPiwP\nDw8NGDBAHTp0KM98AAAAKAdJabma+OZPSs0q0KCbmmjUbS1ZmBbQHxQmSbJYLOrWrZu6detWXnkA\nAABQzgqKijXt/W1KzSrQAwNaaHDvprJYKEuAdInCBAAAAPdmGIbeXLZLxxPPKqZrI93Tp5nZkYAK\nhZtSAQAAqrCvN/2mH2Lj1bxBkB4Z1MrsOECFQ2ECAACoon7Zn6x5n/+qAF8vTRjZUZ4eNrMjARUO\nt+QBAABUQdv2JmnGh9tls1k14YGOCg30MTsSUCFRmAAAAKqYzXsSNXPhubL07OguatUk1OxIQIVF\nYQIAAKgiHIahT787pEWr98vL06ZnH6YsAZdCYQIAAKgCsnIK9dEPqTqSmKCQgGqaMLKjIhoGmx0L\nqPAoTAAAAG5u329pennhL0rNKlS75uH6f8PaKcDX2+xYQKVAYQIAAHBTDoehlRuO6MNV+yXDUO+2\n/ho7vIusVhalBS4XhQkAAMANJaXl6q3luxV38IyC/b319PAOKso8QVkCrhCFCQAAwI2UlDj0+caj\nWvzNQRXZS9QuIlxPDW2nQD9vxcaeMDseUOlQmAAAANxEfmGxpr2/VbsOpyrA10tj7mmrm9rVk8XC\nqBJwtShMAAAAbiA7r0jPzduigycy1OmGWho7NEr+NbzMjgVUehQmAACASi4ju0BT5m7W8cSz6tW+\nnsbeGyWbzWp2LMAtUJgAAAAqsbwCu6a+u0XHE8/qtu7X6ZFBrZnYAShFFCYAAIBKqrjEoRc/3K5j\nCVmK7tJQf7qzNc8rAaWMsVoAAIBKyDAMvfHpTu04lKKON9TUo3e1oSwBZYARJgAAgEomO69Ir328\nQ9v2JalZg0CNH96BZ5aAMkJhAgAAqEQOHE/XzEW/KCUjX22uD9X4ER1UzZtf6YCywt8uAACASuLH\nHQma9VGsDMPQsOgIDenbTDYmeADKFIUJAACgEliz+bjmLN8lH28PTRrZSW2bhZkdCagSKEwAAAAV\nmGEYWvb9YS1YtV/+Nbz03J+66vp6gWbHAqoMChMAAEAFdSYjT7M/2amdh1IUElBN//xzN9Wv6Wd2\nLKBKoTABAABUQD/EntKc5buVX1isDi1q6vF72iokwMfsWECVQ2ECAACoYDbtOq1XPo6Tj7eHxt4b\nqT4dG7DGEmASChMAAEAFsvdYmmZ9FKtqXjbN+GsPNa4bYHYkoEpjhTMAAIAKIv5Mtqa9v1UOh6EJ\nIztRloAKgBEmAACACmDTrtOa/elO5ebbNfbeKLVrHm52JACiMAEAAJiqoLBY737+q9ZuPSFvL5ue\nGBKpvp0amB0LwH9QmAAAAExyJD5T/1r0ixJSctW4boCevr8904YDFQyFCQAAoJw5HIY+33hUC1bt\nU3GJoUE3NdEDA1rI08NmdjQA/4PCBAAAUI5OJJ7Vm8t2af/xdAX6eeupoe3ULoLnlYCKisIEAABQ\nDnLyirR8/RF99sMRlTgMdWtTW4/e1VaBft5mRwPwByhMAAAAZSgpLVdf/HhM67aeUEFRicKDfPSX\nu9qo4w21zI4G4DJQmAAAAMpARnaBlqw9qDVbTsjhMBQSUE339WuuAd2uUzVvfgUDKgv+tgIAAJQi\nh8PQih+O6JNvDyq/sER1QmtoaL/mujGyrjxsVrPjAbhCFCYAAIBSUmQv0asfx+mnXacV6OutB29r\nqX6dG1KUgEqMwgQAAFAKsnIKNe39bdp/PF03XBesf4zqLP8aXmbHAnCNKEwAAADXwOEwtHFHvD74\nep/SsgrUM7Kuxg6NkpcnayoB7oDCBAAAcJV+O52lNz/dpYMnM+TpYdXw/hG6p08zWa0Ws6MBKCUU\nJgAAgKuw61CKXnh/qwqKStS9bR2Nuq2lagZXNzsWgFJGYQIAALhCP+8+rZcXxUqSJozsqO5t6pic\nCEBZoTABAABcJsMw9NVPv2ne53vk5WnTM6M6q22zMLNjAShDFCYAAIDLUFBUrDeX7dIPsfEK8PXS\nlNFd1KxBkNmxAJQxChMAAMAlJKbmavoH23Q88ayaNQjUhAc6KSzIx+xYAMoBhQkAAOAPbNuXpFcW\nxyq3oFgxXRvpkUGt5OnBlOFAVUFhAgAAuIjiEoeWrjukJesOysvDqrH3RqlvpwZmxwJQzihMAAAA\nv2MYhrbuTdIHX+1VQkquwoOra9LIjmpSL9DsaABMQGECAAD4j0MnMzT/y73aeyxNVqtFMd0aaURM\nC/lV9zI7GgCTUJgAAECVl5SWq4Wr9mvjzgRJUueWtTTy1htUv6afyckAmI3CBAAAqqQSh6G4A8la\n9fNxxR5IlmFI19cP1EMDW6p1k1Cz4wGoIChMAACgyjmTnqcZC7bryKlMSVKzBoG6o2cT9WhbV1ar\nxeR0ACoSChMAAKhSdhw8o5cXxSo7r0g3RtbVXb2u1/VM6ADABQoTAACoEuzFDn363SEtXXdQVqtF\njw1uq+guDWWxMKIEwDUKEwAAcHuHTmbo9aU7dCIpW6EB1fT3kR0V0TDY7FgAKgEKEwAAcFsOh6El\n6w5q6bqDchhSTNdGGnnrDarh42l2NACVBIUJAAC4pZy8Is36KE6/7E9WeHB1PTk0itnvAFwxChMA\nAHA7h09laObCX5SUlqd2zcP19PD2LD4L4KpQmAAAgNsocRhasf6wFq85oBKHoXv7NtN90RGyMVU4\ngKtEYQIAAG7h0MkMzf9yr/YeS1OwfzU9dV+UIpuFmx0LQCVHYQIAAJXawRPp+njtQcUeOCNJ6tq6\nth6/J1L+NbgFD8C1ozABAIBKaf9v6fp47QHtOJQiSWrVJET39Wuu1k1CWVsJQKmhMAEAgErlt9NZ\n+uCrfYo7eG5Eqc31oRr6n6IEAKWNwgQAACo0wzCUk29XYmqu1mw+rm+3n5RhSG2bhuq+fhFq2TjE\n7IgA3BiFCQAAVBgOh6Ffj6Uq7sAZJablKiktT8lpucotKHbu06CWnx4a2FLtI2qamBRAVUFhAgAA\npsvKKdRnPxzRD3HxSssqcG738rSpVkh1tQyuoVoh1dW0fqBujKwrm81qYloAVQmFCQAAmMbhMLR2\n6wl9+PU+5eTbVaOah/p1bqgebeuoUW1/Bfp5M4EDAFNRmAAAgCnSzxboxQ+3a//xdPl4e+iRO1qp\nf9dG8vK0mR0NAJwoTAAAoNydSs7Ws+9uVkpGvrq1qa0/DWqtkAAfs2MBwAUoTAAAoFz9ejRV097f\nppx8u4bHRGhIn2bcdgegwqIwAQCAMldc4tCWXxO1+ufj2n0kVTarRWPvjVLfTg3MjgYAf4jCBAAA\nytS2fUl657M9Sk7Pk8RCswAqFwoTAAAoE2cy8vTuyj3a8muSbFaLbu1+nW7tfp3q1/QzOxoAXDYK\nEwAAKHU/7kjQm8t2KregWC0bh+jRu9uoYS1/s2MBwBWjMAEAgFKTX1isuZ/t1nfbT6mal02P3xOp\nfp0bMKkDgEqLwgQAAEpFYmquXnh/q04mZev6egF6engH1Q3zNTsWAFwTChMAALhmOw6e0cyFvygn\n367bul+nh25vJU8Pq9mxAOCaUZgAAMBVMwxDn/1wVB9+vVdWq1Vj741U304NzY4FAKWGwgQAAK5K\nob1Eb3yyUz/ExSvY31sTH+ykiIbBZscCgFJFYQIAAFfsVHK2Zn0Uq6PxWWreMEiTHuykYP9qZscC\ngFJHYQIAAJfNXlyiT787rE+/O6ziEodu6dRAj97dRp4eNrOjAUCZoDABAIDLcio5WzM+3KZTyTkK\nCaimP9/ZRl1b1zY7FgCUKQoTAAC4pEMJ+Zq5YqPyCooV062RHrz1BlWv5ml2LAAoc+VemLZu3aqx\nY8eqadOmkqTmzZvr4Ycf1t/+9jc5HA6FhYVp5syZ8vLy0hdffKEFCxbIarVqyJAhGjx4sOx2uyZM\nmKDExETZbDZNnz5d9evXL+/TAACgSii0l2jF94f10YY0eXlYNe7+9rq5XT2zYwFAuTFlhKlz5876\n97//7Xw9ceJEDR8+XNHR0Xr11Ve1fPly3XHHHZozZ46WLVsmT09PDR48WLfccou+//57BQYGatas\nWdq0aZNeeeUVvfrqq2acBgAAbsteXKK1W07ok+8OKf1sofyr2/Tcn3ro+vqBZkcDgHJlyopyhmGc\n93rbtm3q3bu3JKlXr17avHmzdu/erdatW8vX11fe3t6KiopSXFyctmzZor59+0qSunbtqri4uHLP\nDwCAOzuTnqenXt2gtz/bo9yCYt3Tp6n+ElOTsgSgSir3ESaLxaKjR4/q0UcfVVZWlh577DHl5+fL\n0/PcfdDBwcE6c+aMUlNTFRz8f2s5hISEKCUlRampqQoKCpIkWa1WWSwWFRcXy8ODx7EAALhWR+Iz\n9fy8LcrILlR0l4Ya3r+FAv28FRsba3Y0ADBFubeMhg0b6vHHH1dMTIxOnTqlESNGqKSkxPn+/44+\nXe3237vS/5Hn/xTcA9fRPXAd3QPXseIzDEO/nsjXF9syZC821L9dgLo0LtHRQ7869+E6ugeuo3vg\nOpafci9MNWvWVExMjCSpfv36Cg0N1d69e1VUVCQvLy8lJycrPDxc4eHhSk1NdX4uOTlZkZGR5223\n2+0yDOOSo0vt27e/7HyxsbFXtD8qJq6je+A6ugeuY8V38ES63vtir/YfT5eXh1WTHuygrq3rnLcP\n19E9cB3dA9exbLgqoeX+DNOXX36pN954Q5KUlpam9PR03XXXXVqzZo0kae3aterZs6fatm2rPXv2\nKDs7W7m5uYqLi1OHDh3UvXt3577r169Xly5dyvsUAABwC2dzi/Takjg9/fqP2n88XV1b19bsp3td\nUJYAoCor9xGm3r17a9y4cbrvvvvkcDg0depUtWjRQn//+9+1dOlS1a1bV3feeadsNpvGjRun0aNH\ny2KxaMyYMfL19dWAAQO0adMmDRs2TN7e3nrxxRfL+xQAAKjUDMPQxh0JevfzPcrKKVLjOgF6ZFAr\ntWoSanY0AKhwyr0w1ahRQ2+//fYF2+fPn3/BtujoaEVHR5+3zWq1asaMGWWWDwAAd+VwGNq6N0mf\nfHtQR+Kz5OVp06jbbtAdPZvIZjNl4lwAqPCYWg4AADdmGIaOJ57Vtr1J2rgzQSeTsmWxSN3b1NHI\nW29Q7dAaZkcEgAqNwgQAgBsqspfou+0n9dmGo0pMzZUk2awW3dyunu7p01QNavmbnBAAKgcKEwAA\nbqKgsFiHTmVoz5E0fbPluDKyC+XpYdWNkXXVuWUttW9RU74+nmbHBIBKhcIEAEAlVuIwFLs/WV/9\ndEy7jqTK4Ti3PqGPt4fu7nW97ujZREH+1UxOCQCVF4UJAIBKKCevSGu3ntSqn39TcnqeJKlp/UC1\nahKqFo2C1fr6UEaTAKAUUJgAAKhEktPz9Ol3h7Q+Nl5F9pL/3959x0dV5/sff81MZtJ7QkhCrypd\nqlJ1gwqo4KKrglhWvNe+6z5W4aFeC3rVVVkRV3+uBaUpd23g6iqCBVQEpEjvJAHSG8kkk+nn90cg\nC0IwuMAU3s/Hg0dmJmdmPmc+OTPz5nzP92CzWrhkYFsuH9Ke9lmJgS5PRCTsKDCJiIiEAK/Pz8Jl\ne3j3ix24PT5apMQw5sJ2jBzYlvgYW6DLExEJWwpMIiIiQczvN1i9tZi5n21jX7GdpLhI7rq6F8PP\nb4XFbAp0eSIiYU+BSUREJAj5/Qbfbyjk/5buIP/QuZMuu6AdN40+lzjtURIROWMUmERERILM9vxK\n3li4mR37qjCbTYzo24prLta5k0REAkGBSUREJAgYhsGWvRV8+n0u320oBGBo72wmjTqXzLTYAFcn\nInL2UmASEREJILfHx+cr8/jX93kUlNUC0LFVIreN7UG3DqkBrk5ERBSYREREAsDj9bNkdT7/t2Qn\nlTVOrBFmhvdpxaWD2tK9YyomkyZ0EBEJBgpMIiIiZ9iBUjt/mbOGvKIaIm0Wxl/UiatGdCIxLjLQ\npYmIyM8oMImIiJxB3/5UwEv/WE+9y8elg9oy8bJzSI6PCnRZIiLSBAUmERGRM8Dj9THr4y188n0u\nUTYL99/Ql2F9WgW6LBER+QUKTCIiIqdZaaWDZ+b8yK79B2nTMp6pN/andUZ8oMsSEZFmUGASERE5\njX7cWsxf31lHbb2Hi/u15o7f9iQqUh+/IiKhQu/YIiIip4HP52fe59t5/6tdWCPM3H1Nby4Z2Eaz\n34mIhBgFJhERkVOsssbJc/PWsHlPBZmpsUy9qT8dshMDXZaIiPwKCkwiIiKn0MbdZTw3by0H7S4u\n6JHJH67tQ2y0NdBliYjIr6TAJCIicgr4/QbvfbWTdz7fjslkYvLY7lw5tIOG4ImIhDgFJhERkf9Q\nTZ2bv76zlrXbS0lLjGLKjf05p11KoMsSEZFTQIFJRETkP7A9r5K/zF1D+cF6zu/agj9NOJ/EuMhA\nlyUiIqeIApOIiMivkF9cw7tf7OD7DYWYTXDDZedwzW+6YDZrCJ6ISDhRYBIREWmmovI61u0oZc22\nEtZuL8EwoHPrJH5/RTe6d0wLdHkiInIaKDCJiIg0obiiju83FLJzfxU786sor3Y2/q5Tq0Suv+Qc\n+p+XoYkdRETCmAKTiIic1Xw+P/tLa9lfbMdmNZMQG4nb4+PTFbms3FyEYTQslxQfyQU9MunTtQXn\nd21BRkpMYAsXEZEzQoFJRETOSrmF1byxaDPb8irxeP3HXaZTq0QuH9KBHp3SSE+K1p4kEZGzkAKT\niIicVXx+g4++2c38z7fh9Rl0yE6kY3Yi7TIT8PoMaupcuDw+BvfMoluHVIUkEZGznAKTiIiEPafL\ny/qdZWzZW8G6HSXsL6klJSGSe37Xh37nZgS6PBERCWIKTCIiEtYqqut58JXvKSyvAyDCYmZE31bc\nNrYHCbG2AFcnIiLBToFJRETCVllVPQ/9v+8pqqjj0kFtGX5+K7q2ScZmtQS6NBERCREKTCIiEpZK\nqyrpSSYAACAASURBVBw89P++p7jCwbU5XZh42Tk6HklERE6aApOIiISd/OIaHnvtB8qrnVw3sisT\nLu2qsCQiIr+KApOIiISVLXsreGLWKurqPdw05jyuvrhzoEsSEZEQpsAkIiJhobLGyeKV+bz35U78\nfoP7rj+fi/u1DnRZIiIS4hSYREQk5JRUOvjyx33YHW4MoyEsrd5SjM9vEBsVwQM39uf8ri0CXaaI\niIQBBSYREQkZ+cU1fPDVLpatL8DvN476XZuW8YwZ3J4R57ciJsoaoApFRCTcKDCJiEhQ8/kN1m4r\n4Z/f7eWnnWUAtM6IZ/xFneiQnYjJZMIWYSYzLVYTO4iIyCmnwCQiIkHJMAx+3FbCrI83U1DWcNLZ\n7h1TGTusIwPOa4nZrHAkIiKnnwKTiIgEnfyiGt78eDPrd5ZhNpsYOaANVwztQPusxECXJiIiZxkF\nJhERCRp7C6r5v6U7WLGxCIDeXdKZPLY7bVsmBLgyERE5WykwiYhIQNkdbr7fUMg36w6wZW8FAJ1b\nJ3H9JV3pd26GjksSEZGAUmASEZGAcDg9vLN4B59+vxevr2HGu56d0hh/UWf6dE1XUBIRkaCgwCQi\nImeUYRh8t6GQNxZtprLGScvUGC4b1I6hfbJpkRwT6PJERESOosAkIiJnhNfnZ/n6Aj76Zjd5RTVY\nI8xMuKQr4y/ujM1qCXR5IiIix6XAJCIip93uAwd5+u3VlFbVYzabGNY7m4mjziErLS7QpYmIiJyQ\nApOIiJxWe4qcvP/BdzjdPi4f3J5xIzqRkaKhdyIiEhoUmERE5LRwurx8tXY/878px2IxM2VSfwb3\nygp0WSIiIidFgUlERE6ZyhonP24tZuXmYjbsKsPj9RNlNfHobRfQvWNaoMsTERE5aQpMIiLyH3G6\nvCz9cR/frD3Ajn1Vjbe3bRnPwO6ZtIypUVgSEZGQpcAkIiK/SnWti0+/z+WT73KxO9yYzSZ6dExj\nYPeWDOzWkpapsQCsXbs2wJWKiIj8egpMIiJyUkoqHSxctpsvVu3D7fERF23l2pFduHxwB5LiIwNd\nnoiIyCmlwCQiIr/I5zdYv6OUxSvzWL21BL/fIC0pmquGd2TkwLZER+rjREREwpM+4URE5LgMwyC3\nsIbl6w+w/KcCyqrqAeiQncjYYR0Z1iebCIs5wFWKiIicXgpMIiICNASkkkoHW3Mr2LK3kk27yymq\nqAMgOtLCpYPacumgtnRqlYTJZApwtSIiImeGApOIyFnM5fHx/YZC1m4rYUtuBRXVzsbfRUdaGNwz\ni2F9sul7bgaRVksAKxUREQkMBSYRkbPQ/hI7n6/M46sf91Nb7wEgMc7GBT0y6dYhlW7tU2mflYBF\nQ+5EROQsp8AkInKW8Hh9/LCpiM9+yGPzngoAkuIiueY3nbmob2tatYjTUDsREZGfUWASEQlzReV1\nLF6Zx5LV+6ipcwPQq3Mal13QjoHdMrFGaC+SiIhIUxSYRETChN9vYHe4qaxxUlrpYPPeCn7aWUZe\nUQ0A8TE2rhrRicsGtSUrPS7A1YqIiIQGBSYRkRDl8/nZV2Jn055yNu4qZ9OechxO71HL2CLM9OmS\nzsX923Bhj0xsmrhBRETkpCgwiYiECJfHx5a9FazbXsr2vEpyC6txe/2Nv89Mi6VX53RSEqJISYii\na9tkzm2XopAkIiLyH1BgEhEJQk63l427y9m8p4LiijpKKh0cKLE3BiSL2UTbzAQ6ZidybrsUenVO\np0VKTICrFhERCT8KTCIiAebzG+QWVLOvpIYDpbXkFtawcXc5bo+vcRmb1UJ2izh6d2nB+V3TOa99\nqvYciYiInAEKTCIiAWB3uPlhUxFrt5ewYVc5dYfOhXRYm5bx9D83g77nZtCqRRxJcZGa8ltERCQA\nFJhERM6QKruTDTvL+G5DIWu3l+D1GQC0SIlhSK8sOmYnkt0ijtYt4klOiApwtSIiIgIKTCIip4XT\n7WX3/oPkF9vJL6phW15l4/TeAO0yExh+fisu7JFJZlqs9h6JiIgEKQUmEZFTwO832FtYzU87y1i/\no5StuZV4ff+ewc4WYaZ3l3R6d06n37kZtM1MCGC1IiIi0lwKTCIiJ8Hp8lJQVktheR0V1U6qapyU\nVDnYtLucmjp343IdshPp2SmN9lmJtG0ZT+uMeE3SICIiEoIUmEREmlDrcLNqSzE79lVRUFpLQVkt\nFdXO4y6bmhjFb/q3pk+XFvTqnE5SfOQZrlZEREROBwUmETlruT0+yqvrKalwUFLpoMruwuvz4/P5\nyS+289PO0saJGQDSkqLp1TmN7PQ4stPjSE+OJjm+4SSx6cnROg5JREQkDCkwiUjYMQyD2noP5Qfr\nqah2UlHtpLK6nvJqJxXVh2+rx+7wnPBxOmQlMqR3Fud3bUF2ehxRkXrLFBEROdvo019EQpLX56e0\nykF+UQ15hTUUlNVRXl1P5aEw5Pb6m7xvdGQEqYlRdMxOIiUxipYpMWSkxpCaEE1EhBmLxURSXCQt\nU2PP4BqJiIhIMFJgEpGg5fb62ZHfMB13SaWD0sp6SqsclFU5qKxx4jeOXt5kgqS4SNpkJpCaEEVq\nYhSpidGHfv77ckyUNTArJCIiIiFHgUlEAsowDOqcXsoP1lNW5WB/iZ09BdXkFlZzoLQWwyg8anmz\nCVKTojmnXQoZKTG0bZlAu6wEWreIJyUxigiLOUBrIiIiIuFIgUlETinDMKh3eTlod1Fld3Gw1kV1\nrYuDdhc1dW5cbh9uj49ap+dQSKqn3uU95nGiIyNonWajZ9dsOmQlkpkWS4vkGFITo7AoFImIiMgZ\nosAkIifF5fFRUFrLvhI7+0vslFY5qKl1U13notruorrOjecExw8dKTbaSkZKDGlJ0aQnR5OeFE1W\nehwdsxNpkRzD+vXr6Nu352leIxEREZGmKTCJyFE8Xl/jzHINs8w1zC5XXFHHgZJaiivrMIxj7xdl\ns5AQF0n7rAQSYiNJioskKf7Qv0OXE+MiibRasFnNxERZidascyIiIhLk9G1FJMz5/QZ1Tg919R5q\nHYd+Hnnd6cHucFNS4eBAWS1lVY7jBiKAxDgb3Tqk0jojnjYZ8bTOiKdlaiyJsTZNuS0iIiJhSd9w\nREKM32/gdHupdXiocbipqXNjrzv084jrB2tdlFXVU15d3+whcsnxkZzXPpUWydGkJUWTmhhNWmIU\naUkN1xPjIk/z2omIiIgEFwUmkQDw+w0cTg81de4mQ8/hy3X1HpwuH/VuL06XF6fb1+znSY5vGCKX\nHB9FXIyVuGgbsdFWYqMjiIs+8rqV9KRoYqM13baIiIjIkRSYRA7x+Q1cbi8+v4HX58fna/jp9fmp\nrnVTZXdSbXfhMwxMmDCbAJMJkwlMHLoM+A0Dt8eHy+Oj3ultDD9HhqFah/uYcwg1JToygujICGKj\nGk62Gh0ZQZQtgrgYKwmxNhJibCTE2oiPPfTz0PWEWBvWCMvpe8FEREREzgIKTBJSDMPA5fZR7/JS\n7/aCAZE2C1G2CKJslmOmm/b5DWrqXP+e4tp++LKTg7X/vt4w5bWr2SHm1zCbIC6mIdBkp8cdFW6O\nF3biY2zEx1g1hbaIiIhIACkwyWllGAYujw+H00tdvQeH00Od04vD6aHe6T00zMyH0+2l3tVw+XAY\nch6+3jgUrWE4WlMTEgBYI8xE2Sy4PV78/yhs1rE70ZERJMdHkpUeS0yUFYvZRESEmQizGYvFRITF\nTEKsjeSESJLjojBbTGCAgYFhNKyjYYDRsMKYTCZsVguRVgsxURGNYSg2yorZbDplr62IiIiInH4K\nTGHK728IKk63F5e7YXjYz3+6PccPH6bjfKf/+U1Ot+/f4ae+YaY1h9PbEIych4JRfUMw8v3K3TYm\nE0TZIoiOtDSEmoSoxuFpUTZL45TULrcPp9t3KFA1hCqX00lSQhw2q4WEWFvj9NbJ8UdOdx1FUnzD\nNNciIiIiIsejwBRkfD4/tfWeI457cVFT56GmzoXd4Wnc09IQhg6Fn8MhwePD6Wq47m7mrGinQ0PA\nsZIUbyMrPZbYKCsxURHERluJibISGxVBzKHboiIjiLZFEHUoFEUdcTnSasF0vPTWDGvXrqVv376n\neM1ERERE5GyjwHQCh4eTudw+/IeGXZkAq9WCLcKMNcJ83C/0hmHg9Rn4Dk0Y4PH58Xj9jee9OVjr\noqTSQWmlg/Lq+sbZ0Wrq3NTWe066zoZjeBqGgCXFRxJli2k8rifSaiHSdujfocuHb7dZj63/+MPd\njGOWibRZjhuEog8NaRMRERERCQdnRWD6as0+PF4/Xu+/w4vL7WscRtZwbI0Xh8tDVXUdfPI59YeO\nqznR8TLQcMyM7dCQroaZ1fx4fSc3BM1iNpEQayMlMYp2WQmHDvqPPM4kANbGvTBHhqBfuxdGRERE\nRERO7KwITC+8u75Zy0XZLESYDeLjIkmKi2ocGmazWrCYTZhNJvyGgcfbELrc3objgNyehuFvEYcm\nCDg8YUBEhJkIiwmLxYzVYm44702MjfhYKxnJMWSkxpKWFE1sVIRCj4iIiIhIEArZwPTUU0+xceNG\nAB566CF69OjR5LL3/q43EYeG0EVYzIdmUosg5tCxNLFRDRMJWCxmHfsiIiIiIiKNQjIwrV69mn37\n9rFgwQL27NnDQw89xIIFC5pcfuTAtmewOhERERERCRcheUbMlStXkpOTA0DHjh2prq6mrq4uwFWJ\niIiIiEi4CcnAVF5eTnJycuP1lJQUysrKAliRiIiIiIiEo5AckvdzhmGccNKEtWvXntTjnezyEpzU\nx/CgPoYH9TE8qI/hQX0MD+rjmROSgalFixaUl5c3Xi8tLSU9Pf24y2oCBxERERER+bVCckje4MGD\nWbx4MQBbtmwhIyODmJiYAFclIiIiIiLhJiT3MPXp04du3bpx3XXXYbFYeOSRRwJdkoiIiIiIhCGT\nYRhGoIsQEREREREJRiE5JE9ERERERORMUGASERERERFpggKTiIiIiIhIExSYREREREREmmB57LHH\nHgt0EWdKTU0Nr7/+Oh6Ph7i4OKKjo3/xpLcSfNTH8KA+hg/1Mjyoj+FBfQwP6mNwOWtmyVu6dClv\nv/02PXv2BKCyspJnnnkmwFXJyVIfw4P6GD6WLl3KW2+9Ra9evQD1MlRpmwwP6mN4UB+DT0ieh+lk\nHDx4kKSkJA4cOMDYsWO55ppr2L17d+OJbwEl9hBQXFxMy5YtKSgoUB9DmMvlIjIyUn0MA7t27aJ9\n+/YUFxczbtw49TJEud1ubDabtskQ5/f7MZvN6mOI83q9REREqI9BKCyH5BmGgcfjYebMmXz99ddc\ndNFFLFu2jMrKShwOB88//zwOh4O6ujq6deumP7wglp+fz7Rp01i9ejUjR47kyy+/pKamhrq6OvUx\nhOzcuZOZM2eyadMm+vTpw3fffUd1dbX6GILy8vKYNm0aM2bMYPz48fz4449UVFTovTXE7N69m5df\nfpmtW7fSuXNnVq1aRVVVFXV1dUyfPl19DBE7d+7krbfeoqSkhK5du7J8+XKqq6ux2+3qYwjZuXMn\nr732Grm5uZx77rl8++231NTUqI9BJKwC0+HUbTKZsFgszJ8/n/z8fLKzsxk1ahQWi4XnnnuOsWPH\nMnHiRN58802Ki4vp168ffr9ff4RB4nAfn3zySebMmcNVV13FXXfdBUDbtm2JjY3l2WefVR+D3OE+\nOhwO7r//fgYOHIjVaiUrK4vzzjtPfQwxfr+fmTNnMm/ePK655hpiY2PJyspi4MCB6mWIOLxNfvfd\nd0yfPp2LL76YzZs3s2HDBm6//XasVqs+I0PA4T5u376dadOmMXToUNavX8/evXvp27cvbdq04emn\nn2bcuHHqYxA73Mfc3Fwee+wxhg0bxoYNG9i2bRt9+vShc+fOPPXUU+pjkAirWfK8Xi/Q8EdYX19P\nWloaN998M4sWLaK+vp6hQ4fSv39/rrzyStq2bct9993H8uXLcbvdmM1h9VKENI/HAzQM30pMTOTy\nyy8HGoYApaamMmDAAC688EL1Mcgd3h737NlDYmIiEydO5JZbbiEmJoa0tDQGDBjABRdcoD6GAK/X\ni9vtpnPnzrzyyivk5OSQlJREXFwcGRkZ9OzZU70MAYffWw8cOECnTp248soruf/++3E4HFitVgYO\nHMjAgQPVxyB3uI87d+4kLS2NcePG8ec//5mNGzeydetW2rZty/Dhw9XHIHe4j7t37yYlJYWrrrqK\nhx56CMMw2L17N+np6YwYMYIrrrhCfQwCYXEM0w8//MD7779Pq1at+M1vfkPPnj2Jjo6mpqaGpKQk\nOnTowNdff03Pnj0pLS1l7969pKSkcODAAfr164fNZgv0Kgj/7mNmZiZXXHEF06ZN45JLLmHOnDls\n2LCBuro6kpKSGDVqFAUFBepjkDrcx+zsbEaPHs0555xDfn4+n3zyCUuXLqW+vp7k5GTGjx+vPga5\nn7+3jh49uvF35eXlLF++nA4dOmC32zlw4IB6GaSO3CZHjhxJr169eOedd3jrrbeYNWsWPXr04IUX\nXuDaa6+lqKhIfQxSh/uYlZXF6NGj6dWrF59++inbtm3j3HPPJTMzk127drFmzRry8vLUxyC1cuVK\n5s+fT3p6OmPGjKFnz5589NFH7Nmzh44dOzJ48GC+/fZbVqxYQV5eHrm5uaSmpqqPARbys+Tt27eP\nBx54gDvvvJO6ujo2bdpEt27dGDVqFM899xxTpkzhs88+49lnn+XKK68kISGB3NxcSktL8fl8TJ48\nmQsuuCDQq3HW+3kf169fz6WXXkplZSUPPfQQf/vb3xgwYADPPPMM7dq1o7S0lKqqKgoKCtTHIPLz\nPv7000/069cPp9PJ7NmzG4fmPfLII/Tq1YuSkhLKysrUxyD0815u3LiR7t27M2bMGACWLVvG3r17\nuf7664mKimL27Nnk5uZSWFioXgaRI/tYW1vL5s2bOf/88+nRowczZsxg6NChjB49mnvvvZfLLruM\nkpIS8vLyKCoqUh+DyM+3xy1bttCuXTsMw2DBggV06dIFs9lMfX09o0aNwm63s379ekpKStTHIFJa\nWsq9997LHXfcQU1NDT/++COZmZkkJydjt9u57bbbAHjxxRfp2LEjNTU1bN++neLiYvUxwEJyD5Pf\n72fdunX06NGDgoICunfvzrBhw3C73ZSXl/Pxxx8zbNgw7HY7999/P/v27eOcc87BZDJx6623Ultb\n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\nMjMzKSgoaNZrKiIizaPAJCIix6itreWLL74gKyuLf/3rXwD4fD4+//xzxo4dy8yZM8nNzeWbxVkL\nnwAAA4lJREFUb77hhhtu4KWXXuKcc85pvH/Xrl358ssvj3ncTZs2nXDPy2FH7nUBWLduHd27d8fr\n9fLHP/6RRYsW0aZNG+bPn8/mzZuPuX9kZCSPPfZYs48j8ng8TT7u1KlTKSoq4ptvvuGuu+5iypQp\nmM3mo8Ke3+8/puamGIZxVGg8Mlg+8MADPPHEEwwcOJCvv/6aWbNmHfOaREZGcvfdd3PJJZc06/lE\nROQ/oyF5IiJyjE8++YSBAwfy6aefsnDhQhYuXMi0adP48MMP2b9/P2+//Tbt27fnlltuYeTIkWzf\nvv2o+48ZM4Zdu3bx6aefNt62Z88eZs+ezR133PGLz39kGNm0aRNz5szhlltuoba2FovFQlZWFi6X\niyVLluB2u4GGQOHxeADo27dvY9BzOp08/vjjx+zxyszMpKioCGgYjnfk4y5duhS3201NTQ0vvfQS\nLVu25Prrr2fChAls3LiR3r17s2rVKrxeL9AwKUPv3r2b9domJydjsVjIz88HGmbJOxyGKioq6NSp\nEz6fj88++6xxfcxm83HXze/38/TTTzfO8ldYWEh2dnaz6hARkebRHiYRETnGBx98wN13333UbZdc\ncgnPPPMMPp+Pbdu2cc011xAbG0tiYiL33HPPUctarVbeeecdnnzySV5//XWsVivR0dE8/fTTtGrV\nqnG5pvbKvPnmm3z88cfU1dURHR3NCy+8QJcuXQC4/PLLufrqq2nZsiWTJ09mypQpLF68mEGDBvHs\ns88CcPfdd/Pwww8zYcIE3G431157bePwucOGDh3KlClTeOCBB0hKSjrqcW+99VamTJnCihUrcDgc\njB8/nsTERKxWK//7v/9Leno6Y8aMYeLEiZjNZrp163bMpBJNMZlMPPjgg9x11120atXqqEkfbrvt\nNm666SYyMjKYPHkyU6dOZc6cOfTr14/77rsPm83G7bffzq5du7juuuvw+XxcdNFFjUP3VqxYcdRx\nWSIi8p8zGc0dQC4iIhJm/vu//5sbb7yxcaa8UFZVVcW1117LwoULiYmJCXQ5IiJhQ4FJRETOWmVl\nZdxzzz38/e9/P6XnYgK48847sdvtx9z+29/+lquuuuqUPhc0nLj2uuuu48ILLzzljy0icjZTYBIR\nEREREWmCJn0QERERERFpggKTiIiIiIhIExSYREREREREmqDAJCIiIiIi0gQFJhERERERkSb8f9lC\nPKmh6+g6AAAAAElFTkSuQmCC\n",
205 "text/plain": [
206 "<matplotlib.figure.Figure at 0x7ff8379d9650>"
207 ]
208 },
209 "metadata": {},
210 "output_type": "display_data"
211 }
212 ],
213 "source": [
214 "gnp_df = odo(fred_gnp, pd.DataFrame)\n",
215 "\n",
216 "gnp_df.plot(x='asof_date', y='value')\n",
217 "plt.xlabel(\"As Of Date (asof_date)\")\n",
218 "plt.ylabel(\"GNP\")\n",
219 "plt.title(\"US Gross National Product\")\n",
220 "plt.legend().set_visible(False)"
221 ]
222 },
223 {
224 "cell_type": "code",
225 "execution_count": null,
226 "metadata": {
227 "collapsed": true
228 },
229 "outputs": [],
230 "source": []
231 }
232 ],
233 "metadata": {
234 "kernelspec": {
235 "display_name": "Python 2",
236 "language": "python",
237 "name": "python2"
238 },
239 "language_info": {
240 "codemirror_mode": {
241 "name": "ipython",
242 "version": 2
243 },
244 "file_extension": ".py",
245 "mimetype": "text/x-python",
246 "name": "python",
247 "nbconvert_exporter": "python",
248 "pygments_lexer": "ipython2",
249 "version": "2.7.12"
250 }
251 },
252 "nbformat": 4,
253 "nbformat_minor": 0
254 }