Skip to content

Instantly share code, notes, and snippets.

@tijptjik
Created January 7, 2015 05:58
Show Gist options
  • Save tijptjik/266a678992ed8b7717e9 to your computer and use it in GitHub Desktop.
Save tijptjik/266a678992ed8b7717e9 to your computer and use it in GitHub Desktop.
Avik's KNN
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:d39a8bb1ed9314f7ffc26531de0e7b5c7e1d361c78f370f7decafb96ae74766b"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Don't show deprecation warnings\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\", category=DeprecationWarning) \n",
"\n",
"# Set some Pandas options\n",
"pd.set_option('max_columns', 30)\n",
"pd.set_option('max_rows', 20)\n",
"\n",
"# Set some Matplotlib options\n",
"# matplotlib.rcParams.update({'font.size': 20})\n",
"\n",
"# Store data in a consistent place\n",
"DATA_DIR = '/home/io/ga/ds/DS_HK_4/data/'"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from matplotlib.colors import ListedColormap\n",
"from sklearn import neighbors, datasets, feature_selection"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Various variables we'll need to set intially.\n",
"n_neighbors = range(1, 51, 2)\n",
"np.random.seed(32)\n",
"# Try this sequence again with the following random seed.\n",
"# observe how it changes the scores of K quite dramatically\n",
"# np.random.seed(1234)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"beer = pd.read_csv(DATA_DIR + 'beer.tsv', delimiter=\"\\t\")"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"beer.describe()"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"beer = beer.dropna()\n",
"def good(x):\n",
" if x > 4.3:\n",
" return 1\n",
" else:\n",
" return 0\n",
"\n",
"beer['Good'] = beer['WR'].apply(good)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"beer.describe()"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"beer.head(5)"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"X = beer[ ['Reviews', 'ABV'] ].values\n",
"y = beer['Good'].values"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Create the training (and test) set using the rng in numpy\n",
"n = int(len(y) * .7)\n",
"ind = np.hstack((np.ones(n, dtype=np.bool), np.zeros(len(y) - n, dtype=np.bool)))\n",
"np.random.shuffle(ind)\n",
"X_train, X_test = X[ind], X[ind == False]\n",
"y_train, y_test = y[ind], y[ind == False]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Or more concisely\n",
"idx = np.random.uniform(0, 1, len(X)) >= 0.3\n",
"X_train, X_test = X[idx], X[idx==False]\n",
"y_train, y_test = y[idx], y[idx==False]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 15
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Loop through each neighbors value from 1 to 51 and append\n",
"# the scores\n",
"scores = []\n",
"for n in n_neighbors:\n",
" clf = neighbors.KNeighborsClassifier(n)\n",
" clf.fit(X_train, y_train)\n",
" scores.append(clf.score(X_test, y_test))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plt.figure(figsize=(20,8))\n",
"plt.plot(n_neighbors, scores, linewidth=3.0)\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nJOeT/N1H6BcAAACAWfAwIdFQku+1rr8/ca+tJvlIKeWvSinHSilP3v0hpZQPJNma5NT0WgUAAABg\ntpRa6/3fUMq+JMO11l+buP6VJB+utf7L1ntWJblda71RSvnFJP+h1rqp9fpPJXk5yadqrS/c9fn3\nbwAAAACAKau1vmvq634WP8R7fpBkfet6fZrdRO0v/XGr/lIp5Y9KKWtqrX9TSlmS5PNJ/uvdAdF0\nGgYAAABg5j3MuNk3kvxsKeUDpZSlSUaTfKH9hlLK+0spZaL+UJodSn8zce+5JN+utX5mhnsHAAAA\nYIY8cCdRrfVWKeW3knw5yaIkz9Vaz5dSPjbx+ueS7E/yL0opt5LcSDI28eO/kORXkpwppbwyce/3\naq3/Y4b/HgAAAAA8ggeeSQQAAADA4HuYcbNZU0oZLqW8Wkr5TinlE132AoOslPKfSilXSilnW/fW\nlFK+Wkr5P6WUr5RSVnfZIwyiUsr6UsqJUsq3SinnSim/PXHf+oNZVEp5XynlVCnlm6WUb5dSPj1x\n39qDOVBKWVRKeaWUcnTi2tqDOVBKuVhKOTOx/k5P3JvS+ussJCqlLEry2STDSZ5M8mwpZXNX/cCA\n+89p1lrbv0ny1YknEX5t4hqYWTeT/E6t9eeS/HyS35z43zrrD2ZRrfXNJB+ttW5J8veTfLSU8g9j\n7cFc+XiSbyd5Z2zF2oO5UZM8VWvdWmv90MS9Ka2/LncSfSjJd2utF2utN5McSjLSYT8wsGqtX0/y\nw7tu703ypxP1nyb5J3PaFCwAtda/rrV+c6K+nuR8kqFYfzDraq03Jsqlac7V/GGsPZh1pZSfTvJ0\nkj9J8s6TrK09mDt3P0F+Suuvy5BoKMn3Wtffn7gHzI3311qvTNRXkry/y2Zg0JVSPpBka5JTsf5g\n1pVSHiulfDPNGjtRa/1WrD2YC3+Y5HeT3Gnds/ZgbtQkx0sp3yil/NrEvSmtvwc+3WwWOTEb5ola\nay2lWJMwS0opP5Xk80k+Xmv9cSm9/4PH+oPZUWu9k2RLKeVvJflyKeWjd71u7cEMK6X8UpKrtdZX\nSilP3es91h7Mql+otV4upfztJF8tpbzafvFh1l+XO4l+kGR963p9mt1EwNy4Ukr5O0lSSnkiydWO\n+4GBVEpZkiYg+rNa6wsTt60/mCO11h8leTHJtlh7MNs+kmRvKeVCkoNJ/lEp5c9i7cGcqLVenvjP\n/5fk+TTH/Exp/XUZEn0jyc+WUj5QSlmaZDTJFzrsBxaaLyT51Yn6V5O8cJ/3AtNQmi1DzyX5dq31\nM62XrD+YRaWUde88vaWUsjzJriSvxNqDWVVr/be11vW11g8mGUvyUq31n8Xag1lXSllRSlk1Ua9M\nsjvJ2Uxx/ZVau9vpV0r5xSSfSXOY4HO11k931gwMsFLKwSQ7k6xLM4f675L8RZLxJBuSXEzyT2ut\nb3TVIwyiiacp/c8kZ9Ibs/69JKdj/cGsKaX8vTSHcz428efPaq3/vpSyJtYezIlSys4k/6rWutfa\ng9lXSvlgmt1DSXO00H+rtX56quuv05AIAAAAgPmhy3EzAAAAAOYJIREAAAAAQiIAAAAAhEQAAAAA\nREgEAAAAQIREAAAAAERIBAAAAECS/w/92sZUkkyY4AAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x7f29f61cfa90>"
]
}
],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"the work above shows that at 18 neighbours we get an ideal result that doesn't overfit the data. To verify this we will use cross validation."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"scores = []\n",
"ind = np.random.uniform(0, 1, len(X)) >= 0.3\n",
"for n in range(20):\n",
" np.random.shuffle(ind)\n",
" X_train, X_test = X[ind], X[ind == False]\n",
" y_train, y_test = y[ind], y[ind == False]\n",
" clf = neighbors.KNeighborsClassifier(18, weights='uniform')\n",
" clf.fit(X_train, y_train)\n",
" scores.append(clf.score(X_test, y_test))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"scores"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 20,
"text": [
"[0.53749999999999998,\n",
" 0.5625,\n",
" 0.5625,\n",
" 0.63749999999999996,\n",
" 0.5625,\n",
" 0.67500000000000004,\n",
" 0.61250000000000004,\n",
" 0.57499999999999996,\n",
" 0.57499999999999996,\n",
" 0.57499999999999996,\n",
" 0.46250000000000002,\n",
" 0.58750000000000002,\n",
" 0.57499999999999996,\n",
" 0.55000000000000004,\n",
" 0.625,\n",
" 0.51249999999999996,\n",
" 0.625,\n",
" 0.57499999999999996,\n",
" 0.61250000000000004,\n",
" 0.5625]"
]
}
],
"prompt_number": 20
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"np.mean(scores)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 21,
"text": [
"0.578125"
]
}
],
"prompt_number": 21
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To showcase our whole model's performance, we can plot our algorithm against the two most significant features available in this data set."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"beer"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Rank</th>\n",
" <th>Name</th>\n",
" <th>Brewery</th>\n",
" <th>Type</th>\n",
" <th>ABV</th>\n",
" <th>WR</th>\n",
" <th>Reviews</th>\n",
" <th>Good</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0 </th>\n",
" <td> 1</td>\n",
" <td> Heady Topper</td>\n",
" <td> The Alchemist</td>\n",
" <td> Imperial IPA</td>\n",
" <td> 8.0</td>\n",
" <td> 4.69</td>\n",
" <td> 3146</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> 2</td>\n",
" <td> Pliny The Younger</td>\n",
" <td> Russian River Brewing Company</td>\n",
" <td> Imperial IPA</td>\n",
" <td> 11.0</td>\n",
" <td> 4.65</td>\n",
" <td> 1572</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> 3</td>\n",
" <td> Pliny The Elder</td>\n",
" <td> Russian River Brewing Company</td>\n",
" <td> Imperial IPA</td>\n",
" <td> 8.0</td>\n",
" <td> 4.64</td>\n",
" <td> 6129</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> 4</td>\n",
" <td> Founders CBS Imperial Stout</td>\n",
" <td> Founders Brewing Company</td>\n",
" <td> Imperial Stout</td>\n",
" <td> 10.6</td>\n",
" <td> 4.63</td>\n",
" <td> 2026</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> 5</td>\n",
" <td> Founders KBS (Kentucky Breakfast Stout)</td>\n",
" <td> Founders Brewing Company</td>\n",
" <td> Imperial Stout</td>\n",
" <td> 11.2</td>\n",
" <td> 4.61</td>\n",
" <td> 4714</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> 6</td>\n",
" <td> Zombie Dust</td>\n",
" <td> Three Floyds Brewing Co. &amp; Brewpub</td>\n",
" <td> American Pale Ale</td>\n",
" <td> 6.4</td>\n",
" <td> 4.61</td>\n",
" <td> 2978</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> 8</td>\n",
" <td> Bourbon County Brand Coffee Stout</td>\n",
" <td> Goose Island Beer Co.</td>\n",
" <td> Imperial Stout</td>\n",
" <td> 14.0</td>\n",
" <td> 4.61</td>\n",
" <td> 2014</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> 9</td>\n",
" <td> Parabola</td>\n",
" <td> Firestone Walker Brewing Co.</td>\n",
" <td> Imperial Stout</td>\n",
" <td> 12.5</td>\n",
" <td> 4.55</td>\n",
" <td> 2178</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> 10</td>\n",
" <td> Bourbon Barrel Aged Vanilla Bean Dark Lord</td>\n",
" <td> Three Floyds Brewing Co. &amp; Brewpub</td>\n",
" <td> Imperial Stout</td>\n",
" <td> 15.0</td>\n",
" <td> 4.55</td>\n",
" <td> 429</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10 </th>\n",
" <td> 11</td>\n",
" <td> The Abyss</td>\n",
" <td> Deschute Brewery</td>\n",
" <td> Imperial Stout</td>\n",
" <td> 11.0</td>\n",
" <td> 4.53</td>\n",
" <td> 3032</td>\n",
" <td> 1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>240</th>\n",
" <td> 241</td>\n",
" <td> Great Lakes Blackout Stout</td>\n",
" <td> Great Lakes Brewing Company</td>\n",
" <td> Russian Imperial Stout</td>\n",
" <td> 9.0</td>\n",
" <td> 4.20</td>\n",
" <td> 1674</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>241</th>\n",
" <td> 242</td>\n",
" <td> Obsidian Stout</td>\n",
" <td> Deschute Brewery</td>\n",
" <td> American Stout</td>\n",
" <td> 6.4</td>\n",
" <td> 4.20</td>\n",
" <td> 1552</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>242</th>\n",
" <td> 243</td>\n",
" <td> Cantillon Kriek 100% Lambic</td>\n",
" <td> Brasserie Cantillon</td>\n",
" <td> Fruit</td>\n",
" <td> 5.0</td>\n",
" <td> 4.20</td>\n",
" <td> 935</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>243</th>\n",
" <td> 244</td>\n",
" <td> Apocalypse Cow</td>\n",
" <td> Three Floyds Brewing Co. &amp; Brewpub</td>\n",
" <td> Imperial IPA</td>\n",
" <td> 11.0</td>\n",
" <td> 4.20</td>\n",
" <td> 889</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>244</th>\n",
" <td> 245</td>\n",
" <td> Red Racer IPA (India Pale Ale)</td>\n",
" <td> Central City Brewing</td>\n",
" <td> American IPA</td>\n",
" <td> 6.5</td>\n",
" <td> 4.20</td>\n",
" <td> 655</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>245</th>\n",
" <td> 246</td>\n",
" <td> Just Outstanding IPA</td>\n",
" <td> Kern River Brewing Company</td>\n",
" <td> American IPA</td>\n",
" <td> 6.8</td>\n",
" <td> 4.20</td>\n",
" <td> 639</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>246</th>\n",
" <td> 247</td>\n",
" <td> Allagash Odyssey</td>\n",
" <td> Allagash Brewing Company</td>\n",
" <td> Belgian Strong Dark Ale</td>\n",
" <td> 10.4</td>\n",
" <td> 4.20</td>\n",
" <td> 581</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>247</th>\n",
" <td> 248</td>\n",
" <td> Columbus IPA</td>\n",
" <td> Columbus Brewing Company</td>\n",
" <td> American IPA</td>\n",
" <td> 6.5</td>\n",
" <td> 4.20</td>\n",
" <td> 564</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>248</th>\n",
" <td> 249</td>\n",
" <td> Barrel Aged Yeti</td>\n",
" <td> Great Divide Brewing Company</td>\n",
" <td> Russian Imperial Stout</td>\n",
" <td> 10.7</td>\n",
" <td> 4.20</td>\n",
" <td> 445</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>249</th>\n",
" <td> 250</td>\n",
" <td> Rye'da TigerAmerican Double</td>\n",
" <td> Three Floyds Brewing Co. &amp; Brewpub</td>\n",
" <td> Imperial IPA</td>\n",
" <td> 8.6</td>\n",
" <td> 4.20</td>\n",
" <td> 397</td>\n",
" <td> 0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>234 rows \u00d7 8 columns</p>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 28,
"text": [
" Rank Name \\\n",
"0 1 Heady Topper \n",
"1 2 Pliny The Younger \n",
"2 3 Pliny The Elder \n",
"3 4 Founders CBS Imperial Stout \n",
"4 5 Founders KBS (Kentucky Breakfast Stout) \n",
"5 6 Zombie Dust \n",
"7 8 Bourbon County Brand Coffee Stout \n",
"8 9 Parabola \n",
"9 10 Bourbon Barrel Aged Vanilla Bean Dark Lord \n",
"10 11 The Abyss \n",
".. ... ... \n",
"240 241 Great Lakes Blackout Stout \n",
"241 242 Obsidian Stout \n",
"242 243 Cantillon Kriek 100% Lambic \n",
"243 244 Apocalypse Cow \n",
"244 245 Red Racer IPA (India Pale Ale) \n",
"245 246 Just Outstanding IPA \n",
"246 247 Allagash Odyssey \n",
"247 248 Columbus IPA \n",
"248 249 Barrel Aged Yeti \n",
"249 250 Rye'da TigerAmerican Double \n",
"\n",
" Brewery Type ABV WR \\\n",
"0 The Alchemist Imperial IPA 8.0 4.69 \n",
"1 Russian River Brewing Company Imperial IPA 11.0 4.65 \n",
"2 Russian River Brewing Company Imperial IPA 8.0 4.64 \n",
"3 Founders Brewing Company Imperial Stout 10.6 4.63 \n",
"4 Founders Brewing Company Imperial Stout 11.2 4.61 \n",
"5 Three Floyds Brewing Co. & Brewpub American Pale Ale 6.4 4.61 \n",
"7 Goose Island Beer Co. Imperial Stout 14.0 4.61 \n",
"8 Firestone Walker Brewing Co. Imperial Stout 12.5 4.55 \n",
"9 Three Floyds Brewing Co. & Brewpub Imperial Stout 15.0 4.55 \n",
"10 Deschute Brewery Imperial Stout 11.0 4.53 \n",
".. ... ... ... ... \n",
"240 Great Lakes Brewing Company Russian Imperial Stout 9.0 4.20 \n",
"241 Deschute Brewery American Stout 6.4 4.20 \n",
"242 Brasserie Cantillon Fruit 5.0 4.20 \n",
"243 Three Floyds Brewing Co. & Brewpub Imperial IPA 11.0 4.20 \n",
"244 Central City Brewing American IPA 6.5 4.20 \n",
"245 Kern River Brewing Company American IPA 6.8 4.20 \n",
"246 Allagash Brewing Company Belgian Strong Dark Ale 10.4 4.20 \n",
"247 Columbus Brewing Company American IPA 6.5 4.20 \n",
"248 Great Divide Brewing Company Russian Imperial Stout 10.7 4.20 \n",
"249 Three Floyds Brewing Co. & Brewpub Imperial IPA 8.6 4.20 \n",
"\n",
" Reviews Good \n",
"0 3146 1 \n",
"1 1572 1 \n",
"2 6129 1 \n",
"3 2026 1 \n",
"4 4714 1 \n",
"5 2978 1 \n",
"7 2014 1 \n",
"8 2178 1 \n",
"9 429 1 \n",
"10 3032 1 \n",
".. ... ... \n",
"240 1674 0 \n",
"241 1552 0 \n",
"242 935 0 \n",
"243 889 0 \n",
"244 655 0 \n",
"245 639 0 \n",
"246 581 0 \n",
"247 564 0 \n",
"248 445 0 \n",
"249 397 0 \n",
"\n",
"[234 rows x 8 columns]"
]
}
],
"prompt_number": 28
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Below returns highest signifiance for features 2 and 3\n",
"# (remember, Python uses index 0). \n",
"\n",
"# MART : You need to only select numeric features, else it can't figure out the distance. Of course, you can make\n",
"# dummy variables our of the categories of beers like we did in class :)\n",
"\n",
"num_beer = beer[['ABV','Reviews']]\n",
"\n",
"n = np.arange(len(num_beer.columns))\n",
"\n",
"fig = plt.figure(figsize=(20,8))\n",
"ax = fig.add_subplot(111)\n",
"\n",
"ax.bar(n, feature_selection.f_classif(X, y)[0])\n",
"\n",
"xtickNames = ax.set_xticklabels(num_beer.columns)\n",
"ax.set_xticks(n)\n",
"plt.setp(xtickNames, rotation=45, fontsize=16)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 30,
"text": [
"[None, None, None, None]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x7f29f5b0b210>"
]
}
],
"prompt_number": 30
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Normalise your data first\n",
"beer_norm = (num_beer - num_beer.mean()) / (num_beer.max() - num_beer.min())"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 47
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"h = .02 # step size in the mesh\n",
"# Create color maps\n",
"cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])\n",
"cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF'])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 31
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"clf = neighbors.KNeighborsClassifier(18, weights='uniform')\n",
"clf.fit(beer_norm.values, beer.Good)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 53,
"text": [
"KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
" metric_params=None, n_neighbors=18, p=2, weights='uniform')"
]
}
],
"prompt_number": 53
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Plot the decision boundary. For that, we will assign a color to each\n",
"# point in the mesh [x_min, m_max]x[y_min, y_max].\n",
"x_min, x_max = beer_norm.values[:, 0].min() - 1, beer_norm.values[:, 0].max() + 1\n",
"y_min, y_max = beer_norm.values[:, 1].min() - 1, beer_norm.values[:, 1].max() + 1\n",
"print x_min, x_max, y_min, y_max"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"-1.20747008547 1.79252991453 -1.18938739527 1.81061260473\n"
]
}
],
"prompt_number": 54
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n",
"\n",
"Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 55
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Put the result into a color plot\n",
"Z = Z.reshape(xx.shape)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 56
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plt.figure(figsize=(20,8))\n",
"plt.pcolormesh(xx, yy, Z, cmap=cmap_light)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 57,
"text": [
"<matplotlib.collections.QuadMesh at 0x7f29f491a610>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nHpvk+mNTXHucRVMaRl9O8uYkf36F4zrJXnff3N23TDgfrISbN5vk+mNTXHtsimuPTXL9sSmuPc6i\nq0/7g939SJJU1XEOP9ZBAAAAAGzeOvYw6iSfrqrPVdUvrOF8AAAAAExQ3T3/zar7k1x7xFvv7u6P\nzY75TJJ/192fn/MZL+nub1bVjyW5P8m/7e4Hjjhu/kIAAAAAOJXuPvHk18KRtO5+3emX8+xnfHP2\n699W1UeS3JLkOYHRaRYPAAAAwPItayTtyLCnql5QVT86e/zDSV6fS5tlAwAAALClTh0YVdWbq+rx\nJLcm+XhV3Td7/aVV9fHZYdcmeaCqvpDkwSR/2t2fmrpoAAAAAFZn4R5GAAAAAJw/6/iWtCNV1YWq\n+kpVfb+qXrHguMeq6ktV9VBV/cU618huOsG1d1tVPVJVX6+qd61zjeymqnpRVd1fVV+rqk9V1Qvn\nHOe+x9Ic515WVe+Zvf/Fqrp53WtkN13p2quqvar6+9m97qGq+s1NrJPdU1UfqKqnqmruVhjue6zC\nla499z1WpapuqKrPzP6e+5dV9ctzjjvRvW9jgVEu7WX05iR/foXjOsled9/c3besflmcA1e89qrq\nqiTvTXJbkp9I8raq+ufrWR477NeT3N/dL0/yv2bPj+K+x1Ic515WVbcneVl335TkF5O8b+0LZeec\n4M/RP5vd627u7t9e6yLZZR/MpWvvSO57rNDCa2/GfY9V+F6SX+3uf5FL2wb9m2X8O9/GAqPufqS7\nv3bMw32DGktzzGvvliSPdvdj3f29JB9O8qbVr44dd0eSe2aP70ny0wuOdd9jGY5zL3v2uuzuB5O8\nsKquWe8y2UHH/XPUvY6l6+4HkvzdgkPc91iJY1x7ifseK9Dd3+ruL8we/2OSh5O89NBhJ773bbJh\ndFyd5NNV9bmq+oVNL4Zz47okj1/2/InZazDFNd391OzxU0nm3aDd91iW49zLjjrm+hWvi913nGuv\nk7xqVov/RFX9xNpWx3nnvsemuO+xclV1Y5Kbc+mLxy534nvf1ctc2GFVdX8ufVPaYe/u7o8d82Ne\n3d3frKofS3J/VT0yS25hriVce3aD51QWXHu/cfmT7u6qmnedue+xLMe9lx3+r53ugUx1nGvo80lu\n6O7vVtUbknw0yctXuyx4lvsem+C+x0pV1Y8k+eMkvzJrGj3nkEPPF977VhoYdffrlvAZ35z9+rdV\n9ZFcqjj7ixMLLeHaezLJDZc9vyGXElhYaNG1N9sE8dru/lZVvSTJ38z5DPc9luU497LDx1w/ew2m\nuOK1193/cNnj+6rqP1XVi7r76TWtkfPLfY+NcN9jlarq+Un+JMkfdvdHjzjkxPe+bRlJO3KOs6pe\nUFU/Onv8w0len0sbFsOyzJsh/lySm6rqxqr6oSRvTXLv+pbFjro3ydtnj9+eS/9VaeC+x5Id5152\nb5KfT5KqujXJty8bnYTTuuK1V1XXVFXNHt+SpPyliTVx32Mj3PdYldl19f4kX+3u35tz2InvfStt\nGC1SVW9O8p4kL07y8ap6qLvfUFUvTfIH3f3GXBrr+B+z/09dneS/dfenNrVmdsNxrr3ufqaq7kzy\nySRXJXl/dz+8wWWzG34nyX+vqn+d5LEkP5Mk7nusyrx7WVX90uz9u7v7E1V1e1U9muQ7Sd6xwSWz\nI45z7SV5S5J3VtUzSb6b5Gc3tmB2SlV9KMlrkry4qh5P8ltJnp+477FaV7r24r7H6rw6yc8l+VJV\nPTR77d1Jfjw5/b2vuo3rAgAAAPAD2zKSBgAAAMCWEBgBAAAAMBAYAQAAADAQGAEAAAAwEBgBAAAA\nMBAYAQAAADAQGAEAAAAw+P99RWuJ9FSjTQAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x7f29f5f5b210>"
]
}
],
"prompt_number": 57
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Plot also the training points\n",
"plt.figure(figsize=(20,8))\n",
"plt.pcolormesh(xx, yy, Z, cmap=cmap_light)\n",
"plt.scatter(beer_norm.values[:, 0], beer_norm.values[:, 1], c=y, cmap=cmap_bold)\n",
"plt.xlim(xx.min(), xx.max())\n",
"plt.ylim(yy.min(), yy.max())\n",
"plt.title(\"3-Class classification (k = %i, weights = '%s')\"\n",
" % (21, 'uniform'))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 60,
"text": [
"<matplotlib.text.Text at 0x7f29eff13f10>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAABIQAAAHpCAYAAADzgOcVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VFX6wPHvSQMBQQERBMGCioK9YwNcFV3sin3VtWNb\nFXUVV0Ww7+qu9beWta662HtXRGWxN8C1oDSxISKQkJlMcn5/zIgBkpCQnvl+niePmXvPPee9dwZD\nXs57TogxIkmSJEmSpOyR09gBSJIkSZIkqWGZEJIkSZIkScoyJoQkSZIkSZKyjAkhSZIkSZKkLGNC\nSJIkSZIkKcuYEJIkSZIkScoyJoQkSaqmEMLFIYR7WnocIYSJIYQdM9+HEMIdIYQ5IYQJIYTtQwj/\nq4cxe4YQ5ocQQl33nen//hDCXpnvjwohvF4f4zQXIYTzQgi3VrNtk/jc14cln0MIYd8QwozMZ3Hj\nBo7lrRDCBg05piQpu5kQkiS1WCGEe0MI34YQ5oUQvgohjKjGNYeGEN7N/EI4K4TwTAhhu8zpWM8h\nV1e9xhFj7BdjHJd5uT3wO2C1GOM2McY3Yox9ajtGCGFqCGFQuTGnxxhXjDHW+b2FEDYCNooxPlHX\nfVcx5tkhhE/KffaGL3F+VOZ8SQjhooaK61cxxstjjMdVt3lVJ5d8LxtCCKGsLvqp4Dn8FRiW+Sx+\nVBdjVCaEsEYI4eslxr6kPseUJKk8E0KSpJbscmDNGGN7YHfg1BDC4MoahxDOBK4FRgNdgNWBG4E9\nf21Sv+FWW0PG0QuYGmMsruN+Iw13HycA9zbQWOUdAawEDAZOCSEcVO7cF8DZwNM0nURjZZb1PjXk\ne1lvMrPTegKTl/P62v69+klgYAhh1Vr2I0lStZgQkiS1WDHGSUskMlLADxW1DSF0AEaSnh3wWIxx\nYYyxNMb4dIzxz5Vc82BmBtLcEMJr5cs9Qgh7hBAmZWaIzAwhnJU53jmE8FQI4ecQwk8hhHGVlUmF\nEPqGEF7MtPsuhHBefcZR7pqpIYSdQwjHALcC22ZmTF0UQhgQQphRru3qIYRHQgg/hBBmhxCuzxxf\nO4TwSubYj5nZWh0y5+4h/Yv3k5l+h2dmS5T9+kt1CGG1EMITmdi+CCEcW27Mi0MIY0IId2Xua2II\nYfOKnk3GYOC1yk6GEK4OIbweQmhfRR81EmO8Osb4YYyxLMb4OfA4sF2583fHGJ8D5lODZEoIYWAI\n4eNyr18MIbxd7vXr4bfSuNVCCA9n3puvQginlmu3WBlYCOEPIYRpmffrgiVm/USgoKLnXcl72Srz\nfs/OfL7eDiF0qdkTXKZFSbRfP68V3Vu5z9Wv9/djCOH8JduGEApIvxe5wEchhC8y59cPIYzN3MfE\nEMKe5a69M4Rwc0jPIlxAOpkzNfMMPs48j9tDCKuGEJ4NIfySeb9Wqug+Mv+veg/YrY6flSRJFTIh\nJElq0UIIN4UQCoFJwOgY4/uVNN0WaA08WoPunwZ6A6sA7wP/LnfuduD4zOykvsArmeNnATOAzqRn\nIZ1XUZlUCGFF4CXgGaBbZpyX6zOOctdEIMYYbwdOBP6bKaEZuUSMucBTwNekZxJ1Bx4o1+TSTOzr\nk55tdTHpjo8ApgNDMv3+tYJ7eiDTphtwAHBZCGFgufN7AvcDHYAngBsqejAhhLbAmsBnFZwLIb1+\nTD9glxjjvAraHJpJBlT0NSeE0KOicZccB9gRmListtUwAVgnhNAxhJAPbAR0CyG0DSGsAGwOvJ5J\nrD0JfACsBuwM/CmEsGumn/IJlQ1Iz4Q7hPTz7pC5ZlETYC8qeN6VvJdHAe2BHkBH0jO0FlZ0M+G3\npGRFX5WW+MUYc8u/ZPFZVhXNuNoOWDfzHC4MIaxXvm2MMRljbJc5tlGMcZ3M830SeI70n61TgX+H\nENYt1+8hwKjMtW9k+tsvM856wBDgWeDPpP+c5QCnZcacGmNca4k4PwUadO0iSVL2MiEkSWrRYozD\ngHak18EZHULYqpKmnYDZMcZqr00SY7wzxlgYYywhPbto40wiByAJ9A0htI8x/hJj/KDc8W7AGpkZ\nSG9W0v0QYFaM8drML6sLYoxvV9SwnuOoavbKVpk+zs7MqEr82k+McUqM8eUYY0mMcTbpUrydqujr\ntwFDWB3oD5ybufePgNuAP5Rr9nqM8blMMu1eKv8l+tfZGPOXOJ5POum0ErBnZSVxMcb7YowrV/LV\nMcY4sxq3dHHmv3dUo22VYowLgXdIP8vNgQ+BN0mv9bQN8EWM8WdgS6BzjHF0jDEVY/ya9DM8ONNV\n+ff1AOCJGOP4zGfoQpZOqlT3eUP6s9UJWCemfRBjXPL5/3o/Q6p4vntV+8EsrqLP7MjM5/Nj4KNy\n8Vf1+d4GaBtjvCLzDF8lnQA9pFybx2KM/83cSyJz7PoY448xxlnA66QTqh9lzj8KbFrFmPP57TMr\nSVK9MiEkSWrxMr+UjgUeJPPLXKaEY37m6xBgNtA5VHMdkBBCbgjhihDClyGEX0jPkomkZ9wA7A/s\nAUzNlJxskzl+NfAl8EIIYUoI4dxKhlgd+KoJxFGV1YFpFSXRMmUyD4R0mdovwD2kkwTVsRowJ8ZY\nWO7YdNIzkH71fbnvi4DWlbx3czP/XXGJ471JzzK6JMaYqmZcNRZCOAU4HPh9JtlSF14DBgA7ZL5/\njXSCaEdgbKZNL2C18jNuSM8Cq6h0azVgUWIrk3T6aYk21X3ekH6vnwceCCF8E0K4MoSQV/3bqxff\nlfu+iHSSeFlWIz2Lrrxp/DZ7KlZwHhZ/VguXeF28jLHbAz9XIzZJkmrNhJAkKZvkA4UAMcbdMyUu\nK8YY7yddipMA9q1mX4eSLqPZOcbYgXRZUsh8EWN8N8a4D+lSk8eAMZnjC2KMw2OMa2euPzNUvEPT\ndGDJcpL6jmNgRQNUYQbQM1M6tqTLgFKgXyauI1j87x1VLaQ8C+gYQij/i3NPyiUtqiuTVJpCunyn\nvE+BPwLPLlECtJgQwmHlEodLfs2rqmQshPBH4BzS782sqsKs/h0B6QTQQH5LAP2aINqJ39ZKmgF8\nvcSMm/YxxiEV9DeLdHnXr3GvQPWTd0vFn5lNc0mMsS/pmV5DWHx21yJLJGaX/Hq6muMXAm3Lve5a\ng9irMgtYPVPy96tewDc17KcmC26vT3oGkyRJ9c6EkCSpRQohrBJCODiztkpuCGE34EDSi/suJcb4\nC+lSmRtDCHuHENqEEPJDCLuHEK6s4JJ2pBNIczLr1FxWbuz8TCKhQ4yxlHQZSGnm3JAQQu/ML5nz\nMsdLK+j/KdJrw5we0ov0rlhJuVtdxlHTrbzfBr4Frsg8r9YhhP7l4ioE5oUQupPeUau874G1K+o0\nxjgDGA9cnrn3jUgnb5Z3p7BnqKBcLcb4AHA+8FIIocLkW4zx3+USh0t+ta+sZCyEcBjpNZR2jTFO\nreB8XgihNelFjPMzz+7XBbV/XQi5ZyX3M550gmtL4O0Y42TSiYqtgV8XB38LmB9COCeEsELmz0C/\nEMIWFfT3MLBnCGHbkF5c+WJqlsRY7L0M6YXHN8wkCucDJVT8GV8yMbvk1++rOf6HwMGZZ7oF6Vlx\ndbFz2wTSs4nOyfxZGkA6ufXrOll1urNa5vOwGfBiXfYrSVJlTAhJklqqSHpB5Jmky19GAUfEGN+p\n9IIYrwHOBC4gvRvZdGAYvy00XX7x2rtJl498Q3qx4P+y+C+hhwNfZ8qljgcOyxzvTfoXvvmkf7G/\nMca41A5YMcYFwC6ky5q+BT4nPQukQeNYYqzyx8gkmfbM9DWd9KyUoZk2I0n/cvsL6YV5H16in8uB\nCzLlTGeW7zfjEGAN0rM0HgEujDG+Uq5dhTFV4hZ+u+/Fro8x3g1cArxSRQJmeYwivaDyO+VmvNxU\n7vxtpJMNBwMjMt8fnjm3OjCVSmaixBiLSO9GNalcudt4YGpmvSYyZXxDgE1Ilx7+SPo5/LqTWvln\nMIn0gskPkH7e80l//hNLti0fRrnvy7+XZ5GeofMg6fd+MulZTPdQf/5COiH1M+lk1r+XOF/VZ6PS\nBakzJX57AruTfn43kP5/yOeVXFvVGJWNV96ewKsxxu8qOS9JUp0KcemNTSRJklqUEMK/gTExxgpn\niDUlIYQRwA8xxlsbafx2pJMrvWOM0xojhmwUQpgA/DEz40uSpHpnQkiSJCnLhRD2BF4mXQb1N2DL\nGOPmjRuVJEmqT5aMSZIkaS/SJWrfkC6/Orjq5pIkqblzhpAkSZIkSVKWyWvsAH4VQjAzJUmSJEmS\nVMdijEvtjtlkEkIAY8aYE6qJMWMuZujQixs7DKlB+HlXtvCzrmzhZ13Zws+6somf96Zp6NClckGA\nawhJkiRJkiRlHRNCkiRJkiRJWcaEUDPWt++Axg5BajB+3pUt/KwrW/hZV7bws65s4ue9eWkyu4yF\nEKJrCEmSJEmSJNWdoUNDhYtKO0NIkiRJkiQpyzSpXcYO5MEKjz/IgQ0ciSRJkiRJUsvlDCFJkiRJ\nkqQsY0JIkiRJkiQpyzSpkrHKVFZKBpaTSZIkSZIk1ZQzhCRJkiRJkrKMCSFJkiRJkqQs0yxKxqpS\nVTkZWFImSZIkSZK0JGcISZIkSZIkZRkTQpIkSZIkSVmm2ZeMLYs7lEmSJEmSJC3OGUKSJEmSJElZ\nxoSQJEmSJElSljEhJEmSJEmSlGVMCEmSJEmSJGUZE0KSJEmSJElZpsXvMlaVqnYgA3chkyRJkiRJ\nLZMzhCRJkiRJkrKMCSFJkiRJkqQsk9UlY8tSVUmZ5WSSJEmSJKm5coaQJEmSJElSljEhJEmSJEmS\nlGUsGVtO7lAmSZIkSZKaK2cISZIkSZIkZRkTQpIkSZIkSVnGkrF64g5lkiRJkiSpqXKGkCRJkiRJ\nUpYxISRJkiRJkpRlTAhJkiRJkiRlGRNCkiRJkiRJWcaEkCRJkiRJUpZxl7FGUNUOZOAuZJIkSZIk\nqX45Q0iSJEmSJCnLmBCSJEmSJEnKMrUuGQsh/Av4PfBDjHHDCs4PAB4HvsocejjGOLq247ZkVZWU\nWU4mSZIkSZJqqy7WELoDuB64u4o2r8UY96qDsSRJkiRJklRLtS4ZizG+Dvy8jGahtuNIkiRJkiSp\nbjTELmMR6B9C+Aj4BhgeY5zcAOO2SO5QJkmSJEmSaqshEkLvA6vHGItCCLsDjwHrVtTw4jFjFn0/\noG9fBvTt2wDhSZIkSZIktQyTJo1l0qSxy2wXYoy1HiyEsAbwZEWLSlfQ9mtg8xjjnCWOx1guIaTl\n4wwhSZIkSZL0q6FDAzHGpZbyqfcZQiGEVUnvQBZDCFuRTkLNWdZ1Wj7uUCZJkiRJkpalLradvx/Y\nCegcQpgBXATkA8QY/wkcAJwUQkgBRcDBtR1TkiRJkiRJy6/WCaEY4yHLOH8jcGNtx5EkSZIkSVLd\nqPW285IkSZIkSWpeTAhJkiRJkiRlGRNCkiRJkiRJWabedxlT01HVDmTgLmSSJEmSJGULZwhJkiRJ\nkiRlGRNCkiRJkiRJWcaSMS1SVUmZ5WSSJEmSJLUczhCSJEmSJEnKMiaEJEmSJEmSsowlY6oWdyiT\nJEmSJKnlcIaQJEmSJElSljEhJEmSJEmSlGUsGVOdcIcySZIkSZKaD2cISZIkSZIkZRkTQpIkSZIk\nSVnGkjHVO3cokyRJkiSpaXGGkCRJkiRJUpYxISRJkiRJkpRlTAhJkiRJkiRlGRNCkiRJkiRJWcaE\nkCRJkiRJUpZxlzE1uqp2IXMHMkmSJEmS6p4zhCRJkiRJkrKMCSFJkiRJkqQsY8mYmrSqysnAkjJJ\nkiRJkpaHM4QkSZIkSZKyjAkhSZIkSZKkLGPJmJo1dyiTJEmSJKnmnCEkSZIkSZKUZUwISZIkSZIk\nZRlLxtRiuUOZJEmSJEkVc4aQJEmSJElSljEhJEmSJEmSlGVMCEmSJEmSJGUZE0KSJEmSJElZxoSQ\nJEmSJElSlnGXMWWtqnYhcwcySZIkSVJL5gwhSZIkSZKkLGNCSJIkSZIkKctYMiZVwHIySZIkSVJL\n5gwhSZIkSZKkLGNCSJIkSZIkKctYMibVUFXlZGBJmSRJkiSp6XOGkCRJkiRJUpYxISRJkiRJkpRl\nLBmT6pg7lEmSJEmSmjpnCEmSJEmSJGUZE0KSJEmSJElZxoSQJEmSJElSljEhJEmSJEmSlGVMCEmS\nJEmSJGUZdxmTGlBVO5CBu5BJkiRJkhqGM4QkSZIkSZKyjAkhSZIkSZKkLGPJmNSEVFVSZjmZJEmS\nJKmuOENIkiRJkiQpy5gQkiRJkiRJyjKWjEnNhDuUSZIkSZLqijOEJEmSJEmSsowJIUmSJEmSpCxj\nyZjUQrhDmSRJkiSpupwhJEmSJEmSlGVMCEmSJEmSJGUZS8akLOAOZZIkSZKk8pwhJEmSJEmSlGVM\nCEmSJEmSJGWZWieEQgj/CiF8H0L4pIo214UQvgghfBRC2LS2Y0qSJEmSJGn51cUMoTuAwZWdDCHs\nAfSOMa4DHA/cXAdjSpIkSZIkaTnVOiEUY3wd+LmKJnsBd2XavgWsFEJYtbbjSpIkSZIkafk0xC5j\n3YEZ5V7PBHoA3zfA2JKqoapdyNyBTJIkSZJanobadj4s8TpW1OjiMWMWfT+gb18G9O1bnzFJkiRJ\nkiS1KJMmjWXSpLHLbNcQCaFvgNXLve6RObaUi4cObYBwJEmSJEmSWqa+fQfQt++ARa8femhkhe0a\nIiH0BHAK8EAIYRtgbozRcjGpmaiqnAwsKZMkSZKk5qjWCaEQwv3ATkDnEMIM4CIgHyDG+M8Y4zMh\nhD1CCF8ChcDRtR1TkiRJkiRJy6/WCaEY4yHVaHNKbceRJEmSJElS3aj1tvOSJEmSJElqXkwISZIk\nSZIkZRkTQpIkSZIkSVmmIXYZk9SCVbULmTuQSZIkSVLT5AwhSZIkSZKkLGNCSJIkSZIkKctYMiap\n3lRVTgaWlEmSJElSY3GGkCRJkiRJUpYxISRJkiRJkpRlTAhJkiRJkiRlGRNCkiRJkiRJWcaEkCRJ\nkiRJUpZxlzFJjaaqXcjcgUySJEmS6o8zhCRJkiRJkrKMCSFJkiRJkqQsY8mYpCapqnIysKRMkiRJ\nkmrDGUKSJEmSJElZxoSQJEmSJElSlrFkTFKz5A5lkiRJkrT8nCEkSZIkSZKUZZwhJElSI5k793vG\njbuHkuRCttxqH3r23LCxQ5IkSVKWcIaQJEmNYM6cWVxwVj/yHhhBj4dGcun52zB58muNHZYkSZKy\nhAkhSZIawfNPX8tBhT9zRyrJX8tKuTlZxCN3ntHYYUmSJClLmBCSJKkRLJz/E73LShe9XgtYWDS3\n8QKSJElSVnENIUktTlU7kIG7kKlp2GSbA7h6/H/YJllEJ+CsgjZsvM0BjR2WJEmSsoQzhCRJagSb\nbbYHQ47+B/t1WJX+bVem48A/sv8hlzV2WJIkScoSzhCSJKmRDNr5WAbtfGxjhyFJkqQsZEJIUtap\nqqTMcjJJkiRJ2cCSMUmS6tCcOd8wYsQuHHZYe4YN68v//vdGY4ckSZIkLcWEkCRJdSTGyKhR+zBl\nyraUlExj9uzLuOyy/Zgz55vGDk2SJElajAkhSZLqyIIFc/j++y8oKxsJrAzsTQjb8vnnExo7NEmS\nJGkxJoQkSaojrVu3I8YkMDNzpIQYp9CuXcfGDEuSJElaigkhSZLqSH5+Kw4+eDStWu1ITs5wWrUa\nyLrr9maDDXZq7NAkSZKkxYQYY2PHAEAIIcYxYxo7DEmqkruQqTomTnyVL798m86dV6d//4PIyclt\n7JAkSZKUpYYODcQYw5LH3XZekqQ61q/fQPr1G9jYYUiSJEmVsmRMkiRJkiQpyzhDSJJq4EAerPSc\n5WSSJEmSmgtnCEmSJEmSJGUZE0KSJEmSJElZxpIxSaojVZWTgSVlkiRJkpoOZwhJkiRJkiRlGRNC\nkiRJkiRJWcaSMUlqIO5Qpro0ffpEnnzyRkpKEgwadAgbbbRLY4ckSZKkZsQZQpIkNTPTp09kxIiB\nvPZaT8aP34KrrjqSt99+rLHDkiRJUjNiQkiSpGbm2Wf/SSJxOnAeMIxk8v948MFrGzssSZIkNSOW\njElSE+AOZc3XpEljuf/+K0kkihgw4ED22ONkQgj1OmZJSQnQrtyRdqRSyXodU5IkSS2LCSFJkpbT\nlCnvcvnlQ0kmrwW68MADZ5FKJdl77zPrddxBgw5lwoShJJPdgQ60avUndtvt1HodU5IkSS2LJWOS\nJC2n1167n2TydOAwYBcSiVt48cW7633cDTbYkeHD76R371vo2XM0hx9+OrvtdmK9jytJkqSWwxlC\nktQMuENZ05SXlwcUljtSSE5Ow/xo3WSTwWyyyeAGGUuSJEktjwkhSZKW0y67HMtLL21HItGGGFel\noGAUBx54RWOHJUmSJC2TCSFJUtb7/PMJPP3ACBIL57P5Tkfyu92GVWth6G7d1uGyy17j8cevI5H4\nkp12uonNNx9S7XE/+2w8zz00klSiiC13Po4dd/pDbW5DkiRJqjYTQpLUzLlDWe1Mm/Yxfxu1M1cl\niugGnD1zEslEIb/f+5xqXd+jx/qcfPLNNR73q6/e55pRu3BlsohOwFlfv09JSTE7/+74GvclSZIk\n1ZSLSkuSstr4cfcwLFHEscDvgbsSRbz23PX1Pu7rL9/C8GQRxwH7AXckinjtyb/V+7iSJEkSmBCS\nJGW5kJtHMvz24zAB5OTkNsDIOZSWe1UK1SpTkyRJkuqCJWOS1MK5Q1nVdhr4Ry5+7gY6FheyGpEL\nW7Vh8L7n1/u4A3Y9kcvG3U2HRCGdgPMK2rDXPn+u93ElSZIkgBBjbOwYAAghxDhmTGOHIUlZxYRQ\n2owZk3j2kdEki+ax+U5Hsm3/oQ0y7ldfvcdzD4+mJFHI1jsfxzbb+n5IkiSpbg0dGogxLjUV3YSQ\nJGUxE0I199FHL/D55xPo1KkHO+54BHl5+Y0dkiRJklSpyhJCloxJUhZzh7KaefTRv/LIIzeTTB5M\nQcG9jB07hosvfrqB1hySJEmS6o4JIUmSqiGVSjJmzIWUln4O9CCRKGXq1C345JOX2XjjXRs7PEmS\nJKlG3GVMkqRqSCSKSP/Y7J45kksIa1JYOLcRo5IkSZKWjzOEJEmVcoey37RtuxI9emzMzJnnUlp6\nJvAmMb5Bnz7XN3ZokiRJUo05Q0iSpGoaMeIR+vT5lNatN6Rr19FccMHjdOzYfdkXSpIkSU2MM4Qk\nSaqmlVZalYsuerKxw5AkSZJqzYSQJGm5tJQdyv73vzf54osJrLzyamy77YHk5vqjUZIkSS2ff+uV\nJGWtF5+7kafuPYcDSlNMyMtnwiu3ceYFL7iNvCRJklo81xCSJGWlsrJS7rn7TF5PFnFdaZI3E4UU\nffk2H3/8YmOHJkmSJNW7Ws8QCiEMBv4O5AK3xRivXOL8AOBx4KvMoYdjjKNrO64kqWlr6juUJZML\nIZaxVuZ1HrAuMH/+T40YlSRJktQwajVDKISQC9wADAY2AA4JIaxfQdPXYoybZr5MBkmSGl3r1u1Y\nc7X1GZGTyzzgBeDVWMZ66/Vv7NAkSZKkelfbkrGtgC9jjFNjjCXAA8DeFbQLtRxHkqQ6d/qI53hu\n7S1ZNTefY1bqxslnP06XLms2dliSJElSvattyVh3YEa51zOBrZdoE4H+IYSPgG+A4THGybUcV5LU\njC1rh7LaqEk5WseOq3Hepf+tt1gkSZKkpqq2CaFYjTbvA6vHGItCCLsDj5FepmEpF48Zs+j7AX37\nMqBv31qGJ0mSJEmSlD0mTRrLpEljl9kuxFidnE4lF4ewDXBxjHFw5vV5QNmSC0svcc3XwOYxxjlL\nHI+xXEJIkqTl0RQWrJYkSZKaiqFDAzHGpZbyqe0MoXeBdUIIawCzgIOAQ8o3CCGsCvwQY4whhK1I\nJ6HmLNmRJEl1oanvbiZJkiQ1BbVKCMUYUyGEU4DnSW87f3uM8dMQwgmZ8/8EDgBOCiGkgCLg4FrG\nLEmSJEmSpFqo7QwhYozPAs8uceyf5b6/EbixtuNIkqS6t3DhfD744BlSqRI23nhXOnTo0tghSZIk\nqQHUOiEkSVJzUZvdzRqr3Kw+d2S7fd5Azj13ewoL1wTakpt7DpdeOpbVVqtw7wdJkiS1IDmNHYAk\nSWocDz98JXPn/o7i4mcpLn6IoqLh3HHH+Y0dliRJkhqACSFJkrLU7NnfUVq6xaLXMW7BTz/NasSI\nJEmS1FAsGZMkqRrqs3SrviyrzG3jjX/m449vJJEYArShoOCvbLTRjg0TXCXq6zm7w5wkSdLinCEk\nSVKW2mWX4xg0aCA5OT3IyVmZTTZpz2GHjWzssCRJktQAnCEkSVKWCiFw9NFXceSRl1NWVkZeXn5j\nhyRJkqQGYkJIkqRmrC5KoXJycsnJya2DaGqvKZZ2LauMrSnGLEmStCyWjEmStAxlZWV8+/PPJEpK\nGjsUSZIkqU44Q0iSpCpMnD6dXUZfw9zCYiIJbjn+aP6wU/UWXo4x8p/x43nr00/p2bUrJ+26K60L\nCuo54t/GXrhwHq1br0hOjv/+I0mSpMWZEJIkqRIxRna79Fq+mzsaOBqYzEm37siWa6/F+j16LPP6\nEffcw9MvvsgRiQRj8/N5/I03eHH0aPLz6vfH79SpH3HZZfsxf/735Oe35owz7mHTTXev1zGbsm+/\n/YK5b1xACIHDdtietVZdtUbXWxImSZJaIv/JUJKkSswtLGT2/Lmkk0EAG5CbuwMfTp26zGuLEgn+\n/uyzvJxIMBx4tKSE+bNmMXby5HqMGFKpEkaN2ou5cy+htHQBxcVPcM01f2DOnG/qddymatq0jzn3\n3O245OFujHxoVTY++0Imz5zZ2GFJkiQ1OhNCkiRVon2bNuTl5ADvZo7Mo6zsfXqtssoyry0uKSE/\nBFbOvM4BVg2BwuLieoo2bc6cb0gmy4DDMkf6k5u7KdOmfVyv4zZVDzxwBcXFIygt+zulZf+gsPg8\n/vLAk40dliRJUqOzZEySlPUmz5zJGXfey7yFCU7adQB/2GknAHJzcrj3tBM4/LpdycvdilTZJA7f\nYRP6r7dIzV89AAAgAElEQVTeMvtcuW1bNuvVi1OnTeO0VIpxwIchsF2fPvV6L+3bd6a09BfgS6A3\nMJdUajIdO3av13HryrJ29KqpfyyYAgxd9DqyBnOLEku1syxMkiRlGxNCkqSsNmnGDLYZfjb9Yi6r\nETjpi8lM/fFHLjzgAAD23WorJl2zBh9OnUr3jjuxZe/e1eo3hMDDI0Zw6s03M+Tzz+nZqRMvDBvG\nKu3b1+ft0Lp1O44++hruumt7cnIGEOPbDBx4KL16bVSv4zZVh26/CR9MPZ+ixFpApE2rv3DIdgMb\nOyxJkqRGF2KMjR0DACGEGMeMaewwJElZZtDIS+gw6VMeoZQA3AecllvA7PvvbezQqqWymS3Tp09k\n2rSP6NJlTdZbr38DR7X86nqGUIyRyx59kuueeRWAM4fszDl7/54QwmLtnCEkSZJaqqFDAzHGsORx\nZwhJkrLagsJCBmeSQQCbAamyVIOMfd8bb3D+/U+RKCnhyJ225tJDDiB3iS3ilzdR0bNnP3r27Fdl\nm6qSL8sat64TN/UlhMCI/fZixH57NXYokiRJTYqLSkuSstpBO2zPP4CpwEJgBIH1eqxe7+O+8NFH\nHPd/Y5j247/4bu4zXP/cdC4e81i9jytJkiSBCSFJUpY7a8892XPgQNYjsCIwpWtXXhw1st7H/c/4\n9ylKngvsBPSjKHEd9735Xp31/8EHz/Lww6N54437KCsrq7N+JUmS1DJYMiZJynr/d9JJ3HziiZSW\nlZGXm9sgY7ZfoYDcnBmULsrVfMOKrVsv1W5ZpVkVlXbdd9/FPPvs/ZQk92WFgmv5+s3/4/FzTllq\n3ZyqNJeSsPJcB0iSJKn6TAhJkkR6rZmGSgYBnDFkN+587ULmLyymtKwzbQpu4OojhtW638LCuTz1\n1N9IpaYAXShMJHhlYh/e/vJLtl5nndoHLkmSpBbBhJAkqUlJlJSwMJlkpbZtGzuUavni22+58amn\nKCou5oAdd2TXjTeu1nU9O3fmk7+O4taXX6Eo8S0H9T+bLdZeu9bxLFw4j5ycFYFVMkdakZfbk7mF\nhbXuW5IkSS2HCSFJUpNx2YMPMvqRR8gFNll9dR4eMYIuHTo0dliV+ur779n+z3/m+OJi1o6Ro996\ni2uHDWNo/+pt896jUydGDq1dmdOSpV2lHcu4eqXWTJ89mtKyk4AXgElsvtYfajVOU2FZmCRJUt1w\nUWlJUpPw1HvvcdcTTzCltJRfSkvZcsYMTrz++sYOq0q3PP88RxUXMypGTgXuSCa5+j//adSYcnNy\nGHvx2Wy+1iOsULAW63a7mJcvPJvO7ds3alySJElqWpwhJElqEiZ8/jmHJhJ0y7z+U2kp2375ZaPG\nVJVn3n+fx975gCNjXHRsJSCZSjVeUBk9O3fmrcvOr3b7BcXFpEpLm02ZniRJkmrPhJAkqUlYvXNn\nHikooDSZJBd4A+ix8sqNHVaFHnhzPMfc/B+Kkn/gMq5hHUroAvypVSsOHTSoscOrttKyMk6++Wbu\nfuMNcoGB66/PA+eeS5tWrRotJkvCJEmSGoYlY5KkJuHogQOJa6zBlq1bs/cKK3BG69bccPLJdT5O\nUSLBCf+8m3VPu5CdL7mG/33zTY37GPnQ8xQl7wCuYAFPcQxdObJtWw7bf3/O2W+/Oo+5vtz07LNM\n+u9/+b60lJ9KS2nz2WeMuPvuxg5LkiRJDcAZQpKkJqEgL49nRo7klYkTmbdwIf+33np0q4cZQgf8\n7WZendSV4pI7+PL7CWx7waV8/o8rWKUGa+yUpEqBX8urdmUep3NI/zc4a5996jze+vTWpEkcm0yy\nYub1ySUlnPvpp40akyRJkhqGCSFJUpORl5tb7W3bl8fCZJIXPn6X0rJ5QCti3IZU6Uu8/MknHLzd\ndou1fe+rr3j7yy/p3rEjQzbbjJyc3ybVnjJ4ey544FgKE/8AfqJNwdUcPeCseou7Ip9Mn85NTz5J\nIpnkkJ13ZpeNNqpxH6t37cq4vDz+kEoRgHE5OfTs0qXug62BJXdNW5IlZZIkSXXDhJAkKWvk5uQQ\nAFgAtAIi8AsFeb/9OCwrK+OShx7i+sceY68Q+Cg3l/v79eO+s88mhPTVp++xG/m5udz28rm0aZXP\nqINPYet11mmw+5g4fTqDRozgzESCDsCR773HTaedxj5bbVWjfs7df38Gvfce2//8M21D4PP8fMb+\n8Y/1E7QkSZKaFBNCkqSsUZCXx7Dd9uC2V3amKDGMgrw3WbXDLAZvsgkAJakUB15+Of/95BPWAMYB\nT5eUcMDEibw6aRKD+vUDIITAyYN34eTBu1R77LKyMv71yiu8PXkyPbt140977km71q2X6z7++eyz\nnJ5IcF7mdY9kkr89+GCNE0IrtW3L+Kuv5tVJkygpLWXH9dd3pzFJkqQsYUJIkpQ1EiUl7Lj+Wsxf\nOI/Z8++hb49VOXefvyzaVevWl19m/mefMQMoAK4CzgTWBz6fNYsd+vQhP2/5fnSecdttTHj9dY5K\nJBiXn8/vJkxg3JVXLjY7qbpKUinalXvdjuXf7r51QQG7b7rpcl1bHywJkyRJahjuMiZJatZm/vQT\nn86cSckyEiKFxcXs9Oc/84+bbqJowngmTHqX/bfZYrEZMV/MmMHuySQFmdd7AR8DzxUXc/6dd9Lp\nyCO5b9y4Gse4oLiYW199lecTCU4C7ispoezHHxk7aVKN+wI4bNAgLi8oYAzwAnByq1Ycudtuy9WX\nJEmSspMJIUlSsxRj5KQbb2ST005jz/PPZ5PTT2fG7NmVtv/nSy/R/bvveK24mAeKi7mmuJg/3Xzz\nYm02XGstHmnVikLSqwvdTnq1ob8Dc1IpxpeUcMYttyy2Vf3T77/PRmddwtqnjmDUQ49TVla21NjJ\nVIq8EBbN6gnAyiGQKClZrnvfYf31uWv4cG7t3ZtLe/XiT4cfzgkmhCRJklQDloxJkpql+954g3cn\nTODrkhLalZQwOpnkxOuv5+mRIwGYPW8ehYkEPTp1Ijcnh29nz2bLkpLMotKwFXDR3LmL9XnUgAGM\nnziRXm+9xYo5ObTr0IHUTz9xTGkpAP2AnXJz+eDrr+nTvTvjP/uM/a6+gVal7YASrnjoRVJlKUYO\n3X+xfldu25Zt116b46ZM4ZRUitdC4NO8PLbv02e573/wJpssWvuoIq9MnMgHX3/Nml26sO9WWy1a\nELupW9YuY02RZW6SJKk5MiEkSWqWPpk6lX0SCVbMvD68rIxbZ8wgxsgZt97KHWPH0i4nh66dO/PU\nRRexfd++nPPyyxyeSLAqcEVeHtuvv/5ifebk5HDbaadx8U8/UZhIsMYqq9D16KN5v7SUzYD5wPtl\nZZzeuTMAVz3+NCuUJniYBXQBjixrzU1PP79UQiiEwIPnncfw22/nmM8+o+cqq/Dy8cezcrt2VKUo\nkWDqjz/SbaWVltm2vEseepwrH3+dVGpv8vNeZI9NP+A/Z5ywKCk0e948HpwwgZJUir222II1Gnmr\neUmSJDU8S8YkSc3SOt2783yrVhRnXj8RAut27cr9b77JuNdfZ1oqxcxkkl2++46DrriCshg5cPBg\n1snNpV1ODj+suy7XnXRShX336NSJ9VZbjVb5+fzr1FMZ3KoV+6ywAhu3asUe221H//XWA2DWj99z\nPiXsDGwI3EYxZYkFFfbZvk0bbjn1VD684QaeuOgi1unWDUgnZ76ZM4cY42Lt3/jf/+h2/Olsc/71\nrHbC6dz60qvVei6PvPUW14y5j/xEe0pKN6Qw8V+e+eBL3p0yJR3znDn0PfMCzrr7F875dw4bDv8L\nH02dWq2+JUmS1HI4Q0iS1CwdNWAAL77zDn0mTqRLTg4/FhTwwqmncusLL3BgIsFKmXbHlZVx49fT\nOerGjwnhPcZfdhnrd+9O64KCKvv/1b5bb81GvXrx4dSpdO/YkW3WXXfRua3W7c30aV8vej0L6Lpy\nh2r1W1ZWxrCbb+a+N9+kdQj06dGDx//yF1Zu146SVIo9r/gH8xbeC+wOfMHpd27DgL59FiWSlhRj\nZNzkyZx43XVcSuRuJvIJx5PLRRBW46cF6UTVZY8+zZwFh5AquwaARMkW/OnOu3j14rOqFXdz1RzL\numpTPtcc71eSJDUsE0KSpGYpNyeH+885h0+mT2dBcTEb9epFu9atWatbNx4qKGB4Mkk+8DQAmzJv\n4fPAbQy95jL6dm5DSSrFUbvvzoH9+y9zrLW7dmXtrl2XOn7e/vuz5ZtvUrpwId1i5Pq8PO467rhq\nxX/rSy/x8YQJfJNK0RY4ecYMzrjlFu4880wefecd4sJf6MCFzGMmkWPJz92CyTNnLpUQijFyxcMP\nc9Vjj5FKJrkEuAXYD3gMeJ5vObn4O9ZY5XAAvp1bSKqsX7ke+vLDvIpnNUmSJKnlMiEkSWq2Qghs\n1KvXYseOGTSIZyZMoN8XX9C+tJRJqQIWcg/wLvAGM7//mgu+h7bA8K+/prSsjIO33365xu/esSPv\nXHMNt730EkXFxTy5zTaLzSCqyvuffcbh5dZAOj6V4sgvv2TC559zyo03cn1MsTLvchKT+YbZpEo/\nZO1Vd12qn/tef517H3+c95NJLgW+BX4ALiS9m9lRwJ2tCpj244/06d6dvbfYgOc+vIqixI5AO9oU\n/IW9t+i7XPcvSZKk5suEkCSpRcnPy+OxCy7gnSlTeOaDD5j8xIeE5POsyHnsy0I+Ah4HHgIKkkmu\ne+qp5U4IQTopdNHQoTW+bs3u3XkpP58TS0rIAV4MgTW7duXeV15heDLJEZl2bSliPy7grH0Po1/P\nnkv18/J773F6IsGawGnATkAS+AnonPl+FtChTRsAjthxB6bP/pkrH9+S0tIUh+6wIyOH7rMcd968\nNFb5lWVfkiSpqTIhJElqcXJycth6nXXYqndvFiYif3/yT7wF9AFKgC2BF4AUNNp27KcPGcLu77zD\nJt98w8ohML2ggJdPOIF/PPEEiXLtioG1u3bhgv33rLCfVTp25JPcXCgtZSPgFOCWggK2TqU4pKyM\n11q1YuMNNmDrddYB0vd7wf57c8H+e9f3LUqSJKkJMyEkSWqxQghcdODeXPf0o6xXVgZAPtAbeAR4\nuqCAG/fdl0feeouz732CwuKFHLLdllx9xFDycnPrNbYVCgp4afRoxn/2GcUlJWyzzjq0b9OGY3fb\njUHjxtE6kaAjMCI3l7022ICSVIr8vKV/bJ+1zz70Hz+e/YuK6BAjT+Xk8OIllzBt9mze/+orjlt1\nVQ7bYYdGS3xJkiSpaQpLbnPbWEIIMY4Z09hhSJJaoK3PPJM9Zs3iz2VlvA0Myclh+z59OHmvvVhx\nhRUYfOkNFCXvA7rRpuAkTthlFa458uAGj/OXoiISJSV8M2cOR/ztWr754Xt+IdKaPNbptRYfXHkJ\nOTk5S13384IFPPL22yRTKfbYdFN6rbJKg8euiln2JUmSGtvQoYEY41L/OugMIUlSi/fwiBEceuWV\njJo2jW5t23L/Kaewx2abAXDGnf+mKHk68DsAipI38p/xQ5YrITR55kyufPx55i9M8seBWzFk882r\ndV1ZWRnH33I3d782lpyQx4Y9e/H1D99xJYFhwGukGDLtCx556y0O2HZbIL272JfffUeipIQ+3btz\nzKBBNY5XkiRJ2cuEkCSpWfl5wQLuHDuW+QsXssdmm7HF2msv85oenTox7qqriDEuVTrVvk0BeTkz\nSZX9euQb2rZuXeO4Pps1i63PH0Vh8ZlEVuX5Dy/mlhMWctgOy16w+taXX+H+N7+npHQW0I6Pph1K\naz7hFNKzeAcCm5HDR9OmccC221KSSnHwVVfx38mTaRMCK3XqxLOXXMIq7dvXOO6amvbjj9z92jhK\nSks5eLv+bNCjR72PKUmSpLpnQkiS1GzMWbCAbYYPZ8v58+mZSvH7xx/n9jPOqPZMnIrW0Tlxl99x\n0/N/YW5RGanS7rQpuJ6/HvHHGsf2zxdfpbD4RCIXAFCUXJNLHjqlWgmh1/83laLEMUAHAEpKTyMw\nhq+AtYBC4AtKuaBPHwCue/ppCidPZmoyST5w5vffc9Ytt3D38OE1jrsmvvj2W7b480gKE4cQYxuu\neWoUr1x0Nlv17l2v4zZ1loVJkqTmyISQJKnZuO3ll9l23jzuSqUAGJhMcvYdd1Q7IVSRbiuvzCd/\nG80tL77E/OIf2G/rP7HtuusuOl+SSnH1o4/y34kT6dGlCxcddhhdV1ppqX6SqTIi7codaUtJadlS\n7SqybreOtM5/ieKSE4AccsJ4enZenS1+nMmuRCYA2268MbtuvDEAk776iv2TSQoy1x9cWsqwadOW\n7wHUwGWPPMuC4tMoixcBUJhYlz//+3ZeuejMeh9bkiRJdcuEkCSp2ZhXWMiamWQQpGfP/LJw4aLX\nJakUox9+khc+/oKenTtw9RH707Nz52X223WllbjwwAMqPHfCDTcw4913GZZM8ubnn7PjJ5/w3rXX\nsuIKKyzW7sidtuWOV/9KUbIXsAptW53OsN22q9Z9nTVkDx556wq++n5TQliJgrzP2KxnD774+Vta\np1KsnZPDzNmzSaZStMrPZ71evXjivfc4KpkkD3gkN5c+q69erbFqY86CYspir3JHejK3sLjex5Uk\nSVLdMyEkSWo2dt9sMw545hl2TibpCZyRn8+QLbZYdP6om/7FY2+XUpS8mLe/nMALH1/IJ38dRY9O\nnZZrvKJEgvsnTGB2WRltgX1LS/mwqIiXPvmEfbfaarG2W/buzdPnncqI+/9OUaKEPw7anlMG71Kt\ncdq2bs3bl1/A659+SnFJCf1WP4i+p53Gd6WltANiWRmb/vADb/zvf+y84Yb8ac89Gffxx6w7ZQpt\nQyC0b8+Lxx+/XPdYE4fusAkvTRxJUaIvsAKtWp1P3+2PXKpk6kAerPdY6pplX5IkKduYEJIkNRvb\n9enDP4YN49i77mJBIsFeW27JX485BoBkKsV/xr9GadlPwIqUxd8zt3A8G551Pu9deQlrrbrqco9b\nfuWhpTd9/82Avn15c3Tf5RqjIC+PnTfcEIBvf/6ZWFrKr0tbByCvpISpP/4IQKv8fJ688EImzphB\nMpViw549aZWfv1zj1sRB/fvz47wFXPbI/hSW5bPLLkczZMhp9T6uJEmS6p4JIUlSszK0f3+G9u+/\n1PHfkjbl1+1pzS9Fgzni+jt4c/SfazxWm1atOHCrrdj//fc5OZnkzZwcvlphBXbu1295Qq+20rIy\nCkLg6Bg5AXgFmAK0KShY1CYnJ4eNevWqrIt6c8rgXTll8K7OqJEkSWrmTAhJklqE/Lw8jthxZ+4d\nN5hU2XDgbeBTIg/z+be/X+5+bzvtNC5/8EFunDSJ7l26MO7ww2nfpk2dxV2RVdq3JwGUAGcDXYEI\nrLfaavU6bnkmfCRJklo2E0KSpBbjthOPYv7C63n07dMpi7sBb5Cbcxsb9Oix3H0W5OVx0SGH1F2Q\n1bAwmSRJPk+SRx/yeYUkZbkr8nNhYYPGUVPFxYXcf/9IrvnyVTbsuSpXHrY/K7drt+wLJUmS1OCq\nWgpBkqRmJTcnhzFnnMpB/dendf5jrNh6R7p3/Bf3nHp0rfr9eNo0bn/lFZ7/8ENijHUUbeVKSkvJ\ny21NEZN5nzHM431yCtYhWW6HtaYmxsjo0fvw0kszmfDFxdz1Wjf6/+XyJh2zJElSNnOGkCSpRcnJ\nyeG+049n6g8/ML+4mPVWW42CvOX/cXfP2LGcfdttDA6B90Jgs0024c4zziCEsOyLl1PnFVdki7V7\n8+6UESRSw8jNeZDWBV+x3XrH1aifokSCFQoKlivWmu4UNuX775gx9RNKSmYCeSRTezD1p424+qs1\nWXfdbWo8viRJkuqXCSFJUou0Rpcute4jVVrKsFtu4a1Uig2AYmDTDz7gtcmTGdB3+XYTq44QAs+e\nfzqn3/EA4z8/lrVX7cRNx15Q7bWLPpk+nQMvv5yv58xhhdw8frf5Fpy3795svtZa9RpzeqWj8srq\nLHGWTC5k8uRxQKRPnx1o3bptta6LMfLUY1fwyjP/AGDnIWfy+73OrteEniRJUnNgQkiSpEosKC6G\nGNkg87o10C8Evv3553ofe8UVVuBfw2pe6pYqLWWvUaO48JdfOAoYlyph97fe5en3P+WZ805jYD3t\nkLZmly5ssfbqvPPlQRSXHEF+/pOsssqKrLnmZrXue9682Zx33gDmz+9ACDm0bfsTl18+lg4dlp30\ne/nF/+PdR0bzdKKICBz80EjartiJgYOOqXVckiRJzZlrCEmSVIkObdqwRqdOXBsCZcBbwNiyMrbq\n3bvC9guKixtkjaGqfDNnDiULF3I0EICdgH60objkeM6776k6G+dBDlzs66EwlBNGvM4ug/uw/vq3\nM3BgB0aNep68vPxaj3X//SOZM2cQxcVvsHDh6/z88+7cc8+F1br2w9f/zWWJIjYGNgFGJYr46I37\nah2TJElSc+cMIUmSKhFC4LELLuDAyy/nnO++Y6VWrbj9tNNYu2vXxdp9NmsW+196KVN++okV8vP5\n16mnsnrnzlz78MMUFRdz0KBBHLTddtUed/LMmfztyRcpTJRwzKBt2GWj/2fvvuOjqL4+jn9md7Ob\nhNACJKHXUKSKiDSVJk2aCggqCihSLCigICoISBEEARt2EfFH8VGRJiBIF5EuvddAAoGE1K3z/LEh\nBhMwAgqa7/sfM7Mz996Z4Itwcs851bJ9b4HcuYn3+TgMlAYuAAdxA5Ekpi7M9jhXw24PomvXUdd9\n3Kioo3i9F0Nc4PU24vTpd7N1b2BIfo5kOD6CgSM433Vfo4iIiMi/jQJCIiIiV1A2IoLNkyfjdLux\n22yZas+Ypkm7kSPpFxtLb2Cj00mzSZOwWiwMdbkoBAzZt4+k1FR6NGnyp/PtPnGCO4aMICm1Pyah\nfL9xBF8+05X777gjW+sNCQxkXNeu1Jk+nXoeL7/gIIkWBDve5tG7b7uKN3DjVapUi4MHP8blagkY\n2O0fU7FirWzd26bzKIbv+Imj7lR8wHR7EK88OOJvXa+IiIjIv4Fxo7e2X2QYhmnOnn2jlyEiIvKX\nxCYkULZXL+IytFevaLXS2evltbTjFcDAiAg2Tpnyp+P1/WgaU5fehsnwtDPzqVL8JX6bkL0UqYu2\nHD7Me4uXsGDzHqzWAJ5sUo+X72+LxZK9bPE5dPxL8/2dPB4XEyY8yrZtCwGDqlXvYeDAGQQEOLJ1\n/6lT+1m75ivAoMGdDxMRUfZvXa+IiIjIzaRTJwPTNDN11NAOIRERkWvgsNlwmSYTgYeB3ECsaV5S\npM8C2a4t5PT4MMmT4UxuXBmCTRct3b6dYbN/INXlpnezOvRs0viS3Uu3li7NR717XcUT3XxsNjuD\nBs0kMfEcpmmSO3eBv3R/4cKRdOg47G9anYiIiMi/kwJCIiKSY7g8HgKs1iu2HDdNk89/+on/LV2K\nw25nQKdOl20xn5SaStNXXqGyxcICr5fhQGhAAHdVqcLbu3YR5nQSBgx2OBjQunWm+30+H5sPHybF\n5eK2MmUIdjjo3qgu/1s7hhRXcWAzwZapVCpaAafbjSPAX6B5zZ49tB/3Psmud4C8PD/tGbw+kz7N\nml77S7qJhYSE3ugliIiIiPxnKGVMRET+M3w+H16fjwDbpb/vOBITQ6cxY9gSFUU+h4OPnn6a9rVr\nZznGh0uWMGH6dN50OjkPDLTbmTdsGHdERma69o1vv2XT118zy+3GAN4HPi9alPUTJ/LL/v1MmDOH\nFKeTTo0b82jDhpfcm+pyUfO554k7e8a/qyjAzs9vjieycGEWb93KE+98SEhCLI+bJisDAkguVYrF\nI0Zgs1rp9u6nTFvZDHg+bbRl3FKsHzsn/vt3wdxMqWoiIiIi/wWXSxlT23kREflP6P3BBxTo3JlC\nDz1E5b59OZeYmP7ZA6NHc39UFE7TZEFqKk9OmcLeqKgsx/lk4UKmOp20AR4FBrpcTF+2LMtrT8TE\nUC8tGATQAEhIScEwDOqUL8+cl19m/ogRmYJBAD2nTqXw2bMcA/YCfd1u2g5/HYDIiAiiE2J50DRp\nDXzndnP2+HHW7NkDgN1mwSApw2jJ2LJZG+ii6Lg4TsTGZjuVTURERET+W645IGQYRgvDMPYYhrHf\nMIxBl7lmStrn2wzDuPVa5xQRkZuXaZpsOHCAJdu2XRKU+TtNXriQGcuW8RGwGAg6e5YmQ4YAsG7P\nHvZHRbHWNPkMuB1oarHwy/79WY5ltVhwZjh2AlarNctr61auzGcOB2cAD/CWzUadihWzteZNew/w\nAGZ67vZ9mESfP8ep8+dp+PLL3GeanAfuBH4BwgyDJKd/Zc+0bEywYyIwFviAYHtPhnVslq15PV4v\nD0x4j5J9BxL57MvUfWU0F5KTs3WviIiIiPx3XFMNIcMwrMA7QFPgJPCrYRjfm6a5O8M1rYBypmlG\nGoZxB/4d9XWuZV4REbk5eX0+Wo+ZxPKdezHITYA1ntUjX6ZGqVJXPabb4+F4bCwFcucmb3BwltfM\nXrOGfkCHtONpQP3oaPacPEm7UaN4HSgGvAqcB34DuuXLl+VYz95/P09Oncpwl4tzwBSHg+XNm2d5\nbZf69dl5+DDFFyzAYhjcXa4cs558MlvP5TFMpgPdgUDgM8AwYPK8edyXnMzktOtuB3oB561W6pYv\nD0DVEiVYO/Il3pz3IykuLy1rtGfdrl0s2LCBmpGR3FuzJqXCwrKc9635i1i02YnTMxYw2XJoGf0+\nn8Vnfbtna91/t47M+VvGVSqaiIiIyKWutah0beCAaZpHAAzDmAm0A3ZnuKYt/p/NMU3zF8Mw8hmG\nEW6aZvQ1zi0iIjeZT5YvZ/G2vZg0Bsri9HxC67GTOTH1rasab8exY7QZORJfairnvV5GdulCvzZt\nMl2XNySEMxmOzwE2i4UZq1bxuMvFs2nnSwDNgWZVqnBPtWpZztm5QQOCAwOZtWwZDoeDpe3bU7VE\nCV04xuIAACAASURBVADikpJ47oMP+HnvXoqFhjKpTx9Gde3K0M6dcXk85A4Kyvaz1SlTmgMx0ZQA\ncuHvThaaO4Tz8fFU9XrTr4sEzgYEsHzECEJDQtLPVy9ViunPPMHeqCjuHDyYnqmpVAReWr2G/l/M\n5vXOHXihbatM8y7feQDcO2nOQHJjMt9rsHJXRLbXLSIiIiL/DdcaECoKHM9wfAK4IxvXFAMUEBIR\n+Y/5dsMGTO4Cvk4704qoc5kDONn14NixvBofTw/gGFBv1izqVqpE7XLlLrluSvfu3PrccwSbJqWA\nkcDT7dvjM00yVsjxAXlz52bGwIFX7DTWtlYt2taqleV6Shw8yLceD2vOn6fZ0KFsmzyZsLx50zuA\nebxe3vz2W37ZtYvi4eEM7dKFgnnyZBqrUY0a7Nq8meUuFzZgtNVKULVqtLzjDgZs2EADp5NQYIjd\nzuPNm1OpWLEs1/ru/Pn0dTp5Le24DCY9PKUYNns+bW6rTsWiRS+5Pu5CND1I4J20N/M2MDHl3GXf\nhYiIiIj8N11rQCi7lSj/+FO3KliKiPwH5c8VApTPcKYcFsN3VWO5PB72xsbSLe24BNDMMNh25Eim\ngFC5woXZPGkSL06bxs7kZCY2acKjd9/Nvqgo6i9YQITTSVFgqMNB//vvx/IXCzADXEhOZs2BA1zw\nerECtwDzTZNVu3fToc7vmdA9336bExs30svlYtXu3dy1bRu/TpxIrsDAS8br1qgROw8fpvbSpVgN\ng7vKl2fm44+TJziYUw8/TLs5c3B6PHSuX59hXbpkWs+6vXuZ/M03bDl0iGczFIYuABh4sduqcTA6\nOlNAqHT+fARg0gxw48/hLhSS/Z1NNzOlhYmIiIhk37UGhE4CxTMcF8e/A+hK1xRLO5fJaxnazjes\nXJmGlStf4/JEROSf1K9VS+b8/CYeXxugLAZ9aVWz5lWNZbfZKJwrF8sSE7kHuACsBR6JyDq9KbJw\nYb4dPPiSc+WLFGHZ668zfs4cViUnM+Suu7Ls+JUdjoAAfPjT0Qrh/81GjGkSbLenX5OYmsqsX37h\njNdLLqCD18vdSUn8tHMnrW+77ZLxDMPgzccfZ2TXrrg8nkvqI/Vp0YI+LVpcdi0bDx6k3ciRvO5y\nUQ4YCpQB8gJPEEwC7XB4PqBikfaZ7i1RpAhTN23iIyAEf32iGoUKXdU7EREREZGbz86dK9i5c8Wf\nXnetAaGNQKRhGKWAKOBB4I+/xvweeBqYaRhGHSDucvWDXuvU6RqXIyIiN9IdkZH877nuPP1JFxJT\nk2h566183rfnVY83fcAAOr3xBlUtFvZ5PDxw5500+ou/LKhWsiTTBw686jVc5AgIoH+rVjRZsoRu\nTidrAwKwhIfTNEMtIp/PhwFk7Elmgyu2dg+y2wnKEFTKjk8XL+YFl4teaccWoLvVistn4rIEEWC8\nw5Tuj1I2i+BZTGwsr0P6XpoPgdFxcX9pfvl3ME2ThQvf5ccfZxAQ4KBz5xeoWfPeG70sERER+ZtV\nrtyQypUbph9//fXwLK+7poCQaZoewzCext/l1wp8YprmbsMweqV9/oFpmgsNw2hlGMYBIAl/QxUR\nEfmP6lCnziUpVNeiYeXK/DZlCtuOHiUiXz6qlSx5Xca9Wq8/8ghVSpdm/e7d1AkL46kWLbDbfv+r\nNE9wMK2rV6fTjh30cblYY7FwNDDwb9/x2gD4qUgRfhg1isMxMRQNDb2kAHVG9oAAkjIcJ8MlzxAT\nH8/j73/B5sNHiSwcwad9ulImPPxvXb/8PRYufJeZM6fidL4NxDNx4uMMGTKLW265+0YvTURERG4C\n17pDCNM0FwGL/nDugz8cP32t84iISM4Uni8fzS7TIv6fZhgGXRo0oEuDBpe95osBAxg5cyZv7dpF\n8YgI5nfowN6oKIqGhlI4f/7rso4ezZvTct068rhc5AMG2+283rYtIYGB6R3R/mj2up8ZNucH4pMS\niMdf3C838BIwLO15fD4fjYa/yf5TLXF73+d03ALqvTKa/VPG/qUOanJz+PHHL3E63wEaAuByHeGn\nn2YqICQiIiLAdQgIiYiIXE9enw+3x0PgX0yj+iuSnU4mz5/PkagobqtQgSeaNr2qQtMAS7Zu5blp\ns0hxeujZtC5D7r+f17t2BWDlrl3c9dJLFDUMjno8DHvwQfq1bXvN669VtixzX32Vyd98g8vtZnzT\npnSsV++y1y/eupXu7/2PZNfn+JvcP8QwwrFQmmSK8+2G1TzfujVHz57lSEw8bu9EwMBnVibF9TWb\nDh1SXb9/IZvNAcRnOBOH/W/8/0pERET+XRQQEhGRm8b47xfwysxZeH1e7ihXhXmDn7ls6lNWElJS\nSHY6CcubN8u28nPoiMfjZvTQOpQ7sYt73Kl8vGET3+730OOpz7jl+ER+PXiQoqGhNK1a9Yqt6QF+\n2rmT5qMn4S/NHMHLM0dzOj6eKd274/X56DB2LHempnICqAe8PmsWTWrUoMpldvH8FfUqVKDeSy9l\n69rPVmwg2TUUCCOIlng4g5eTpHI/UINziUsAfz0jry8Zf4Z3CODBZ54j2OG45vUCnEtM5PuNG/H6\nfLSuWZPwm2Tn13/Vgw8OZNKkJ3G5jmAYcTgc79Ky5aobvSwRERG5SSggJCIiN4Uftm7ltTkrcHn2\nAkXYeOgpHn3nM+YPfuZP7zVNk4HTZ/H2okVYLA4qFC7C0lefJyxv3kzX7t27Fk7t4//cqViAR5zJ\nRKz+EnveMBYvfB+btSnwI/fWXMfM53pdMSj04pczgSeBiWlnqjB1yWNM6d6d2IQE3E4nQcBkYBWw\n1u1m06FDVwwImaZJXFISeYKDsV7lriWfz8eny5ezed8+yhQtisNmAKcJohnvcpYPIa2O0BAOEkCz\n6v5CwxH58tGpXh2++aUxSc6HCLIvombp/NxWpswl6zt57hxen48SBQtm+X68Pl+mtZ+IjaXBoEHU\ncjoJAIZOn87KMWMod5mucXLtatVqw+DBX7FixSzsdjutWq2iWLFKN3pZIiIicpNQQEhERG4Kq3fv\nIdn5GOAPlrg8L7N2T61s3fv1+vV8sHQXbu8x8Iay6+QAHn3nc354uV+ma93uVPIaFi6GKwKAANPL\n1u/HUZkgdntWksIyFmzuyIqdO2lUpcpl53W6fEDGgEYYPtMHgNViIdU0+TxtjrrAd0B8Ssplx/vt\n2DHuGzWKqPh4Ak2TEgUL0rtNG3o1b/6nu5Uyeur999m6fj0POZ38GBDAmSJFCApYT7A7lcNAWWA6\n/jpCL+Pm0Onj6fd+2rsbmO+zbf+blCoSwZf9nk0P7rg8Hh4eP54VO3ZgMwwqlSjB3FdfTa8v9Nux\nY3R54w12nzlD6Xz5mD5wIHXLlwdg9KxZdElMZIzP/37ecLkY+sUXfPXii9l+LvnrqlRpRJUqjW70\nMkREROQmdHW/ehQREbnOiobmx26bSwjFCSaUQB6lYJ5Ld/h4fT5OxMaSlJp6yflf9h8iyXkvMAJ4\nAo+3ApsOHco0R0fm8GL5aE4EwDjDYBPQxDCoaZocAjaRQi/OkZc7CXCdY9Sq48w2OzAnvUn7pfq1\nagyMBhYAG4HHqV+hOO1HjuSWp57CB1wM/5iAy2ajfOHCWY7l9floN3Iknc+fJ7fPx/umybgzZ5jy\n5Ze8t2hRlvdkJTYhgRlr17LY6eQZ4Bu3mwvR0bz9+MMkW7z8BjTFHwwCaAkcOnUq/f5ukyaxe+1a\nep4+ScqWzbQePhxvWhBnwnffkbRzJyfcbk64XJQ4coQh06YBkOpy0Xr4cAaeOYMTeDMujvajRnEu\nMRGAmHPnqJE2DkAN0yTm3LlsP5eI3DipqYm8/faT9OwZycCB9dm37+cbvSQREbkOFBASEZGbQulC\nhQj0bGMeJ9jJeRqwksK5zPTPd584QZmePbn16acJ69btkiBJvlyBwIdAHqAOMIpAuzXLefIGB7N8\n1CjWVq5Mj0KFOBkSQivgHPAD/p0z40jkC/Mcx9bNZMH345g+/RVqDRpDxwlTOX72bPpYjzdpwugu\n9xJkfxy7rSUtqgfiTjpPuV272JSaSmPgbuAT4DGbDSM8nIa33JLluqLj4khKSeE88ALwINAMeN/l\n4oslSzJdP3vdOmo9+yxV+/Zl7Ndf40sLtqS4XAQZBhcrL1mBAoZBiYIFmdS9O4vxh80KAwWAPoDH\n9L/nqHPn+G7DBlb4fDwNLDRNDh06xKrduwHYtn8/D7tcONLGfczjYduBAwAcionB4XbTDf/24/ZA\nOcPgt2PHAGh4661MdDiITnvXY+12GtWsmeW7EJGby1tv9WD9+gTi4+dx7NgzjBzZlujozEF3ERH5\nd1FASEREbgqTFy7kafwNskvhD+9sPXQ4/fNWw4bxUkICZ7xefvP5GPr552xIC0a4PF6gK/A6/po+\ns/B4L59iVSY8nLlDh7Lt3XeJLFmWCRiUAzoDvdNGaANMd6WwcM4IFi3azKbDY/m/DXWpNXgE8cnJ\n6WO9dN99JH/5Ns6v3mNGv97sjIpinNdLMWAh4LPZmBkZSanWrVk+ahRen49Z69YxbcUKojLskAkN\nCSHFNEnkYn0fv0TAZr00uLVk2zb6v/ceY0+f5tOzZ5kzdy5vff89AEVDQ4ksWpR+VivbgTcNg6MB\nAdxRrhxPNm9OxSJFMIGfgG34e47FXrgAwIHTp7EDwWnz2ID8wLYjRwAoW6wYPwQE4MO/42mR1UrZ\nokUBKJg7NzEeD6fT7o0HDnk8hOXJA0Dfli1p2KQJZWw2ilqtVG7QgEEPPHDZ79EfeX0+dh4/zo5j\nx9J3LInI38/n87Ft21zc7o+BikBnTLM127cvvdFLExGRa6QaQiIiclPwmCb7sAJeAI7we1pTqsvF\nsYQEeqUdlwGamCbTV62idrlyeH0mBnn5fT9Rbkzz96MrsVlNQjH5GXgDcGdcE+B0JWMhkrwMxm2W\nIuZCcUZsz0WdOh0yjeWyp+IyexGDv7KQCXhtgQx68EGaVqtGfHIydV94gfD4eAqYJoMsFhYPH071\nUqUItNt5t2dPnvvoI5xuN78BgcCPAQG82/HSlLWvV61isMtF07Tjt5xOXlyxggHt22MYBnNffZXn\nPviALgcPUiY8nGW9e5Mn2B/mMXw+XsH/zzqAccAjXv87Lxsejhd4DuiBP6B1FKiWVgT7pY4dab59\nO9Wjowk0DJJDQljevTsAYXnzMui++6jz/fc08/lYabHQ5e67qVSsGAAWi4U3unVj7GOPYZomlj8U\nnY6Jj6fXhzPYdvQklYtF8MGTD1MkNBSAxNRUqg4YytGzKYCF0NB8TJiwnuDgPNn6HovI1TMMA6s1\nEJ/vNP4KZCaGEYXDketGL01ERK6RdgiJiMhNof+997IIkw7YeQmD9lipVuH3gs52YGXa14nAr4DD\n5v+9RtOqlTGZgj/hawXQhfoVSmVr3rPn4ugO5AUew5/eNRx4F+gaEIAHuIuP+Jot9Od7gtjC/v2/\npt/v8bjZsWM5mzbNx+VK5r77hlDfkYthQFN7MI6S1dMLU0+aN49bY2NZkprKTKeTkSkpvPDRRwC4\nPR4Onz5N2YIFcVgsRAGpwAW3m+7vfcrS7dvT5wwODCQ6Q5HpaLikNXyB3LmZPnAgO99/n3mvvUbZ\nDJ28aleqxM4Mz78LKJ8WtClaoAANqlTha6Ad8D5QOiKCuytXBiAkMJAVY8bwwcsvM2HQIDa+9dYl\nreMfbtSI8LAwZgOB+fPTs0WLTO/bMIxMwSCP18tdw8axYHMNDsd8xQ9b61P/1bE43f7wXKeJ73Lk\nzG2Y5klM8wSxsdUZP/6hrL+hInJdGYZB587DsdubAW9gsz1M/vzR1K59341emoiIXCPtEBIRkZtC\nq5o1eaJFc97+YTEWTArlzc+ilwYAEGi3UzY8nHbR0dQFdgMXLBYeb9wYgHX79mG1NMLrmwEkAHey\n6dDiS8b/ee9elu3YQemwMDrXr5/eOatwoYLMO36C5/FSHojEXybaYRgUzZMHV2ws80ghEGiKl+WA\ny+VPGXO5Uhg6tAVRURcwjEJYrX14/fUfKVG2Fjv2/Uz5QiVp2LA7Vst3AJw+e5bbPZ70nU+1gLfP\nnwfg2Q8+YP/PPzPK5WIz/lb13wBzgYGpRblv/LvsmTSaYgUK8HSbNtRfswZnaip5TZPJdjszHn44\nW+/5xQceoMaq1Rz3esgDzDQMFqTd6/J42HD0DGd5mEAMnARw7vy3xCYkEJbXX+A7wGajXoUKmcZ1\nezy0HDaMLrGxzPH5mBcdTYthw9jxzjvpXcguZ29UFCfPuXB7JwIGHt9txCbMZfvRo9xerhw/7zsJ\nDMJfuQjgEQ4efCpbzysi165Nm+coUqQc27f/RP781Wne/AMCA7VDSETk304BIRERuSms3buXj35Y\nRG+gHDAq/iz1X3mVZ+9tRdOqVVkyfDgdx4xh6dGjFAgK4otnnklPR0pIceL1RRDCcSz4SKQAyU5n\n+tjD5/wf4+fMwcTAjY+x3yzg/V7dGDdzJhcSE9lqgZI+C1YMgvByGshrmvSLi+M4/jSywLSxXECH\nUm46Mofxi74n6nheUt0/4d90O4npUzry5TM9KFejalrtn+/S13FX9eqMXr+e+51O8gNjAwK4q2pV\nfD4fn69ZQ5TXS37gHmAr/t5lNQELKWCpxebDhylWoADlIiL4edw4PlqyhHNuN/PuvJM7IiOz9Z5n\nrP4Zl+VOvva2BbwEWDbx4Y/raFi5MkfPnCHFFQB8ycU+bjbrPlbu3En0hQt4vF7a3347pcLCMo17\nMDqa1IQEXkmr7/OUaTLd62Xb0aM0qFgx0/UZBQYE4PWlpL1dB+DBZybiCAgAIDQkgLjk2fj3LQHM\nIleu6/ePUdM0SU1NJDAwBMO4fO0pkZzstttac9ttrW/0MkRE5DpSQEhERG4KPadOpSP+VC2AO4CW\nx48xd+pUnjMszHlpMGvHj8c0zUz/aK9RqgRBTGYcUBx4jg0UifDvYvH6fIyfM5uRmNyNf/9Qq5OH\naPXaa0zy+SgCvGi3E1auHOcSEnjo+HHyp43b1+vlC6AxFgbg4ydgNxZKpwVE9p6KJdV9D7A+beQl\nbDp0lFqDJ1Ik1M7q4YMuSanqXL8++44fp+z33+P1+WhftSrjevTwp1EZBr+HsPzt6t3AywTipDE2\n32Ii8jVK/7xMeDhjunbN9B6PxMTw2fLluNxuOtavT80yZS75fNOhKFLdjwLdAHB717DlsL86U8Hc\nuXF7zwMngGLABZzuffT7cAv3uN0EmSa1Z83ix5EjqVay5CXj5gkK4rzXywX8vd5SgdNeL7kDA/kz\nZcLDaVChND/vLIXVZ8Vr+KhWKpwqxYsD8PlT3Wj42gR8ZknAgmHE0bfvt386bnbs3r2aceM6k5Jy\nnly5CjF48GwiI++4LmOLiIiI3MxUQ0hERG4KyamphGc4LoS/KPP3wGemj+4T3gLIcgfH7uPHeQZ/\nC/XWwBx8RJ85BcDZCxdIxWQc0B24D3/A4hmfjx5AC+Azl4sTp07xaKNGrLTb08paw3LAxMIWRvMk\njfmc3hDYnJj4eADqRJbAYowBngCGAWuBtSQ5j3I45j4enzr9knUahsGwLl1ImjGDpBkzmD14MMEO\nB4Zh8Ezz5rRxOPgKGGAYLAWeAtZQECeLqRMZwe1ly17xHR48fZo6L7xAwnff4Zg3jxbDhrFi585L\nrqleMpxA+7f4S2abBFj/jyol/DWG8oeEMPLBDgTbaxNsf5RcjlupGBZEt9RUprndTPV4GJaaStvh\no2j2+mTmbdyYPm6R0FAevvNOGjocjACaOhzUrVo1U+DoojMXLvDRjz/y4Y8/cvLcORLjT/EgMXzL\nSboa0cREH+Hl/83ky1WrqF+hApveeIXO9ctSt+5djBmznKpVG1/xXWRHYuJ5xoy5j6Skcvh8ZUlI\nKM3rr7chNTXpz28WERER+ZfTDiEREbkpdL37biZ98w218bedfxb/HhWA24EEZ+rlbsUwDDyGAWmd\nxTyQXri4UJ48OICp+BOOTgFVgMMZ7k8F4pOS6N2sGfN+/pmax48Tbhjssliw4cCRNJ5U4jFYh9tt\no0apewCIT07BMKqD+QP++jbj8de6WYDH+yhbDs/h8xUrWLZlC+WLF+eFtm0JtNuxWCyZCiuPefRR\npoaH893mzRTKn5+QTbtIvtCZFHIBNtbtm8KJ2FiKFyx4yX2rd+9m8+HDlA4L48fNm+mZmsrItPdQ\nwelk1IwZNBw9Ov36we1bs/S3CWw7UhaLEURYXjfvPv5S+ucvtruXu28pz7ajRykX8QifLFhAhZPH\n0j+vCMQlhrB0ey/W7nmRL5/1cV/t2gBM6dWLWVWrsv3IEZ4oWpSud92VZQDv+Nmz1B80iHpOJzbg\n5S++IMTnY43PhwVo6PNRKu4CY+cWJJfjZ+Zt2s3M557kf/2eYg4dM413tY4e3YbT6QMa4g8V/o/U\n1O2cPLmbsmVrXbd5biZer4fVq2cQE3OEcuVqUbPmvTd6SSIiInKDKCAkIiLX3anz54lPTqZseDgB\ntuz9VTOyc2fW7trF43v2YMWfMrUcf3DnNWzkytBF648euesubvtuLgW9HkoCgw2D3k39TdmTXS68\nhkG7tCBJYeAu/JV9RgNF8HcV81ksBNrtLB4xgjV79pDkdFInMpI6AwbQjzieArbioYlhS6sNBLtP\nnsHra83vxY5bAp8CYLV8i9WbwKj33qMXsOTnn/nfsmVse/vtLN+JYRj0adGCPi1aEHXuHB+vfhH4\nEggFYjDNomw5ciQ9IHQkJoYOE99i6+EoLJbm2G2/UjzkLM+mPSdpz3YhOZlBn3/Olr17KVO0KCMf\nfZTVwwex4/hxXB4P1UqWxP6H9dwRGZlek+j4mTOM37GDek4nQcCL2EnicaArya5g3pg7Jj0gZBgG\nnevXp3P9+pmezzRNXp89m7cXLCDF5aKGz8dX+LcqvwBMs1jwph37ABdBQF+SnBWYt6kMe6OiqFi0\n6GX/DFxJQkIsW7YsBAxq1mxFSIi/nX1ychymmReoi787XVNM8wuczv/mDiGfz8eYMR3Yu/ccTued\nOBz9uffezXTu/OqNXpqIiIjcAAoIiYjIdWOaJgM/+YRPly8n1GbDFhzMDyNGpNfcuZL9p07x2+HD\njABKAwOAuwEvBsGGyaz+z1723k2HD+O2lGSktyo2kknGyoo9xxkC5HI4KJgrFwsTE2kFxADrgErA\nEWAn/jDOzogIPlu+nHU7dlA0LIz+bdviM01OXbjA02nz3ArcCWw8eJDIwoWpW74kX635ghRXFfwJ\nbrOwWs6Qy1GNYMdZTsedIwrYjz+Z7FxsLL2mTuWTp57CMAymzJ/P6DlzSPV46FyvHlN69cJusxES\nGIjLk4I/0JQfiCXVfYSp8+fz2cKFlClenA9/+IFWpkkt4AvvdyR5v+CwdwCjAgKo7HaTBxhgt+Py\neDi8dCnPu90sOXKExnv2sGHixMumcl38PsYlJZE3OJhHGzbkVGwsDebNI8npxO27Aw8XAwgWMsSf\nLuH1+fhw6VJ+O3iQ8iVK4LBa+b/581nvdBIAPABMBAYCjYD/2e109Pno6HIxC4MLVAGqAVYCrIW4\nkJJy2fVeyZkzRxk8+E5crlqAicPxCm+8sYYCBYoRHl4Wf+2n/kAT4D0ghQIFil/VXDe7vXvXsm/f\nPpzObUAATuezzJ1bhvbtnycwMORGL09ERET+YQoIiYjIdfPthg0sXbmSwx4P+TwexjmdPDFpEssy\npCxdzgdLl9LF6eRi2Kc0cLfVyhtPPEHTqlWz7Gx10a8HDpPi7gEM8Z8wD7H5kH+XimEYzHrxRe4f\nM4biwGGPhwK5crEvLo5UoKTdzo8WC6HJTiZ8+CFP+Xystdmos2oVK8eMwePz8RtQFUgGNns8tHO5\nAHiofn2GfDWPFFc3ID9WyxGmPd2dMmFhBAUEUHfQIA4DbfHvRnoMeH7tWj6MjKRQvnxMmDGDn7xe\nCgCdV61isMPBxCeeIDYxEX8w6HugAbCbYCpTYfdu6psmvXfsoAf+1vQAdYDneRrTfhudGwXTd/16\nouMvkOqzYpw5wybTJABo4fVSJyGB9fv20ahKlSzf5caDB7l3zGTikhNw2AKY078vgzt0YHCHDqze\nvZvmoyaD6wsgiGB7fwa26ZJpDNM06T5pEke3bKGD08lCu53dAQGMcjq5WOJ6ODA27Z2MdTjoda8/\ndWnuwYOs3n2AFGcb4BSG8X8E2mPTC0z/VdOnDyMhoUvajBbc7hF89dUInnnmQ2w2B4bhxTR/BvIC\nsRhGKWw2+1XNdbNLSorDMEoAAWlnwrBYgklJSVBASEREJAdSQEhERK6b344epa3TycW+Wo+aJuOO\nH8/WvV+uXk2HDMdewO318kSTJn96b9mIQgTbfyTZ9SJgw2AJJQv9HkCqV6ECgzt0YOnmzdweFsao\nrl3JHRjIsh07OHDqFCu/+obYmGii8VEA6O3xUOvsWao/9xwWw6CpadIIfyv4XBZLejv095csJSG1\nCjAfsGGab/DRj9+w4rWBeLxeHIbBk6ZJP6Bn2lpCvV76L1hASEgIA71eKqWdH2eatFmxkpGPPMKM\nVavw7zi62Fp9F9Wx8JbpL3c9DNLvAygPQBJe31b6txnDwq37iYvrjsfbgWAa4MNzyXu9XGt1p9tN\n81ETOZf4LtARl2cND0xoy4G33yAiXz7urFSJAa0bMXHBEEwfPNSgCh3qZO7IdTw2lkWbNnHU7SYY\n6O1yUdrjYSXwcNo1u4FthkEpi4Wed97JkI4dsabVVToUHc1Dkz9h98m3iIwoylf9BhF8hZTBs2eP\n8fk7j3Hy5G6KFq1Et6enUbBgCXbtWsmGDf+X9tRTAA8+X1POnPGn+CUmxhIYWI6UlLxpIxUgMLAE\niYnnKFCg2GVm+/fyd0/rCXwFNMZieY9ChUqQN2/4n9wpIiIi/0UKCImIyHUTWaQIUxwOXk6rEZYS\nEAAAGe1JREFUNzMPKJ+NdDGAlFQnX+JvG18K/34OD5CvWx+sFhtD7mvJgDatsrz3icaNmbF6E78e\nLI9BODbrbiICi3Dvq6/SpFYtjsXEsG7VKno7nazfu5e7du7klzffpEWNGgzZtZcU52NYeY/c+AAw\n8Be0LpuUxCKLhbGmiR3oBDxrtabXstl18gwprpb4E9GS8ZktOHD6fQBsViuf9O/PYxMm4M6wVg/+\ngMze0zHsyHB+D5DkclKke3dyeb0EAQa3k8JHmCRhTe995t8RNBKoD+TDn17nNWDRkOfxmSZHzpzD\n4x0HgElTWrOE3vhYYrPhy5ePuuXLZ/kej509S6rLDqwC3gbKYhhl2XHsGBH58jF/0yYmzl9Hsutz\nIIiv1j7BbWWW07vZpUG7ZKeTEIuFoLTjACDMbudbwOn1Yge+t9lY9/rrVCpWLFOAqkx4OOtHD8ly\njX/kdjsZ82oDnjgfRWefl5kJZxnzagNeHfMrY8d2wuf7P6AZsAh/n7lY7Hb/n8lixSpjsUThD5Dc\nD/wPmy2BwoUjszX3v03evGEMHTqfKVN6c/58P0qWvI3nn/8+U4FzERERyRkUEBIRkeumc716/PDL\nL1TcupUiFgsnrFZ+eO65bN1bOjycA8eOshJYif8vKAsQn7wBSGbo7PYUyZ+XLg0yFyy+kJLCoeho\nTPMWXF4bFk881XfHMx1YuXcvqUA0UADo7vHQ9MIFfti6lQfq1MHl8WKSFzsN6cxPDMHLOuBX4Gtg\nbVAQg7xeSlssHHK7eb5dO2qWLs2+qCiK5A8mgMHAc5iAjQBuKVozfV3lwsPJnSsXbyYlkQ8oBLxq\nt/Na+/a88X//x9zEC8ThLxs9C3+waI7Xy73APqA+Xlz0wLDkYr89iKEuJ3V8PtYaBommST1Imxea\nVKtCg4oVOZ+YiMebDMQB+UlhDj9bS+ApkY9bIyNZ1rkzp+PimLZiBW6Ph4716qXXEyqYOzfJrnjg\nAv6Q3EISU/eQO+g+AD5ZvoFk1wj89XZ8JDsn8fGyVzIFhMpFRJA/NJQXY2Lo6vXyvcVCYnAwvwwf\nzsItW/D6fLxauzYl/tAx7UrmbdzI1LlzOcMk7m7zArVrtwfgxIldBCfHMdTnD5gN9Xn5KjmObdsW\nYxjF8QeDwF8pKhzohNu9EoDg4DwMHTqfN9/sytmzjxEWVpkXXliI3R6Uaf7/irJlazF58sYbvYwc\nb//+X9i+fSm5cuWnYcPHlLInIiI3hAJCIiJy3VgsFqb1789vx44Rn5xM9ZIlyRMcnK17Jzz2KC1G\njmMNTnyAgZ0k6gBlgB3gzMsrn00jJTWF7k2aXLKr5MMflxGb2BS3dxoGr9CXxczF5BX8NWry8nvy\nlQHkBlwefxrVI3fV4/0lY0h2jWERUaxhF7XwdzibbbFQq3RpPuvfnz0nT1Ikf36KFyzIQ+PHs3L7\ndqxuN3ZMmgDnge24+XXPZuKSksgTFMR9o0bxZlISlfCHV9YaBsMeeojHGjXiqzW/EBVzjqJ4sAGh\nBBCDm4tNwMvj3wm0xDDYNWkMdpuNodOn88uZMyRHR9MwIYFv8FcaGgp8vHs3APlDQujV9B4+/ake\nya6mBAVs4fby5Vj26gAsFgsHT5+mweDBdEhJIcQ0abJgAd+98gr1K1Zkz8mTaSN+mvbfhsB8fj14\nkDsiIwmyW3HwCR76ACYB3IYj4GKHtd/ZrFYWDR9Ov6lT6XL0KOWLFOHHPn0oUbAgT7doka0/Dxkt\n3LyZ3pMm8ZbLhQE8e/hhjH5fcfvt7XA4cnHe6yEFCMLfne6810PBgiXxeA4Dp/D3ljsJHMdiOUxY\n2O/dykqXvpV3392BaZqXTaUTuZ7WrZvFjPd60M2dyt4AB8MXTmLYuC0KComIyD9Oe4RFROS6MgyD\naiVLcmelStkOBgE0qVqVKU88hicgN8lYCchVAH8azwGCqMtwNvNGQhwTp03jre+/v+TeuKQUXJ6L\n5YoNXMBB4EkgEGgPdMDf6WuCYfCr1UrTatUAqFGqFItfeZ47K35KhZI2ShcvwVa7nfsDA5kZGso7\nffsSGhJCvQoVKBUWxodLl3J6+3YOuVxUMk0eBIrib5U+GWjtdtPwpZc4HhtLfHIyDwM1gblAg8BA\nCof6W56XK1yEeNryMaV4nwiO0hY3Br+kPcVp4BegdGgoZSMiKF6wIJ89/zyLR4/GCmRsdn8v/vo/\nF7W7vSp28yBlbVOx+dbzUJ1q6WlBb3z9NT2Sk3nbNBkDTHC5ePnTTwF/ICetelPaSCbgwpIWKCld\nMBcVWE8MHuLxUo8NlCkQQFbC8+Vj5uDB7Hz/fb599dW/tBvojz5btIjRLhedgI7ARFcyqxdMAqBw\n4Ugq1WhBE0cw44EmjmAqVW/OLbfcxf33D8JurwXcTm5KkQcXQUHf8NBDwzLNoWCQ/FNmf/os37mS\nGWf6+M6VQqVzJ1m9esaNXpaIiORA2iEkIiI3jT7NmtKnWVN8Ph+bDx+m4WuvkeL6iifMJAamXVPO\n6aTj/Pn0b9cu/b42tW7lnR/eIdnVGJNGfMRoHJisB+oC7wBVLRb65M9PuaJF+alHDwrlyZN+f4OK\nFVk1oiLg75B14PRpkpxOKhUtml5A+qJdR47QzuUiEDgLNMa/+ycayAM8CtwZF8fWI0fwGgZbgRpA\nPLDV52NIWmCkT7OGTFs5igTny0BBgu0v06tpK1ouXUJJt5uDQIHcuflh+PBM7ykuJYXPgEcAB/AR\n4E3r/+50u+ny5pt863bTEH/L+/rTp9O4enXKRkSwbOtWBmcYqziwO63w921lyhAakptzifcCPYB5\n2G3nefSuuwA4dPw4L+BPcQN4GRgeFXXF7+lfNYeOmc7FWD7Hzbb0Yxdgsfp/hDEMgz7957B8+aes\nOrqNqiWr07hxDwzD4IEHXiQ4OIi5XwzgLa8HEw8D3T6OH99B/vyFr+u6RbIrMTWRsmlfG0A5r5uY\npLgbuSQREcmhFBASEZGbjsVioVbZsmwZN5y+H3+M9Tcz/TMD/76VjBpUrMinfR9iwBePkOxM5e5b\n6nHu/GmaHzxI/YAA9hkG99ety7t9+vzpThDDMIgsfPlgQaWSJfnabqePy0VjYGLamgIzrC+XYWCa\nJh/37cs9771HXauVbT4fnRo1ona5cgBUKVGC1SMGM/rbhSQ7PfRs0oX2tWvzQru27D55ksL58lGp\nWNadrgJtNpI9HorhDwjl4/ctv6fOnyfQNGmYdhwJ3GqzsTcqirIRETg9HkYAVYAQYCDg8vnS3/vB\nt0fTcvQE9pwcTLECwcwf/DohQf6aOhEFC/Kr1cojXn+9nl8Ng8IFClzxfV4Pjdu9yKCdP+F2pWAF\nhtiD6NNuUPrnFouVpk17Znnv3l+/Y7LXzSNpxz5XCp/On0i1avf87esWyUrNGi14dssC3nI72QdM\ntwbwgv48iojIDaCAkIiI3LQiCxfm/Z49qffii5RMTaUEMMzhoPe992a69sF69XiwXr1Lzh2JiWHL\nkSMUzpePOyIjr0ta0JP33MOKrVspu2MHeQ0Dp8eD1eulA/7gymqLhT02Gw0rVyZfrlzcWqYM244e\npUTBgtQqW/aSsW4tXZo5/Xtfcq5w/vwUzp//imvoePfdfLx4MQ/jr4f0IVClVCkAIvLlIxl/utkd\nwDFgq8dDuYgIAG4pXZpjO3fSA39iWL60OS/KlysXP48amuW8Qzp1osHGjbRMTiYQ+NVmY2W3bn/+\n0v6CjszJfPIWaDRkEB8uWMBJswhPtepHlSqNrn4S848hRZF/To+np/H5u92psu0HQoLy0OOJ9yhT\npuaf3ygiInKdGeZN8kORYRimOXv2jV6GiIjchH47doyxM2dyISmJdg0a8HjTpje05otpmuyNiiLZ\n6aRy8eJcSE5m2IwZbDtwgGJhYbzRowelwsL+tvk9Xi8thw9n9Z492ICI0FB+GT+eArlzAzB/40a6\nTZ5MOauVAx4Pr3XuzNOtWwMQn5RElaeeIi45mQDAsFpZ++abVCxa9PITZnAhOZlFW7fi9floVq0a\nBTOk3v0Tskopu5ItWxbx8YQHeNOVggkMtAfR+8W52iEkIiIiOUanTgamaWb64VkBIRERkX8h0zQ5\ndvYsLo+HMuHhWC2X9ok4c+EC+6KiKFGwIMX/UNDZ7fGwcMsWUlwuWtesmZ4S9m/wVwNC4A8KrZrv\nT+5r1O4FBYNEREQkR1FASERERP71riYgJCIiIpKTXS4gpLbzIiIiIiIiIiI5jAJCIiIiIiIiIiI5\njLqMiYiIyL9Gll3I0iidTERERCT7tENIRERERERERCSHUUBIRERERERERCSHUUBIRERERERERCSH\nUUBIRERERERERCSHUUBIRERERERERCSHUUBIRERERERERCSHUUBIRERERERERCSHUUBIRERERERE\nRCSHsd3oBYiIiIhcDx2Zc9nP5tDxH1yJiIiIyM1PO4RERERERERERHIYBYRERERERERERHIYBYRE\nRERERERERHIYBYRERERERERERHIYBYRERERERERERHIYdRkTERGR/7wrdSADdSETERGRnEc7hERE\nREREREREchgFhEREREREREREchiljImIiIj8xyhFTkRERP6MdgiJiIiIiIiIiOQwCgiJiIiIiIiI\niOQwShkTERERyWGulFKmdDIREZGcQTuERERERERERERyGAWERERERERERERyGKWMiYiIiFxBTuvY\nldOeV0REJKfSDiERERERERERkRxGASERERERERERkRxGKWMiIiIiV6AUqUupQ5mIiMh/g3YIiYiI\niIiIiIjkMAoIiYiIiIiIiIjkMEoZExERkRzv70qDymkdu3La84qIiPybaYeQiIiIiIiIiEgOo4CQ\niIiIiIiIiEgOo5QxEREREflHqEOZiIjIzUM7hEREREREREREchgFhEREREREREREcpirThkzDCMU\nmAWUBI4AnUzTjMviuiPABcALuE3TrH21c4qIiIj8m/xZGpRSqERERORGuZYdQoOBpaZplgeWpR1n\nxQQamqZ5q4JBIiIiIiIiIiI33rUEhNoC09K+nga0v8K1xjXMIyIiIiIiIiIi19G1dBkLN00zOu3r\naCD8MteZwI+GYXiBD0zT/Oga5hQRERH5R10prQv+vtSuGzWviIiI5AxXDAgZhrEUiMjio5czHpim\naRqGYV5mmPqmaZ4yDKMQsNQwjD2maa6+uuWKiIiIiIiIiMi1umJAyDTNey73mWEY0YZhRJimedow\njMJAzGXGOJX23zOGYXwL1AayDAi9Nnt2+tcNK1emYeXKf/4EIiIiIiIiIiICwM6dK9i5c8WfXmeY\n5uU29vzJjYYxDog1TfMNwzAGA/lM0xz8h2uCAatpmgmGYeQClgDDTdNcksV4ppkhICQiIiLyb3Cj\nUsZyGqXIiYiIXJ1OnQxM08xU2/laikqPBe4xDGMf0DjtGMMwihiGsSDtmghgtWEYW4FfgPlZBYNE\nREREREREROSfc9VFpU3TPAc0zeJ8FHBv2teHgBpXvToREREREREREbnurmWHkIiIiIiIiIiI/Asp\nICQiIiIiIiIiksMoICQiIiIiIiIiksNcdQ0hEREREblyN7Br6Yz1Z/eqC5mIiIhcC+0QEhERERER\nERHJYRQQEhERERERERHJYZQyJiIiIvIvdKWUMqWTiYiIyJ/RDiERERERERERkRxGASERERERERER\nkRxGASERERERERERkRxGASERERERERERkRxGASERERERERERkRxGASERERERERERkRxGASERERER\nERERkRxGASERERERERERkRzGdqMXICIiIvJf1ZE5V/x8Dh3/oZWIiIiIXEo7hEREREREREREchgF\nhEREREREREREchgFhEREREREREREchgFhEREREREREREchgFhEREREREREREchh1GRMRERGRm96V\nOrapW5uIiMhfpx1CIiIi8v/t3U+opWUdB/Dvj7EWRSBiaOqAi5T0rgyapBbdjTEqZAM55iaJqAjc\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x7f29ef54eb90>"
]
}
],
"prompt_number": 60
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment