Skip to content

Instantly share code, notes, and snippets.

@GadgetSteve
Last active August 12, 2016 07:02
Show Gist options
  • Save GadgetSteve/2db58accd239c5e74ee3d7bf29770664 to your computer and use it in GitHub Desktop.
Save GadgetSteve/2db58accd239c5e74ee3d7bf29770664 to your computer and use it in GitHub Desktop.
A Rough & Ready 2016 Medal Notebook View
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Olympics 2016\n",
"-------------\n",
"This notebook should track the progress of the 2016 Olympics using Wikipedea as a source of information."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import matplotlib\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import requests\n",
"from bs4 import BeautifulSoup\n",
"import datetime"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get the data!\n",
"---"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"07:44 Fri 12 Aug 2016 Result: 200\n"
]
}
],
"source": [
"r = requests.get(\"https://en.wikipedia.org/wiki/2016_Summer_Olympics_medal_table\")\n",
"last_update = datetime.datetime.now()\n",
"last_update = last_update.strftime('%H:%M %a %d %b %Y')\n",
"print last_update, \"Result:\", r.status_code"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Parse the data\n",
"----"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Great Britain GBR 4 6 6 16\n"
]
}
],
"source": [
"soup = BeautifulSoup(r.text, 'html.parser')\n",
"t = soup.find_all('table')\n",
"Medals = []\n",
"# Note that this depends on the current page layout - at the moment the table we are after is second\n",
"for row in t[1].findAll('tr')[1:-1]: # Skip first (header) & last (totals) rows\n",
" vals = row.text.split('\\n') # Split the text value on line breaks \n",
" if len(vals) > 6:\n",
" try:\n",
" start = 1 # Most lines start on line 2\n",
" if len(vals) == 8: # Some on line 3\n",
" start = 2\n",
" country, gold, silver, bronze, total = vals[start:-1] # Also skip the spare at the end\n",
" country, code = country.split(u'\\xa0')[1:] # For some reason the countries are u'\\xa0Name\\xa0(code)'\n",
" Medals.append([country, code[1:-1], # Country and code without brackets\n",
" int(gold), int(silver), int(bronze), int(total) # Medals\n",
" ])\n",
" except ValueError, e: # Just in case!\n",
" print \"Problem\", vals, country, e\n",
"try:\n",
" countries = [x[0] for x in Medals]\n",
" codes = [x[1] for x in Medals]\n",
" gold = [x[2] for x in Medals]\n",
" silver = [x[3] for x in Medals]\n",
" bronze = [x[4] for x in Medals]\n",
" total = [x[5] for x in Medals]\n",
"except IndexError, e: # May not need this any more\n",
" print x, e\n",
"# Just so I can keep track of team GB\n",
"gb = codes.index(u'GBR')\n",
"print countries[gb], codes[gb], gold[gb], silver[gb], bronze[gb], total[gb]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Actually Plot The Data\n",
"----"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABZkAAALJCAYAAADWGi0mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xu0XWV5L/7vkwSQq9wvAgkXKydqBWqLIKWFqgwvhYpV\nwFRAqsVKpXi09FexFbAHD/VntdqqpRcQsCAqIli5aMVUsIr1glJAbVUCcglyMwFUxLznjzl33Ozs\nnexMsnLBz2eMNVh7zne+85lr7bUG45t3P7NaawEAAAAAgCFmrOkCAAAAAABYdwmZAQAAAAAYTMgM\nAAAAAMBgQmYAAAAAAAYTMgMAAAAAMJiQGQAAAACAwYTMAACrUVXNqaolVbVa/z+sqn69qm5anedc\nnqo6u6reOs2xn62q31/J+dfI6/xYDbnWX3RVdVlVHbWm6wAA+EW2Tv1PNwDARFW1flX9U1XdXFU/\nrKqvVtXzJ4x5TlXdVFUPVNVnqmr2uH0HVtVVVXV/VX13inOcWFXf7Y+/oaqevJx6nlpVl/Tz/bA/\n334ThrXHdNEDtNauaa3NXdnjqurUPqw9YcL2E/vtb1l1Va5yj/l1rqrvVdVvrYpiVrXHWltVbVFV\nF/e/19+rqpeP2zevqhZX1aL+8WD/fu+9gjnX6z9rt0yx/zf7eab8B4aqOqWqHu7PO1bDn0w1vrX2\nwtbaeVPM9bSquqKqflBVP5uwb4XfHVPMeWB/DSetaOxQVbVNVZ1fVbdV1X1VdXVV7TNhzLy+9sVV\n9bGq2nzcvpdV1ef79+2qSeafUVX/p59/UVV9pao2G9X1AACPf0JmAGBdNyvJLUkOaK09MclfJPnw\nWJBcVVsluSjJm5NsmeQrSS4cd/yDSf45yaQhVlW9OsmxSV7QWtskyW8nuXuKsbsnuSbJ15PskuRJ\nST6e5FNV9azHdJVrTkvyrSRHT9h+dL+dddf7kvw4yTZJXpHk/VU1N0laa+e31jZtrW3WWtssyfFJ\nvtNa+9oK5vzTJAsn21FVs5L8TZIvTqO2D/XnHqvhHVPMWSuY56fpPu+TrQ5f7nfHchyd5J4s+5lY\nlTZJ8qUke6f73jo3ySeraqOkC8+T/H2S30uyXZIfJXn/uOPvSfKuJP93ivnfmmTfJM/q39+j0v0u\nAAAMImQGANZprbWHWmtvba3d2v/8ySTfS/LMfshLkvxXa+1jrbWHk5yaZM+qeko//j9ba//SH/Mo\nfYD1liT/u7X2rX7891pr909RzqlJ/qO19pbW2v2ttQdba3+b5LwkfzXJ/C+tqi9P2PaGqrq4f352\nVb23bwewuF/NuF1Vvauq7q2qG6tqz3HHfq+q/qxfbX1PVf1zVa3f7/vNqrp13NidquqiqrqrX+X5\nnuW8zF9OstFYAFlVT03yhCT/OaH2366qr/UrL6+pql8et2/vfrXkD6vqQ/3xY/s2r6pP9LXc0z/f\ncbJCqmr3qppf3Urxu6rqguXUPf64V/av16Kq+p+qOm7cvq36c97Xn//f++3nJpmd5BNTraatqmOq\n6uoJ25ZU1W7987Or6v1V9al+js/Wo1fSP6+6lb/3VdXfJqlx+3arbiX83f21fnBstelUtVXVvv0K\n1vv69+I3p3g9Nkr32fjz1tqPWmufT3JJurBxMsekCzqX9xrvmmRepg4235jkyiTfXN48KzjHZ/sV\nuNdU1YNJdq3ltBhprX27tXZ2khsn2bei747Jzr9Rkpcm+aMkv1RVvzJu36M+Y/22pavNq+oJVXVO\n/9m9oapOmjh+XG3fa639TWvtrtb5xyTrJ9mjHzIvyaWttc+31h5KF5C/pKo27o+/qrX20SR3THIN\nmyc5MckftNa+34+/sf9+BAAYRMgMADyuVNV2SZ6S5L/6TU9Lt7I4SRcsJfmffvuK7NQ/frmqbqmq\n71TVqcsZ/9wkH5lk+4eT7F9VG0zYfmmSXapqj3HbXpHknHE/vyzJyUm2SvJwki+kC33HVmi/a8Kc\n85I8L8nu6QKpPx+3ryXdn8on+dd0gdrsJDsm+dByrqulC8qP6X8eCxzHB6J7p1sR/gfpVl6emeTS\n6tonrJfk4v66tkz3Gv3uuPlnJDkryc59PQ8l+bspavnLJFe21jZP99787XLqHm9hkhf2qzaPTfKu\nqtqr3/fGJLeme023Tfd6p7V2dLqVrr+9vNW0WbYtx8Sf5yU5rZ//60n+JUmqaut07+HJSbZO8p0k\n+487rpK8Lcn2Seb213vqVLVV1ZPSva9vba1tkW51/kXVreaf6ClJftpa+864bV/PJJ+LqpqT5ICM\nC5mr6uVVdd2Eoe9J8qZMsiK2n+PYdCtoV7T6eEVekeTVSTZN9xqsEv13xy8luWE5w343yeJ0v8Of\nys8/E2OW16Ll1HS/37uk+4y+YgXjx9e2V5L10n13Jct+r303yU/Sva8r8svpVni/rKruqKpvVtXx\n06kDAGAqQmYA4HGjuj/H/2CSs1tr/91v3iTJDycMXZQuoFqRnfr/Pi9dqPNbSV5eVa+aYvzWmWTl\nYL9tRrqAdal+5eCF6cKmsT+Bn5Pkk+OGXdxau64fe3GSH7XW/qW11vpj98qj/W1r7fZ+tfXpSV6e\nZT0ryQ5J/rS19uPW2sOttf+Y4prG/EuSI/vX+Mh0r/N4f5Dk71trX+5XXp6XLvTat3/Maq29p7X2\ns9baRRm3Crq1dm9r7eLW2k9aaw+mWwn7G1PU8dMkc6pqx2nWPXaOy1trN/fPr04XEB4wbs4dkuza\n1/f5CYevbCg6cfwn+xWnP03XtmXffqX2C9Ktsr+4P+/fJLlzXM3faa19prX2SGttrP3BxJXJ48/1\niv5cV/bHfybdP0i8cJIaN0n3ORhvqs/F0Umubq0tGFfbBa21pb97VXVYkhmttUsnOT5J3p1u1fRD\nU+yf6Ih+xe99/X+3H7fvA621b7bWlrTWHpnmfMs17rvjA621by9n6NHpWnm0JOen+0zMnOZpXpbk\n9Nbaotba7elC+enUtlm6gP/U1trifvNj/V7bPF2gPqev69Sqes506gEAmIyQGQB4XKiqShcS/STJ\n+JvUPZBk4g2tnphuNeKK/Kj/71+11hb3IduZmTy0S7pezTtMsn2HJEuS3DfJvnPTrXRNupDww30Y\nOWZ8f9sfTfLzJhPm+/645wvS9YWeaKckC1prSybZN6m+pcB30q2s/XZr7bYJQ+YkeWMfCN5bVff1\n53lS/5g4fmlgWVUbVtWZ1d3E7P4k/55k8/49neikdP8P+6Wqur6qjp1O/VX1gqr6Qt8O4750Ae/W\n/e7/v7+2T/WtNP6/6cy5Epa2ROhD9Pvy89dlYruE8S1Ntq2qC6rq+/3r8sFxNU9mTpLDJ7wH+2fy\n38mV+VwcleQDU520byHxV0n+eGzThP2HJNm0b98wXRe21rZsrW3R//fOcfsmbTEx1HK+OyaO2ynJ\nQenC5aT7S4QNk7xomqd6Uh79+VzhdVTVE/rz/Edr7e3jdj3W77WW5LT+H2quT/eXDFN9rwEArJCQ\nGQB4vPjndAHcS1prPxu3/YaMW+3b9yzdPcv/k/gx30rXomK85f15+7+lWxU40RFJvtBaW6aNQGvt\n2iQPV9UB6cLm86ZR1/LsPO75nCS3TzLm1iSz+7YZK+PcJG/Io9t5jJ/z9D4QHAsHN2mtXZhuJffE\nHsvjb672J+lWVf5a3wZjbBXzMiFz36P2uNbajkn+MMn7xvofT6W6vtQfTfL2JNv0rSQuH5u/tfZA\na+1PWmu7Jzk0yRuq6qCxUy5v7nQ3jtxo3Lm2n2TMzuP2b5Jki3Tvyx159OvwqLHpAv0lSZ7Wvy6v\nyKNfk4m13Zrk3AnvwaYTwskx304yq7qbVY7ZMxM+F1U1FlJfNMkcY8ZWxF5dVXf0Y59UVbf3/ad/\nK8kz+9YMd6T7PLy++t7jA0yrxcRKmOq7Y6Kj073+n+iv4ztJNsjPW2ZM/F2Yme6mimPuyM//OiJZ\n9r1/lP739uNJbmmt/eGE3Teke7/Gxu6erp3G8lZhj/nGJNtW9WsKAPyCETIDAOu8qvr7JP8ryaGT\n3Lzq4iRPq6rD+p7IpyS5buxP4quzQbqbas2oqg36HsJprf0o3Qq/P62qTfqVjMcl+cQUpZyW5NlV\n9ZdVtUV/zAnpwsE/HV/yhOPOS9eDeNrtH5Yz1x9V1Y5VtWW6Xr+T9Vr+UrrA64yq2qi/5mdP41wX\nJjk4k/ed/sckf1hV+yRdmF9VL+xD/S8keaSqTqiqWVX1kiT7jDt2k3SrKxf1dZ865cV2N0scC6zv\nTxfCTrUie+y1Wb9/3N1aW1JVL+ivY2zOF40LWxcneSTJWNi4MMnyQuyvp/v9esa436+Jgd0Lq+rZ\nfWj4l0m+2K8E/2SSp1bVi6tqZlWdmK7/8phN061YXdxf80kT5r1zQm0fTHJIVR1cVTOqu9Hcb/a9\nmh+lb1vxsSRv7X8Hfj3JIVn2HzmOSXJRvwJ7KtenC8f3Shd8vrqvbc90wfefp+sVvGf/uDTd78u0\nVqE/Vv37skH3tDbo34exfcv77pjo6HS/m2PXuWe6mwC+qKq2SBfwPqFfNT8r3XWvP+74Dyd5U3U3\nutwx3c0Dp6p5Vrqw/qEkr5xkyL+ke6/37z9jb82496l//zdIFzzP7K97VrK0f/PVSd5cVetXd0PP\nIzP19xoAwAoJmQGAdVq/UvK4dMHPwqpaXFWLqurlSdJauzvdzbreluTeJL+aLlAZ8xvpAs5/TReU\nPZTkynH7T0i3QvH2JJ9P8sHW2gcmq6W19j9Jfr2v5eb+mMOSHNxa++L4oRMOPS/J07NswDed1YUT\nx5yfrt/w/yT573R9mSfWuSRdoPhL6W6cdmuSw1d4oq5/81WttZ9MPHdr7Svp+jL/XVXdmy5wO6bf\n99MkL0kXKt6TbrX3+JWxf5NuBejdSf4jyWXLucZfS3JtVS1Kt8rzj8d6LU9Wcn/+B9K1cvhIX9uR\nSS4ZN+6XkvxbVS1O9x6/t7X2uX7f/03yF337iTdM8pr8d7qA7zP9NV89SR3npwsn70myd/oe3H2f\n5ZelazVxd7oV9teMO+60JM9MF6Z/IsuuJj5jfG2tte8n+Z10/7jwg3QtSf4kU/8//x+le93vShdQ\n/2Fr7aaxnX1I+dJM0iqjquZV1fX9dSzpV5jf1Vq7K93nbElr7Qd9f+4HJ+z/UZIHW9c3fGVN9pmY\n8nNS3Q0Hf5QuCG/982/2+5b73TFhnmelW3n8vvHX0lr7RLrP2ctba4vSvab/nK4txuI8uj3GW9O1\njfleus/oR9K16JjMs9O1rzg4yQ/H1bZ/krTWbky3kv/8dIH+hnl0aH1Uf63vTfed9FCSfxi3/+Xp\nbkB4T7rfrTe31uZPUQsAwApVd8+KEZ+k+1PMLyf5fmvt0P5f+i9M92d1Nyc5vLU28cYVAAC/EPq+\nqwuT/Epr7TuPYZ7vJXlVa+2qVVYcj0lVnZ3k1tbaW9Z0LaxdquoPkxzRWjtohYMBANZyq2sl84lJ\nbhz3858l+bfW2h5JrkryptVUBwDA2uj4JP/5WAJmYO1WVdv3bVOqqvZI8sZ0LUsAANZ5Iw+Z+96F\nL0zyT+M2/05+fsOYc5K8eNR1AACsjfrVxyekC5weKzfvWvt4TxizfpIzkyxKd5PQi5O8f41WBACw\nioy8XUZVfSRdL8AnJnlj3y7jvv6u3mNj7m2tbTnSQgAAAAAAWOVGupK5ql6UZGFr7bose+fz8azw\nAAAAAABYB80a8fz7Jzm0ql6Y7o7Hm1bVeUnurKrtWmsLq2r7dHe0XkZVCZ8BAAAAANYSrbVlFhOP\ndCVza+3k1trs1tpuSY5MclVr7agkn0jyyn7YMUkuWc4c036ccsopKzXe3OZel+Zel2s3t7nXhvnN\nbe41Pfe6XLu5zb02zG9uc6/pudfl2s1t7rVhfnObe03P7bFqHlMZ+Y3/pnBGkudV1beSPKf/GQAA\nAACAdcyo22Us1Vr79yT/3j+/N8lzV9e5AQAAAAAYjZmnnnrqmq5hSqeddtqpK1vfLrvsMpJazG3u\ntWHuUc9vbnOv6blHPb+5zb2m5x71/OY295qee9Tzm9vca3ruUc9vbnOv6blHPb+5zb2m5+axO+20\n03LqqaeeNnF7La+XxppWVW1trg8AAAAA4BdFVaVNcuO/1dYuAwAAAABgVdtll12yYMGCNV3G48qc\nOXNy8803T3u8lcwAAAAAwDqrX127pst4XJnqNZ1qJfOM1VIVAAAAAACPS0JmAAAAAAAGEzIDAAAA\nADCYkBkAAAAAgMGEzAAAAADA48bsnXZMVY3sMXunHaddyy677JKNNtoom222Wbbaaqsccsghue22\n20Z49WtGrc13XqyqtjbXBwAAAACsWVWV8RliVeVTbztsZOc7+OSLM93Mctddd81ZZ52Vgw46KA8/\n/HBe+9rX5r777svHPvaxZcYuWbIkM2asHWuCJ76mE7bXxO1rR9UAAAAAAI9DY2Ht+uuvn5e+9KW5\n8cYbkyTHHntsjj/++LzoRS/Kpptumvnz52fRokU5+uijs+2222bXXXfN6aefvnSec845JwcccEBO\nOumkbLnlltl9991zxRVXJEm++MUvZtNNN81mm22WzTbbLBtuuGF22223pec/44wz8uQnPznbbLNN\njjzyyNx///2r9BqFzAAAAAAAI/bQQw/lwgsvzH777bd02wUXXJC/+Iu/yOLFi7P//vvnda97XRYv\nXpybb7458+fPz7nnnpuzzz576fgvfelLmTt3bu65556cdNJJedWrXpUk2XfffbN48eIsWrQo9957\nb571rGdl3rx5SZL3vOc9ufTSS3P11Vfn9ttvzxZbbJHjjz9+lV6bdhkAAAAAwDprbW+Xcc8992TW\nrFl54IEHsu222+bKK6/M0572tBx77LFpreUDH/hAkq5dxoYbbphvfOMb2WOPPZIk//AP/5APfehD\nueqqq3LOOefk9NNPz7e//e0kyY9+9KNssskmueOOO7LtttsuPedrX/va3Hbbbbn00kuTJE996lPz\n3ve+NwcddFCS5I477sicOXPy4x//eMr2HCvbLmPWtF4NAAAAAABW2iWXXJKDDjoorbV8/OMfz2/8\nxm/kpptuSpLsvPPOS8fdfffdeeSRRzJ79uyl2+bMmfOoGwVuv/32S59vuOGGaa0tDa+T5Mwzz8zn\nPve5XHvttUvHLViwIIcddtjSQLm1lvXWWy8LFy7MDjvssEquUbsMAAAAAIARGVsRXFU57LDDMnPm\nzFxzzTVLt43Zeuuts95662XBggVLty1YsCA77rjjtM5z9dVX55RTTsmll16aTTbZZOn22bNn5/LL\nL8+9996be++9N/fdd18efPDBVRYwJ0JmAAAAAIDV4pJLLsn999+fuXPnLrNvxowZOfzww/PmN785\nDzzwQBYsWJB3vetdOeqoo1Y47/e///0cccQROffcc7P77rs/at9rXvOanHzyybnllluSJD/4wQ+W\nttJYVbTLAAAAAAAeN3be8Uk5+OSLRzr/yjjkkEMyc+bMVFXmzJmTc889d9KQOelu0nfCCSdkt912\ny4Ybbpjjjjsuxx577JRzj62E/sxnPpO77rorL33pS5N0q6d32WWXXH/99TnxxBOTJAcffPDS/s1H\nHHFEDj300JW6juVx4z8AAAAAYJ011U3qGG5lb/ynXQYAAAAAAIMJmQEAAAAAGEzIDAAAAADAYEJm\nAAAAAAAGEzIDAAAAADCYkBkAAAAAgMGEzAAAAAAADCZkBgAAAABgMCEzAAAAAMBqdv755+f5z3/+\n0p9nzJiR7373u2uwouGEzAAAAADA48bs2bNTVSN7zJ49e6Xqueaaa7L//vtn8803z9Zbb50DDjgg\nX/nKVzJv3rxcccUVS8dV1ap+KVabWWu6gBUZ1Ys7Z/Z2uXnBnSOZGwAAAABYM2699dbMnz9/ZPMf\neOCB0x67ePHiHHLIITnzzDPzspe9LA8//HCuvvrqbLDBBsuMba2twio7P/vZzzJz5sxVPu9Ea/1K\n5nbTaB4Lblm4pi8NAAAAAHgc+/a3v52qyuGHH56qygYbbJDnPve5efrTn55zzjknBxxwwDLHfOlL\nX8oOO+zwqND54osvzp577pmkC6PPOOOMPPnJT84222yTI488Mvfff3+SZMGCBZkxY0bOOuuszJkz\nJ895znNWy3Wu9SEzAAAAAMC66ClPeUpmzpyZV77ylbniiiuWhsFjJuvisM8++2STTTbJVVddtXTb\nBRdckFe84hVJkve85z259NJLc/XVV+f222/PFltskeOPP/5Rc3zuc5/LN7/5zVx55ZUjuKplCZkB\nAAAAAEZg0003zTXXXJMZM2bkuOOOyzbbbJMXv/jFueuuu5Z73JFHHpnzzz8/Sddy47LLLsvLX/7y\nJMmZZ56Z008/PTvssEPWW2+9vOUtb8lHP/rRLFmyJEkXXJ922mnZcMMNJ23LMQpCZgAAAACAEdlj\njz1y1lln5ZZbbskNN9yQ2267La9//euXe8y8efNy8cUX56c//Wk+9rGP5ZnPfGZ22mmnJF1LjMMO\nOyxbbrllttxyyzz1qU/Neuutl4ULf94eeGzs6iJkBgAAAABYDZ7ylKfkla98ZW644Ybljps7d27m\nzJmTyy67LBdccEHmzZu3dN/s2bNz+eWX59577829996b++67Lw8++GB22GGHpWMma8MxSkJmAAAA\nAIAR+Na3vpV3vvOdue2225Ikt956ay644ILsu+++Kzx23rx5efe7352rr746L3vZy5Zuf81rXpOT\nTz45t9xyS5LkBz/4QS699NKl+8ffMHB1mbXazwgAAAAAMCI777xzDjzwwJHOP12bbrpprr322rzz\nne/MD3/4w2y++eY55JBD8va3vz0XXXTRo8ZOXH185JFH5k1velNe+MIXZsstt1y6/cQTT0ySHHzw\nwbnjjjuy7bbb5ogjjsihhx466TyrQ62JZHu6qqq1m0Y099w1k+oDAAAAAKtOVcn5VrGpXtN++zIp\ntnYZAAAAAAAMJmQGAAAAAGAwITMAAAAAAIMJmQEAAAAAGEzIDAAAAADAYEJmAAAAAAAGEzIDAAAA\nADCYkBkAAAAAgMGEzAAAAAAAa6FzzjknBxxwwJT7DzrooJx11lmrsaLJCZkBAAAAgMeNXeZsn6oa\n2WOXOduvdE0f+tCHsu+++2aTTTbJ9ttvn/322y/vf//7p3VsVa30+Va3WWu6AAAAAACAVWXBLQvT\nbhrd/DV34UqN/+u//uu84x3vyPve974cfPDB2XjjjfP1r38973jHO/LqV78666233ogqXX2sZAYA\nAAAAGIFFixbllFNOyfvf//4cdthh2XjjjZMke+65Z84777yst956WbRoUY4++uhsu+222XXXXXP6\n6adPOd+nP/3pzJ07N1tssUVOOOGEtNZW16Usl5AZAAAAAGAEvvCFL+Thhx/OoYceOuWY173udVm8\neHFuvvnmzJ8/P+eee27OPvvsZcbdfffd+d3f/d287W1vy913353dd989n//850dZ/rQJmQEAAAAA\nRuDuu+/O1ltvnRkzfh7D7r///tliiy2y8cYb53Of+1wuvPDCnHHGGdloo40yZ86cvPGNb8x55523\nzFyXX355nv70p+ewww7LzJkz8/rXvz7bb7/y/aFHQU9mAAAAAIAR2GqrrXL33XdnyZIlS4PmsdXH\ns2fPzp133plHHnkks2fPXnrMnDlzctttty0z1+23356dd975Udsm/rymWMkMAAAAADAC++23XzbY\nYINccskly+xrrWXrrbfOeuutlwULFizdvmDBguy4447LjN9hhx1yyy23PGrbrbfeuuqLHkDIDAAA\nAAAwAk984hPzlre8Jccff3wuuuiiPPDAA2mt5brrrstDDz2UWbNm5fDDD8+b3/zmPPDAA1mwYEHe\n9a535aijjlpmrhe96EW58cYb8/GPfzw/+9nP8u53vzsLFy5cA1e1LO0yAAAAAIDHjTmzt0vNHV34\nOmf2dis1/qSTTspOO+2Ut7/97TnmmGOy8cYbZ7fddsvb3/72PPvZz84znvGMnHDCCdltt92y4YYb\n5rjjjsuxxx67zDxbbbVVPvKRj+SEE07Isccem6OOOir777//qrqsx6Raa2u6hilVVWs3jWjuud2S\ndAAAAABg3VVVcr5VbKrXtN9eE7drlwEAAAAAwGBCZgAAAAAABhMyAwAAAAAwmJAZAAAAAIDBhMwA\nAAAAAAwmZAYAAAAAYLBZa7oAAAAAAICh5syZk6pa02U8rsyZM2elxguZAQAAAIB11s0337ymS/iF\np10GAAAAAACDCZkBAAAAABhMyAwAAAAAwGBCZgAAAAAABhMyAwAAAAAwmJAZAAAAAIDBhMwAAAAA\nAAwmZAYAAAAAYDAhMwAAAAAAg400ZK6qDarq2qr6WlVdX1Wn9NtPqarvV9VX+8fzR1kHAAAAAACj\nMWuUk7fWflJVB7XWHqqqmUk+X1WX97vf2Vp75yjPDwAAAADAaI28XUZr7aH+6QbpQu3W/1yjPjcA\nAAAAAKM18pC5qmZU1deS3Jnk0621/+x3va6qrquqf6qqJ466DgAAAAAAVr3VsZJ5SWtt7yQ7Jdmn\nqp6a5H1Jdmut7ZUufNY2AwAAAABgHTTSnszjtdYWVdX8JM+f0Iv5H5N8YqrjTv27nz8/cJ/uAQAA\nAADAaM2fPz/z589f4bhqra1w0FBVtXWSn7bWflhVGya5MskZSb7aWruzH/O/k/xaa23eJMe3dtOI\napubjPLaAQAAAAAeT6oqrbVl7rU36pXMOyQ5p6pmpGvNcWFr7bKqOreq9kqyJMnNSV4z4joAAAAA\nABiBka5kfqysZAYAAAAAWDtMtZJ55Df+AwAAAADg8UvIDAAAAADAYEJmAAAAAAAGEzIDAAAAADCY\nkBkAAAAAgMGEzAAAAAAADCZkBgAAAABgMCEzAAAAAACDCZkBAAAAABhMyAwAAAAAwGBCZgAAAAAA\nBhMyAwAAAAAwmJAZAAAAAIDBhMwAAAAAAAwmZAYAAAAAYDAhMwAAAAAAgwmZAQAAAAAYTMgMAAAA\nAMBgQmbzrh3LAAAgAElEQVQAAAAAAAYTMgMAAAAAMJiQGQAAAACAwYTMAAAAAAAMJmQGAAAAAGAw\nITMAAAAAAIMJmQEAAAAAGEzIDAAAAADAYEJmAAAAAAAGEzIDAAAAADCYkBkAAAAAgMGEzAAAAAAA\nDCZkBgAAAABgMCEzAAAAAACDCZkBAAAAABhMyAwAAAAAwGBCZgAAAAAABhMyAwAAAAAwmJAZAAAA\nAIDBhMwAAAAAAAwmZAYAAAAAYDAhMwAAAAAAgwmZAQAAAAAYTMgMAAAAAMBgQmYAAAAAAAYTMgMA\nAAAAMJiQGQAAAACAwYTMAAAAAAAMJmQGAAAAAGAwITMAAAAAAIMJmQEAAAAAGEzIDAAAAADAYEJm\nAAAAAAAGEzIDAAAAADCYkBkAAAAAgMGEzAAAAAAADCZkBgAAAABgMCEzAAAAAACDCZkBAAAAABhM\nyAwAAAAAwGBCZgAAAAAABhMyAwAAAAAwmJAZAAAAAIDBhMwAAAAAAAwmZAYAAAAAYDAhMwAAAAAA\ngwmZAQAAAAAYTMgMAAAAAMBgQmYAAAAAAAYTMgMAAAAAMJiQGQAAAACAwYTMAAAAAAAMJmQGAAAA\nAGAwITMAAAAAAIMJmQEAAAAAGGykIXNVbVBV11bV16rq+qo6pd++RVV9qqq+VVVXVtUTR1kHAAAA\nAACjMdKQubX2kyQHtdb2TrJXkhdU1T5J/izJv7XW9khyVZI3jbIOAAAAAABGY+TtMlprD/VPN0gy\nK0lL8jtJzum3n5PkxaOuAwAAAACAVW/kIXNVzaiqryW5M8mnW2v/mWS71trCJGmt3Zlk21HXAQAA\nAADAqjdr1CdorS1JsndVbZbk4qp6WrrVzI8aNtXxp/7dz58fuE/3WBU2WD+pqlUz2QRzZm+Xmxfc\nOZK5AQAAAABWh/nz52f+/PkrHFetTZnvrnJV9RdJHkry6iQHttYWVtX2ST7bWps7yfjWbhpRLXOT\nkc69Gl9XAAAAAIBRq6q01pZZuTvSdhlVtXVVPbF/vmGS5yW5KcmlSV7ZDzsmySWjrAMAAAAAgNEY\ndbuMHZKcU1Uz0gXaF7bWLquqLyb5cFX9fpIFSQ4fcR0AAAAAAIzAam2XsbK0ywAAAAAAWDuskXYZ\nAAAAAAA8vgmZAQAAAAAYTMgMAAAAAMBgQmYAAAAAAAYTMgMAAAAAMJiQGQAAAACAwYTMAAAAAAAM\nJmQGAAAAAGAwITMAAAAAAIMJmQEAAAAAGEzIDAAAAADAYEJmAAAAAAAGEzIDAAAAADCYkBkAAAAA\ngMGEzAAAAAAADCZkBgAAAABgMCEzAAAAAACDCZkBAAAAABhMyAwAAAAAwGBCZgAAAAAABhMyAwAA\nAAAwmJAZAAAAAIDBhMwAAAAAAAwmZAYAAAAAYDAhMwAAAAAAgwmZAQAAAAAYTMgMAAAAAMBgQmYA\nAAAAAAYTMgMAAAAAMJiQGQAAAACAwYTMAAAAAAAMJmQGAAAAAGAwITMAAAAAAIMJmQEAAAAAGEzI\nDAAAAADAYEJmAAAAAAAGEzIDAAAAADCYkBkAAAAAgMGEzAAAAAAADCZkBgAAAABgMCEzAAAAAACD\nCZkBAAAAABhMyAwAAAAAwGBCZgAAAAAABhMyAwAAAAAwmJAZAAAAAIDBhMwAAAAAAAwmZAYAAAAA\nYDAhMwAAAAAAgwmZAQAAAAAYTMgMAAAAAMBgQmYAAAAAAAYTMgMAAAAAMJiQGQAAAACAwYTMAAAA\nAAAMJmQGAAAAAGAwITMAAAAAAIMJmQEAAAAAGEzIDAAAAADAYEJmAAAAAAAGEzIDAAAAADCYkBkA\nAAAAgMGEzAAAAAAADCZkBgAAAABgMCEzAAAAAACDCZkBAAAAABhMyAwAAAAAwGBCZgAAAAAABhMy\nAwAAAAAwmJAZAAAAAIDBhMwAAAAAAAwmZAYAAAAAYDAhMwAAAAAAg400ZK6qnarqqqq6oaqur6oT\n+u2nVNX3q+qr/eP5o6wDAAAAAIDRmDXi+R9J8obW2nVVtUmSr1TVp/t972ytvXPE5wcAAAAAYIRG\nGjK31u5Mcmf//IGquinJjv3uGuW5AQAAAAAYvdXWk7mqdkmyV5Jr+02vq6rrquqfquqJq6sOAAAA\nAABWnVG3y0iS9K0yPprkxH5F8/uSvLW11qrq/yR5Z5JXTXbsqX/38+cH7tM9AAAAAAAYrfnz52f+\n/PkrHFettZEWUlWzkvxrkstba++eZP+cJJ9orT1jkn2t3TSiuuYmI517xK8rAAAAAMDqVFVprS3T\nBnl1tMs4K8mN4wPmqtp+3P6XJPmv1VAHAAAAAACr2EjbZVTV/kl+L8n1VfW1JC3JyUnmVdVeSZYk\nuTnJa0ZZBwAAAAAAozHSkLm19vkkMyfZdcUozwsAAAAAwOqxOtplAAAAAADwOCVkBgAAAABgMCEz\nAAAAAACDCZkBAAAAABhMyAwAAAAAwGBCZgAAAAAABhMyAwAAAAAwmJAZAAAAAIDBhMwAAAAAAAwm\nZAYAAAAAYDAhMwAAAAAAgwmZAQAAAAAYTMgMAAAAAMBgQmYAAAAAAAYTMgMAAAAAMJiQGQAAAACA\nwYTMAAAAAAAMJmQGAAAAAGAwITMAAAAAAIMJmQEAAAAAGEzIDAAAAADAYEJmAAAAAAAGEzIDAAAA\nADCYkBkAAAAAgMGEzAAAAAAADCZkBgAAAABgMCEzAAAAAACDCZkBAAAAABhMyAwAAAAAwGBCZgAA\nAAAABhMyAwAAAAAwmJAZAAAAAIDBhMwAAAAAAAwmZAYAAAAAYDAhMwAAAAAAgwmZAQAAAAAYTMgM\nAAAAAMBgQmYAAAAAAAYTMgMAAAAAMJiQGQAAAACAwYTMAAAAAAAMJmQGAAAAAGAwITMAAAAAAIMJ\nmQEAAAAAGEzIDAAAAADAYLPWdAErUnPXdAUrb4P1k6oaydxzZm+XmxfcOZK5AQAAAABW1lofMs+f\nP38k8x544IEjmTdJfvJw0m4azdw1d+FoJgYAAAAAGEC7DAAAAAAABhMyAwAAAAAwmJAZAAAAAIDB\nhMwAAAAAAAwmZAYAAAAAYDAhMwAAAAAAgwmZAQAAAAAYTMgMAAAAAMBgQmYAAAAAAAYTMgMAAAAA\nMJiQGQAAAACAwYTMAAAAAAAMJmQGAAAAAGAwITMAAAAAAIMJmQEAAAAAGEzIDAAAAADAYNMKmavq\nxKrarDr/XFVfraqDR10cAAAAAABrt+muZP791tqiJAcn2SLJUUnOGFlVAAAAAACsE6YbMlf/3xcm\nOa+1dsO4bQAAAAAA/IKabsj8lar6VLqQ+cqq2jTJktGVBQAAAADAumDWNMe9KsleSb7bWnuoqrZK\ncuzoygIAAAAAYF2w3JC5qn5lwqbdqnTJAAAAAACgs6KVzH+9nH0tyW+twloAAAAAAFjHLDdkbq0d\ntLoKAQAAAABg3TPdnsypqqcneWqSJ4xta62dO4qiAAAAAABYN0wrZK6qU5IcmC5kvizJC5Jck0TI\nDAAAAADwC2zGNMe9NMlzktzZWjs2yZ5Jnriig6pqp6q6qqpuqKrrq+qP++1bVNWnqupbVXVlVa1w\n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\nI/apSb4syQOT3CXJTZLcJ8mLuvvI1Lir2F+Scez9b5L3J/nK7v7bOTE3xX58kh0v5N393TPjf2GS\nhyf5uNVX/5jk57r7z+bEPY71/k13331mjM9N8l1JPnb11YVJntDdh2bE/KXu/p7V9EO7+3Gblj25\nux80I/ZnH2t5d79oauzjWPcvdvf3ryHOKUnuneSzknxYkvcleV2SP+3uf5wRd9ePw6q6pLvPnPH3\nd+ruV++w7MHd/WszYt+ju/9yNf2R3f3mTcvu191/PCP2K7r7k7ZObze/bmvY50vulzt09+tX0yd3\n9xWbln1ad79kYtyPT/JR3f3s1fxjk2wkEp+whnLKse4RVyT51yRP6+73zFnPpvWt856/WBmuqm6+\n5atebe8iD0arygf3yyhjffGMOC9Lck53v3PL9+dkjHHzEfO2dMf13r27/2bi3y52Xq5i/NgxFnd3\n/+Sc+Nusr5LcI6O8eO/untXibXXfvP1q9l+6+/KZm7jrVsn2T0jyb939nwuuZ1bZsKoedqzl3f2Y\niXHvkeTXM8o9f5Lk55I8KUkl+ek1HON/luQ7uvuiOXGOEf/EJO/v7l49C35qkn/t7tkVbZYuN+yw\nzg9O8pDu/ukZMX4myWO6+23bLPu57v6hOdu4wzpn51WuJf6Z3X3JxL99c44uS9Sm+e7uj5q5bX/Q\n3V+5mj5q/1bVBd19zpz47K59W5O5qm5bVQ+vqtckeWqSByf5vLkJ5qp6c1W9adNn8/y/To3b3d+1\n8Uny3Un+PsnBJC9Jso4L70MzCt3JKNjfMclHJnlYksft8DfHraruWFUXVNXrquqnqurWVfXMJH+Z\n5J9mhv+UHT4/mfFAMcdi+6WqvifJq5I8PslLquqbM5JYpyb55JmxT18d30+oqnNq+K4kb0rylXNi\nb7OuW1TVd1TVXyc5lGR29xBLnZ9JPi/J86rqIdss+/ipQavq6Un+OcnnZ/yet03yzu4+NDfBvPLT\nST6ru2+d8YD8M2uIueHlSf7hGJ/JVg/4P5nkx5PcbvV5VJIfr6pvnRP7OExONCVJVX1xxvXjORkP\ngl+d5M+S/E5VfdGM0JsTwV+/ZdkdZ8RNkh/Y5vP9Sf5vkhfOjH1tZl9XqupRSf4myadn3ON+I8kf\nZLxc+dmq+ouqus77aA+Pw5r59+dX1TXuBav9NPcB4hc3TT9zy7IfnRm7dpjebn7d5sZfcr88fdP0\n321Z9qsz4v5skrdvmr9Xkj/NOOePlTw7Xse6R7w+ycckmZsAWeqev2TZ9h9y9L55RZL/rKrnV9Vt\nZ8ZOklTVgaq6b1X9YZL/yEhM/vrMsE9M8sKqusWm9Tww43o7OXm9inOjqjq3qr6/qj5h9d29q+pv\nkzxhRuglz8sk+Z9tPp3km5KsLRFUVZ9WVb+c5OIkz0ryoiR3mBHvxKr6+SRvTfKUjHv9W6rq52sN\nNaSr6p1V9V+bPu+oqjdU1a9X1c1mxv711Quyjdr1r15t/yur6ty5234Ms8qGGRVIjvWZ6tFJvjXJ\nhyT5o4x7xJO7+5PnJphXnpTkgqr6kXUcG5utylj/meTi1fQLknx5kt+rqrUnUtepqj6iqp5YVc+t\nqm+uqhtX1aMznuluOTP8dyR5+ep5YqvPnxN44bxKqurTq+rLa1R+21jf0zPK6FPdNUfnae6WcdxX\nRj5kro/eNL11/94i7C/dve8+GRfuf0zyf5J89Oq7N68p9ods+dwiyUOSvDnJM2fGPjHJN2cU6p+c\n5GPXuE9etWn66Ukeumn+FWuI//dJHpRRI/ChSS5L8vNJTlnzb1tJvibJa5P8fpI7Xl/3S8ZN4Oar\n6TOTXJ7kk9e0H561Oka+LSNJcyjJXyW585ri3yQjQfbnq2P70UneuqbYS56fr0xyq9V2PzfJh67j\n98y4Ob4mI6H34avv3rSObd5u29ZxTu7GZ/MxvuX7D0ly4cLrvmTm3x9Kcqdtvr9jkr+aEfeV200v\n8bsmuXuS/5fxMvJLFt7fb1lDjC++luW3THLXCXH35DhcwzH4yRkvBj99NV8ZCaYXJjl9ZuxjHYev\nnBn7FdtNbzd/PdznS+6XRWInefmW+Zdsmn7xkvt703r+bMbfLnnPX7Rsu8M675fkeTNjnJORFPq3\nJL+b5EuSXLTGbfzajHLyrTNaz70+yW3XEPfJGQmmn8lIdvzuKvZ9ZsZd7LzcZl03yUhcvzmjNukt\n1xDzvCRvXO2bb17de968hriPTfJbSW6y6bvTM14kPG4N8W+0zecWGS+wf39m7H/cNP09Sf5kNX2r\ndf+mW9Y76x6x4HZtvVe+YYF1fNDqmH51xvPKwzY+c3/LJDfLeJb9n6yerZKctvl3nhH/f5O8e5vP\ne5K8e2bsF2ZUQLjX6ny6MMkzktxqDdv9yoza+a/JeMl28uZlM2MvlldJ8gub9sPLkvxUkktX61lH\n/BMycgivW90jPm5uzFXcPSt7+qz/M6uLhj10WZLbZNS4vEXGjX8tzdu6+x3JVd0SfG3GjfhVGQ/P\nk98srWpePjSjgPIFvf7mLkeq6tZJ3pnknhk1Jzecuob4J3f3k1fTb6jRTPwHj/UH18Wqmc6DMm6a\nL0ny5d39hjWEXnK/XN7d/5Uk3X1JVb2hu2fVHN3kdt39iUlSVb+VUQPmzF5fE7r/TPLSjIL4i7u7\nq+q+a4q92PmZ0Rzn0iT3qtHk7eVV9e3d/bzMqAHX3Xeuqjtk1JR6flW9PclNquqM7r5sDdt9yzq6\nid5R8z2xeV6SVNVzcvT+7YxacS/s7t+dGncj/MYxvll3v6NqfoXGqrrfTosy//y8VW/TVUF3v6bm\nDeZ4wqoG0Ambpjd2xo1mxL1KVd0zI2HTSc7r7rX051fXbB5+1aKsoYZqd//pDus9JSNJ/ocZ157r\narHjsHbuSqCSfPCc2N39D1V1n4wazQ/J1bWXv6A3dbUwNfwO09vNX1d3qqp3Z3Uerqazmj9lZuzt\nrllXLcpI3syx5H5ZKvZRtee6+9M2zc6tiXWs/b2xvi/t7jmtO5a85y9dtr2G7v7jqppbu/Z5Sf46\nyWf2qmuIqprdqnBDdz+1qi7PSIJcslrP26/lz47HXTMqdxxZXbcvzejK5R0z4y55Xia56v72sIxW\nS09J8km9pUuRGb45o2bkryV5TndfUVXr2O57J/mY7r4qVne/u6oenJHcf+ic4N39/m2+fluSX6iq\nud0oHt40/flJ/nC1zkvXcF9erGy4qom+o57exdwHb9nuEzfP93pqMx/OSAKfnHHfWEdLyyQ5vDpX\n3llV/7JxLenu91bV4Wv52+Px2u6+yxribOfm3f3jq+k/rzGOxFf3elqhdne/rqrulpEA/oeqemB3\nv2YNsZfMq3xxkrt09+WrZ5S3JPmEubmnVQ36b0zyvUlenPHy8V/mbuwmp1XVXTKer05dTW88nyxy\nv2c5+zLJ3N33WTXNuV9Gc9mPzri43627Xzon9oIn0OMzHq4/M8ndN92AK+MiNreZ9Y9lNPu7UZJn\n96rvy6r6nIyaVHOdsulkT5IrNs/3vH7xlkzAL7lfPnxLYeXWm+dnFFSS5MpNcd5fVW9dY4I5GX2b\nPiCjie8zqur31xV4yfNzy3oeU2Ngvt9dNWU6MDPe65M8MskjazRxf2CSl632/WfM3NzfzNGJhK3z\n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\nYy/LqDH1/ZuWzbpYbT6Bquo+O51QE5y9at66caP5qE3z3TMHt9tJVd0hYzCMuRYr6G+nR5OIx1bV\nrCY6O6mqj838/bLx0qCr6u1bls1KTmT5ZNBNM2pKbTtQQuYVbJca1TZJPi6jkHJhkgvXlJTYDT+W\n5OUZNQ6e3auBO2r0mzW3Gf2vZzwYpqo+O6Pm5HdlvNF/YpIvnxH7rknu2N1HVs2uLk3yUb2e0eaP\n0t1/XFV/n+TJVfVFubrZ9eSQO0xvN3/cquqNGa0tnpmR6PupXt9I9v+ZkWj60YyaKV1V911T7CS5\nw6b7zsY9KKv5tXdp0aP7k+cmee7q2JykqnZqzlpJ5r4s/LequmdvaZ5cVffMSN6sRY+++15SVc9K\n8tgkT0gyOcnc3Y/LSIadldGy43dWD5rPyEg4zxm89dW97GBI/1RVX9fbD3b1+nWsoLtfVFWfnPGw\n8tdVtY7m1Uvd2xa9zvaMwYmOfxXLvKjJyOndrLc0k1091M4d6HfJ5PjmstU9Mmp7ZvUbzwibZPSX\nnlW891fVW9eUYN5IiH1ekv9XVR+W5Msyauw9bk3xlzgvk114gVqjy5AHZTxzviTJl/cO/Uxfl7A7\nTG83P8Udq+q/dlhvd/d23a0dr8syumw5I6Pl1Ruzvkoa76mqj9m4j3X3fyVXPdPOGk+ndmlg203r\n+9yM55a5Pqg2DX7WVw+0eHJGsn+O7jG+xb1WXSK8vKq+vbufl/Uch0s+Ay15rT1xywvxzTmJD54Z\ne8m8yr2TfMzmbe/ud9cYf+T1mZhk3skaX6TcOsnnZ1RM+aUagyOeWlUnLnmOsoz9mmR+aJI/yrip\nPaZX/cCsEhPrHEBrncmrO6w53lGq6jnbxL95xgn7NetZxWIF/Z1WeFJmHqML75fbVdWzs0rQrKaz\nmp870NWSsZNR83qpUWA3b2+SfOTm+Z4xWnZ333lVyDw3yfNXyf2bVNUZPaNvrKr6n6xeGiQ5bd01\nvbr7uatk0E22nEMvz6jdOMeNNgrgq1hP7O5nJnlmVc19i394VdMoq9p7b1pzgvmofsd6DHLz+VX1\nAxn9tc1xy1VhuTZNZzV/ixlxfyej9vL9k3xikk9Y1eh5Za9aq8zw8IyE4a8meUaNAdjW6ew1xztK\nVd0oo2uM2yR5Xne/rkYf1o/IeAE8NXH56Izr+EYhdvM1fW5S8ruTPGtVK2XzwEt3z0iwzFZVn5Jx\nzbp/Rpc2v5HkD9cRu8egaj+X5Oeq6i4Zx+eP5eoBgSaFXce2HcNDkvxxVX1jthnsambsqx50NUnW\nxgAAD0dJREFUuvu/k5xbo3XHizO/xtRO97aN+8TUe9vS19ml7fSi5h6Z/6LmsUkuqKrvz2jym4w+\nmX8uyS/NjL1kcvwvq+oPMv7/b5bR6iqr2nxzB4vdXDM9WWNLg7q6hdsTkzwmo9nyWza+7+mt3JY8\nL5OFy8w1Wic+NGN/fMEaK04snRx/bca1de26+z5VddOM1lc/XlUfneSDq+pu3f3SmeEfmfFy+qdz\n9Hn/iMxPkD0lVw9s+0UZ/eHOTrrV6Hd463Xj5kn+PWOMlLn+KMlv1Bik+b2rdd4444X1H60hfpKk\nux9TVS9I8rtV9cUZfT7PjbnkM9CS19ojVXWrVQI+3f26VezbZH5lsiXzKr0lOb7x5SIVs9b1ImX1\nDPW8jNY0J2cky0/NKGO8oLsfOHcd7J79OvDfRuIgGTfhzjIdj69zQID3ZOcCwxUZfTb+yNZC+nWI\n/zlbvuok/5Vxg/uq7p7VfUNVfWtGX8PbFfSf1KN5+9TY23XbcLOMG8+LezXIwcTY2+2Xd2T0+zjr\n5rNN7I34yTi3Jo/eumTsVfxFBv9Zxd5u268yd9u3rOuTM5I3X5nkrd39GRPjLLY/VvF/sLt/fjX9\nFd39h5uWndfdj5gR+3UZfTH+b1W9PqM/xRdtLOvuT5gR+70ZfZAlq9qvm+bTC7XAWIfafhCWq/Qa\nWqlU1cdkNLf+9Iz+cd/e3cc8/o8z7u0yks3nJvnojKThn8ysnbrTuj40yTu2K5BOiPXkXN3s/1Mz\nHq5mN/uvqrtl+y5hLsoYUGe7mlrHG/v2SW6V0T3JVQMvZfTV/B/d/a8zYp+XcW16Z0Yzwt/vHUYq\nn7GOEzOauT4goxnqoYyazM+aEfOtGQmmbXX3jsuu43rWPthVVX13xpgXf7Pl+8/J6B/482fEXuS+\nfIzrbCU50t13mhJ3t1TVx2f0E7zti5qNWmsz4t87yQ9mHCudcX7+Qnc/Z2bcFyQ5b4fk+P/p7s+d\nEbsyyrC3zhio/N9W398lyS27+8+nb/lyagyWfdUxvfrvxgu+nlo5oaq+o7cZBLKqPivJN8yt9LB0\nuXP10uE/M/o13XyvnNUatar+O8mLVnE+azW9Efczu/tmkzc6y5dtt6zrjIz73QMyum+ZNRBqjRbL\nG+d9MsZj+vmNRN+MuIsMbFtV78xoQbihM8pW/7PDn1zX+DfK6GbimzP68k2SMzO6W/rROTU9tztO\natT4fnSSB3f3rKTnws9Ai11ra7SuemhGH88blRg/KaPLiV/u7qfOiH2svMrvdPfk7lqr6k+S/HFv\n31rsK6e+EL+2FyndPavSR+08sOCrM55zZw2wyu7ar0nm7ZIHaxnBtapem6sLELfPpoRKskxSZXXj\n+ISMkXQnJ4Q2xbtLRp+eX5FRa+qZ3f2ENcRdqqD/pC1fbSSCD3X3n86JfYx1npDk3O5+2owYX5bk\nw7v7V1bzL82oIdlJfmjzTfT6FHsV7+PnPvgdI/aZ3X3JQrE/orvfss33lVHI+smJcdf2Quna4m9d\n19x1V9WPZNTGeHtGgfOTurtXybOndPfdZ8T+6IymkFv3+UckubS7/+Waf3Wd4v/YMRb31N9zN6wS\nwZ+RkUj5jCQfljEQ1b1nxLx9Rl/vf7Ppu0/M6Hvvc3pms/ca/QL/bMYLyJ9M8tSM/g1PyCggPm9m\n/NdlgWb/VfWKJJ/Xo0neZ2ckbDe6hDm7uyd3CVNVz03y8O5+7ZbvPzEjAfUlM2L/WJIXdvdfr+a/\nLiM5fnHmJ8c3mhR+UUZS//eSPGsdD7RV9R8Zzdm3bf449wVNHd1c+bUZA4qtpSnkwr/nIvflVQ2v\na3ydcZ19eHd/0cRN3jWr3/SBOfpFzdN6/mj2297zV8vu3d3PnRF70eT4DutcR9lzseb+VfV9m2Y3\nnoXeljVW4lnqGWVT/FskSXe/bY0xtztHr9KjRcmUuEtXKPk/O5Wjqup7untua4Cd1nvW1H2ytHWX\nwdcd5zjWc2rGuZ+MMWnet4aYP5gxCOKGqyrvZXQTNatFypLPQEurqi/IqEG/kfv4xyQ/293/bw2x\nN+dVsoq9jrzKbTK6vXxftmkttpGInxB36Rcpx8rvPaq7n7GO9bA79mWSeSe16nh8ZsJm0aTKtaz7\n26a+uVrVqDt39Xl7kt9P8v3dfcyC0XWIv1hBf0k1Orp/SEbz7Wcn+Ysk35nxVvLV3T25OXRV/U3G\naKpvWc2/KqMm2Y0zanff81h/v1exV/F2qlm/juaWmwsTz+zu+0+NtU3s12ebpopV9Q0ZSeaPmhh3\n0Zp7m2sJbK0xsI6aJqvk4a2TXLBxs19dEz6ou19xzD8+dtzFEjarON+3zdenZTWqcHdP7pd5qQR2\njUE5PjVjNPK/XX1ePPcN/ir2Tvv7jhn7e3ICexXn5RmF5ZtmNIf+wu5+SY0uaJ6xhuNwqYe3V/eq\nNmdV/UqSt3X3j6/mX9Xddz7W319L7Jd196fssOyqGk8TYy+ZHP/LjFHan9lbmlvOtQsv3X4/VzdX\n/sIkF3X396wp9pK/56L35VXMRRNw+80x7vnfmNH6b9I9f1OcpZLjS5Y9t54/F3f3WvrYXKoSzy48\no1RGi5/vynhpWhlJs8f3jNaQS1u6Qsm1rPuS7j5zxt8/+1jLe0bXeAvHfn+SjaRYZSTe3puZzz+7\n8ByxZG3gxSrvreIv9gy08PPsvsx9bKg1txbbqxcC68jvsfv2a5/M2+r1dDz+2IyH/KPewK4KjI9N\nMiupcixTE8wrr88ocN57IxFeVd+7lg0b/qKqdizoZwzuNElV/fKxlnf3d0+NnVFT751J/i4jcfWI\njBvPfbp7bn+1B7bcfF7co8beO2r0k3V9jb306Mqbz8F1Dyb2sIz+Gb+4u9+YJFX18IyHxDndFNwo\nY6C5tYwAvY1F+93rMajY1u/W0bXCGVsTnqvYr62q284N3t2P3piuMdDFQ5N8Y0Yy7tE7/d1x2u7N\n+o2TfFOSD8moyTvFK5M8tFe19Wt03fBzVTW7dmp23t+vubaaVMfpxO6+IEmq6ic2jpvufv38W2eS\nqwcWTHLU4IJzB7i9UV098Mc9k3zrpmVzyzHHGrxlbl+hJ/RC/aV39z1mbtuxLHUd3PBxfXVz5d/O\nqIm9Lkv+novcl3dIwFXP6K5hNy35kJ/l7vnJ2LjLM/oxv0pVnVBVX90zahtn2bLnYudP79BKYeMh\nP+PePMXSzyjfm9Fl1af01eP03C7Jr1XV93b3Y+cEX/AY/8GM7iU2HMiocXjjJE/Kmvru38Hc6/yn\nZ1TIekaSv19DvF2J3csNhLr0c8QDkvz8avrhOfrY2KhtO8mC5/1Vq9hherv56xZ42efZJXMfi7Xk\nrOVai20e3+Ya5r5IOUbcdQ0syC66QSWZaz0djy+aVFnQ/TJuQC+squdl3BDWeUIuWdD/h03Tj8oY\n8GFdbrepMP5bGQMDnDm3lsrKUX2ldfd3bpqdM7DY0rGXdqzCxLzA3X9WVVdkjHx+n4yHt7sl+eyZ\ntfn+Y+HaLpsH6tkYpCer+VMWXO9cSyZsklxViH1Ykq/OGJDlk9ZRM3OHBPY3ZH4C+z4ZA61kVTv1\nZ3J17dQnJplcOzXL7+/NfaltbWK5jnN1qYEFn5Hkr2oM9Pm+jGRFanQv8q6ZsV9eVd/S3b+5+cuq\n+v/bu39QOaoojuO/E4xROy2CldhaiOlFkEAKtRAbQxQ7/xQ29lYWVlYWIlgILyDavVgoQUgIdnYK\nilZWFoqWNhqfx+LOyMw6+/Zl7/1t9prvp9qXDXeX3Z2595w5c+7Lms9N27jLmBx3qq7I3eDm+CBL\nL/mWYzu/T9e87E7AWTmDfOOcv1pt/KlKMuV1lR6Z30iqSTI7157O42dRgyDfHaO8JOlCZv42/kNm\n/hilB+kXKkVCWzP+xq0FJRvUzvkPShrbNr0g6TOVO6JatJlxju3ijiNizeOlv5tomNzrNQZy5j5c\nhTDSfHPLp1TW5i3uFnNfSFnUKL+HHdvnIGetmPdNHrXawdWeVHHIsqnSlWFR8qzKyeRsRLwv6XCs\nXqsY37bQz8yD8XGUHmEHx/3/WzRdjB9FxE+NFvmS9NWaYPY11VeWOMd2O24xUVvVpMy8FqU9xg2V\nVgXnG3yn1gnTWDnh5kzYKCLeUQk+P5D0aGb+XjvmyviOBLatOlXmz1vmhf7qHUCSFA02FszMt6Ns\n0jW2hBnHOqWS4K/xhqTDiHhR8951d0t6rnJsZ3LcprIa/yQeW/nt3Tv5XdbOEc7v0zUvuxNwXTPN\n+dK82vgVlcq0VtXGzrWn8/hZVBvku2MUSaenCebJ6/4aEacrx3ayFpRsqMCuimkz80jSVUlXI+KM\nSkL4RkS8lZUtfpxjG7nP2dY7Ipe0Su71GgOZcx+uQhjJd7eL9UKKOb+HHeuyJ/PCbcPNGo9HxMeS\nrq8J8i9k5sXa19iViLhfpa/fxWzQK3AY8wlJhyoL/ecbLprH8Zv2+wlT761h7LOSrkj6Q/OdYc+o\nBCm/7OPYPZssmEPls7gp6Uj1vdQe2EFipTtRdgs/lPSnFhI2mflz5fh/q/zG/9Lyju01x+c0gf1e\nqwR2lM3tzg0VZD9IejUzvxyfy4rNW92ft1uYNxZ0GoKp8bv7LjOvNxrX0i8dx3N8n+55eZKAuyTp\nvKTLapOA65Zrzh/G/rdHd5QNuJtVGzvXnk6bgvxssPfA5LWaxSjHxQ6t44qWIuIjlU3Oly5cPZmZ\nl27POzuZIQH8jMo562GV/uMf5pYbi+1qbAd3HDE5p0zPJxr+viczt76Yssvjvkeu3MdCIcy7Le7k\nXD3ntToHRoM9hDaMb8vvYfe6TDI79R7kuzgX+iuvs7eLwXVi3li/WXLCPTZwUq4EnJMrgR0Rb0p6\nWqV36kMq1dE5VKceZObjde+8z89bksK8sSCwD3YxLzuKBDDnCsR71muQv5LUnz2lygScU88FJRFx\nWWWd8rmkTzLz2x7Gxn/1ety7mS9yWgphhrFdm1tSkIUTI8m8Rq9Bfo9Wbue6T/Ors3tb8QHgzkR1\n6rKI+Dozzw2Pv8/MRybPWSsgAOBW9FptjP+fHgtKhgv54/HT+k4029jAPnDeyQnsA5LMAACg2rQS\nkCpBAAAAALizkGQGAADVnD0DAQAAAAD7jSQzAAAAAAAAAGBrp273GwAAAAAAAAAA9IskMwAAAAAA\nAABgaySZAQAAAAAAAABbI8kMAAAAAAAAANgaSWYAAAAAAAAAwNb+ARXSotjOvYnJAAAAAElFTkSu\nQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x91c1df0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"matplotlib.rcParams['figure.figsize'] = (20.0, 10.0)\n",
"ind = range(len(codes)) # the x locations for the groups\n",
"width = 1.0 # the width of the bars: can also be len(x) sequence\n",
"\n",
"bm = plt.bar(ind, bronze, width=width, color='#BA8651')\n",
"sm = plt.bar(ind, silver, width=width, color='#C0C0C0', bottom=bronze)\n",
"gb = [bronze[i]+silver[i] for i in ind]\n",
"gm = plt.bar(ind, gold, width=width, color='#FFD700', bottom=gb)\n",
"\n",
"plt.ylabel('Medals')\n",
"plt.title('2016 Olympic Medals last update %s' % last_update)\n",
"plt.xticks([i+width/2. for i in ind], codes)\n",
"plt.xticks(rotation=90)\n",
"plt.legend((bm[0], sm[0], gm[0]), ('Bronze', 'Silver', 'Gold'))\n",
"plt.tight_layout(h_pad=2.0)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment