diff --git a/05_feature_extraction/00_plotting_in_python.ipynb b/05_feature_extraction/00_plotting_in_python.ipynb new file mode 100644 index 0000000..bce3681 --- /dev/null +++ b/05_feature_extraction/00_plotting_in_python.ipynb @@ -0,0 +1,368 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "73a54a8d-62e2-4c41-a6e0-dbb0571eeb04", + "metadata": {}, + "source": [ + "# Plotting in Python\n", + "\n", + "This lesson is optional, but highly recommended for the completion of the following notebooks and for working with Python for data visualization in general. You will learn how to handle plotting with the most common plotting library for Python, [matplotlib](https://matplotlib.org/).\n", + "\n", + "The largest part of matplotlib's functionality is contained in the submodule `matplotlib.pyplot`. Additionally, we will import numpy to create random sample data and pandas for some simple processing." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "51fbe1b9-16d7-465f-9e02-6057895c0c97", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "8cb4eb84-6d8e-4665-b730-ad980a992928", + "metadata": {}, + "source": [ + "## Exercise 1\n", + "\n", + "In this exercise, you will learn to create scatter plots from data. Let's create some values for x and y:" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "67a9719e-e668-40b8-9bc3-5b01de9205b2", + "metadata": {}, + "outputs": [], + "source": [ + "xdata = np.arange(0, 100, 1)\n", + "ydata1 = xdata + np.random.normal(-10, 10, len(xdata))\n", + "ydata2 = xdata + np.random.normal(-10, 10, len(xdata)) + 10\n", + "\n", + "smoothed_data1 = pd.DataFrame(ydata1).rolling(4).mean().to_numpy()" + ] + }, + { + "cell_type": "markdown", + "id": "e7df1dd0-d69a-4022-a94a-b603cea9ebf5", + "metadata": {}, + "source": [ + "Matplotlib figures always consist of a `figure` and an `axes` object. The axes object contains the actual plot elements (lines, axis ticks, axes labels, legends, etc) whereas the figure object contains the axes object. For instance, if you use several subplots, matplotlib will create an `axes` object for every subplot and a single `figure` object that contains all the subplots. \n", + "\n", + "You can easily create both with the `plt.subplots()` command - here's an example for a single subplot. Note the `type` of ax:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "bbc4b26d-b013-436a-a54a-a1e1e71a5b78", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "matplotlib.axes._subplots.AxesSubplot" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(5,5))\n", + "type(ax)" + ] + }, + { + "cell_type": "markdown", + "id": "08ef589d-fafd-4fd1-b4e3-b0d66d81dc06", + "metadata": {}, + "source": [ + "To create a figure and create a scatter plot, use the `ax.scatter()` function:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "13ac0405-baf8-4317-a614-b8f4df119f16", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(5,5))\n", + "ax.scatter(xdata, ydata1)" + ] + }, + { + "cell_type": "markdown", + "id": "b5feef95-a4ea-45bb-990c-71f6edae8b11", + "metadata": {}, + "source": [ + "You can simply add more data to the same plot, and create a legend like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "3307ce82-af2f-447b-8756-583b3ee054b7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUEAAAEvCAYAAADb8HMbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAz5ElEQVR4nO2de3hU9Z3/X59AAokXooAVEhTWpSpyF7yBdpUiuiqiVmD7tMVnve3TrlZ3HzD82l9Fq2tEn2pta63CVtvValQKUdsqK9ut2F8VKIigpejiliRYLgpeMpLb9/fHzISZybnOnDMzZ+bzeh6fZM6cOed7iHnn+7mLMQZFUZRypaLQC1AURSkkKoKKopQ1KoKKopQ1KoKKopQ1KoKKopQ1KoKKopQ1/Qu9gFSGDBliRo4cWehlKIpSYmzYsGGvMWao1XtFJYIjR45k/fr1hV6Goiglhoj8r917ag4rilLWqAgqilLWqAgqilLWFJVP0IrOzk5aWlr47LPPCr2UyDNw4EDq6+uprKws9FIUpWgoehFsaWnhiCOOYOTIkYhIoZcTWYwx7Nu3j5aWFkaNGlXo5ShK0VD05vBnn33G4MGDVQBzREQYPHiw7qgVJYOiF0FABTAg9N9RUfoSCREsJpYsWcK9997reM7KlSt56623Ar3ve++9xxNPPGH7/gUXXEBtbS0XX3xxoPdVlLyyuQnuGwtLauNfNzeFfksVwRAohAguXLiQn//854HeU1HyyuYmeO5GOLATMPGvz90YuhCWnAiu3NjKtMY1jGp4gWmNa1i5sTXna955552ceOKJfPGLX2Tbtm29xx955BGmTp3KhAkTuOKKK2hvb+f3v/89zc3NLFy4kIkTJ/Luu+9angfw9NNPM3bsWCZMmMA555wDQHd3NwsXLmTq1KmMHz+en/zkJwA0NDTwyiuvMHHiRO67774+a5wxYwZHHHFEzs+qKG6E8TsGwMu3Q2cs/VhnLH48REpKBFdubGXxijdp3R/DAK37Yyxe8WZOP6QNGzbw5JNPsnHjRlasWMG6det637v88stZt24db7zxBieffDLLly/nrLPOYvbs2dxzzz1s2rSJE044wfI8gNtvv50XX3yRN954g+bmZgCWL1/OoEGDWLduHevWreORRx5hx44dNDY2cvbZZ7Np0yZuvvnmnP6dFCVbwvgd6+VAi7/jAVFSInjPi9uIdXanHYt1dnPPi9tsPuHOK6+8wmWXXUZNTQ1HHnkks2fP7n1vy5YtnH322YwbN47HH3+crVu3Wl7D7rxp06Zx1VVX8cgjj9DdHV/3Sy+9xM9+9jMmTpzI6aefzr59+9i+fXvW61eUIAnjd6yXQfX+jgdESYlg2/6Yr+NesYuqXnXVVfzwhz/kzTff5NZbb7VNP7E776GHHuKOO+5g586dTJw4kX379mGM4Qc/+AGbNm1i06ZN7Nixg/PPPz+n9StKUIT1OwbAjO9AZXX6scrq+PEQKSkRHF5b7eu4F8455xx++ctfEovF+Pjjj3nuued63/v4448ZNmwYnZ2dPP74473HjzjiCD7++GPX8959911OP/10br/9doYMGcLOnTuZNWsWP/7xj+ns7ATgz3/+M59++mmfayplTgGiqBDO71gv4+fCJQ/AoBGAxL9e8kD8eIgUfcWIHxbOOpHFK95M265XV/Zj4awTs77m5MmTmTdvHhMnTuT444/n7LPP7n3vu9/9LqeffjrHH38848aN6xWp+fPnc+211/LAAw/wzDPP2J63cOFCtm/fjjGGGTNmMGHCBMaPH897773H5MmTMcYwdOhQVq5cyfjx4+nfvz8TJkzgqquu6uMXPPvss/nTn/7EJ598Qn19PcuXL2fWrFlZP7dSxCSjqMkgQjKKCqELRhi/Y2mMnxv6M2QixTR3eMqUKSazn+Dbb7/NySef7PkaKze2cs+L22jbH2N4bTULZ53InEl1QS81svj991SKkPvGJtJIMhg0Am7eEvrto/g7JiIbjDFTrN4rqZ0gwJxJdUX/A1GUnChQFDVJqf2OefYJisi/i8huEdmScuxoEVktItsTX49KeW+xiLwjIttERO0yRQmKAkVRSxU/gZFHgQsyjjUALxtjRgMvJ14jImOA+cApic88KCL9cl6toigFi6KWKp5F0BjzO+CDjMOXAo8lvn8MmJNy/EljzEFjzA7gHeC03JaqKApQsChqqZKrT/BzxphdAMaYXSJyTOJ4HfCHlPNaEscURQmCAkRRS5Ww8gStsostw9Aicp2IrBeR9Xv27AlpOYqiFCq3sNjJVQT/KiLDABJfdyeOtwAjUs6rB9qsLmCMedgYM8UYM2XoUMuxoEVFMbbS2rRpE2eeeSannHIK48eP56mnngr03koJUKAOLVEgVxFsBhYkvl8ArEo5Pl9EBojIKGA08HqO94oM+RbBmpoafvazn7F161Z+85vfcNNNN7F///5A769EnDA6tJTIztJPiswvgP8HnCgiLSJyNdAIzBSR7cDMxGuMMVuBJuAt4DfAN4wx3dZXDpgQfjDF3krr85//PKNHjwZg+PDhHHPMMahrQUkj6NzCEtpZeg6MGGP+weatGTbn3wncmc2isiaEcqLUVlpdXV1MnjyZU089FYi30rr22msB+Pa3v83y5cu54YYbmD17NhdffDFf+tKXAKitrbU8L9lKq66urnfnltpK6+DBg0ybNo3zzz+fxsZG7r33Xp5//nnH9b7++ut0dHRwwgknZPW8SokyqN6myiTL3EKnnWXEAjYl1UAhjC1/lFpp7dq1i69+9av89Kc/paKitH60So4EnVtY4KqVICmtsrmQfjBOrbRWrlzJhAkTePTRR/ntb3/r67yHHnqI1157jRdeeIGJEyeyadOm3lZamc0P7K6d5KOPPuKiiy7ijjvu4IwzzvD7iEqpk9ydvXx7/PdhUH1cALPdtWW7s9zc1LuG9upjWdo5j8c+Oc25BjnlMzmv24LS2i6EUE4UhVZaHR0dXHbZZXzta1/jyiuvzPpZlRAphiDC+LnxBgtL9se/2gmJl7Vms7PM8CPWxHaxqPNBLqlYa9+hOg++x9ISwRDKiVJbaV1xxRWWrbRmzpzJSSed1Ht8/vz53HPPPUyaNIl3333X9ryFCxcybtw4xo4dyznnnMOECRO45pprGDNmDJMnT2bs2LFcf/31dHV1pbXSygyMNDU18bvf/Y5HH32UiRMn9u4qlSIhSkEEr2vNpmrFwl1VIx0s6h+/tmWH6jzMHSm5Vlphb52jjrbSKgAFbn3lizDXuqQWq5qJHiP8zcG4hSTAjsaL4m9sboIV19pcTOI7Wo+UVSstLSdSio4oBRF8rDW1r+CCw19nUeVT1MTet9982PgR28zg3u97O1Qnd6R2BNgxp7TMYUUpRqLU+srjWlOnzl1SsZZFnQ9SE9tFrwm94jpYMijdp2jhrmo3VSztiotlWodqKzM4ScAdc1QEFSVsotT6yuNaU6fOLerfRI10ZFwoYfYmfYrP/8shYUt01WuvHsbSyq/zXM906mqruevycYeiw0675IA75kTCHDbG2KapKN4pJv9vWRF0ekqYeFxr6nS54bLX+ZqdMVj/7/QKo+mGympqLrydJePnssTqM7YpOCMC/3crehEcOHAg+/btY/DgwSqEOWCMYd++fQwcOLDQSylPouSr9rDW4bXVtCaEsM0Mod5NCDMDIm7VJTO+k179BaHtnoteBOvr62lpadFa2AAYOHAg9fVF6IdSIkfq1LmlXXNprFxmYRK74GTyjp/Luvc+ZMQf7+EYs5fdMoSd4xYyNYQ/JEUvgpWVlYwaNarQy1AUJYWk7+6eF7fx3P7pHF1ZlYgO7yKe6JK688t8ncAhMLRyYyuL1x1PrPP7vceq1/XjrhGtgQ95Kvo8QUVRgifUsZmZubqjz4c3nuhr2joEOKY1ruk1t1Opq63m1YbzfC+pvPIEFUVxJJnekozuJkvWgGCE0MqneNwZvgJDbRYC6HQ8F1QEFaXMSE1vSZIsWbMVwVwrsXwGhlIDL6kMqq5kWuOaQHewmieoKGVG6m5qdsVa1lbdyP8M+DJPtV9rXc9cgNrnhbNOpLoyfUpvZYXwaUcXrftjGLBvuuATFUFFKTOSpWmzK9bSWLmM+oq9VAjUV+y1Fje7JgYrrg2tI86cSXXcdfk46mqrEeK+wMMH9qezOz2GYdl0wSdqDitKmZFMb1kkFpUeVvl7TqksAXRvt2POpLo0U3dUwwuW5+XqJ9SdoKKUGcld1vCKfdYnZIqeW41zwK2t7OhtruDxuFdUBBUlSgTUnHXOpDoqvDZ2sKonziQPHXGs/IRpTReyRM1hRYkKQQ8S81qallZPbFHPC6F2xEnNaRxUXcnAygr2t3cGFh1WEVSUqOAy4c13ArSfxg7JFJdMIYZQO+Jk5jTuj3VSXdmP++ZNDCy5W0VQUaKCQ8PTrBOg/TZ2yHNHnKxyGn2iIqgoUcFhwlsQYuF5Jxl0RxyHROx8VI6oCCpKVHDw4bU94VMsMoRn3Qk3JBoWhFRKZ4eLn9OuciTXiHAqGh1WlKjgMOHNV/qIRQXI2D/+X2Z2/3faaUEkIrviMk0urIhwKroTVJQoYWOKpvb3S2IrFhbCU81BFvVvorljetrxMBoWpOEy2Cm1ZVcoHW9QEVSUksCXWNgIz3DpmzwdpNlpiYOfM0lm5UjQqAgqSongWSxshGcXg9NeB212WpLHNvp2BOITFJGbRWSriGwRkV+IyEAROVpEVovI9sTXo4K4l6IoOWIzUa7t1EVpDQvSpr+Fxfi5rBt3G+8zlB4jvM9Q1o27zT76HFDFTCo5d5YWkTpgLTDGGBMTkSbgV8AY4ANjTKOINABHGWNucbqWdpZWlDyRa3/AgMjMb4T4DtRSgO0StT2M4HTqLB1UdLg/UC0i/YEaoA24FHgs8f5jwJyA7qUoSq6Mnws3b4El++NfCzEJb3MTZ6z6Alsr5rG26kZmV6wFHKLSLpHkbMnZJ2iMaRWRe4G/ADHgJWPMSyLyOWPMrsQ5u0TkmFzvpShK8eOUdJ18b8pHq2msWs6xHASBetlLY+Uy6ITmnunWUWmXSHK25CyCCV/fpcAoYD/wtIh8xcfnrwOuAzjuuONyXY6iKAXEqXwP6H3vqaomqjmY9tka6ehN07GMSnuIJGdDENHhLwI7jDF7AERkBXAW8FcRGZbYBQ4Ddlt92BjzMPAwxH2CAaxHUZQ8+/ySOzyr6o5U8zYpjsNthrUPl332UemQIslB+AT/ApwhIjUiIsAM4G2gGViQOGcBsCqAeymK4kaeZ4Ikd39WApikbX8szcRtM0Msz9stQ+yj0g4VM7kQyNxhEbkNmAd0ARuBa4DDgSbgOOJCeaUx5gOn62h0WFEC4L6xNmbjiHgQJGDsZgSnUpcwb5PnJeebpLX39xjpzYbQ5w4bY24Fbs04fJD4rlBRlHxiEygwB1qYHvC4SnAvrauu7Me5Jw3l+Td29R5r7pkOnXBLZRPDZR9SwDQdrRhRlFLDJoDQZgb37sSC7BJj1+kF4jvAc08ayrMbWvu0+npl4Lmcd8k/h5+Q7YJ2kVGUQhN0FYRFRUiMAdzdmb7LCqpLjF2nl6fPauHVATdy+6azWS3f6M0DTFJT1b/gAgi6E1SUwhL03JDUz6VEhxv2XBI3QTOwMmX9tum3at5w/5jtTH3zVuiMUUF8pnFqHqDdvQtBIIGRoNDAiFJWbG6CX/4TmO6+7wUcxLALXtTVVvNqw3m962n/9XcY2P4+bWYwS7vm0twz3b6MzQmb4ExLzxCmdzzQ994hE3pgRFHKEd+DjVJJ7gCtBBDiAnLf2MDy/Fz7DSbWU9MZS6vgOLX7z8yQTQxfuZf3Vw1l5+SFTJ19vfsNXdp15aVDjUd0J6goWeCr8N8KuzSWXgQwfV8PGpG1IDqKts16egxUyKHXMVPFllPvcBdCh53gvJpHAm+M6obTTlBFUFEcsBMOT+alE0tqSRe5VDIFMIMw8ukc15PO+wzl2CXvOJ+UQ8eXMMhHFxlFKTlSKyEMh9JKVm5szXoK2sqNrUxrXENLz2DrE6QfrmIUQOeUPviovz3GWJe8pRFSdUcYqAgqig1OYyx9DTZKkCqqS7vm0m6q0k+orIbLHkoIhws5dk5JXdO0xjV8c88lxBiQ9l6PjRbvFuuStz4UQ7suD6gIKooNTru9bKagpYpqc890GjqvoaVnCD2ZOyWrzs+Z5Ng5BdJFeVXPdG7puJpWMwSTWM+OkfOJZQh1zFSxc/LCnO9dTGh0WFFscJp5m80UtExRbe6ZTnPHdATYseSiQ2+k5fntpI+PMKAZHJk73eae6TQfnB73a958HicA65onM+KP93CM2ctuGcLOUz1Gh8kxep5HVAQVxQa3tBK/U9B8DRJPHa0ZUlssL37NqbOvh4ToHZv4zwtOfQWLTQhVBBXFhqBn3vqaDZyKzazhXPElyj5x8qeqCCpKhAhy5u2cSXXU7Xw+YV7uYbckko8nXRDI9f2StSh7INvoeSFQEVSUfLG5KV5PS7wq41j2cOybt8LIo3La6aXO7Vhc9TSfY6+n1lR+drp+/Xth7jKDRkVQUfKF07S0LEUw6Xub2f3f3FW5jBoSTUo9NmLwstPNxr8X5i4zaDRFRlHyRQjT0u55cRszu/+b71U+lN6lGQJLqnby79kxZ1Idd10+Lv/D3LNAd4KKki9CmJY25aPV3FW5jP7SY31CAEnV2fr3gvSnhomKoKLkC5tpaetOuIGbEm3vFxz+Oosqn6Im9r6ndJjFVU8fMoGtCCCpOkr+vWxQc1hR/OLWCdrufYt62nXjbuNr646ndX+MSyrWsqjzQWpiu3CbEpcsdzsmPunWmoCSqrOpjokS2kVGKR+CSDq26Y6ybtxt3PTWaKZ8tJrGquXpg8UduqekdqNZW3Uj9RUWzQkyGqymBipsPyP94nXIAeUXRqX6ww5tqqooQbWxt4nwDt+wlNaDD/BUVVO6ACbet4sAp/rV7AaSZ/r1UgMVS7vm5mV0ZVT8e9mg5rBSHjilp/jBJtAwjHjHZK9CliTVr2Y3kDzTr5cqnGmNGExxt6wqVlQElfIgqPQUm0BDmxmc+OpNyJKk+tts22tl+PUyAxLNPdOZ3vEAZ1evKOqWVcWKiqBSHthFSf1GT23GWS7tiguPVyFLkppP91zPdJZWfp326mE4NSIt9UBFvlGfoFIe2KSn+I6eWoyz3HLCDaxedzz0dMfHSXbCLZVNDJd9nsvXDvnbLgJuc1xC0I0diolCBGA0OqyUD9lEhz1+Jsxf3qhHZr2S8/AqB3TQklJ+hJUOA1B9NFx4d2AC6kSYwlBs5Dy8yoHQU2REpBZYBowl3gL3H4FtwFPASOA9YK4x5sMg7qcojmSbDpMpWh2f9hVAgNgH7tcLKCUn2758Udw9Fqr9VlCBke8DvzHGnARMAN4GGoCXjTGjgZcTrxUlfLJJh0mK1oGd9FZrxD6wP9/telmm5CQrQUY1vGC7MwJnYXCaklfMZDO8KghyFkERORI4B1gOYIzpMMbsBy4FHkuc9hgwJ9d7KYonskmHsRKtbO+T5RqsxEtsznUShtTd4+yKtaytupGtFfM4Y9UXLEvwioVCRb2D2An+DbAH+KmIbBSRZSJyGPA5Y8wugMTXYwK4l6K4k006TDbdVpyul8UarExfA32E0E0YkrvE2RVraaxcRn3FXioSTVztapGLgUK13wpCBPsDk4EfG2MmAZ/iw/QVketEZL2IrN+zx6EYXFG8YjWy0i4dJtnswG3geQYxBvDNPZcwrXGNtZnpZw0J7ExcA76EIblLXNS/KbQeg2ExZ1Idrzacx47Gi3i14by8+DGDCIy0AC3GmNcSr58hLoJ/FZFhxphdIjIM2G31YWPMw8DDEI8OB7AepdzJHFkp/dJ/+VOnuFlFf62oPhqqDsMcaKHNDObuzrnxnEC7LssW+YRu0WG7llV+o6PJrs5+S/jKlZxF0BjzvojsFJETjTHbgBnAW4n/FgCNia+rcr2XongmKTZOEVo/fsDYh3DLDqZbBCtso7U+p8QF1ZI+uY7dq4bGTeBMAugxWEoEFR2+AXhcRDYDE4F/Iy5+M0VkOzAz8VpR8odbhNbPjighHHYm65SPVjv3GPRAkD6xOZPqOPbyf/NtkpcjgeQJGmM2AVaJiDOCuL5SmoSey+YWobVpd99joCIlGhEzVWw54QamYm2yzq5YS2PVcjiQaKGVbZsuAm5ZlYVJXo5oAwWlIOQll80tQmvTDOHn3V/sbU3V0jOEWzqv4aa3RgPWaRy3VDr0ECw04+fGO8ss2a8dZmzQBgpKQci2EsIXbk0TLHZKDXsuYVXPdG7NuJQkdn9WzQuGf7bP+v5FEICIYuVIvlERVApCXkqkvJiDGcGL9Y1rwGWoUB+T9b7gp8gFIV7ZzAsuR9QcVgpC3kqkfJqDWVUtZJET6ERQroJs5gWXIyqCSkEo1sagWUVoLabI5dLiPijxKlRDgqih5rBSEIq5MWhWEVqfOYFOBCVepT4vOChUBJWCUcoTzHIhKPEKKvm61FFzWCk/3IanF5igXAWFakgQNXQnqJQXQc0fDpEgXQW623ZH2+sr5cV9Y23SWUbEo8cBojl6xUPo7fUVJTIENX/YBc3Riw7qE1SKnyB9eEHNH3ZBc/Sig+4EleLGgw/Pl9kZ1PxhFzRHLzroTlAJjyB2cC7tsHxXVwSc2GxHoYYGKf7RnaASDkFFYV18eFk1YggwsdkOzdGLDiqCSjg47eD8CJBNzz+3JqeFNjvDqojRiHPwqAgq4RBUFNbFh1fMpWFB5+hpxDkc1CeohENQUdgMH1579TCWmOsZ9cRhTGtcw7knDS3KRgxhoBHncFARVMIhyPZSiXZYKy/dyqmf3M+jn5zWGwR5dkMrV5xaR11tNZdWrOUPA7/JW/3mM+e3s4quHC5XitX0jzpqDivhEMJ8C7ud0C9e28mTZ+5k6ps/LepyuFwpZtM/yqgIKsGwucla8AIUILsdT7cxDN+wFCSAQEwRoxHncFARVHInyKYEdmKK/U4IYBjRGzTuN9JbzD0Yo4yKoJI7QaXDbG6ia9UN9O/+LP76wM74a4Dxcy13QknazBDqxUIIi3TQeLaRXu0KEzwaGFFyJ9d0mERliVlx7SEBTNC/+zPafx0PpiT74/UT6XOJpV1ziTEg/WBGIGblxlamNa5hVMMLTGtc06eqxO39INFIb/GgO0Eld1wSmh1JMaX7SlucgbH3e79P7oIyd4Sr+32Br04eydR3f2BpSrvtvILMwbMycyHdjLUz6zXSm39UBJXcyaUpgZUpnUFbz2BS5dTONzZ10gXA9ZbXcCuvC2oOspWYLnz6DRDo7Da9xwSw6uSpkd78oyKo5E626TCbm6x3kCm0myqWVX2FJRnH/frG3HLsgsrBsxLTzp6+cmegjxBqpLcwqAgqweA3HSZpBttgDLSaIdzPfKZfdF3Oy3PLsQsqB8+PaBricz800ltYVAQV/ziksXjGwQyOMYCGzqtZf+TMwITBLccuqBw8J39fJnW11bzacJ6v6yvBE5gIikg/YD3Qaoy5WESOBp4CRgLvAXONMR8GdT+lQITcIssAWyZ/l+/PtvbtZYtbjl1QOXhWYlpZIWk+QVDTt5gIbNCSiPwLMAU4MiGCS4EPjDGNItIAHGWMucXpGjpoKQIENajI5jotPUOYaX7kPhoyiN1oSHiJDqvpm19CH7QkIvXARcCdwL8kDl8K/F3i+8eA3wKOIqiESyC96EJskdVuquL5fj0uUdkiH5tpF7RR0StOgjKH7wcWAUekHPucMWYXgDFml4gcE9C9Soc87mayzYPLFM7V1cdSE9vV90SLnEBH0U08Z8szixku+2gzg1naNZfmnumAS4AhqAoVRSEAERSRi4HdxpgNIvJ3WXz+OuA6gOOOOy7X5USHPO9mvOTBZYrWuScN5dkNrWnC+Z2qK2isXJZe2WGRE+hJdMfPZd6vhviPyuZpbKZSHgRRNjcNmC0i7wFPAueJyH8AfxWRYQCJr7utPmyMedgYM8UYM2Xo0KEBLCciuAwQChq3PDirgUWP/+EvfYTzmY6zuEP+yXVQkdeysIWzTvTfFDVPYzOV8iBnETTGLDbG1BtjRgLzgTXGmK8AzcCCxGkLgFW53qukyPNuxm36mZVo2YXMHvvktHgQZMn++FeLnavX5ONkPXBdbTVCPG3ENSiSY8PWfNYIK8VPmHmCjUCTiFwN/AW4MsR7RY9c6m2zwC0Pzk+Sr5cEYj/Jx76qP5J+1M4YSD8w3fHdqEd/qs7pUDIJtIuMMea3xpiLE9/vM8bMMMaMTnz9IMh7RZ4g289bkTHzd06/Vx13XHbCltnUwGt+m52Ze/+Y7dnPIk76UZN/PEz3oX8zj37UQLu3BDFXWSk4WjFSKEJoP9+LTdBlziUPMKfB+vp2O8UrTq3jv/60h9b9MfqJpAmG3wag94/ZztQ3b80+GBRAVDiwOR1FnqajeCewZOkg0GTpgPCT0JySptNefSxLO+fx2CenpaW0ZJqQEBdIV99dLuuyYkkt1p5KifsnPTCtcY2lme67hC2opHElLzglS2tT1Qjg25HvNeiSZl4aamK7WNL1fXYM/DKvDriROf1eBQI0IXMNBtn5S6uP8myWZhWNtkLTdEoGFcEixyp1ZfGKN52F0GsKiWUTg8ROK2nebW4KzoTMNbXFyo9aUQkdn/QKeeq6rciMRtdWVzKwsoKbn9rkL1KsaTolg4pgkZPVLsxr0MVt15Lwt7ml13hicxN0fNr3uJ9gUMYgdgaNgAFHQHeH5brtmDOpjlcbzuO+eRM52NXDh+2d3v/AJAk7sKXkDQ2MFDlZ7cK8Bl3s0nRSOdDCwktPZO0vH+QmnmS47KUt0edv3pjj4L4b3QM7mQOUSDQVrT4aLrzbXyAhs2/hklrbdbuRUzfpMANbSl5RESxy7PLtFhz+Otx3i/0voJcmp1Zt8TMZVM+cfq9ycUqpXL3s5W55iH5vVBzahTlER9t//R1qMgYoCdDOAGpyFQ0bIX+fIfxhY6ujmOVs5gc8V1kpDGoOFzlWjvwvVf2eb5uHPPvBbEkzL6FPVmDSvHv59j5T4PqZLs9maOqgJC/HfWFhlrabKv6t40pX0zYQM1+JPCqCRY5VWdnthz3bR5SyrjsePzdRAncALn/4kCBKv0PXdDOZU7EwQ9t6BlueanfcFwkhf5+h9BihpWcIDZ3X0Nwz3dV3GlikWIk0ag5HgD5lZUtsdlC5pmckTbvMJGDb2Wh9aekZzLzGNWlts5ZVfYVFnQ9SI4d2jnYDlKxw7YM4fi5nPnGY5QqdTFs/3aQD6cWoFCUqglEkzLpj27SZDCGsqASRNJM42RQ1sx534kXX8Z1fdnGTebK3d6DXAUpea32zHZTkpW5Z641LGzWHixWnutQw0zNsd5MmPTVlzoNw6Y9g0Ah6SDdDgT7lddMv+zrzah7hhIOPM6/mEaZf9nVPApJrS65zTxqac8eYQOuNlaJDd4LFiFtdapjpGba7TJtysPFzOaHhBVdT1O+cYKtrOB23Mm2tmsJms4MLLFlcKUpUBIsRL40CwkrPsEqbcdllBjWzN9drZwrttMY12ecBZrkGJXqoOVyMFLIu1aoqw6JzdCp+oqx+66BzieAGtYPTKHJpozvBYmNzE0hFvFdeJvmqS/W5y/QaZfUVYEh0t5lzoIXzD7fubuNGUDu4oGYSK8WJttIqJjJ9galUVrvuyIodz22srP4dsnj+wFqAKZEn9LnDSkBYpqcQT1zOowCGlRPn2TwNaKSm7uAUL6gIFhN2Pj/Tk1cBDCsnzqt5ag609Gnr73TciWyj0kr5oIGRYiJfPeocchD95MSFFeT4K0MsP293XFFyQUWwmMhHj7qMbtKZzRe8mqzZNHv1Ol7zro4raTdVacfaTRV3dejAQiV41BwuJvLRo87F3+bVZM22F58X83T9kTNp+AgW9W/qLbNb2jWXDUfOdHk4RfGPimCxEXaPOpccRLf5xEnCrKKIr6GD5o7paWu4S/PylBBQc7jccPE7ejVZw+zF53UNihIEmidYbljk4MUYQEPH1aw/cqbnFBLNwVOihOYJFjsps39Dn1WR4nc0B1poM4O5u3NuvPuLj3QYzcFTSgXdCRaagKojsiGwQeSKUuTo8PVixilaGzLaIkpRAhBBERkhIv8lIm+LyFYR+Wbi+NEislpEtie+HpX7cgPCqWFpPj6fSgE7xuigIUUJZifYBfyrMeZk4AzgGyIyBmgAXjbGjAZeTrwuPC7JwqF/PpN8VYlYEEqLqCD/QChKHshZBI0xu4wxf0x8/zHwNlAHXAo8ljjtMWBOrvcKhFzNz6DN13xUidgQeCpK0H8gcsBvSZ9SvgQaHRaRkcAk4DXgc8aYXRAXShE5Jsh7ZU2u5mfQ5ms+qkQcCLTBQEDdX3JFByMpfghMBEXkcOBZ4CZjzEci3vp9iMh1wHUAxx13XFDLsSfXSW1hTHoLu0okXxSyI3YK2Zb0KeVJINFhEakkLoCPG2NWJA7/VUSGJd4fBuy2+qwx5mFjzBRjzJShQ4cGsRxncjU/C2i+Fj0F9G+molFvxQ9BRIcFWA68bYz5XspbzcCCxPcLgFW53isQspihEejnS5ki+QOhUW/FDzknS4vIdOAV4E2gJ3H4/xD3CzYBxwF/Aa40xnzgdK2STpbOR1VIPitPingNWtKnZOKULK0VI24E8UttNzuk+mi48O7cRWJzE/z6Fohl/I2prIYJX4btL2W//iIQtWwIa0SAEk1UBLMlqJK2+8ZaB1MS11s37jZuemt0dr+wTsOZABBIG42eeD1ohLugZfH8Kj5KMaJlc9kSVE6gU3S0M8bwDUt9dWiGQ3lwLc8sdhBASBfAlNdecvh8Pn823aYVpdCoCDqRTcqHVcWES3R0GPvSXtvN9EiSKjbDZa/jtR1xE3Sb5zQHWiwTkf3MJ1GUYkFF0Am/KR92FROjz+8bNU2hzQzue8whnSNVbNqM0/AhD7maToJu85xtZrDlbk9TU5QooiLohN+UDzvzcftLrBt3G/s5gkwXbIwBLO3q619zSudIFZWlXXP7DCUC4kGXKf/oKL6A8y7V4vljDODuzvT1Jnd7mpqiRBEVQSf85gQ6mI9fW3c8Ez/7Cd/s/DotPUPoMUJ79TC2TP4uq/t9Ie18tyYGqaLS3DOdhs5r4tdMrvHyR+CWHXDx91LWD312hm45fBbP39BxdbwBawZt+2PhNGRQlJDR6HCAtN99EjWxXX2OtzGEsz57oM/xZPNS14hqb5rKTpB+GNNNmxlyqCM0HvPgAkh3cWvEqtFhpRjRFJmwyBCVZz86hQt71lAjHb2ntJsqGjqvsdw9CbCj8SL3e9ikwGQzGyRXNBFZiSIqgmFgIU7tpoqnu89hRsUmhss+PjSHIQK1fEKbGcLSrrlpYuipjb1TjiHETdWbt+T6NL7Q3Z4SNXTQUhhYBEFqpIMZFZuY3vEAsyvW0li5rHdXWC97aaxcBp1xP55nX5lbB5Y8d2iBgNtvKUqBURHMFhvxGS7xnL9F/ZvSzGKIi+Si/k1sqJnZK4DTGtc476jsWnelvq8oStZodDhbbMTns5pjqauttk1irq/Y12sCe6qusErTSaItvBQlZ1QEs8Umh7Dmwtt5teE8KmpHWH8uIZ6eqyvS0lQASaSgaAsvRQkENYet8JJK4tYWf8Z3rJsPJHZuvqorSqXztKIUISqCmWRGfZOlb2AthHbi5CKSw2urLfPttLpCUfJLZEUwtDSNIIcFOYjkwlknWubbBVVdoWksiuKNSIpgaNPENjfZR2IDTkVJrjNIoUoKX+v+WFoXQZ22pij2RFIEQ5kmljSD7QghFSXIfLvMPwyZKfA6bU1RrImkCIbSssnKDE5SgFQUv+as1R+GTLSllaL0JZIiGEpQwcncDTAVxU3cVm5sZUnzVvbHOnuPeTFnvQhchQgrN7bqblBRUohknmAoLZtsG6iOCFQAnRKkk++nCmAStw7NXv4AdBvD4hVv8u2Vb1p2hlaUciSSO0FfQQWv7aNc8vpSSQ1A9BOh2xjqsjRZU311biat027PKtpsRayzm8f/8BcNmihKgkiKIHgMKvjN+QNXwcwMQHQnuvDkYrImj7uZtE67Pas/DFYuA9CgiaKkElkR9ITfnD+LvL5MH157R5ftbstNTNx8mU7C5cXcz/zDYNcA1QoNmijlSiR9gp7JZlpcClY+vA/b+/rrUnEzWZ18mVbvAxxVU5lV01Kr69mNXtJKFaVcie5O0Iuvz64NlcecPy9pJ5n4NVlT/YhBJ1BbXe/ck4by7IbW0CpVFCVqRLOztFXL+crqvqksXs+zYVTDC338Z05Epc28ltQp5UbpdZb26uvzGOyww85HV1tdyWED+qdFh686/HUWVT5Fzar34bfZDTHKF9oZWlEOEU0R9OLryzSXL3/YWpQczGq7JgdLZp/Sdxrccz+BmIcotKIoRUXogRERuUBEtonIOyLSEMhFbRObE8eTZvCBnYA5JEqbm9LPdzlvzqQ67rp8HHW11QjxwUiW5q7TzlRRlKImVBEUkX7Aj4ALgTHAP4jImJwvbNPVuTex2asoeThvzqQ6Xm04jx1f/pRXB9zInFWnxCfApQpqjlFoRVEKR9jm8GnAO8aY/wEQkSeBS4G3crqqm6/PRnzMgRampww2WvtZi3XKSObn3ZKuc4xCK4pSOMIWwTogVR1agNMDubJTV2cbUWozg3sDHa37Y7QNGEyd1UCkTPFyC8T4KLnLBY3qKkrwhO0TtNpopWWdiMh1IrJeRNbv2bMnmLtamMsxBnB3Z7po3t05lxgD0j9rJV5u5m7aMCQJZQiSW/MFRVGyI2wRbAFSx67VA22pJxhjHjbGTDHGTBk6dGgwd7UQpYaOqwFYW3Uj/zPgy6ytipuzDR1Xu4uXWyAmec+bt8CS/fGvAUeFPU+nUxTFF2GL4DpgtIiMEpEqYD7QHPI942SI0lE1VTRWLqO+Yi8VAvUVe2msXEZNVX+mHXyAUZ89zrSDD7Cye1rfa7kFYvJAKI1kFUUJVwSNMV3APwMvAm8DTcaYrWHe045FlU9RIx1px2qkg382T7ibmHkwd92wK8fTml9FyY3Qk6WNMb8CfhX2fdyoib1veXwY+9Je23aCKfDs37Cn0ylKuVJaXWQ2N8Vz+JbU9s3ls/HrtZnBfY8VoYnpOXFbURRfRLNszgq3XD6LNJYYA1ja1Xd3V6wmptb8KkrwlI4IuuXyWSRYbznhBlavOx560k3Mc08ayrSUpGrNx1OU0qV0RNBL6VqGX28qcNeIVsd+ezqDQ1FKm9IRwSxL16xa0gc+2F1RlKKldAIjAeXy2QVFWvfHdEylopQgpSOCGbl87dXDWGKuZ9QTh/kSLbugiICWrClKCVI6Igi9VSIrL93KqZ/cz6OfnOZbtOyGE9mNqVQUJdqUlggmyKXO1iofz27OSDHmEyqK4o/SCYykkGudrdf5vcWaT6goindKcicYdJ2t27xgRVGiS0mKoN0Q8/aOrqyCGVqypiilS0maw0lxWtK8lf2xzt7jH7Z3Zp34XMwla9pxWlGypyR3ghAXrcMG9NX4UovqasdpRcmNkhVBKI9GpNpxWlFyozRE0KaFVjk0Ii0HoVeUMIm+T9ChhdbCWdPy1oi0UH654bXVmr6jKDkQ/Z2gQwutfEV1C+mX0/QdRcmN6O8EXVpo5SOq6+SXC/veyetrdFhRsiP6IphlC60gces8E7Y4FXP6jqIUO9E3hwMch7lyY2tW7bK084yiRJfoi2BA4zBz8etp5xlFiS7RN4chkHGYufj1rPxyVhFb0NQVRSk2SkMEE+SSpqKdZxSlPIm+OZwg1zQV7TyjKOVJyYhgruVjQYuWdp5RlGhQMuZwEOYsBJtvp6krilL8lIwIBlE+pqKlKOVHyZjD6oNTFCUbchJBEblHRP4kIptF5JciUpvy3mIReUdEtonIrJxX6oL64BRFyQYxxm6WmocPi5wPrDHGdInI3QDGmFtEZAzwC+A0YDjwn8DnjTHd9leDKVOmmPXr12e9HkVRFCtEZIMxZorVezntBI0xLxljuhIv/wAkC3YvBZ40xhw0xuwA3iEuiIqiKEVFkD7BfwR+nfi+DkjtatCSONYHEblORNaLyPo9e/YEuBxFURR3XKPDIvKfwLEWb33LGLMqcc63gC7g8eTHLM63tLuNMQ8DD0PcHPawZkVRlMBwFUFjzBed3heRBcDFwAxzyMHYAoxIOa0eaMt2kYqiKGGRa3T4AuAWYLYxpj3lrWZgvogMEJFRwGjg9VzupSiKEga5Jkv/EBgArBYRgD8YY/7JGLNVRJqAt4ibyd9wiwznE53TqyhKkpxE0Bjztw7v3Qncmcv1wyDZaCFZZ5xstAD+B7IrihJ9SqZixCs6p1dRlFTKTgR1Tq+iKKmURAMFPz4+ndOrKEoqkd8J+m2mqo0WFEVJJfIi6NfHp40WFEVJJfLmcDY+Pu0bqChKksjvBIOeDaIoSnkReRFUH5+iKLkQeXM4jNkgiqKUD5EXQVAfn6Io2RN5c1hRFCUXVAQVRSlrVAQVRSlrVAQVRSlrVAQVRSlrVAQVRSlrVAQVRSlrVAQVRSlr5NCAuMIjInuA//X5sSHA3hCWUwj0WYqXUnqecnyW440xQ63eKCoRzAYRWW+MmVLodQSBPkvxUkrPo8+SjprDiqKUNSqCiqKUNaUggg8XegEBos9SvJTS8+izpBB5n6CiKEoulMJOUFEUJWsiK4IicoGIbBORd0SkodDr8YuIjBCR/xKRt0Vkq4h8M3H8aBFZLSLbE1+PKvRavSIi/URko4g8n3gdyWcRkVoReUZE/pT4+ZwZ4We5OfH/1xYR+YWIDIzSs4jIv4vIbhHZknLMdv0isjihCdtEZJaXe0RSBEWkH/Aj4EJgDPAPIjKmsKvyTRfwr8aYk4EzgG8knqEBeNkYMxp4OfE6KnwTeDvldVSf5fvAb4wxJwETiD9T5J5FROqAG4EpxpixQD9gPtF6lkeBCzKOWa4/8fszHzgl8ZkHE1rhjDEmcv8BZwIvprxeDCwu9LpyfKZVwExgGzAscWwYsK3Qa/O4/vrE/5DnAc8njkXuWYAjgR0k/OUpx6P4LHXATuBo4l3knwfOj9qzACOBLW4/i0wdAF4EznS7fiR3ghz64SZpSRyLJCIyEpgEvAZ8zhizCyDx9ZgCLs0P9wOLgJ6UY1F8lr8B9gA/TZj2y0TkMCL4LMaYVuBe4C/ALuCAMeYlIvgsGditPytdiKoIisWxSIa5ReRw4FngJmPMR4VeTzaIyMXAbmPMhkKvJQD6A5OBHxtjJgGfUtzmoi0JX9mlwChgOHCYiHylsKsKlax0Iaoi2AKMSHldD7QVaC1ZIyKVxAXwcWPMisThv4rIsMT7w4DdhVqfD6YBs0XkPeBJ4DwR+Q+i+SwtQIsx5rXE62eIi2IUn+WLwA5jzB5jTCewAjiLaD5LKnbrz0oXoiqC64DRIjJKRKqIO0ObC7wmX4iIAMuBt40x30t5qxlYkPh+AXFfYVFjjFlsjKk3xowk/rNYY4z5CtF8lveBnSKSHFw9A3iLCD4LcTP4DBGpSfz/NoN4kCeKz5KK3fqbgfkiMkBERgGjgdddr1Zop2cOztK/B/4MvAt8q9DryWL904lv1TcDmxL//T0wmHiAYXvi69GFXqvP5/o7DgVGIvkswERgfeJnsxI4KsLPchvwJ2AL8HNgQJSeBfgFcX9mJ/Gd3tVO6we+ldCEbcCFXu6hFSOKopQ1UTWHFUVRAkFFUFGUskZFUFGUskZFUFGUskZFUFGUskZFUFGUskZFUFGUskZFUFGUsub/A3Off4x89K1oAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(5,5))\n", + "ax.scatter(xdata, ydata1, label = 'dataset 1')\n", + "ax.scatter(xdata, ydata2, label = 'dataset 2')\n", + "ax.legend()" + ] + }, + { + "cell_type": "markdown", + "id": "7d0b8aee-8456-45ed-b056-2d2670695c34", + "metadata": {}, + "source": [ + "Now, find out how to add some labels to the x and y-axis!" + ] + }, + { + "cell_type": "markdown", + "id": "b03044ec-a7a6-49f6-a46c-542a051f1eae", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "id": "e6f64775-e0c3-49a9-aef2-aac3f8db79d6", + "metadata": {}, + "source": [ + "## Exercise 2\n", + "\n", + "In this exercise, we will put the data into separate subplots. You can create multiple subplots by changing the `ncols` value. Note that the `type` of `axes` is now different from above - it's a numpy array! " + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "33b254d2-fa26-4d90-b043-affc7f45bd63", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.ndarray" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(ncols=2)\n", + "type(axes)" + ] + }, + { + "cell_type": "markdown", + "id": "3cc491e1-7f94-46f7-9e9d-45bb92d63216", + "metadata": {}, + "source": [ + "Now, create a figure with two subplots and plot `xdata` vs. `ydata1` in the first subplot and `xdata` vs. `ydata2` in the other one. Add legends as well as x/y-labels to the subplots!\n", + "\n", + "*Hint:* Just like you plotted to `ax` above with `ax.scatter()`, you can now plot to the first subplot with something like `axes[0].scatter()`!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "72e8bca0-59f7-44b6-a3a2-b2b3b38f24b5", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "9ad63017-caa8-47ba-8ac4-2d3c15ff4429", + "metadata": {}, + "source": [ + "# Exercise 3\n", + "\n", + "The advantage of keeping track of the `fig` variable is that you can use it to export plots (e.g., for presentations or publications). To do so, create a figure, plot something (you can copy code from above) and export the figure using the function `fig.savefig(filename)`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5312d88f-2c95-4dbf-9300-0abca46858f7", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "c5507369-bd22-4c7e-b3d7-a8e9daebc102", + "metadata": {}, + "source": [ + "## Exercise 4\n", + "\n", + "Let's combine different plots: A scatter plot, a line plot and a histogram. Modify the code below so that both plots have x/y-labels and a legend. Lastly, the line plot on the left (`xdata` vs `smoothed_data1`) is barely visible - change the color of the line as well as its thickness.\n", + "\n", + "*Hint*: Check out the [documentation of the plot function](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html)!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "75639952-a0c4-4819-b9aa-bbedfc9c0379", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(ncols=2)\n", + "\n", + "axes[0].scatter(xdata, ydata, label = 'raw data')\n", + "axes[0].plot(xdata, smoothed_data1, label = 'smoothed data')\n", + "\n", + "axes[1].hist(ydata1, bins=20, label='Histogram 1')\n", + "axes[1].hist(ydata2, bins=20, label='Histogram 2')" + ] + }, + { + "cell_type": "markdown", + "id": "4ccc003e-7e27-44e2-8b78-be89783c5ad2", + "metadata": {}, + "source": [ + "*Optional*: Start the notebook from the top and change the value 4 in the following line:\n", + "\n", + "`smoothed_data1 = pd.DataFrame(ydata1).rolling(4).mean().to_numpy()`\n", + "\n", + "...and then print the line/scatter plot above again. What happens?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b051af8a-e716-469d-8597-bb248e026a86", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/05_feature_extraction/01_thresholding.ipynb b/05_feature_extraction/01_thresholding.ipynb new file mode 100644 index 0000000..831bcb7 --- /dev/null +++ b/05_feature_extraction/01_thresholding.ipynb @@ -0,0 +1,192 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "6595df14-f25f-4f5a-b631-c1abbebaa0bb", + "metadata": {}, + "source": [ + "# Exercise 1\n", + "\n", + "In this exercise, we will try out different threshold methods and see how they perform on the same data and create a label image from the binarized image data.\n", + "\n", + "## Recap\n", + "\n", + "Thresholding is the process of separating the background and the foreground of an image by comparing the intensities of each image to a single value, the threshold value. Finding a \"good\" threshold value is therefore of key importance. \n", + "\n", + "The output of a thresholding operation is a binary image, consiting of 0s and 1s - which is equivalent to `True` and `False` in terms of boolean values. \n", + "\n", + "**Vocabulary:** Thresholding is a type of segmentation. Separating the image into two types of pixels (background and foreground) is a type of semantic segmentation, and is - since only two types of pixels exist in the output - referred to as a binarization operation.\n", + "\n", + "**How to code:** Remember - in Python you can compare objects (single numbers or images) to threshold values simply by using the `<` or `>` operator - make sure to put the output into a new variable!" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "96bb8728-eaf9-48aa-985b-f4eb94ed5c7f", + "metadata": {}, + "outputs": [], + "source": [ + "from skimage import data, filters, measure\n", + "import matplotlib.pyplot as plt\n", + "import napari" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "2ab114eb-c9a6-417c-be01-a59105cf0202", + "metadata": {}, + "outputs": [], + "source": [ + "image = data.human_mitosis()" + ] + }, + { + "cell_type": "markdown", + "id": "19ae7d4c-2382-428a-8c06-f6908f4710a3", + "metadata": {}, + "source": [ + "As a first task, use the `plt.imshow()` function to display the image in the notebook:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bb85b7d4-5fec-48e6-9dce-883218196c80", + "metadata": {}, + "outputs": [], + "source": [ + "# Code goes here" + ] + }, + { + "cell_type": "markdown", + "id": "1b3bef6e-bac7-4355-8387-f5f403cb73ea", + "metadata": {}, + "source": [ + "Now, apply several of the thresholds from `skimage` to the image data! Choose one that you think is suitable.\n", + "Hint: You can find them under `filters.threshold_...` - use the `tab` key or the [documentation](https://scikit-image.org/docs/stable/api/skimage.filters.html?highlight=filters#module-skimage.filters) to find out how to use the implemented threshold functions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2168ef40-5913-4d44-815b-6b328262b2e0", + "metadata": {}, + "outputs": [], + "source": [ + "binary_image = # code goes here" + ] + }, + { + "cell_type": "markdown", + "id": "ee9147cf-4773-4a01-9da4-5f5867b35ed5", + "metadata": {}, + "source": [ + "Again, use `plt.imshow()` to visualize the results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23ed60a0-9cb6-48d7-949a-8d572f693f9c", + "metadata": {}, + "outputs": [], + "source": [ + "# Code goes here" + ] + }, + { + "cell_type": "markdown", + "id": "82f5717f-2fad-495f-84eb-f0ba543b0922", + "metadata": {}, + "source": [ + "Now we would like to perform connected-component analysis. Use the appropriate function from skimage (`measure.label()`) for this task!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "58550efa-a032-417d-90d2-e009f760a8db", + "metadata": {}, + "outputs": [], + "source": [ + "label_image = # code goes here" + ] + }, + { + "cell_type": "markdown", + "id": "8e316ab9-10e9-489a-96af-fb98e65b7ac8", + "metadata": {}, + "source": [ + "## Visualization in Napari" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f8fa699b-8764-4b8f-8967-2da4a292cdb1", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: DirectWrite: CreateFontFaceFromHDC() failed (Indicates an error in an input file such as a font file.) for QFontDef(Family=\"8514oem\", pointsize=12, pixelsize=20, styleHint=5, weight=50, stretch=100, hintingPreference=0) LOGFONT(\"8514oem\", lfWidth=0, lfHeight=-20) dpi=240\n" + ] + } + ], + "source": [ + "viewer = napari.Viewer()" + ] + }, + { + "cell_type": "markdown", + "id": "d8b83da7-0e93-4922-9468-cc0735ae5ce6", + "metadata": {}, + "source": [ + "Use the `add_image()` and the `add_labels()` function to add `image`, `binary_image` and `label_image` to the viewer and create screenshot of the viewer with the `napari.utils.nbscreenshot()` function." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "0f648bb4-ee2e-41ac-befa-33f54f9f3843", + "metadata": {}, + "outputs": [], + "source": [ + "# Code goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b6614988-1613-4a37-b6b0-591f8c643f38", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/05_feature_extraction/02_thresholding_and_noise.ipynb b/05_feature_extraction/02_thresholding_and_noise.ipynb new file mode 100644 index 0000000..24009e7 --- /dev/null +++ b/05_feature_extraction/02_thresholding_and_noise.ipynb @@ -0,0 +1,386 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0877ee97-9097-4203-9d6e-b86b3adc6712", + "metadata": {}, + "source": [ + "# Thresholding and noise\n", + "\n", + "In this exercise, we will try out different threshold methods, see how they react to noisy data - and how filtering can help to improve the results. To finish this excercise, have a look at the notebook's from [last week]('../04_image_processing_and_filters') - you may find some useful code!" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "96bb8728-eaf9-48aa-985b-f4eb94ed5c7f", + "metadata": {}, + "outputs": [], + "source": [ + "from skimage import data, filters, measure, util, morphology\n", + "import matplotlib.pyplot as plt\n", + "import napari\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "id": "a025cfa9-83c6-446b-9bf1-0855bb085e1a", + "metadata": {}, + "source": [ + "## About pixel noise...\n", + "\n", + "Pixel noise can have very different characteristics - each of them requires a different type of image filtering to get rid of it. When we talk about noise, we typically differentiate between pixel noise and image noise, both of which have different origins and some subtypes. \n", + "\n", + "**Pixel noise**: This can, for instance, originate from electronic noise of the camera at the microscope and influences the pixels of the image individually." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "7ee6b688-fd76-4fe8-8068-d34e9c085639", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0., 0., 0., 0., 0.],\n", + " [0., 0., 0., 0., 0.],\n", + " [0., 0., 0., 0., 0.],\n", + " [0., 0., 0., 0., 0.],\n", + " [0., 0., 0., 0., 0.]])" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_data = np.zeros((5,5))\n", + "my_data" + ] + }, + { + "cell_type": "markdown", + "id": "20b37f1d-7520-4d49-9d57-31267920af03", + "metadata": {}, + "source": [ + "There are different types of pixel noise. *Gaussian noise*, for instance, adds a small value to every pixel according to a gaussian distribution. The [gaussian filter](https://scikit-image.org/docs/stable/api/skimage.filters.html?highlight=filters#skimage.filters.gaussian) provides a good way to deal with this." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "02deb22a-1a70-418c-b154-d4da62af99ed", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0. , 0. , 0.0300368 , 0. , 0.03856748],\n", + " [0. , 0.06484773, 0.04341136, 0.00825419, 0.14827086],\n", + " [0. , 0. , 0.13593977, 0. , 0. ],\n", + " [0.12640467, 0.04132334, 0.01399673, 0. , 0. ],\n", + " [0. , 0.05233324, 0.07557454, 0.09982579, 0.04927739]])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_gaussian_noise = util.random_noise(my_data, mode='gaussian')\n", + "data_gaussian_noise" + ] + }, + { + "cell_type": "markdown", + "id": "1f426602-c445-4ba2-b176-0cde39554c62", + "metadata": {}, + "source": [ + "*Salt noise* changes random pixels to high values - such noise can originate from dead pixels of the detector hardware. The [median filter](https://scikit-image.org/docs/stable/api/skimage.filters.html?highlight=filters#skimage.filters.median) provides a good way to deal with this" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "73d9a34c-7447-4395-bd7b-22ff3ae7d713", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0., 0., 0., 0., 0.],\n", + " [0., 0., 0., 1., 0.],\n", + " [0., 0., 0., 0., 0.],\n", + " [0., 0., 0., 0., 0.],\n", + " [0., 0., 0., 0., 0.]])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_salt_noise = util.random_noise(my_data, mode='salt')\n", + "data_salt_noise" + ] + }, + { + "cell_type": "markdown", + "id": "e919dbfe-b73b-4ae2-a047-76b10e488b20", + "metadata": {}, + "source": [ + "Conversely, *pepper noise* can change single pixels to very low values, which can also originate from hardware isues. The [median filter](https://scikit-image.org/docs/stable/api/skimage.filters.html?highlight=filters#skimage.filters.median) also provides a good option to deal with this type of noise." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4563219f-ea39-46c8-8e0d-17a048bd9f63", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1., 1., 1., 1., 1.],\n", + " [1., 1., 1., 0., 1.],\n", + " [1., 1., 0., 1., 1.],\n", + " [1., 1., 1., 1., 0.],\n", + " [1., 1., 1., 1., 1.]])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_data = np.ones((5,5))\n", + "data_pepper_noise = util.random_noise(my_data, mode='pepper')\n", + "data_pepper_noise" + ] + }, + { + "cell_type": "markdown", + "id": "e1051565-e64b-4dce-a568-90595a4ce5d5", + "metadata": {}, + "source": [ + "The image background represents a type of noise that affects large areas of the image, which can orginate from heterogeneous lighting at a microscope or autofluorescence of fluorescent markers. The [top-hat](https://scikit-image.org/docs/stable/api/skimage.morphology.html?highlight=closing#skimage.morphology.white_tophat) filter provides a suitable means to address this problem." + ] + }, + { + "cell_type": "markdown", + "id": "097deff3-33fb-4494-aff7-778c1b60b3b2", + "metadata": {}, + "source": [ + "## Excercises\n", + "\n", + "First, we create some data and then artifically add different kinds of noise to it - and see how we can best remove these further down the line again to make our downstream analysis more robust." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "6b9d0343-1706-4169-8a19-25bb9ff54eed", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# First, we create some noisy data\n", + "image = data.human_mitosis()\n", + "plt.imshow(image, cmap='gray')" + ] + }, + { + "cell_type": "markdown", + "id": "44f9dfe2-5576-4f1c-b0f9-5c4257b6d8e2", + "metadata": {}, + "source": [ + "## Exercise 1\n", + "\n", + "Let's add some pixel noise to the data. Skimage provides some [handy tools](https://scikit-image.org/docs/dev/api/skimage.util.html?highlight=utils#skimage.util.random_noise) for this. Add or remove some of the noise contributions by un-commenting some of the lines below - you can also add multiple sources of noise to the image.\n", + "\n", + "*Hint*: Use the `vmin` and `vmax` parameters to better visualize the brightness and contrast." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f35bc9e7-8cee-4ef3-8b35-aa574c7d94dd", + "metadata": {}, + "outputs": [], + "source": [ + "noisy_data = util.random_noise(image, mode='gaussian') * 255\n", + "#noisy_data = utils.random_noise(image, mode='pepper') * 255\n", + "#noisy_data = utils.random_noise(image, mode='s&p') * 255\n", + "#noisy_data = utils.random_noise(image, mode='salt') * 255\n", + "plt.imshow(noisy_data, cmap='gray', vmin=0, vmax=255)" + ] + }, + { + "cell_type": "markdown", + "id": "e145f82e-d139-4d38-9a57-7c813364e6fe", + "metadata": {}, + "source": [ + "## Exercise 2\n", + "\n", + "Now, we add another type of noise - background - and add it to the noisy data from above.\n", + "\n", + "*Optional*: Try to understand the code below. What happens when you modify the value for `sigma` in line 3?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b931fab2-d9df-4b07-a7a2-f982b9ae4ed0", + "metadata": {}, + "outputs": [], + "source": [ + "bg = np.zeros_like(noisy_data)\n", + "bg[50,50] = 255\n", + "bg_blur = filters.gaussian(bg, sigma=300)\n", + "bg_blur = 255*bg_blur/bg_blur.max()\n", + "noisy_data += bg_blur\n", + "plt.imshow(noisy_data, cmap='gray') # adjust the values for vmin and vmax to get a better impression!" + ] + }, + { + "cell_type": "markdown", + "id": "b12ee603-872e-4d1b-80bc-64d6ffc94915", + "metadata": {}, + "source": [ + "## Exercise 3:\n", + "\n", + "In order to clear the added noise to the raw image in variable `noisy_data`, you need to apply **noise removal** and **background subtraction**. \n", + "\n", + "*Hint 1*: The `morphology.white_tophat()` and `filters.gaussian()` may provide the correct means to remove some types of noise in the image - but make sure to pass suitable parameters to these functions!\n", + "\n", + "- background subtraction with `morphology.white_tophat()`: Have a look at the footprint parameter!\n", + "- Noise removal with `filters.gaussian()`: Have a look at the sigma parameters!\n", + "\n", + "*Hint 2*: Look up the [documentation](https://scikit-image.org/docs/dev/api/skimage.util.html?highlight=utils#skimage.util.random_noise) for `salt & pepper` noise - how are pixel values changed if this type of noise is applied? Which filter operation could be suitable to deal with single pixels with high grey values? " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97719834-21ba-4365-a4f0-ef5c0fc8e1df", + "metadata": {}, + "outputs": [], + "source": [ + "background_subtracted = " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bb85b7d4-5fec-48e6-9dce-883218196c80", + "metadata": {}, + "outputs": [], + "source": [ + "clean_image = " + ] + }, + { + "cell_type": "markdown", + "id": "1b3bef6e-bac7-4355-8387-f5f403cb73ea", + "metadata": {}, + "source": [ + "## Exercise 4\n", + "\n", + "Now, apply thresholds from `skimage` to the image data! Hint: You can find them under `filters.threshold_...` - use the `tab` key or the [documentation](https://scikit-image.org/docs/stable/api/skimage.filters.html?highlight=filters#module-skimage.filters) to find out how to use the implemented threshold functions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2168ef40-5913-4d44-815b-6b328262b2e0", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "ee9147cf-4773-4a01-9da4-5f5867b35ed5", + "metadata": {}, + "source": [ + "## Exercise 5\n", + "\n", + "Lastly, perform a connected-component-analysis to create a label image from the previously generated binary image with `measure.label()` See [here](https://scikit-image.org/docs/dev/api/skimage.measure#skimage.measure.label) for documentation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23ed60a0-9cb6-48d7-949a-8d572f693f9c", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "82f5717f-2fad-495f-84eb-f0ba543b0922", + "metadata": {}, + "source": [ + "Use both `plt.imshow()` and Napari (`viewer.add_labels()`) to visualize the label image - why do the results *look* completely different?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "98936696-e963-4f08-9a97-74d5fdd3a75d", + "metadata": {}, + "outputs": [], + "source": [ + "viewer = napari.Viewer()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/05_feature_extraction/03_Otsu_threshold.ipynb b/05_feature_extraction/03_Otsu_threshold.ipynb new file mode 100644 index 0000000..1096646 --- /dev/null +++ b/05_feature_extraction/03_Otsu_threshold.ipynb @@ -0,0 +1,363 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "def9b2af-387b-4dda-be8d-01d889bba574", + "metadata": {}, + "source": [ + "# Otsu's threshold method (optional)\n", + "\n", + "In this notebook you will learn how to write your own implementation of Otsu's threshold method ([Otsu et al., IEEE, 1979)](https://ieeexplore.ieee.org/document/4310076). It will allow you to apply many of the previously introduced concepts of Python programing for image data.\n", + "\n", + "## The algorithm\n", + "Otsu's threshold method selects a threshold value to which all pixels in the image are compared. The pixels with gray values below and above the threshold are denoted $A$ and $B$. For a given threshold $t$ between the image's minimal and maximal gray value $t \\in ]min(image), max(image)[$, the method calculates the weighted variances $\\eta_w$ of pixels in $A$ and $B$:\n", + "\n", + "$\\eta_{w, A} = \\frac{n_A}{N} \\cdot Var(A)$\n", + "\n", + "$\\eta_{w, B} = \\frac{n_B}{N} \\cdot Var(B)$\n", + "\n", + "where $n_A$, $n_B$ and $N$ represent the number of pixels in $A$ and $B$ and $A \\cup B$, respectively. The weighted variances are then added:\n", + "\n", + "$\\eta_w = \\eta_{w, A} + \\eta_{w, B}$\n", + "\n", + "This calculation is repeated for every possible threshold value $t$. The optimal threshold is then found when $\\eta_w(t)$ is minimal.\n", + "\n", + "## Steps to implement the alorithm:\n", + "\n", + "1. Find the minimal and maximal gray values in the image.\n", + "2. Write a `for`-loop that iterates over all possible threshold values.\n", + "3. For every possible threshold, retrieve the pixels that are above ($A$) or below ($B$) the respectve threshold value.\n", + "4. Calculate the summed weighted variance $\\eta_{w} = \\eta_{w, A} + \\eta_{w, B}$ for every threshold value.\n", + "5. Find the threshold value with the lowest variance." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "be7791c0-c596-42fc-ad8e-e739ad3b45d7", + "metadata": {}, + "outputs": [], + "source": [ + "from skimage import data, filters\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d6f0986a-4119-49e1-b9ae-39e33bcbaa48", + "metadata": {}, + "outputs": [], + "source": [ + "# We will use this image as example data\n", + "image = data.human_mitosis()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "2786a8ef-ebfc-4bc6-9571-6a8e07ac233b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.imshow(image)" + ] + }, + { + "cell_type": "markdown", + "id": "9cb11095-e7da-4713-b90d-22984ccf7378", + "metadata": {}, + "source": [ + "First, we need to find the minimal and maximal gray values of the image data stored in the variable `image` and create an array of possible threshold values:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96bba8f9-d760-4dbf-a5f5-6f613e9cb0c9", + "metadata": {}, + "outputs": [], + "source": [ + "min_value = \n", + "max_value = \n", + "\n", + "threshold_values = np.arange(min_value, max_value, 1)\n", + "print(threshold_values)" + ] + }, + { + "cell_type": "markdown", + "id": "47054134-8d1f-4db5-aa24-b2f1e08da29d", + "metadata": {}, + "source": [ + "We create this empty list to store our calculated summed weighted variances" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d5cdbee0-a864-42f6-a11b-7801681bb87e", + "metadata": {}, + "outputs": [], + "source": [ + "summed_weighted_variance = []" + ] + }, + { + "cell_type": "markdown", + "id": "763802ea-8350-430d-ae6f-d64d99cc37cb", + "metadata": {}, + "source": [ + "Before writing the for loop for all threshold values, try to implement the calculation of the summed weighted variance for a given single threshold between `min_value` and `max_value`. First, try to find the pixels with intensities above ($A$) and below ($B$) this threshold:\n", + "\n", + "*Tipp: Convert the image to a binary image first!*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b6b4cb18-503e-4d00-8354-54fa56e9a034", + "metadata": {}, + "outputs": [], + "source": [ + "values_below = \n", + "values_above = " + ] + }, + { + "cell_type": "markdown", + "id": "7f23cb17-f6a6-4c7f-a8c9-67dc37a68357", + "metadata": {}, + "source": [ + "Next, calculate the variances and their weights for $A$ and $B$:\n", + "\n", + "*Tip: Search online whether numpy may have a [convenient function](https://numpy.org/doc/stable/reference/routines.statistics.html) for this!*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "01efb724-24e8-4fd1-a129-c8c0356f529f", + "metadata": {}, + "outputs": [], + "source": [ + "variance_below = \n", + "variance_above = " + ] + }, + { + "cell_type": "markdown", + "id": "46ab28dc-2059-492c-b279-c367e6090aaf", + "metadata": {}, + "source": [ + "weight_below = \n", + "weight_above = " + ] + }, + { + "cell_type": "markdown", + "id": "2fc70536-1ffc-41d4-b542-9beef8aa61d9", + "metadata": {}, + "source": [ + "Now, put everything you have just written into a for loop:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "edbaf85b-5fce-4b4c-b6f3-ecaf26f54a32", + "metadata": {}, + "outputs": [], + "source": [ + "variances_below = []\n", + "variances_above = []\n", + "for threshold in threshold_values:\n", + " \n", + " binary_below = \n", + " binary_above = \n", + " \n", + " values_below = \n", + " values_above = \n", + " \n", + " weight_below = \n", + " weight_above = \n", + " \n", + " _variance_above = # calculate the variance of pixels above the threshold\n", + " _variance_below = # calculate the variance of pixels below the threshold\n", + " \n", + " variances_above.append(_variance_above * weight_above)\n", + " variances_below.append(_variance_below * weight_below)" + ] + }, + { + "cell_type": "markdown", + "id": "811e33c4-1eba-4fbd-92b5-32334537bacd", + "metadata": {}, + "source": [ + "Next, we need to add the weighted variances for every threshold value. For numpy arrays, we can simply add two arrays element-wise with the following syntax:\n", + "\n", + "```\n", + "c = a + b\n", + "```\n", + "\n", + "...but this will not work for the Python lists `variance_below` and `variance_above`. Convert them to numpy arrays!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8bc40bc5-b859-476b-86a1-ed99e8069304", + "metadata": {}, + "outputs": [], + "source": [ + "variances_below_array = \n", + "variances_above_array = " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a80559ab-b6f9-4736-b590-4653b37c8795", + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.plot(threshold_values, variances_above_array, label='weigted variance above threshold')\n", + "ax.plot(threshold_values, variances_below_array, label='weighted variance below threshold')\n", + "ax.legend(fontsize=12)\n", + "ax.set_xlabel('Threshold value', fontsize=14)\n", + "ax.set_ylabel('Summed weighted variance', fontsize=14)\n", + "ax.grid(alpha=0.6)\n", + "\n", + "fig.savefig('../imgs/8_threshold_types_otsu2.png')" + ] + }, + { + "cell_type": "markdown", + "id": "bf38009f-e75b-4ce8-92cf-8b12d41137d0", + "metadata": {}, + "source": [ + "Now, add both measured weighted variances (`variances_above_array` and `variances_below_array`) and plot them just like above:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9025d192-767e-40a7-8c94-2e65c89e3ccf", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "15f07529-eefa-4828-8a55-5cbf1692b55f", + "metadata": {}, + "source": [ + "Lastly, we need to find out the threshold value for which the summed weighted variances become minimal. For this, we can find the position in the array of summed variances where the latter are minimal:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60b6d583-8715-45c0-8210-187ecc49d0fc", + "metadata": {}, + "outputs": [], + "source": [ + "min_index = np.argmin(variance_above + variance_below)\n", + "min_index" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f8b5c208-ab4a-473d-8cb8-e898e3b28061", + "metadata": {}, + "outputs": [], + "source": [ + "# Now, retrieve the correct threshold value\n", + "threshold_value =" + ] + }, + { + "cell_type": "markdown", + "id": "e6640cfb-6cdd-4afa-a4ca-d75b266a2079", + "metadata": {}, + "source": [ + "Now, inspect the result. Is this result plausible? If not, what could be the reason?" + ] + }, + { + "cell_type": "markdown", + "id": "062ed850-a776-4b5a-97e7-524ec0df2e42", + "metadata": {}, + "source": [ + "## Compare results\n", + "\n", + "Luckily, we do not have to do such things for ourselves in daily practice. Skimage, for instance, provides a range of handy functions that perform such tasks." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a773fb0-d9e7-4f31-9922-68ccbfd7d540", + "metadata": {}, + "outputs": [], + "source": [ + "# Find the function for otsu-thresholding from skimage and compare the result to your implementation!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0e5b7b86-e954-49db-a7fe-24f0e436ff0c", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/05_feature_extraction/04_feature_extraction.ipynb b/05_feature_extraction/04_feature_extraction.ipynb new file mode 100644 index 0000000..dcc611c --- /dev/null +++ b/05_feature_extraction/04_feature_extraction.ipynb @@ -0,0 +1,398 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "835df18a-a513-40b4-a0a1-b6af7f3f8b0a", + "metadata": {}, + "source": [ + "# Feature extraction\n", + "\n", + "In this notebook, you will create an instance segmentation of biological data and extract quantitiative features from this data with the [`regionprops_table()` function](https://scikit-image.org/docs/dev/api/skimage.measure#skimage.measure.regionprops_table) from scikit-image." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "81cdc60f-1f63-4d6a-9055-790b9ab3ebad", + "metadata": {}, + "outputs": [], + "source": [ + "from skimage import data, filters, measure\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "8f460dcd-2ee9-425f-afd6-56d2984bc77b", + "metadata": {}, + "source": [ + "## Different types of features\n", + "\n", + "As shown in the lecture, features can be grouped in a few general types. Many features tyically belong to one of the following:\n", + "\n", + "- Intensity-based features: These are based on the image intensity values in selected areas of interest\n", + "- Shape-based features: These describe the general shape of an object and can be measured independ of the original intensity values\n", + "- Spatial features: These features typically take into account not only the object itself but also its location in the image or with reference to other objects.\n", + "\n", + "## Working with dictionaries\n", + "\n", + "Measured features of an image are essentially tabular data, which can be handled very efficiently in Python. Tabular data for typical labelled image data looks like this:\n", + "\n", + "| Label | feature 1 | feature 2 |\n", + "| --- | --- | --- |\n", + "| 1 | some value |some value |\n", + "| 2 | some value |some value |\n", + "| 3 | some value |some value |\n", + "...\n", + "\n", + "*Remember*: Labelled images with multiple occurrences of the same type of objects (e.g., cells or nuclei) are the result of an *instance segmentation* task, whereas a unique label is assigned to every object.\n", + "\n", + "[Dictionaries in Python](https://docs.python.org/3/tutorial/datastructures.html#dictionaries) typically have a `key`-`value` structure and can be created and accessed like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "a1d8d6a5-8cc3-4f34-80a1-b08b62e1aa1e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'numbers': [1, 2, 3], 'days': ['Monday', 'Tuesday', 'Wednesday']}" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data1 = [1, 2, 3]\n", + "data2 = ['Monday', 'Tuesday', 'Wednesday']\n", + "my_dict = {'numbers': data1,\n", + " 'days': data2}\n", + "my_dict" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "25428588-b673-4403-b323-885a52a6ef92", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Monday', 'Tuesday', 'Wednesday']" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_dict['days']" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "afa90c82-539f-4e35-95cd-aaf8044017e4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['numbers', 'days'])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_dict.keys()" + ] + }, + { + "cell_type": "markdown", + "id": "2461b674-5a27-4c94-960d-b3dc0fa3634d", + "metadata": {}, + "source": [ + "The [Pandas](https://pandas.pydata.org/) library provides a great amount of useful functions to work with tabular data. The pandas-equivalent of a dictionary is called a `DataFrame` and can be created from a dictionary by simple means:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "68961d9e-2ac2-46f3-ad86-a9a91966facb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
numbersdays
01Monday
12Tuesday
23Wednesday
\n", + "
" + ], + "text/plain": [ + " numbers days\n", + "0 1 Monday\n", + "1 2 Tuesday\n", + "2 3 Wednesday" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.DataFrame(my_dict)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "97a7ae41-46f3-43c8-9d2c-0e52c6dcb7dd", + "metadata": {}, + "source": [ + "Accessing the data works just like with dictionaries:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "a02d463a-430a-476d-a669-0159c61d3a8b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 Monday\n", + "1 Tuesday\n", + "2 Wednesday\n", + "Name: days, dtype: object" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['days']" + ] + }, + { + "cell_type": "markdown", + "id": "4d43ccd8-57fc-4d56-ab91-0129ecd19278", + "metadata": {}, + "source": [ + "## Exercises\n", + "\n", + "First, let's get some sample data from scikit-image:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "c1608e10-cfde-4215-84df-0c561e6d6ac5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQYAAAD8CAYAAACVSwr3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACYvElEQVR4nO39aYxkyX0nCP7M7/uKOzIir6pkVbEksiQeS7VWS3I4mlH3CFJjAHVrBrPQBwL8oj4Gs4sRtQPsYBsQoN0FhPmyAyzRaiyBGUlN9IwgtTC7aolNoiWVeFUVJdaVlZkRGXeEH+Hh9+22Hzx+lubm9p4/j4jM9KTiDwTC/fl7dj2z/30IKSWu4Rqu4Rp08D3vAVzDNVzD/ME1YriGa7iGCbhGDNdwDdcwAdeI4Rqu4Rom4BoxXMM1XMMEXCOGa7iGa5iAp4YYhBC/IIS4L4R4KIT46tPq5xqu4RquHsTT8GMQQvgBfATg5wHsA/g+gP9CSvn+lXd2DddwDVcOT4tj+CyAh1LKLSllF8AfAPjlp9TXNVzDNVwxBJ5SuzcA7Gnf9wH875xuFkJ4YluEEAiFQvD7/ZBSQkqJXq+HwWAAIQR8Ph+CwSCGwyH6/T6Gw+Elp3F1IIQAAHjh0Hiv0/2ztHUNVwdCCLXm/Ky/KyEEAoEAhBAYDocYDAaO7y8cDqu9qu/lfr/v2LcOs7z7UCiEUCiEWq1WlFIueXnmaSEGYbk2NhMhxFcAfEX77t6gEIhEItjc3EQ8HocQAq1WC0dHR6hWq/D5fFhdXcXm5iZ8Ph92d3dxdHSEwWBgbct2jS/btujmhrgosJ9p7U9bD6fn9X6uAnFcBAmZB0gf46zzetrgNFavzwJP5kXiBAB+vx8+n2/iN5/Ph0AggFdffRWpVAqdTge9Xg/dbhfFYhH5fF7tWbbv8/mQSqWQyWQAAI1GA5VKBb1eb2xN2Tf3MH9Lp9PY2NjAD37wgx2vc3taiGEfwKb2fQPAoX6DlPJrAL4GeOcY+v0+zs7OIKVEIBBAs9lEu90GAAyHQ7RaLQBAMpnE+vo6isWiFTGYIIRALBZDLBZDt9tFrVZz5Da8HhCng+m0+cxNNg2mbear4iZmbcectxuStT07bRyXRSxOVP+i68Xn+F8/1Ho/oVAI6XQa4XAY7XYbzWYToVAIANReI/fAZwiBQACZTAaZTAbD4RCxWAxSSpTLZfVsKBRCLBaDz+dDr9dDs9lUHEu9Xsfx8fFM83paiOH7AO4JIe4AOADwqwD+y8s2OhgMUC6XUavV4PP50O/30ev11O+1Wg3FYhGxWAyBQAChUAidTse1TXIi6+vriMViaLfb6HQ6CuEA7ofD66YyWU6ntt0Qh34vqdHzAtsBA7yLSuaBNDkl/XcnLuuqxk+wIWU3hOQ2V/05n8+HXC6HVCqFQCCASCSCer2OUCiEcDgMAGi326hWqxPryOcDgQCGw6H6nEqlUK1WMRwOEQgEkM1mkcvlFKIoFAool8uQUqLf76NcLs+0Pk8FMUgp+0KIfwLgTwH4AfwrKeV7V9H2YDAYw6z6Avb7fRwdHQGAwpyBQACBQADBYBBSSrRarbHnASASiSASiShWjwjFq/hg29RXeWhNVlGf9/OCaVyBDjZEyGs2DsMJiTqNYxakoe8bJ9FRH6MbojD71tvRrweDQbW/AoEAfD4fyuUyHj9+jGg0ilAohGq1ik6nM8apso3BYIB2uw2/349gMAifz6e4ARK2eDyOUCikdBTpdBr1eh3dblfpO2aBp8UxQEr5vwH432a439MmcPrO59vtNnZ2diCEgN/vx+Liolq04XCIw8NDNBqNMRmML8Pv98Pv92M4HKpr+qHUZTj9BZpIwQlsm8jrxvb5fIhEIggGg+h2u+qF6/N43siC4DQWLxTWdt1tfS7DSTgdZLe19IK0zOvBYBCBQEDtLWB02BuNBhqNBgA4iq4cS7lcRrfbRTKZBACUy2V12IPBIAAopEDOgojtInvjqSGGWeEiWN92nYeFCpt0Oo1AYDRNHq56vT72XLvdRr1eh9/vV8ogc2zhcBhLS0sIhUJotVqo1WpKjvOirbZxE046CHPDCiGQSCSwvr6OSCSCXq+nWEVuBq/I6VmAGwK3XXMSS/jdfO4quQjbmpmHada2TCChYZutVktxrua4bW36/X6Ew2F8/OMfx+rqKt5991202211f7vdVhxFv9/HYDBArVZDv9+/sMJ3bhCDGzhZEWygHzq+EL6Afr9vNQf1ej0cHx+jVquh3W6j2+1O3BMKhbC6uopoNIpWq4WzszMcHx+jXq9b2WrKhtFoFIlEAoPBAJVKRb0sk111o7LBYBCLi4tIJBKK8yGnc3p6au1b/z5vYOoYbJv3MpzARZ4118zGjU47ZE4IrdPpqHc/GAxQKpWm6r709rLZLH7pl34J//gf/2MAwL/8l/8SDx8+VPe0220Ui0VUq1UAo/3c6/XUvr+IaPtCIAabXOok+/HzcDhErVaDlBLxeByBQACtVksdZJP9JtZ140b4Yv1+v5IVbSDEyJ69sLCAtbU1ZDIZ9Ho9PHjwAPl8fmyDUUnq9/vR7XbH/C94XyAQQCwWQzQaVbbuQCCARCKhFEwmV+K0Nk8TvLKsNjHKxkHYLDVXrYT0ws2YY/Darq4jKJVKqFQqE2KqeWhteouNjQ38k3/yT9DpdPD1r38db7/99hg3wL0JjAiY6R+hz8MrvBCIQQchBILBoJLXqIy0YfR+v49KpaKsGLzXBDeWnr+1Wi0UCgUsLS3B5/ONIRLzeSEEotEobt26hXA4rByyotHo2AH2+/1IJpPKPt3tdlGtVtFoNMaQQ6/XQ7vdViIO9Qs6IqNiikpY3ntR/YNtg86qA9LX0Utfs+olLgoXWQ8TgXnhIPT7AUy8E/13J0Q4HA6xt7eHf/Ev/gXy+Tzee+891Gq1MQJFIrWysoLFxUVIKbG/v4/j4+MLr98LgRh0ahEKhbC8vIx0Oo12u42TkxM0m82JA68fbJtW1kk8MQ8DMS8tHtVqFX6/H81mc8xyobfh8/kQi8UQj8cRjUbR6XTQ6XQmxhkMBpFIJBAIBCClVGaoXq831rZubYnFYmg2m2g0GiiVSuq5paUl5HI5ACPu5/DwEO12W41/VvHiqlh7NyWebe28POvUh9cxOuk3ZgWv3IRtfNSD2XQrpqh1cnKCP/zDP4TP51PvMxgMKhNoMpmElFKZQ1utFhYWFsZElh9LUQJ4cuCWlpawsbGBUCgEKSVCoRC2t7eV34FNzDCvmwpA3fIQjUYVy66LHUQOlUrFdTOZuo3BYIB+v49isYhKpWKdU7/fV2IJTVrkBji2ZrOJx48fK+6DIocQI+estbU1RKNRdLtdRCIR9Pt9HB4eWvUlzwv0dXP67/Qc77FR7sscbq/cjDkHr+KNG3dgI2bmfcC44xP3SSaTwerqqnJsCoVCipOl2ZOWiVnFIOAFQQycGCkxPcYAIB6Pw+/3q++UvQOBABqNhkIYgUBA6Rrq9fqYzZjYOxQK4eWXX0YqlUKj0cDDhw8nDjPvd4PhcIizszPs7OwoK0ihUFBcADdzt9tFs9lELBYD8MT3QreK6JtkOByi1+tNUBfKlfxMK0YoFFJus17G/TzhslaAi3I0bhYRHZwQgduhc+PUzLnSHG7zNzDH5/f7EQqFlNNTv99X1ovBYACfz4d6vT727meFFwIxAE8ORqPRUIvn9/vRarUUVfT5fMhms1haWkIwGESj0cDR0RHa7bYyXQoxMj2WSqUxqizEyKc8l8tBCIFkMoloNGpFDF6g1+thd3dXUQbTqUpKicFggLOzM/T7faUwqtVqE1TebbNKOTJ/EQFGo9ExRDBPyMBtLDYFnHl4TM7hIpRwWr9OYONU9P9e2nd6zufz4fbt27hz5w6+//3vK6W5+QzbI4HodruKu+x2u8oM32w2cXJyohSUF4EXBjEAI0pcKpUghEAmk4EQAkdHRwpj8tBTy59Op5XSMBqNIhKJoNvtIhgMIp1Oo9vtjr3odDqNUCiEwWCAarU65hY9DcyNYzpAOVHDXq+Hs7MzJW+anm/TFHLD4RDNZhP5fB5LS0tqk5TLZc9u3fMITvN2EhWntXMZBGITJy4DPp9PBVkNh0P4/X587nOfw5e//GX803/6T/Hw4UOrCKgjxFKpBGBECMgFk0ugmHkZwvDCIAZOsNvt4ujoCIVCQbHj+otrt9vKnKdbK/r9PrrdrpLhqcmlg9JwOES5XEYqlQIA5PP5MR8FJ+pkU9KZFM+N4hPIBTnJtG4wGAxwcnKCcrmMQCAwYceeVfE4b2AiBPOwu3EOlz3EbMPG0Uzr29YOxb2VlRUkEgkcHh6qoKf19XWsrq7i8ePHyjRuzoPjGAwGyoeFBMVNb/Njq3wkEAtSftIPoZQSlUoFg8EA6XQaAJR3YL1eRyAQQDgcVvKY+UJLpRJarRaEEGg2m2POUDaK4bRR9Wtu4IRobO1Nk3/1jUR9zNNCCBdl4d3m4PSb/m753TyUFzmkFwWnvnlNv8ecAzDiFm7cuIHXX39deSoeHR0pETkSiUy0ZSo7+b3b7Vrn67SOs8ALhRjclERUHiaTSYRCIRSLxbGAqWazqXzKfT6fUj7qCzYYDFCv1103KZ/X4ypMb0anMdpgWl/652kHnUrUaDSKdDqtPO5mDaDxMuaLgFcdw7Q2nOT7q9I7uI3NTZzxooQUQqjDr38+Pj7Gt7/9bezu7o7lWTD3PPu2cQVu8551TZ5KzsdZQQghL6KJ5nefz4dEIoHNzU1kMhn4fD7k83lsb28rrMpDQ629zT3ahnhs2uN4PI5MJoNIJIJ2uz1mcXDamLYNTU20zgraRBezPds9nF8sFsPGxgay2SwajQZ2d3dVfol5eNeEaYjT6+/T1vqquZur0C/kcjncvHkTkUgEu7u7KJVKCqE3Gg0lHtsOvZvy07ZP9Hl0Op23pJSf9jLOF4pjAOzsmhACCwsLKsip3+8jlUpNmOvoLWjqAZxYQhOI4VdXV5WeIhKJoNVqKUcS/YXpdmTzYDL+IR6Po91uo1wuo9lsWjcE9SLAiKvRU4bp9/p8PmQyGSSTSTVWPncZeNpU2ASbODXLIb2KsbpxZZdVZPJdk3Pl/ms0GmOWBBtycjr8TGuoc7GXIQYvHGIgmFSh2Wyi1+sph6Fpz+ptCCFUzIKUo6AUp5RwiURCxdYDUApN875YLIZMJoN+v68sBbofQyaTwfLyMiKRiDrEe3t7Y45a/J9MJrGwsKDs06enp2Naa5O74IY6OztzdNuetqbmfJ4lOCnNTBmb10wkr8NVj/0q2mO2MR5oujK3220VmGemd3MbSyAQQDKZVMSQ7/7s7OzCYuQLixh0kPKJLT8cDqPVaqFYLI65FbtRnHA4jI2NDcTjcQAjJWShUHA0V0opVdJPpunSIRAI4I033sDnP/95HB0dYXt7GycnJ9je3kan04HP50M4HEYgEEC/30c4HEY8Hkc8Hh9zYRViFBeytLSERCKhRIXhcGhNW8cNQV1KoVBQXIgXeNYIwCtMo5w6UvRC0S8jXni97pXjCIVC2NjYwObmpnpma2vL6vcCYIII0Xcnl8uppK/D4RDBYBCdTkfle5iVc3jhEQMXutlsYm9vT1HJYrE4lqvAvJ9AipzL5TAYDBAMBrG6ugq/34+9vb0xMyIdkIhAhBDK38HULwghsLS0hNu3b+PjH/84vvnNb2JnZ2dsPIFAYCwITE8EQ2AOCbKHfr8fsVhMebmxLz7XbDaxv78/EXJ+lWvt9fplQdfI2/qx6RK86B6uQnlqioy0crllh7aNm2nXMpmMIg5OYq05N/bNRERUZIbDYbVXLgovNGLQWcjBYIBisagCi/Q/HWybgjI83Yopq+fz+QmKywAlvgTdrEmRJBqN4vHjx/iTP/kTvP766wBGWmfKj8PhEIVCQQVN+f1+tNtttFqtifEyrVc4HEan01Eu4Hzp5v1sX5/vVSkdnxW7TrCN28YBelU2OinwpoEpruj9UGzM5XIquO7s7ExFwLrNTcqR2X1nZweNRgPxeBylUsnRY9GGGKk3SyQSah9SsW6zlnmFFxoxAPaDATinyrI932w20e12EQ6HVZyCqTzU2+50OkrGtykUabE4PT3Fn/3Zn6FUKqFer49xMJ1OB8fHx+j1eggGg0ohZQIDt5iJiolqnXzqOW5yHzZ3bC9wVQjlabdjO6g2RGFSWlv7epu29+4kjqbTaSSTSZU3g85HXpSo3AuHh4euilancUspcXp6iuFwiHg8rpCNHid0EXjhEYNXtsv8Xf/ebDZRKBSQzWaVFr9Wq1mz7Nja4IZMJBJYXFxU+f3Yd71enwiBppKT4dQ2F1Z+Z5rwaDSKfr+ParU6kX6OoOd4kFKiUChYOREnmEZFZ+UOLoMUbIdz2li8KC6dPjsl3nEaG/BE1KMnrc7N2cZpQ3CmGOoEJsLiZ9akmOYJOQu88IjBaUFNmd1NGdTv97G/v49yuYzFxUV0u10UCoWJnHlOm479RaNR5StBFo8IxulFTdMac3ynp6djiWptc6K8eefOHaXlHgwGODw8dGh9fPz8P8tGehr6BVO3YF7X+3Z7np+dxml+Z6iy0+828YUUWk+ewzTw08Zvgnng3dbVbEfXJ80qKtlgrhDDZTaZvhh6KjQqJqkLcGJHe70eqtUqarWaujbrAdEjPUOhENrttmLz3GRGL5tF1x24HQgqsHSq5dY+15tBPUKIsUxX08b2NPQLbkhch2nihZPlYlrf5ABN5zPbs9RtURelJ/CxIShz/Ga/07gHL5yTieQv8o7mCjFcZALmyw+Hw8hkMsqmGwwG0e/3USqVVPkvt403bVPa2FNer1ar6Pf7iEajGA6HKu+Dl4M/Dby0MRwOUalUcHJyorJYn56euiISItJUKqUQKZPd2vxBnhYy8AJuHIMTi+4mUropKaPRKJaWllREr57V2XxeD3s3q0nZkJM5RqfPtgNvzpnvj30TwbMNPaZoFpgrxHARMDE8cypQ1qNZL5FIoFQqqWhKPmu2ZQOnl2tuPMZa6HUr3NqdZY5uoFOaZrOJ7e1tNe9pMflMs0/riK4XsSEGJ7HqoshiVtFlGpfgBPoY3frk9Xg8joWFBQSDQaRSKezt7Y1VijL3ge1dm/fyEOtFk5zGMm096ekYjUaxsLCAXq+HVqul0rtRtDg9PR1zmPIKLzRisGFQKoHogATA0RvS66Z0okROFMCLHOzEeZjXvIob+v1mFigb6MiU+SkBTE1r7jb3i4CX9XfSObjd6/bMNESmp+UjYlhaWkKr1bKuqxcRh1xIIpFQCLzVak31ebD1w32+vLyMWCyGT33qUzg4OEC5XFZp/fT7iTRmgRcaMQDO8tVgMFCYczAYWFl6U9ljXre17zYGr0jGq+bfdgCdKPU0udTWjhAjhxyaQIPBoNpE5gFwQwjPWrTwitDdqPG090BRTC9WZJqvgSdm8WlsPzBKqrKysqL8VsrlMorF4kQKNnN8trH6/X5sbGzg5s2buHv3rnKUIkfM4kkXjZV54RED8OSlUK5nVht6C7LYrck1kGICTyi92yEy+7uqcZvX+BcMBlV+S1oYzJoTZjuzIAgq1mgODYfDaDabivWcFUE+LfBKUZ0otZf2zXXpdrs4Pj5WugO97Lw+JhvX6tQ3071Ho1EEg0Hltnx2duaaaMW2H7vdLh48eIBOp4Pt7W3lwk/XaCYs8lrcxoQfC8Sgs44MMY7H4ypHpJ6XQRcvdNauXq97tve7HUg35aTbs/o1PXclk36WSiUcHx+7cj62NbGNm5/5HM2herFUJ/HJSz/PC2wH3AnJe1EK1ut15XSmm4ht3KWJqHUXaT7L9Gt6cVont2XbXjI5lbOzM2UNoQ6h2WwiFAqp+qZ6Jq9Z4McCMQDjrDFfAK8T9BcXjUaxvr6uZOt6vY79/X1rNSrzMAshxgJWWOBFP+DkRjgmM1Ta6dAKMXKx3dzcVG6u/X4fi4uL6PV6ODo6mkBCbhyO0wHXx8LPbgoqpwP3PJCCE/J2UozyN33u08ZNbsrrodI5vXA4jGw2C5/Pp5K0Mtju6OgIvV5PheubimrbHHVkpr83usvr181EsheFFxoxmBt0mtJPp8iZTEalmQdGZcMbjcZE9R6bGBEKhZTGmorNWq2magf6/X5Eo1GkUinkcjmUy2Xl/mwDU6egx0Nwg+q1J5zmZ1sfcx5OB8Kr3K6P163fp4Uw3MZpO0Bex+TEXXgdk/45Ho8jm82qsoPRaBT5fB6dTkdVGjN9JKa164QczHE6EbVZkcXcIIaLbiYbCz9tEXQ3VrJdLNxhgo2yh8NhhMNhDIdDFdUWCoVUpeyVlRV84hOfwMsvv4xbt27h4cOH+P3f/32cnZ15ekFMxkLZkIlsK5WK5xc8K6X0imim6V/Y57TnL/O+2Yfbu3dCDuaz08Y8y5j4mfk3hRAqz2gikVAZnGlGntavTZRwQ15u85l1fnODGK7ixThhR3Mz0nWV2aSZm1+vPGUblyljkttgu/Qd+OQnP4lf+IVfUPn/6f3oNmYCQ7vL5bLKX9npdFAsFh3ZThNsVOUqwAtScDr8V3kQ2Z7+322cvGbjMN1EslmAz1KvVSqVVIEjAEqs9LKGbvOxIUNzXWfh/pxgbhDDVYAThjXZaHqzsXaklKM8/cVi0ZXisA/KhvF4XFF3KnsGgwF2d3fxgx/8AIeHhyiVStjb25uInHRT5DHajgVxu92uCsLysgb65vCiZDMRqtcD4nVDP03Rwtan03tzGstVjFPvk8Sg0WiouqTcG9Oe9QL6++WfrteiCOqkSPbUx1VSlIuCmCEZ7AXbn/iss3nkIGzynnlY9MUPh8MIBoNKCUQdAk1SZCt15aQbO2uO1QazvC+v1PSicBWU9mmDDVFcFZcwrd9p7V9Up6PXRNGtbSR03HvVanXMlbvb7V5dMlghxL8C8IsA8lLKnzi/lgPwrwHcBvAYwD+SUpbPf/tNAF8GMADwz6SUf+pp9lcIXpRMUo57CNq4Df2zfogjkYhKsWaret3r9VQNQVPBZGtbH/PTZP29go2LMNtzoq7PkjvwAk5ipf7ZSQdzGeTh9h4vwurr4mo2m0UqlUKhUFDWN7/fr8ow2hz7Zu3PSwD6/wfALxjXvgrgm1LKewC+ef4dQoiPA/hVAK+fP/M/CiEunl/KAl7YV1J1vRSYDk5cwbT29Y1CXYVp3+YfFUzM1jvLHKb17wVmUTI6UVSdRfXK2VyFfHsVYBuviRRMpaGpm7kKnYOX9Z4G+v2hUAjr6+u4ceMGlpaWlL8EI4qpVKdi3QvnYoOpiEFK+R8AnBqXfxnA188/fx3AP9Su/4GUsiOl3AbwEMBnZxrRJUCfvN/vx8LCAtbW1iYChAgma++22XW5rtVq4fT0FGdnZ67Rk7YDZ9ugF5mfrU1TweW1Pyd2m3PwOr9nJVq4vSdzLLxuQ96258yDdBVzuaicbwMmDg4Gg8hkMspByszRQcW3m5LWDS6qfFyRUh6dd3gkhFg+v34DwHe0+/bPr02AEOIrAL4ya8fTJsiDEI1Gsbq6CgBIJpPw+XxjVZlsG8OJfdYPF0UDfnbSE5jjpF+CEGKiNsRFN58+Nr1tpwzD09rS770I8prlvsscFC9sukn9nfp1Eh94v+2eWcfoRQSzPW97ByzazHQC7IeRvSzo3Ol00Gw2L1xb4qqtErYZW0clpfwagK8BI+XjVQ3AZH/JVm1sbKi4eZNLcMv0JMTIoYlcB8Oq9eCZaVSYlbKWl5cRDAZRrVZRKBTGqm3bwGnD6r+xpkAkEkEwGESr1VL1Op0Qzyzyr+1ZGyJ12+xO6zNtLLMA37Wbt6KTMtZND2H7Pit44Uq9tEHxlRmjGP/DfVur1dDr9eD3+9U9F13fiyKGEyHE2jm3sAYgf359H8Cmdt8GgOl5xS4I0/QB7XZbyVq9Xm8CA/v9fsTjcSSTSeV7riMO1n9YWlrCxsYGgFGRXNaH0NvhS9M5Cv7O6saLi4sq9RsrVHvZlCYFJDCXQiaTUc5W9HugF6Y5Ruo/bH4VXiibjbPwwtq7PX8VyIGIwakCk96PEzdhju8ilH4aeG3H6Z5KpYJHjx5hMBigUqmMWSUGgwEajYYj5zsLXBQx/DGAXwPw2+f//0i7/ntCiN8BsA7gHoDvXbAPV+BGCIfDkPKJnZjYs9lsolgsIpVKqWrXZjxDNBrFzZs3kUwmVcmw4+PjMW4gHo9jfX0dyWQSvV5PZTnSRZalpSUEg0FUKhWVMUnfAHrO/263q5SSut7CBEbiARjzpNM3NHMp8OCTQpiHIJlM4tatW8pvn265tjLr/DxNCTdto9lkdfPQ6et8WeQgpXTVwLshIjfOTOdALwImYtf/m+PyAv1+H4VCAcB4tihTdLSt+yzgxVz5+wC+AGBRCLEP4L/HCCF8QwjxZQC7AH7lfEDvCSG+AeB9AH0Avy6lnLlGlhes6vf7kcvllB6hVCrh5OREsVbEqM1mUx0as6w92W8AiMViSCaTKgksFzQSiSAcDiu7sZ6hORgM4ubNm1haWkIkEkGj0cC7776rqDXn0el0cHp6qsZWLBZd3aP9fj8ymQxyuRyAUYAXx6UD/S90BNLv98eScgSDQbz22mv44he/CJ/Ph62tLTx69AjvvfeeY5UqNzncCyU1NyUReDQaBTCKAPTqsOUVvCrZTARhItGLHlgnjmTaOL1yD/pzXubKdadlQi9p6AWmIgYp5X/h8NOXHO7/LQC/NdMoDPBCjYgYFhcX1QGuVCrKrRl4EnNga48sv5RSVe3h/fo99XodtVpNyXQHBwdqQ6XTaaysrCAYDCISiaDb7SpEo0Ov18Px8TEKhYLqz8bK06oQjUaxvLysytjF43G0Wq2xWAlSXIbx8uXX6/WxTUDz1urqKuLxOHK5HIQQuH///kT/ThvabaObFNBECtFoFJlMBtFoVGW5jsViODk5sSqCLwMm6zxtzG59X4TKOnFd5u+ziiU2DsP8bPbNsovLy8vo9Xo4ODhQPg9e4IV1idbFB5Zw4+EyNf42tpjKmkKhgEwmAwAqJ6R+f71ex/379xXl52b2+/1Ip9PqADDxq6ncZDt64IwN9AMVi8WUVyWRVjQaRbVaVfPhXHSPS7O4jBAC/X4fZ2dnSscSi8UmqI65qXjddnicKK1tPlS6plIpVdmZ7dqyIV0Wph14fe2cfjMRHWHaYXbiFpxYfLc23a7bxm27lkqlcPPmTSQSCWWxmAXmBjHoB8PGypowGAyQz+chpUQ2m8Xx8bFVxnZii0m5T05OlBKHh5pj4UEzRRA+3+12FbsGjMrQ6clenLC82wZjkk9uYEZ/mum/9Hb18Zl9DQYD7O/vY2trCzdv3kS5XMajR48mUpyb1MxJFrZxByYIIRQXxbmQijFS1IwbmIYkvFBZr2KEbbzm/1lFCfM527NekIJTnzbuQycQ5m/Uq5FQsBiN57lcJca+KPh8PkkKydgFAIoi2jIrkSIxLoHl5p2KsZjP6n+6k4iX5Jw6m3zr1i2kUimcnp5id3d37MAB3lg//VogEEAmk8Ha2pqiqrVaDXt7excyP9EKkslksLS0pAK0GKnJcdkopNPcnTY1r/l8PiSTScRiMeXXz9wX5LxKpRJOT08vFejjFWzvwss9FxEn9Gd1nYWTFWhWscLWj9kmz0UqlUIsFlPicLPZ9BwrMReIIRQKyRs3bmBhYQHLy8uK9en3+3j06BHK5bIrG2Wjak5gIgT6l/v9frRaLaWxt6X3NqklKSPtxm6p2p3kTdv4QqEQFhcXVXq6fD4/pjtxO9B6f+ZYdSrjxH24ycZO7ev3cV1zuZwq1UeTMKP+WJ59b2/vwr78FwXbQbIh8ln1AaY4xqrkNJXbCh5dFinY+tav6fVLpZTo9XpXF0T1LIBseaPRwNHRkcqPwGAkt+f0/7MA5e319XVVWq7T6SASieDg4EAlAZ3G3na73QnZ1elwTROR+IJ7vR5OTk5U6jhb0RA3+V9vi/dMm4f+jNmOm47BhpwpprGGgpRSFUMZDAZWJHrV+gavc3XTB+j3eQUi9oWFBeRyOWVOPzo6QqFQsHKkXrgHt/WxiYJcc3NeXmEuEEO/30c+n0ehUJjAchd16fQCLHsfCAQc066ZL8t8ibqcRxaO43eqJ6g/43SQB4MBWq2W64Zwk/9tB/uiMroTUnOiVMPhcCzkt91uj60Ns1HpyOFpixLT5nYVa6dzkbFYbExfFIvFlFVGv38aUrgMR3EZjmQuEAOACWebp7VR9BfRarWUY9NwOESr1VLptnUqazvUelvAE7+K5eVlCDGyUuTz+bF4eL0ts13b+Mxx62DbTNOUXxeRn51EOPMwmffr3pWVSgXtdlulwGOx36v0Y3ADL9yS/t1GfaeB/kyn01FxC+12W2UHm2W+JqEx42vMfq8aucwNYtDhabOUbL/VamF/f1+Z8FqtlhUpOC0272EOyY2NDSwsLCAcDqPX6yGZTOLBgwfWzNNexmc79OZGtXEuTuyxEzhRSicxwnxOH4f+ndeIdJnRmNdmGeNVg9u8dOrP370A72M9h1arhUAgoDJwOR1s2zW/34/FxUWsrq6qAMCTk5MJQqPPxQlR63PxCnOJGJ426AvZ6XSUQxA3s9vm5zWnzcwcEEwRHgwGJ1J8O43H3IjMKWGOy0tbNrDJ1dOec0MStrbd2nVygXYb17MA82DNqgMwETgwQg66ByyAsdKJZvYl/XnqKZaXl1VkcDQaVY5yABz1B7YxEtHMAj9WiGGWDWZugmnIwPzNvKfVamF3dxf9fh/xeBztdhvFYlEhBaf2bHPgi8zlcojH4+h2u8qlmiZMKmZnYZP1a+Z8vWx8N6ozTWaexsU8L6QATBfBpl03EYvtYAYCAfU+hRAqCtaNmxwOh/D5fKpoDD1m3VIQ2iAQCGB1dRWPHj1yvGfiGc93/hiCFxnSxmaa9R2kHCkLS6USKpXKWHk8J8QyrU/6SGQyGaUHkVJicXERg8EAe3t7qNVq1lJys8zHNha3724KORPpON3n1tfzACekNasoYXuef8wPQsqdzWYBAPl8fsLbFoAqkdfv9xEOhxUi8aKM19ddCIGFhQW8+uqrf/cQgxtb62URvbLF+u9kC/VS81I6V5rWKYkXhMT2I5EIBoMBEokEVldXsb6+jk6nA7/fjw8++GDC38LtENv6c7vHTefghXsw25l3mCZquXFVZhtmO3rAG5O1ur0bpgFgLIyXCuY28Pl8qir2LPDCIwabfEfwIpObQBMTTZimSY19LCwsYGFhAbVaDScnJ2N6immstJPeQr/GWhL8XqvVAEDFdUxTTHpRXNrG4wROCjrz+7SDcxG46ja9IgAvCJzt6WPURTO22Wq1cHR0hGw2q2Jq6Lhn49B0TlS/7tS30xxJYGZFzi88YtDlOlJy2osZQ+CVa6DrLnPptdttlEqliTgFn8+HdDqNhYUFpNNp9Pv9sTwO0w6Q2xh0VvLw8FCZ+YbDIU5PT/HDH/4Q4XBYhZhPa9P2n2ByMOY1pznYrl+E7fYKTwPRsF03McLtwOlz52eWFAiFQvD5fGi32+h0OkovUKvVVHk6m4+LbZzTEJMTQdCv09o2C8w9YvDKulGTm0qlEA6H0e12US6XxzwT3doQYhTks7i4qF4sU7mZLBzTxg8GA8RiMSwtLaFYLE7EvJucxiyytxCjUPKFhQUkEgmlhKJ/hF41y01vYNsopthhUjwbApmmK3HiFmz9ziqz2zgTt3F5pY5eRCv9v96/OQcmH6a3IwCcnZ2pIsRs0wztN+fkxonpY3FCaObzw+EQ+/v7qFQqntaEMPeIYdpm0ql9Op1GLBZTORHi8bg194HZvo4YIpGIUi6yXXPhWcmKCiQAY6nTbH1Mm58NUqmUKmgjpUQ0GlURivQc5JicwLaBzMM87dB7gYtwSReBae1epq9pHIT+X58jU+zR6sBwed43TWRxE4f1cdgQkjlOGzQaDTQaDdd7TJgrxOCEAKZRGJ2NY94/Ku7oYed2AHVszmQrZMFsMRNSjvJJ7u/vY2lpaWq59Gn9OgHnAYxEC2b/1Q+400Z2AycKdJUHWO/L7fuszz8tcNPT2NZYH5fP50M8HkcoFFJ7o1gsolAojBU0ctKBeQEGZQUCAVU82clcbUP8L7SO4aKbgFScGXLNl+YVmCcymUxCSolKpaJerIlYqDVmGjW3JCyzzMNsP5fLKY1yrVZTm85JbLGN1amfWZ5xA5uYdFHR4XmBbU1suggnsa3T6ShX6FKphHq97upnMk1no99HjmRhYQGRSAT9fh+1Wg3FYtFaSc1pnLPAXCGGywAXi7oB4EkgkxDCStFNWZXBP5Tfp/m2S2mPrrwKkFKi0Whga2sLuVwOwWAQjUaDcfWu9uxZxzFNVvfaj5suwnzmeSKLWXUTbmISr9G0OC38ftq4nK4zA3gkEoGUowQ+erq/aTqeWWFuEMNlKYuUUikEo9GoWrhpmYgptzFXgJmxSW/ffI73XxY7O/U1GAyUJpvIbdphdQKvG9+85vScqTAz27Gx5PMC0zglm1jB607t6eUIdV3ANKTiRRdDbljfm0Q+bvoJk3ubBeYGMZgwy2R4L51ISMXN/Idmu0QIsVgMsVhMHcRut+uJW9D/XzXoG9OtfLqTTsbG7trAtvmdkIK5iae9I5PrsCnPnreo4SRCTJu7m+XAhhDNz25IwjYmZidnOHej0bAGVJnPXRTmBjFcVkmlL4Ytn6D+md+ZwYkmSir4isXiTEqbWeU7cwM4bcKnwSJOG7s+Hi86CCfRwSar69/niYvwMmbb/TrY1su818naM03cIkfCKmi2e21jvAzHNjeIYRZw21hOB8wEIYQqDEq/BbqrMtPQZcY3yz1OFEf/bEMi5nNu870s2EQHfTxOv5njNLmGZ40gLsNNuYFTmzYEoQOtacxu7lQhnW16QapXofSdG8Rgbq5pLKrXNm3Psn2GNTOKbTgcjokRT+OAeaW8TuB23zQqN01vcJH2nZCC2bf+3+l5t2vPA2wiA8HL+HQkyM/64fb7/chms1hYWFBmdlo16DHppQ9zzPr1i67l3CCGZ7URdOrFbMXJZBKBQACNRgPVatVTpujL9H8Z8ErFzPvc2GQ3BZz53bYRp4kcbkj/aSOFq1QMO3FH+uG39UVulMl9mc0pGo1iYWEBqVRKJXShObJQKFjfobl2tFaQqJlZty/KPcwNYtDhaSMJLhrL2NXrdcXKPU2kcBXgJjbo17xQch3cEIn+3W2TTUNGphjhpoCb1pdX8Co2mDBN5DDFOKe2yRWk02kEAgHU63WV6Dgej485sAFQ5fyclMr6Z9ZNZSwNa6eagVcXQY5zhxguozCZtR8u2lVrdp8FK+xG4W2Hzel+m7bcCWZhq6dxDtPG7NTf0+IwvBxyJ7bdqR0hRkWR19bWVCYmU1Q1xdlut+tYU5RtCjFK/EKHJ9anJHK4itJ/c4cY3JSKF9kA0557WnoE/n9W3Me0fqYdvGngdIinva9peg2v79uNS7kKmLZ+TuLQNKVjKBRCMBhEKBRCLBZDq9XC8fGx4lZZBd3n86lygnp5eydgFCeBnIdNrHuhRYlZOQWv9z9PJdazQgqzKpq8HEY3aujGCUyj8jrCmDbWZ6WEdNIZmHN1kvfdxtnr9VRSWFJ61k3pdrs4OTlRVcHoVm2Ks7b3wnv0DOfUj9nghRUlpi2ymyz6dxXMg2pTGOr/zc9elJBOfdrAC5V3QiCzcDRXKT6Y3510NubnaZSY7XS7XeWtSDFBj29gQJSbWGtbUyrOGZJP92jz+R8b5aNX6uekIf+7hDDc2FiT+lGWJYXhxjapor6RpmnEnTTfTvoHL6y4bRy2354WTDvoNsSmfzfXrNPpoFwuq2uMuNTvM83jtjUxOS3G9dDhyc1d/iLrNXeIgTDPIsK8g3mgmJmKyipqr1kk16uS0Ily8h7zfltbJjix8ebnqwYn5asONtFiWpvmfUwSXK1WIaWcWsR3Fl2KlPJKonptMLeIAZidA/hxRhZuVFn/3QbhcFhlnPb7/VhdXcVHH32Ew8PDsQM/TZ62ydxu4zHBxmHw/7NU1NqAY7CBV32WE5Klj4EX8LIGsyCVi56JqckKhBCbQohvCSE+EEK8J4T45+fXc0KIPxNCPDj/n9We+U0hxEMhxH0hxH/qZSCzaKznAYQQM+V6uCzoFNiJ1XT67vf7EYlEEA6HVeXpVCo1Vd+gf3ZSMJrgxFLzNzdd0bN83zai4/f7kUwmsbCwgGQyqWqbOq2T+dltD7uJbm5IaRpMe4fcp7RaeAUvO7sP4P8kpXwNwOcA/LoQ4uMAvgrgm1LKewC+ef4d57/9KoDXAfwCgP9RCDFbGZwXBKhpNuF5Uj4bUNmVyWSUecyNneXvOiV3UhY6iSFedAjzAkKM3JOXlpZw9+5dvPzyy/jYxz6GlZUV9Y5tSNHpUNoOu+3Q+v1+xONxLCwsqOxMbs+Y/Tr918Hn82FhYQEbGxveFoPPTbtBSnkkpXz7/HMNwAcAbgD4ZQBfP7/t6wD+4fnnXwbwB1LKjpRyG8BDAJ+d1s9FNspl2K6rgOehHLsIMIs109YBUKnLCdNYfx3c5GDbxnYSQ/TP05DUVYM5h2AwqLJ+R6NRVSAmlUqprGBe14jejkywYyIWKoFjsRg+9rGP4bXXXsMrr7yClZWVsftt6+6GFGzIKRaLIZvNzlxXYiZeWAhxG8BPAfgugBUp5REwQh4Als9vuwFgT3ts//zalYOXA/g0D6mU0pM48bwQhc665vN53L9/HwcHB3j//fdVaDnH50X5Z1PWmfoCHXSuwdzotnaeJdiQDbN/iXOtP6NtbWy4E9JkTMTrr7+OT33qU7h586YqK2gCSxD4/X6EQiGsrKwgHo+rDGROREdHLiayMJED3a5nFXs9Cx5CiASA/wXAfy2lrLq8SNsPE29BCPEVAF9RN1ior1eljxM4scDTDoTXtr0ihuctWkg5qpC1vb2N3d1d5URjjs12uHUwqZRNmaj3qd87bXxmH7Z+rxLMNnu9HgqFAqLRqMrMPRwOVSX0Wd6h3+/H7du3cfPmTVSrVezs7EzoiIQQaLfbqNVqiMfjKqO52zvgc9SF+P1+NBoN5Wbt9Fy/31cipFfwhBiEEEGMkML/LKX8X88vnwgh1qSUR0KINQD58+v7ADa1xzcAHJptSim/BuBr5+3L82vWTXdVME1OnBWmZYeeF+Ba9vt9lSKMoG9EJ32BDtNkZ/05r6LetHdg7oungSgGgwHy+bw6qOFwWHkUmmn6p4k9oVAInU4Hf/7nf44HDx6MIWGOnQWEHj16pHQMxWLRNc071z6TyeDWrVuIRCI4OzvDzs7ORHwFEVCr1UIsFlPZzr3CVMQgRjP5XQAfSCl/R/vpjwH8GoDfPv//R9r13xNC/A6AdQD3AHzPQz8T36dtrGmUxitcdLM9b07ADWwH3os1w/a7jlB1Vpv/bQd3mnhhjtNt/a8KkTvNi58Hg4GqwaD/pnMM0wgWA5n+8i//EpVKRVWztiHTwWCAYrGIcrmskgNNy+tJ8SAajSISiUAIgWazif39/TFHKa5rrVaDEEIVwfEKXjiGnwXwfwTwIyHED8+v/V8wQgjfEEJ8GcAugF85H9R7QohvAHgfI4vGr0spZ0qH5JVb8Pr706Iy8ww26g+4I2CbjKp/DgaDyOVyADCWWt+pfVu7NvHDq7jxtPVFej86yz8rAWq32zg5OVHPUWcg5WTyYCKCWRyVqAthmgBGV5pjZX/VanXmtZuKGKSUfwm73gAAvuTwzG8B+K2ZRmJvx6ojuMizbvDjijTcZH/zs/ndfFYIgXQ6jZs3bwIYlW8/PDyc4BjYjpuIovdhgslxPE1wOvBua+SlTY7f5/MhmUwqPQW5EZsLtJMC0WxTSqmK4rK+qs2DVX/mIuLuXHs+2qibDWzU6u8yt6BvIsD5AJgH0O1A+Hw+paGnzEqqyCQ3Nm5gVmpr0wM5jfui4HT43MZo209OrD7/JxIJLC8vq+rpjUYDx8fHSh/ghBidxsjfK5UK0uk0QqEQer3eWA4GG1xkreYSMbhREq/3e/ltlj4uC88SQU1TjtlYToIpWuhADzq/349+v6+cggKBAJrNpioibM7Vbd4XWZfL6namiU7T9pobQuU9sVgMCwsLCIVCas3S6bSqJkbETZOj7WA7cXytVgs7OzuqeHO73Z6abOjKRYlnBdNYyIturnkRKeaJa3FTDNrYUWAkC5fLZeUos7+/DwBYWVlBIpFQhX53dnZUfgFdhzCLOPG8wGnuBPoOAJgwD5piAZOzmPJ/Op1GvV5Hq9WaYPNtfTrpDVqtliqPOE1km/abDeYGMZgy1iyiwFVxDD9OMI3ddvvN1A/we71ex9bWFgAom3upVEI6ncZgMEAsFkMikZgohGKTpaex7s8CvBwWji8UCmFpaQmJRAKdTgeVSgW1Ws2aI5RUvdvtIhAIqGK3/X4fg8HAVR/DPoUQyrGK1gre76SDuEqYG8QAPJmgk8zrRcS4qkWaN93ErHL1LPe6ye+mBp1Rgrx2eHiIQCCARCKBfr8/YS932sRP451dFpxEA7/fj+XlZayuriIQCEBKiUwmg729PZydnVkPa7fbRalUwmAwUDEQUo7Mh7bU8OY7YAZpYFRsmZWoCCZivax4ZcLcIIZpWNBpI5mcxUU32CxysRNcVinmBhdp1+t4bNTK9pvtc6fTwaNHjxAOhyGlVA5UpvLTJlJc9p09DbBxMqFQCLlcTmVv7vV6SCQSyGazE+nU9P3IAsQ0L7L2pO1+PiPEyN05m80ilUoBgIqENTNA6+O9apgbxDDLAZ9VB+EGV7k5n9ZLuih4ZZVth8GJE7MhcNYMdVNoOn2eN27BSYQdDocYDAYIBoMIBoOKO3IyBXL+rC7lptMx34HP51MOScy45eSr4HVuL6yOAZiUQZ/FhpmHTXkZmOWlOx1sJ0TrpV1q1Vkt3K0uhw1ZzOP6m/uw0+ng9PRUuUl3u13U63Wcnp5OIAbb+prXdUJkQ0jkuHQdQ6fTmfo+TATjRSnpBHOFGNzAJlNdZFPNC4W6KriM3mGapUe/x9YPKdvS0hJWV1fRbrextbWFZrPp2p+trWnv5Wm/NzeriZQSxWJRRVy2Wi3U63VlmnVr02m/6tGROjIlci0Wi/D5fAiFQqjX66jX665I3VwbJw7PK8wNYpi2aad996qc/HFCCm5w0U3hJgLoa8k8ki+//DI2Njbg9/vR7XZxdnamojeFEFbrxGX0N7b/lwUnnYr+vdvtIp/Pq35NHYoTmKIqkWk6nUY8HlcWDK4b22o0Gjg4OEAwGFSZpOlObRu307WL7oO5QQwE28sH3L0e3XQEf1cQgQkXpRRuFiF9LQOBAF5++WXcu3dPVQvXNfRO7/Ayehgn9vsi7TjtKyfiAsAqNngZg75+kUgE6+vrysTr9/uRSqUQDodxfHyskAP1Np1OZ2wMbutnE0suyjnMDWIwN6TXl6/fZ2rBf9zEhovAtE3h5YCYa0mdQiwWQzgcVj77Dx48QKFQsMZP2Np1u36Rd+flmcsglcsql4UQSKVSyOVyylIBQJl7w+HwGCIwOS5zHDZEGQ6HEY1GAYy4Dhun4QXmBjEQLmNdMNv4u44UAPtmNg+9/meyyU7Q7/dxcnKCdDqNVquFBw8e4Pj4GP1+39E6MQtcVNy46DNOnNI0cDt0NkRFZSY9I1mQhn/6uNz0HrZrkUgEa2trCIfDCAQCKBaLKBQKnt6nCXODGJxkW7ffnRZ+2gaZlRpdRjaeN7BxBqT+dG2uVqvKFOc09+FwiL29PeTzeXS7XcUCOx0sNzn+WYJtPn6/X3E+vV5vLJmNyYWa4LYnzDlLKVGtVhGJRBCPx9Hr9TAYDFT2KN05bBZLE/+nUimkUiml2Mxms2g0GqqmxSwwN4jBjfV3Ew1mVS5eZFM+T225PgYvlgIvbZjrFQwGcfv2bWSzWZVo5Pj4WGnibe0Ao3RoZH316xwbuZBwOKxKtethwk7ze9qgHyYmgU0kEgiFQiomhF6LXsErQWq328jn84jFYiqnQqvVGlM82iqGeelXF034PxqNqmQts8DcIAY3E5a5oZ0UjqaSywmZXOVBflZcxFWw54BdlpdSqnDq4XCIYDAIn8+HWq2mAnVsY9E3rU3e5cFjBmS/34/9/X08ePBg7CDoGnuvosxVzF+IUY6JxcVF+P1++P1+BINBRCIRdDqdMUprIq6L6LH4PJWKNgQfDodx8+ZNZLNZbG9vK2/HaetBpGPqd3Q36llgbhCD0yE3f/d64G2yow2Z/F0CJyrd6/Wwv7+PQCCAdDqNfr+vzGqmR6Op8dbbdtLzhEIhVcCl2+1ib29vrH6jEEIlNQkEAqhUKp4cei6zBtwLfr9fhUVzrBStarWadd3M+V0EOdgQqs/nw8svv4wvfvGLiMfjWF5exre+9a2JfI5O7dbrdZydnalCt6xt6ZYo1gnmBjGYME177SSzOokaf5cRgg42C4OUEqVSCc1mE+l0Gr1eDz6fb0zmtVFME0yujoq2ra0thEIhRCIRFIvFsXgKAKrGwksvvYRsNouDgwM8fPjQihxs3KPbPG3X9fFS+Ue2OxaLqe+BQMDTobqI9cQ2Rua3CAaD2NjYwNHREcLhsJVrM9sTQqDb7eLw8BDRaBRCjLJQk2N4oUWJWbEvwU3vcI0QJoFrwsNAc2Or1VJei7b1c/rsppxlNuS33npLcQx6KjK+81AohEQigXg8js3NTZRKpbG8iWZf08RJp8NsjrXRaKBWqyGRSCCTyWBlZQXZbBbZbBZ//dd/jePjY6VncSJGF1FmmzojneNKp9OoVqvodruuNSZsOqd+v690CpcRyeYGMZhgLrbb4s+qgLyK8byowHn4/X5sbGzglVdegZQSW1tb2NnZGaMwNqpr6n14r9sGZGIRUyxhe8CTA8oAJb/fP6ZzcAK+E6dgJjfOgmJUoVBAMpnE0tIS/H4/XnnlFSwtLWF/fx+lUskqNtmUwV7B3Ktsr9/v4/DwEPfv30c8Hsc777yj9BzUf/Dwu+VnMOd7kb07N4hhmoLQbWLPyirwooM+h2AwiM3NTaysrGA4HKoU5EQMbjoD85p5UJzASW8EAK1WC/fv31eKwGq1qu5xEgmmcTBex9LpdHB0dKS0+UdHRypnAsWLbrerEtDMYkGZdq/O4QyHQzx69AiHh4fKdAo8KbZ79+5dSCmxv78/FoJ91aIOMEeIgeBlEj8u1PtZgJs2vV6vo1KpKNnUTYNtKu2clMEmq+9lfD6fD8FgUClBAXgy1fFZUtN+vz+1KpNtXsPhUFkh8vk83n33XbTbbdTrdSwsLChdiZlg5SLIcBr0+320Wi3cuHEDN27cQLPZxM7ODgKBAJaXlxGNRpFKpfD2229bA6su07cOc4cYdHDaXBfVRVwlPO/+vYCblabX6+Gjjz5SCKFer08NeCJCCIfDKnlIq9Wyar69IoVwOIyFhQWVlOTk5ATVatV6uM02qaz75Cc/iVwuh3w+jzfffHNMT+KmNDX1FD6fD5/4xCfw2c9+Ft/73vfw6NEjZa3QE7heVITgM9PmFQwG8ZM/+ZO4c+cOEokE/u2//bc4OjpCrVZDOBxGIpFANBpFvV6faN8r9zYN5gYxOOkUnF7C8z6Uz7v/WcBJcUUqKKUcc+ZxQ3rhcBgvvfQSVlZWFHXb29tDsVicqWgKD2QikUAqlUIsFlPWia2tLZydnU0dSzQaxS/+4i8ik8ngwYMHqkq1z+dTJldaHfR+bQczHA7jp37qp/BzP/dzyluQ2bCp0DP9CaZxM26ETZ+bucd7vR52d3eRSqXGskDv7e2hUCiolPHTFKyXgblBDG4H383qYINZKdePGzjN2WT1bey6TavPQ+zz+ZBKpbCwsKCSnAaDQdy5cwfD4XDMU3IWGZzVmHmA6WBlEyX07+12G9/61rdUfoRMJoPPf/7zCIfD2N7eRrPZxNbWlspabQP2EQqFcPfuXZRKJfybf/NvUCwWlUWg2WyqrM6z6DLMgsdcQ9bhsGWaphLywYMHKJVKan1u3boFn8+HfD6PUqmkcm8+LZgbxEDwYmGYdth1jOyGRNxYrhdBVCC4KejcrrlVKHKieFJKJdczek9KiWQyiVKp5HlsbKtWqyESiSCTyShKeHZ2pjgYU5+hP9vr9bC1tQW/349EIoFPfOIT+Pmf/3kcHR0pc5+ZBMUGjA9588030ev18OGHHyoHr36/rxKxmnOxrY35WdfJJBIJLC0tqeQrjDOxpZBvt9s4Pj5W1b/orp3JZMa4KSfQRceLiBZzhxgucxhtVM783c18dVXj0Nu4CrZuGng1G/Iep+dtv5trVqvVUCwWVcZkAIrdtbHo09hdWgROTk5UXkWdUzAPmNn2cDiEz+fD5uYmvvjFL6JcLuPRo0cqaYztQNvG0mw28d3vfnesqpYQQlU090qM9DZ1whQOh7G2toalpSUAowSvrMWhKzXN/RkOh1XcBP1NdK9Rt/GEQiEVVFWr1WbiMuYOMTiBqf22wSwWDad7r4JTeJ6chhOra5szU4vpYoXZlnlAu90utre30e/3kclk0Ol0cHZ2puz9vNftXZltMmGqOWbbM2zXlM9zuRwODw/x4YcfolKp4PT0FIeHhyoMfNpBomXCjdK6ra3+3xybjhwAIBKJIBAI4Pbt24hEItjb25sILCNSqtfraDabCIVCaDabOD4+nooYiBRu3bqFbDar+qhUKq5roMPcIIaLUPJZD7FXTflVgI6AngXXoIMX6hYMBpFOpxGNRhW7rFsXTASqv59Wq4WHDx8qhxvTxdl8hggIcBZfpiEp9m1+F2KUM/EHP/gBfvjDH6rDzfBp04owTf9kU3YznkLKceci3ue2d3WFYrvdRiqVUroZlq3jYbdBo9HAzs7OWEg414t6GH29dCQUj8cRiUQQDAYRj8et7TvB3CAGTpLg5TDNcoi9UDGviGPa2Jz0JE8bQej9mpSPFAgYrfXCwgJyuZwqhpJMJrG/v49ms+mYNUin1qyRYN5DYJ/BYBCLi4uIRqPodDoolUpK7OA9zGAUj8cxGAxwenrqGLxlGxcpq+03pz3lFSlEo1Gsrq4iGo2iUqmgUCgolpx5HFhcltYD2z4bDAYq9iESiSiLB/Njmuusj8fM6kQlcCqVQq/Xw9nZmVKO8j7Wr2BY9+npqXX9nGAuEIMQo8o7w+FQJa8ALmZdcDrg5oFx+v2qQN/4+sF0YmuflggTCoWwsrKCWCymHHgAqA0aCATGCqgwYMeGAG0Hx/xNB5/Ph7W1NbzyyisqH8ODBw+wtbWlqDmR0t27dxGPx9FqtRAMBrG/v29VHOrvcZpS0SsCdxp7IBDAzZs3kcvl1DibzaYKMkun00ilUkr2p7XAfJdsv16v48GDBygWi+pQE9GYCExHDiZRC4fDY3kjg8HgmIOalKMQ7MePH6s1pW+HV5gLxBAOh/GTP/mTaDabODw8RLlcnpqv3wmm6SHMNmc9jLbD4cRCErvTtAeMXH/N9GdmexcB2/M+nw+Li4u4c+eO8gz0+XxKa59IJNQYddbUy4HS58jPpgji8/mQy+UU68zx7O3tjZnrGJYdCoUwGAwQiUSUEtAGVMbZxuQVnJAKx0435IWFBaTT6TFlIAAV9EUHKJa673a7Y8SAHA37arfbODk5USnXbE5l+jhsOhVaYUhQ4/H4xPsfDoeo1Wqo1+sXEmfnAjGEQiEsLy/j7OwM1WpVOZOYspNXMBfJjYu4Cj2FU3902KEHW6/Xw+HhIQ4PD9V9s/Trdr9NfIlEIshms+p6PB7H6uoqCoWC0tgvLCyoJKSFQmGmrEU8QOSGbHZ5igRksePxOLLZLI6OjtQ9tVoN5XIZ2WwWtVoNJycnY+ZKHRExoYxeCWqaIo79eJkP0+IzRwPZ8UAggHK5rGI4mBmblhkAKo9jJBJRHFKn00Gj0RjjgrlWtv75HoPBILLZLAKBgAowY0p+KnxzuRz6/f6E16oXbmoazAViYMovAMrRpF6v4/j4eMx0ZGOrvICbTuGiSIF2biHEmL3clPPX1tZw+/ZtdV+r1cLJyclMmXVs7LMXiEajigrrugSGP+u1FWkqnAX8fj8WFxcRj8eRz+fRaDQm7qlWq6ouQrPZHMsRQGg2m3j06BGi0ai63yZCkH1/9dVX0e/3sbu7i3w+78njctrasf3FxUXcuHFD+REQEfR6PTx+/HjM0SkUCql15fvP5XIqSzMrgAshUKvVHJ2/bErRpaUl3LlzB6FQCGdnZ3j06JGKtOz1ejg4OEC9XsdgMMDZ2ZnVF8LWl1eYihiEEBEA/wFA+Pz+fyOl/O+FEDkA/xrAbQCPAfwjKWX5/JnfBPBlAAMA/0xK+aduffAld7tdbGxsIJFIqOo7TiaWp8F6e7lX36CLi4sARh54ZjJP/Tkp5VguAmCSHZ5F+WkDk1JLKVV/TNzB8u26tt7tULkdJiEEcrkcXn75ZaX5fvjw4cScCoWCUgySwttci2u1Gmq1mgqoAqAUaDpyyGQyiMfjKnFtuVx2nINXAsJ3urS0hLt3744pBre2thRHpKdi1+fZ7/eVxYDWFd0SE4/HlVLXTXejAxPFMC4lkUigVqup96Z7Y7rprS4KXjiGDoD/SEpZF0IEAfylEOL/C+A/B/BNKeVvCyG+CuCrAH5DCPFxAL8K4HUA6wD+XAjxMSmlIzkKBoMqlRb93dvt9lj5cDfFlxNchUJPB3IYrH5MGTMSiaDdbivEwLEOh0Pk83nE43HE43E0Gg0cHx+PzcX8fBEuyPaclE8qHOlac+ZcMA+mU9tOQORIlpoxCuYYer3emGON01j1Nun+u7Ozg0qlMnbwO52OUtbx8Jnr6ARO9/l8PiwvL2NzcxM+nw+NRgOnp6eKE7StS7vdVvuVVJuImHEfumOSuTZuIOUooxZrUNTr9YksTm7ch22+s8JUxCBHLdMWFDz/kwB+GcAXzq9/HcC3AfzG+fU/kFJ2AGwLIR4C+CyAv3bqgyzu8fExSqUSfD4f6vU6IpEIYrGY1RSljc9xM1wlUtDbJIVk6i+b6Q544mr73nvvKXlV18Z7Ha9Nf2AqpmzQ7/eRz+dRr9fh8/lUNmI3V2izP7fNxVqOfr9fycD6PJyomY3VJZVdXl7GxsaGkt3v37+vuAbGY0g5csHmYTTB7XCYvwFQlJna+1Kp5JqElZzW2dkZGo0GOp2OUihXKhW1n4En3IS55iZi19dFSolGo4GtrS0cHx+PJbmxzccUi23E9KkoH4UQfgBvAXgZwP9LSvldIcSKlPLofEJHQojl89tvAPiO9vj++TWzza8A+Aow8gQDoHzfq9Uq4vE4NjY2EI1Gsb297ejOOY1yepzfxDWTotoWu9frodVq4fj4eCI2Xn/ZJsXU+531hfEA6QVRzXHr8+l2u2Mcghc2Vu+L//X5869YLCKZTGIwGCCfzyv3ZI7NppA0x2muPQ9Yr9cbU+yxjXa7jaOjI8V5XSYnI5+jUphBU6YIYxuzlHKMeyH0ej2cnp6qojJk+80IT13csCkjh8MhGo2GSgTr9C54jSJYOBzGYDBQUaV8Tg9S8wKeEMO5GPCGECID4A+FED/hcrvtLUy8OSnl1wB8DQDi8bgsFApotVro9XqIRCLI5XIAJiPU3OCqkAKvO23oer2OQqGASCQy5rBjPuu2YS/K4lFrTiXX4eGhyl/g1P60w++mR6BlZWFhAf1+H8ViUc23Xq/jww8/BACF/EKhEJaWlpBIJBTldZOB9f4HgwFOTk6U0xAzKZlIjdp5Jzaa/dm4LKaJp66D62ZWgvL67mxjGAwGqFarau+a8/f5fIjH48rBrFar4fT0dEwpq8+F4ioDqUyEJIRALBbD5uYmMpkMms0mjo6O1NpTlN3d3XWckwkzWSWklGdCiG8D+AUAJ0KItXNuYQ1A/vy2fQCb2mMbAA7d2m2329je3lZUIpfLKdau3W7PrC33AjomNTcUP+ugf+/3+zg9PZ1QQtlk2KtADjq1iEQi+OQnP4k7d+7A7/fj3XffxTvvvGN1i3VqxxyDG3JIJBJ44403sLq6qvr74IMPrJGLQggsLCxgY2NDOf8wmMnLGtCD8cMPP1Rr68QSu8nWtt+YGj+TySjzbLFYVJp9pzE5rZd5n0284++mu3goFML6+roKqOJh1v1b9HeezWaVWbnf76PRaODo6GiME+R6p9NpJJNJ5REZDodx584dpNPpmRDDVHIshFg65xQghIgC+I8BfAjgjwH82vltvwbgj84//zGAXxVChIUQdwDcA/A9tz6IBbmAdOPs9/uoVCpTZWITvLCWQjzJHrS6uqqqERHL6y9af0lsn/ZttpNOp5Wrq41Fvgzom4W+CLSKMJOSOWZzvmQ1M5kMFhYWEI/HVR4Et+eWlpZUlSpmUQ4Gg+pek5XnISMrnU6nZ1a8MaiK7VI8cQJ97DakIMSosMza2hqy2SxisRii0SgymcxYu/o66iKRuS62/cV4CvNduI2R/8nyU0lpcgvxeFwVEGZ5O13MAqAqZzM3BRO5hMNhZDIZlSHLK3jhGNYAfP1cz+AD8A0p5Z8IIf4awDeEEF8GsAvgV84n854Q4hsA3gfQB/Dr0sUiQdBZOsrsF6275+VQBoNBLC8vq+ASJkSlSc2pHXMsNHO99tprKJfLeO+998ZKmduesbXpFZFwA5Fy2PQX+sbiRvP7/VhZWVEmVimlStFusrCkdnody0gk4sjB6VxHuVxWSIuKN52STpsb/5PK0zzJtknhzTXTxQebGEFlcSAQQL/fRygUmmDx+RydqAKBADqdDtrtttVblRAOh1WehWq1irOzM8X+6yZFQq/XU3o0v9+P09NTJJNJ5HI5lMtlFcwGjA489yTFHxJNfdynp6cqeS3PzWAwQKfTQa1Wm0Ak08CLVeJvAfyU5XoJwJccnvktAL81y0B0tovej04eYiY7Z9sMTvdz08ViMcTjcZV0hAut98eKRMFgUNVdMEUHOsXcvHkTN27cQL1ex+PHj5Wyx0ty0lm4i1arhUqloky6jClwYm8J1NvE43FlvhwMBmN+ALaDcnZ2hh/96Ee4desW2u027t+/bw375fdOp4Pt7W0Ui0UAmJqw1Byn/p7oVxCNRiHlqCDshx9+OOYsZM7ZfNf6PHjghRBoNBpj9SnZRiAQwNLSEpaWliCEUCbfYrFo9b+gk9fy8jJCoRBCoRDa7TZWV1exuLiI7e1tFZKui0e6rsbn8+HevXsIh8PI5XJ4+PChyjpFXw1SfzqmmeHk3W4XxWJxbC1ZNOjx48eu4pwN5sLzUQed0jqBjgj0TTCLbE0NNPAkH0ClUlEbxe/3I5vNIplMKgUOqzXprOBgMECxWESlUkE6ncadO3fQbrdVRSemGJuV63Eaf6fTwd/+7d8qU121WlXOU27z56YFnuhVWMhVD7AxEUy328XDhw+xu7s7JvLZ1lV/hjoYL/Nyuk9nqzl+Oj+xv2liG8fUbrdxeHg4EapsIlK/36/Wye/3K+ewarWKVqs1oUcKBoMqzoMcSSKRwJ07dxAIBJDP53F2dqZEAVoaqAOgXiYYDCqxMJFIKC9SKaXam8FgcCx3hZNoEg6Hsbi4qN5XvV5X5fa8wlwiBrfvBK8IwAnq9TqCwaDKR1CpVNTLIEeRzWZVMA9lPT28FXjixPTmm29iaWkJgUAAKysr6uXyGS+stNM8da5oOByq+oQbGxv45Cc/iZOTExweHk64xhKklIpzodMN3dB1UUQXI/gcMGJ9TQpFGT2RSKDVainXZF3xNouIpPfPdS0UCkqcoChBbsGLglCfB//cFNlCCHXwyIXRWkEE5OaPQH8WBoHxAEejUWxubiIQCODs7Az7+/tjmaF4cIPBIOr1+lhGauqw1tbWEI/HVei6TsT0d0V9CjkQIQQePHiAnZ0dz+8BmEPEAFzOldNr+91uF4VCQVEQc8NQkUik4CbW0IxHsx4VkKQetlyIs4ApSweDQXz605/GvXv31GH8/ve/j7/6q78aS3yqU1Rq4Rn4c3Z2pqiIXnLdNj8doQghkEql8IlPfAJLS0sIh8Oo1Wp48803lfu6iVhs83C6plPBTqeDvb09HBwcqHdkE5WcFI9ua2gbC98vk9rS7Zrcma39Xq+n7ienFIvFFGJpt9uIRqOIRCKqPT0pjZQjD9VHjx6hXC4rnQDX2u/3I5fLqYCqaDSKYDBoreyltzccDlWilo997GOOsSxOMFeIYVYKc5k+uNFMhMD+WaqcbGW/358QI3TNvP7C+eIYNejVquK0wU0Opdvt4tGjR9jc3FQ5/V555RW8/fbbYy9f33xMFFKtVrG6uorV1VXcunULlUpFbUqnQCqdU/D5fNjY2MDKyoqqe+nms+/1nVJfE4vFEAqFVPSkaRY125ymWzE5tWlEh5zUycmJytJsZm3Sx0D9BZXk5BoeP36sfBRo7dIrSzEMnu3qbs/6O6AlKRAIqKxPuuOSbfy1Wg2PHj1CPB5XFqRZz9VcIYarRArTlJFO/fG3RqMBIYSyWlA773RoefCY86DZbKJcLlu10m5jdhsrN16n08HDhw8RiUSU+/DZ2Zlj6XgiLWDkl3Dv3j0Vz59KpVToLpWKNu5B5z4Y4MYksPfv3x8rEuOkezAVwGa7mUwGt27dUnkNms0mCoWCMlm7vTdT9jd/0/tyA/6uOz/Z+tDnZnp4tlot7OzsKHGCFq9kMqk4iIWFBQwGAxwfH48pGvX10kE3o9dqNde8j8PhUDm+0ZfkhUzUYoPLcg9ennXqgy+pVqspCmweFpNS0ZqiJ8aY1f+C7U5jwQeDAWq1Gn74wx9if38f2Wx2TCFlsvI8eBRvdKUeORv9gLqx5lJKpc9wir+wrSu/M8kITZAM/abSjTEGVJhGo1EVTGVr39SLmMjHtha2uZlU1aaYNJ930mUAUASCrP329jYSiQSazSZu3LiBW7duKZ3Fzs6OY1wGXay5Fvl8XhEgpzGSQ6xUKjMrHQlzixietkhBMCmy+eLdqL1NlnYKrdX78DIet+vUa0QiEeURJ6XE4uLihF++/gzl5YODA5U4ptVqoVAoqPE5ZXHSlW/cdE5jdkIKVKQtLy8jEolAypG15/DwUIkMjUZjLOMVMOJynPxZzIPh8/mU9YJ2fP0Qm2PidepeiJjIEdn0NTbOxOxDX0MpR0FRVELrOgZG6DopRamErdfrCAQCaLVaEyZwE0nq/918ctxgbhHDVYFXzsOmO9Cvm99tbVJGpuwtpVSJR/QX5EWs8DJev9+PbrergnWo9HQDhkhzM9LMxoNBCqeDSZXZv/67fmjckCkDffQ0bkwUS2sLZWPqU5yonk0cSSaTWFlZUc5JR0dHaLfbrmIjEdbKygoymQwA4OzsDMfHx2OIxTZXcyw2LkUXN4UQKBaLyGazCIfDKhGMW+UtIkx+15GQ6Smpr4dtrl7hhUYMs8iMF213Wh/8jcFNq6urSoEGjDbYzs7ORHToLC/KiVKyTZrUaMKyKdy4iXjYSJUpe968eRORSAQnJycTCWfMA2DjEKLRKLLZLJrNpvK6s21UehIGAgFlGqS83Gg0kM/nsba2ptyLT09PrZYWPUCJ4Pf7x1zbqcXnOkkp1XO69yT1G6lUSnkIJhIJxGIxa70Hc228imD8T+cmVvMyi+zYnrWJRIFAAKlUCvF4XCFQm7L2IjB3iMErhQeejbjh9NLNDUFFJfMFUotMamWyeRcZh94vdSBnZ2eIRCI4OztDuVyeuB+Aql+wvr6uchCyjUKhgMXFRaytrSlkpnvQuR0Kgs/nw0svvYR79+6hXC7jBz/4gZXKSykVFc/lcqpCEpGTlCMNf7/fRyKRmHA64xjobgw8CSvnPM2YCr/fj+XlZTQaDZXvYTAY4ODgYEyZzPR3OlAs1PtmUiFmeNJlfScqbXKZjL60cWLm8zbulePY3NzEysqK4r5KpRL29vYcrWezwNwhBv2g8UVTs+t2oC66ANOAMivThNPObMPK9XodxWJxTMFXLpfHqI6X/AE2sLHxnU4H+/v7yoRlpkEjZY3H4/jEJz6BGzduoNfrodFo4OHDhzg+PgYArK+vK9bdPFg6QnNCaqxTsba2poJ8mFzHpodhTArb0xWXRHj68/qzPNzLy6P0H+VyWVWcYlwBHYzq9TqWlpaQTqdRqVQQCASwsLCgUtzpjkT0QqSOQUdYet9LS0vKosBcHLrTm5OY4aTcNJ9zArO9ZDKJ9fV1ZDIZhcB8Ph+KxeKYKKhztLPA3CEG4Alrur6+jmQyiWKxOLU019PiHgKBAFZXVxV7KuXIA08vPMIXzMAvmwJzFnDjKkzFkp5HQN9kjPYDRuXbUqmUkumZm7DVaiEcDivxotPpTCRXNTkj27gGgwF2dnawvr4+Yda1HQbAXpHKi8IsFoupmA8iPfoRkGrqYtuNGzeUaZb6DMrter90UmNhFhviD4VCSv8hpVSp2/VaHBSBdBd1vg86OjFTlJ7xitmlGV+jx3DYkEw4HFbj8Pl86v3Zgr18Ph+y2awiBF5g7hADF3FxcREvvfSSMm+1Wi3lQXgVyjuvY6GcGovF1IZKJBITSVU5Lid20k3+NPu0yfROh9KkyORwcrkccrmcEjUYUNNsNnF6eqoCiBj0lE6nld+AGSim/7fBcDjEwcEBvvWtbylTqn4/x0S9iJNPgpNuhNf8fj8ymQzS6bRCfHodBymlckwTQmBxcVFFU+puzjQrm32ZCMN8L7TI9Pt9BIPBCU/CWCyGu3fvIhAI4OHDh4rr4cHc3NxENBpFrVbD1taW+j0YDGJpaWksf4UuQplrBEAVF87lckpkLRaLY/oYAr0nX1jEQHbI5xuV4CJ1428Xlc8vA/TAY/m0druNs7OzMTZ0mrLSdri8IAjb827aZq5fLpdTafEikQiq1SpOT08RCARwenqqCpwSAZyenqpsP071HHSW1HTEkVKqqkpmGxzPwsKC4rZOT0/HuBy9fR5AGzJkvAq9BvUybPpY+Gyv11O6jmKxqErKsWqT/gytSPrz+julSFsqlcaiKIlgfL5Rxe07d+6o8ezt7aHT6SgOh3UrWcyGiIU5MiiCMnGLzXeG31utFra2tpToSn8Uk2O4KCc9N4hBP/iDwUAVZRkOhypohPcB0w/WZXUObL/f7+Po6AiNRkOVIrPpGJz6myY7OvWrP29rk/fa+qVuhlrrfr+PBw8ewOfzjWU/1g+h2xho3xdiFHOhp0LXx6FHLOoHPZVKKdk9FoupyEJTd0DFbb1edy0Nr1tUqtXqmEinr0W9Xsfu7i4CgYDi8ABMJGdl1jAAqhAP29LjXoQQqsgszaF6kdlUKoVgMIhgMIgbN27A5/OhWq3i7t27Y8iS+R3YdyKRUCId31sgEBjLOm4iST1/iH7NRApUKLM0oVeYG8SgbyjmCdCDcmyylv6sCVelc6ALMvMLmKKDOQe3g6w/M02PoINea8GkkDYO4uzsDOl0GgBUUlBueFs9yGnrl0wm8RM/8ROqGhPZZHMMTroBegHGYjFlpjPnH41Glf9BIpFAPp9X2nV9X5RKJSQSiTH22aT+7J8U3lx7EyGtrKzg7t27kFLigw8+wNnZ2ZgJMZlMKlftcrk8lvzXJA6cK6tS8X0lk0lUq1UcHR0pUUFKqbgEvd4IiaNtzxNBkTNw8q7lGtC1e5ZEsMAcIQaCyRLaKKgucpDFMxNumG1eBFGYL92pfae+OM5wOKwogKmX8NIGc/lxrszyw3t1ijIcDlW1K65LtVpVodNm+27IiW3GYjFFzYfDIXK53IR87aQbGA6HOD09VVGBVNCaYgodrQCoWAK9lD3bZaRjMplU0Yy292sT8WxzjcfjuHv3rtLuZzKZMYI0HA6RSqWwtraGfr+vome3t7fH9BHD4RAnJyfIZDKIxWIAgEqlgtPTU6ytrSGVSqngJj1zNw+tXuLerPbNfZRMJpUDFuNV+v2+2l+2jOAXzZc6N4jBlGn16wT992g0Ohb2SyuBjRJflnuYRa+hH2gme9nc3ITf78fJyYnyc/faLj0VmZqM2YKPj4+tgTHcDKenp0q+9mLuNeegu+3SlOkW1ed0XcqR49Lu7q4ypfE96WvAYi2sUxGLxZSWXofhcJRWncjFRAom5+D0XV9bplxvtVpjadX4XKlUwsHBAdbX15VVhBmsdcp9dHSE4XCIpaUl9Pt97O3tod1uY2trS9XkZNl7jqPX66ksWsPhKBmuKarRCsECwaFQCJlMBkdHR2i1Wrh79y7C4bAy3epIhfoPepd6hblCDPpCkMXS7fO6AmxxcRErKysqz52UEsfHxxcKXLpq4Fyi0Shu376t5GspRyZN3RHJCfSNrK8BEQO98qgnMINqKALp7enjs30mkMuhHE/3aT2xiI6k9ZTsJtLjf4ZQU4bmeDnHVquFarWqQox5UGyWCl3XkE6nVXSpmVJd/3MSAWu1mgpwIoU3+6vX69ja2lLWnWQyiddeew2PHz9GpVJR/Xa7XRweHip5nmIFfV+4tqY5mMjASU8DPKlDqseRcI+l02kMh0NVFFhPrCzEyOfh9u3b+MEPfuC84QyYG8SgJ6ZIJBJYWFhAJBJROffNfIv0LGSyUTND7yxU/mkAnX5YwiwWi6kUYLOMjxSSmYHpoRcIBPDqq68ikUigWCxif39/zLHFC9fkROVZWDiRSGBnZ0f59mcyGWWDJ0SjUZVdiJWvmJjUREbJZBKLi4vKMkDfA+oPWP2Jtn7GKThxgdlsFhsbGwrZ6IRBz67s843Kzump4tlmp9PB7u6uytTlZBFpNpvY2tpSkZFEnu+9995YMl36hBAhLS4u4md/9meRSCTQbrfxF3/xFzg6OppAPtPcoikKEim02200Gg2lzGU+SLMNv9+v3PRngblBDDrkcjmsrq4qTTUAZaUAnlgKhBj5uPf7/YmUa8Bs5sGrAJMSRyIRda3T6SjWU7/Hacz6C2632yiXy0rpRqXV2toakskkYrEYGo3GREowc0xmP04UlZmoQqEQFhYWUCqV8MEHHyAWi6l5cAzr6+uKxaWuYDAYTFgdgsEg1tfXVZ7JYDCIo6MjlEoltSZ6vQ6ugf6fn3WOjPdmMhnVFpHy8vKy0ovQjbnVak3ooygiOXEV/J5IJFS4dLvdxu3bt7G9vY1KpaKSr9DPYTgcIhgM4mMf+xju3buHZrOJjY0N3L9/H/l83pPOSn+PjUYDJycnyllLT+xSrVaRSCSUwl5HyiyKq+fK9AJzhRj4Yihr9vt9JXOamLDZbGJnZ0dl0GVOAcKzRgrsR9fQ1+t1pYyiLOk1vZY+fuZ6oMkUgArUImW0iQf6oTfbptyZzWYRCoVQqVTUpqLWmxYC2sm5EXVWniJHPB4fqyKmV2bmvYw8JcJnuXk9pNpLmLApLugxDrpuh2OnKMaAKlOHoP/X10dXoAJQHqO1Wk0Vf2FA2ObmJtLp9FhWaT5zdnamam1mMhnlwm5DPm7zZSJZ/Vqz2cT29rbyq9CT9XB9bK7u02CuEAMApcUmJXQqOkOWjXkM5wX0DV4oFJSpiolMdRv5NHZfv49/pG6DwQBvv/22ChBisVe2Y3IMJhfh9/uxsbGBpaUlSCmxtLSE7e1tFc1YLpextLSkTG/ckHob1ClQv6Cn2zffCcdPkY/sN6uc63N0W1sd2bGkITNQ6foNXYdB2Z+iBJ+3vQOKJcvLy8pCwfd4dnaG73//+3j99ddRKpXw1ltvKSTBSl2xWEzpf87OzrC1tYX19XVEo1EcHBzg+PjYmlTH6f1PQx5CCMXF6ZwC50dTezgcdlxXG8wdYtDlvkgkgm63axUTeC8wGQVnKm4I00x0VwVsv9vtIp/PK49Arxvf/OzEWp+cnChFl+lt6GTlITBCkWsnhMDy8rLSIWxvb6t0bSanoLPgrOHJ8F/T159AjknPd6iLJfra6AfXaW0BKJ0EWWvK6bQQ0HJBtttEnFwnPY2bEAK5XA4/8RM/Ab/fr5SavV4P7XYbb731Fj766CMVjDYYjArIlstllUlLSqn8EQqFAv7iL/4CCwsLKBQKyl2cv5vv2twLThwN81oEAgE1Nv05nXNloNcsMDeIwVyEdrs9JjM73cv7TdCvsaiMHot/FTHr04BKJTeENI1ltukKuPlt7C+tOdMUWvydMRS0dFBUYRZt3qc/p39mDoV+v6+iIo+Pjyf67vf7ODg4QLfbVe7luqOPObZpQK6AQU+mfoD7R19H/cAwHicUCqHT6agoWCFG6dfj8TiGwyFWV1eRyWQwGAzwwQcf4PDwUIkJ+gF//Pgx6vU6wuEw6vX6WHLYfD6vXJepj+E91ImYLtlO60Ddyvr6ugo9r1arODk5mTBxso1erzdzpvK5QQzAkwPvhCXNg2JuUvOQ8TuLeXAxqWmf1RtsFjCp30Xu0w87gInDpj9LhRutOd1uF7u7uxOUgs/Qi5AmsH6/ryIjgVGR1NXVVZUxmUo7kwuhWbRQKCgXXVs+QilHuqOjoyN1CMw6FPq8p62X03entWUSl0gkojJi85BSm88DD0CJfKwPenZ2piwCUkoV0JVMJuHz+VAoFJSC3OmAZzIZVS+TiKderyObzSpuo1qtKoc0tmFDaLpeiaUObP4xbkjGDeYKMejghbq6aa/5nfECn/nMZ/CpT30Kw+EQf/7nfz7m9vq0wDZeE/npYzXv5SZgCfrT01OUy+UJMYEWkFu3bqmNSt0MDzrZZmY0ZgwKFb1MH0bzLzcrMDJfmp5+OidQr9eVW69uh7fNT6+kZFsbG9gIhNM6O7WRyWRw9+5dpFIpVKtV7OzsKMUtlaFMw3d8fKxMwp1OB+FwGIVCYczHgd6ZjHPw+XwqaMpGsJjghYieIlUsFsPKyor6LZPJjPlC2PYQ9TRmP06io5NY5gZzixh0cJM5dXCiuPfu3cPnPvc5AFCs7DRKfhVj1v8SiYTK6VCr1VwrKnGe8Xgc6+vrSKVSSgZm+i7z/mQyqTT+LJLDDRQIBBTb3Gg0VHQjKdTKygpWV1dRqVSUcozyPy0TmUwGJycn1gOvBzHp/00wrzMcOxwOK4WdrS6jbW2c1tu0JnDd6FlJar24uKhiRwAo6wr9Ax4+fAi/34+9vb0xqwz3IUUuWm/oqWnm6CAQeRB6vZ7ai3ScogKXpl9TvCZiL5VK8Pl8qr9isTiR/4HIxwkRT4O5QwymqGDKhl6wormh9PLip6en2NnZeapihDnOSCSCl156CZubm5BS4ujoCB988IFyj7U51VCWjEQiyjVYjwnR10kXOSgzt9ttBINBRCKRsVqGRByUzYPBIFZWVpDL5ZBMJtHr9XBycqJqcbKEnxNFtyEKcx42MYGs/ebmpgo46na7uH//vtI7mMTAJj/r+yOZTGJjYwNCCJX9mhaParWKBw8eoNfrIZfLIZFI4PHjx+owmuZYIpZ6vT72fni4m82mqiJNztSNcOncKRFyq9VSvi56KLse72AiB46JZtLhcDiRwCgUCqkkR91uFycnJ2g0Gi+mS7STjoAmIG54+pHzdzrL9Ho9ZbLRN85gMMDW1ha+853vIBAIYG9vTwUYPat5EbszWQljH/RcE/rm4zWG9dZqNVSrVVUKTV8fAl2tGedPj0T+RpMi8IR60YtSp240azWbTRwfHyvZVw97d9PtmAjEVJrq1+LxOOLxuNKuA3AURUw5Gxg/bDS/Mi6l0WggGAxia2tLUdNKpYL79+9jfX0dQgil/AyHw2O6EaaPW1lZwcHBgVLcMafncDhUZsxOp6MSrJAjsQUuMdEQTfBUPFarVZRKJZWroVKpTDiHmQSPpnrd41Jf23Q6rcoKMKpVTwzjBeYGMQCTm4yZb1gsttfr4fj4GJVKBUIIxRJS8VKpVNSC66zXyckJvvWtb6mcjW4p4q56PgBUuXr6zR8eHqrUXkR+OnIgNBoNfPTRR6rknRkLwOhSAKr+YTAYVIlRgJEXaavVUoiQnBMPOHUL1EswiIj+JExvbkvgYrK5+uE1uQadIvIvn88jlUopH/+9vT1lYrQhG+Y8WFhYgM/nw/Hx8VgMAvUFnGMkElEImP2zLLyOKE1TJl3Cb926pULFE4kEPv/5zyvz3/b2Ng4ODtDv95XjViqVwsHBwUR2KGA8l6WO+Lg3OHazngV1HdwbugLa5M4IRJx0lWaSmFlyMswVYjCBmW6odQ0EAipFOVOsUT5jggy/349SqTS2+IPBYMy//1kgBeAJpu/1ejg4OFAyOhFXKBTCysqK0noXi0XF7nET6FjeRAqZTAaLi4vodDrKcsCMQUR+zAVIJaSeXlzKkZPQ7u6uisXQS82RrbVxciZFY07DZDKpkI0ZzGNyGs1mEx999JHKm6jHw5jchRAj9/fNzU1FdX0+n7K8cF39fj96vZ46HDrS0kUEm8jD/wxM0pO03L17F5/85CdVKb/j42NFnJaXl9VaVyoVK2LQqb25jnq4tI4Uw+EwFhYWEIvFFAfJCFW9PZMrYyJbiqDhcFith1eYe8RA1pYblCw5E37oxVL0+gr6hnbDrk8T9L7oO0GgTHznzh0AUMVpDw4OHGPo9U1O82s6nVZhwwz7LZVKat3Ozs7QaDQQiURUII2eiJTp6oiQTFbeSemrX6PpbnV1FclkUnFl5XJZJVLR10NXDrJqs7leNmSUTCZVaXcixlarpdbs6OhIcQlEqk5Vucy2aaEYDocIh8MqAzdDp0OhkCJADNHmHOgPwspeTvPQ19WGKM33nEgklIihlyPQncLoR6Fza8zdubKyorhNcn5ewTNiEEL4AfwAwIGU8heFEDkA/xrAbQCPAfwjKWX5/N7fBPBlAAMA/0xK+ace2rcP8Fz2JDfQ6XQUG1iv11VgEeU7wF0r/qyRg963DtyM3GxSSqRSKRwdHbkmnQGeRG7G43EVL8Fkn4yr4EEnG83kHzQv6m27ZQGyyfv675Rhl5eXlWWE1Imu1HT2sbVnHiKbqMLPeio17oGFhQUUi0V1GDqdjip/xxoVtvHrCM/n82FtbQ337t1Ta7W1tYVms6lY+0ePHuGjjz5SPgv0haBzUSaTwenpqZVbcIJp+hqOjRYLWnFMJazN/bxcLqtI1U6n8/QQA4B/DuADAKnz718F8E0p5W8LIb56/v03hBAfB/CrAF4HsA7gz4UQH5NSuqaSsVkU6E1Hcx03NjX5tVpNHQpgtMFN/wSbNv15IQcdyPKVSiUVIWpDCDZ2lwlbhHiSplz3U6BWXn+e+RCoPzAPn5sC0YbUzP9E4HT5ZYAVr7utOe/XA55MRDIcDlEulxGNRrG8vKzYfJ37YQo7EwE5ITf2EQqFsLa2pkyO6XQatVoNf/M3f4N2u61ykP7RH/0RhBDKKkBRjEFMZgYlcw05z0gkgmQyOWZhMEUC4ImJle+82WyOiVtEzJFIRGVw4jumZ6nOnc0CnhCDEGIDwH8G4LcA/Dfnl38ZwBfOP38dwLcB/Mb59T+QUnYAbAshHgL4LIC/dmlfscO6DZvx/VSiSCmVmQeAyg1J5dlgMBgLUmLbwLiDj40iPQ9ot9t4+PAhstksfD6fyuSjg22T8TqpJ2MPYrHYmMbaVGY6uUjra0T7t5kw1ekZAMr/gM8CUOnKbDK1/p0Hk4VuW62WssvrfZNj2N/fR7vdVpmUbTkf9YPjtH4mkHWnOJpMJlWhGmDEebFCl678o45A9yPQKTj75/7L5XJYWlpCIpFQ4g6VqOZ6M/KU75URtvoaJpNJLC8vq2jPYrE4ximZOhuv4JVj+B8A/LcAktq1FSnl0XmnR0KI5fPrNwB8R7tv//zaGAghvgLgK8CTMmKk+HraLirUuNi60wq/m7UWTaDNPJfLoV6vKwXRNJb9suBGdYEnmX5ZB8Hm8GTb0KwHQTGC+QKXlpawvLyMZrOJw8NDVTvCy/wYqkwkVa/Xx4q32Nh/HhKWamdgjxBCBfbo71LnAogUEomEKogDQGWNstnyifSOj4+Vht2khjYRySQS5n101WaIfCQSUfk5zf5toI+TzlpMsKMjeopdiURCZR1jghU98S2BMQ5MLaBze1w/+rrQjyKbzaLb7SodHJMBzwpTEYMQ4hcB5KWUbwkhvuChTRtqntiZUsqvAfgaAEQiEUlsTQysa2n16Ldpm9zGLUSjUdy8eROpVAr1eh0LCwvY2dnB2dnZzCzWRcAmGujjdEvYaVI8rkepVFIWGWrDV1dXsbq6qvwTms2mtQCJre1UKoXNzc2xSlUME9fHbXueCO7w8HAsYpEh0eYa6++HCjbdz5+b3/Zu9P3gxAXY5ktKrvtA6CbAw8NDtFotrK2tIRqNqqI8+vNuOhe6VW9sbCCRSKhYFfok8NC+9tpriEajyOVyGA6HuH///pgbtdm2nkTGnKMuIlIJyeQ6q6ureOWVV/BXf/VXePz48YS37DTwwjH8LIBfEkL8AwARACkhxP8E4EQIsXbOLawBoJF0H8Cm9vwGgEO4gBBCpa2SUqqyYzq4IQSdEpn38jpZW2YQymQyYwlCrpprMGV2m2LJTeZ2+51s5XA4VN6KzCK0traGcDisKLfZv7k2wJNKRXyO1gIppfIfsWnXTWTllJzWbY5Ukuruu2a8gW1dbAfFhih0MSmXy6kckcViEZVKRREjppqnw1MymcTCwoJi302PUxNhB4NBZZVhsJWuX6HJ84033kAwGMRLL72EUqmEN99805oKT+/DaS2kHIWU01JHx7nl5WX8/b//97G5uamKDNHT1StMRQxSyt8E8Jvng/kCgP+zlPK/EkL8PwH8GoDfPv//R+eP/DGA3xNC/A5Gysd7AL7noZ8xJcysCkKnjcFNXi6XlclH12PYnrkskrCxrrM85zQuHah81TmCYrGIBw8eIJPJIJ/Pq8PttMH0cfKPSV+EEFhfX0ez2cTJyYlCDjYEY2vbbNd2j5RSZfim63WlUhkzxzkpj53ac+o/FAohmUwilUohFoshnU7j8ePHE7kyhBC4efMmbt++DSFGLvQffvjhWMo0N3GP5sxms4lms6nWivkvOp0OVldXkc/n8fbbb+P09HRMbKL5XRcbbISO86VZmNnIidDoan779m3EYrGrRwwu8NsAviGE+DKAXQC/cj7Y94QQ3wDwPoA+gF+XUywSdBjp9Xoqom2Ww+lEKdjGYDBQHml0kGLGI1OOvSy4US0vB8o8xDbNtimv875er4fHjx9PJDbV79FZan0DHh0dqQpb0WgUmUxGxWnoyiyn8TghMka3CiGU96YZN1AoFJT5UaecOlLQx875zRIdqysFSVmz2SzK5fLYwaSuhen6o9GomqsTpwKM9nA+n1cK3JOTE0XopBwpTh8+fIhwOIxer4ejoyO8/fbbY6XoIpEIbt68iWAwqBzeTG9X870Bo/0dDofx0ksvqaxcq6urKBaLEykPvcJMiEFK+W2MrA+QUpYAfMnhvt/CyILhCXQPP93z76JgsvHAE0UO9QrE4mRhdUXkVSEJHSh7MxeBV73JLL/pcrkNwfBwpNNpVUa+Xq8jn8+j0+mg2+2qnAF6hSTTMYuKUv2a/p9ryBRpzIPRbrdxdHSkErkQdCRmA65bKpVS+QyYJ8KL7EzK2mq1kMlk0Ov1JrI66fcxoUyj0RgLxDLXQEfSUo4sZuQSzFoeg8EA+Xwe9XodP/zhD5VHql6Bil6UkUgEq6ureP/993FycqL6ikQiWF5eRiKRQK1WQz6fV4iDtTao7/nOd76DR48e4fvf//5EjI0XmBvPx8twCNPkWP0eeqklk0nkcjmlbMvn88rv/jJIwYnNZNzH8vIyfL5RTcNCoTCRFn8aUnLiJKaNhZsrkUgoqgSMqOfZ2ZkyARNZEikwxTupFHMI0M3aNh5+pzKOgW40qZVKpTGK58Qu6/+TySTu3r2LUCikYjoajcaYco8KOJuykx6hVMyy8rdp0WChmMPDQ4TDYSwtLSEYDKJcLisOIBAIKAezcrms1oiRjk7vREdItvfMNeH6M4yeup61tTXl7crEOUSyJycneO+995Tj1dbWFra2tpQX8AuLGNzAtvl0CqhTX/13sw1uIJpHqYjkS/joo48Ux3JVXIO+aZkNqNvtqjwLu7u7YzZsN47FTRRxG6tO0RnNSE863d+BVI/epAw5XltbQ7vdVpaPTCaDbreLg4MDFTrMQDY9OIzuyTSrTkMEbnNiujVdp0InJ59vVGl6dXVVlYHTlZp8llW/3XxZyM0JIbCysoIbN0aW9kKhgIcPH6LX66mydsyyvb29rUyKtnnoSt5wOIxIJIJ4PI61tTWUSiU8fvwYg8EAtVoNjx8/xtraGiKRyFhAmR7rQD2GHrJNh6xHjx4px0BbxWyvMDeIwY0CmgghEAiMhexWKpWxF6MrnGjL1c2fVAQxa44QArFYTPnIuynZZgG9DdrgSakp4wYCAXz44Ydj1Ne2Hk6Hx9QzuK0r8KQiFM2Zx8fHY74KjPZjghZGtnLdUqmU0j0Ao3yDepoxRr+yL5o+hXgSBGS6KU9bYymlMr2SY2C8AjBKbfbGG2/gs5/9LOr1On73d38XhUIBwChz0+3bt5FOp1Gv17G/v4+TkxNrtKg+FnILTJibSCQU8tMtAAsLCzg9PbV6XOptEincuXMHP/MzP4NXXnkF6+vr+NM//VMV60GHPs6TYgk5EdbNKBQK6l7d5KoXgjYRwqyK8LlCDLqM6oTRhRjZg1dWVsai38yS4KlUSoVkN5tNlEolZU7jIWVxlEAgMGazd6LWOsyKMOh7QK6BbqusRahXXXJr32kjO4GpsKzX6zg6OkIgEECj0RjLJMW2KLeyLgPNbplMBp1ORx0SOvLo97B4K/u6f/++4kCazaby4Tfn5DQfjv309FSZHCmO6GvWaDRwdHSk3inwxETJzFnMUVGv19W8dX8Ive9Op6NyYvp8PqWsjkajikKTpfcahxCNRvGlL30JP/dzPwe/34/79+/jb/7mbybEmUgkgsXFRUgpVVzGYDAqTkyXcyIMcy+YTnsXJW5zgRh42BkmyhBcm3MHlTR0KQUwkXqM4dqkZPTBp4xI19FsNos7d+6ofH2mM48bJabM7TYnAtshxbp586aaq26e8wJelZE2joOUh9QUwBh7r99PisyIQyojGVSkR7gylwPwBKmwDeYgYF9OazpNd0JKSc5QV1g2m018//vfxwcffAAAYxmgaLnQg6/oZ2Cujw79fn/MnNlut7G8vKzybzabTVQqFRSLxYlQdad30+v1sLOzo5IHPXr0CIeHh2N1JqLRqCIeBHrp6p6cuijNft36nxXmAjEEAgGsrKyoeAhGtekhuwS+JOYjJKUyI8y4WbmYFBWo7GPmnE9/+tMIBALIZDKe2S1TK+10jwn9fl+x2nSJbTQaE5p1J6ppfnYD86Dpz7iFdfMZRhnSoy8QCIy5Sfv9fhXglslkIOXIJGcmIjHHymhSImszzsGctz42Wo/MNRgORxmVGo0GhBBj9SUKhYLKEk7ZnG3o7ZiIcTgcjkVz0oQbjUbHckUyyMrL+2g2m/j3//7fq+Qx/NPFX4aWk5O1WdiEEGOl50hcnCJJZxUjgDlBDHr6NuCJzZn5/m2bIJFIIJvNqgg1vT4BqR3t51zkWCymTFQ6NctkMmOVepwor03UcQInysgkJmapOqcN6tTuLDALUtHH0el0xqw15OL0/AksUBOJRJS5juy53he5uGQyqZS+7XZbBf3MguxsEI/HcfPmTQBP9By6Qo8p17n2Xt+h6Xqtcz26i7WXsROhmFReb5/5KcLhMBqNhtIB6WONxWJYXFwcU6qenJwoi8RVwFwgBl1eklIiGAwqjoC/m/IfHXJo+jMzNNXrdSVyMCQ2GAyqvohgvvvd7yKTyWBra8uaHp3969jaKdWWDqb4o183g3tsz1yWJTQ5BS9UQ0cKXCcqbp2oqx7qrDsc6f0yh+Li4qKS9ZnxiUo2t0A4XRlsjhUYIZ27d+/i53/+5xEMBvHee+/h29/+ttIjtNttFcfB9XfjqGzfmXtT19k0m82ZApTYtykSMM8CA69Yha3dbo8V4QUwZmpnvVD6NTDlobmPXliOYTAYKKxIs1av15so4MnPdOIws/oCT150u91WFZL0SscmkAJys7phXEbHra6uqoi2s7MzHB4eTlgV9PFKKRVyMJGgDa5KTvTSpn4wbAdPZ3PN50wkYL4HPsPYFCZS1TlD6i6cDqgQYixqk3vDzNvZbDbx8OFDLC4uWuducyiziYRO75ARmMlkUtXhqNVqE/qhaVyZuU9ZOySdTqPf76sUfWa0JRGIEGLMKsMkyHpBYls/L6RVgi6i1HIDsNphbay8OWG9rkCr1cLx8bHCxpTluRkymQw2NjZUmnWzOCz74jMMULl37x7i8bjacIlEAh988IFjklkdOVAvYib1MPu7LLhRCieRSKeG5lj09qZtfpPD4vPMyci2mE1KNyWb7YRCIWxubqry76yNmc/nVRCclBK7u7s4Pj5GMBhUhMM2Z34mkk+lUooDZMCUjrj1uZLNdzJLXsQCwMI18Xhcrc3u7u4Yl8DUeZlMBu12G+VyWTlgdTodVSjIxq2Zc/cKc4EYpBylotIjKs2Fd5qcvmHpl0/RgZvOZPd0Fo5A5ZKtxh/HQs6GLCkVacvLy8qxhPfbnhdCYGNjA6urq6hWq9je3p4pFZgJs1InJ4SnHwA36uf2PvRnbWw4g3jo/SiEQLFYVKn8bYeMyHtpaWks+lIv78YDxPfsZlHSP5ucn9/vRyKRwN7e3kT2K9sczXHyUJvxHm5Ajol+IsPhUHk7sj8hRiHxGxsbY5ascrnsuO62s/JCcgzAZPZc4MlEqeSxFdjQ2dV0Oj3mzRiLxVQGKBurfHp6ir29PWX6pHOI0/joZHJwcIClpSWVEZnmKvOQ6cAXGAwGsba2pnziHz58OOGc5RVRTKNYtrbcxqjfM2vftn75nwVuWOuB3APjMJzENyFGjmfBYFAFT+k1Gs2+p62bLhaRe2MGZY7BiR134sB4cJme7+zsbCaPQ4oNwBNLmrmWdChjhiv6wEzjDLyuiw3mBjG4bdJIJILNzU0sLy9PUFq+MPqY07og5chBh041tj46nQ4eP36sMPa0ehNSjhRO77//PhYWFpRVhJGh04A+7R//+MeRSCSwuTlKW8GgGrd18AJOh9VJvDH/u3EItmf1+83DYyJhhiKbh27afKmAY61HJoAxWX4CD72utzCL5/p8PuX0Rk9Gxl+wRoStWrYJFHWoPwFGXOvh4aGqnO22hszEtbOzg3Q6rQ6+af7UUx7qNUL0dRbiSTYn6h3cSv1Ng7lBDDqYGyyVSuH27dsIhUKIx+Mq1l1fQGp04/G42kAMCNLbZZt8hg5PXscFQGm5T05O1HW9bScKKOUo/8D29jY+85nPYDgcKscuW1WhpwFu3IJ5AJwUWbb7deWYfgjN/maZG7k6svkMya9Wq8o0ZyKFYDCoDhnfPbM3s00+x2hbhlczkQstGUdHR1MPeCQSUYVtde7Va1Ej+ksUi8UJ0yf71QvVMNkxfyeEw2Hcvn0b2WwW7XYbZ2dnODg4uHBxpblBDDZKQrav2+2OeeGZB48bkFSAeQuJOb3K4m6UwUZhbW2aWm4T+v0+Dg4O8MorryAWi13q4NjG5+WeWUUWtzYpX9M/ARixx9zATuytOQ7zPj3I6/j4eCyZr5OJmJWqWCyGcQ5SPknYao6FBIT5J3R5X68QZltH4EmCXYpIHPs0kc22LvQwpVs3A9w6nQ52d3eV0tomHtIMHIlElPMcIz8vAnODGAj6gvKP2YFLpZIKWLFtcmqWWdCVrJpO8WgzpjxHSu2WG2EWltqch+1eOt3EYjHs7u5azbKzgNtzbtyB7T6TO3BDlkKMPPBWVlZUnoR+v49EIqE2pu0A29bFpPy8xvc6Te/B8dBXhZ6VvObmiEQxRfcvmOZJyLExqzX70q0sXoDzohi8traGT3ziE0gmk/h3/+7fIZ/PQ0qpxBobwiHiOz09VbVGhHji2MeCNdOSJuswF4jByY7NnPk3b95EPB5XHm1Oufv5vG7n1jcmbcarq6tjPgiMjzf7nwWmaYL1l9hut/GjH/0IPp/PKjPOMoZZuCGv7XmFQCCApaUlldcCgJLfyVq7IQWnvp04OF1/oGv/dQTSbDYRi8UUu80s2m7iIvMkML1ct9tV+gcbwtKzSNF1vFqtqr6cIjed5uvz+RAOh/Hqq6/iC1/4An7mZ34GoVAIh4eH+Pa3vz1m7bJxWFKOlLn7+/uo1+tIpVLKPfzOnTvIZDIAoERfLzAXiEHP3KuDEKM8/C+//DLC4bBiVY+OjhypIN2r4/G4ygxF5yMiGbYDjArH2kqkzQJuVNX2OynNtD69IInLIDKvlNvpecrXAJQbLxVltnToXudiIgP+pdNpZLNZhEIhtFot5PP5sXdHEyatGRQDqtWqq48JQ5hp9aK4YooQQozyWTBcvtVqqTgFPdLzImJhMBjE5z73OXz+859Hs9nEX/zFX2B7e3tizc310b8z6rRcLiuksL6+rnQzs8BcIAYd9MXkiz47O1O5+Ck/8UXpz/Ha4uKiioKjiynlSxZDZd0D3WEFuJiTit4/29DBZI31eZpczSwHaVawbVonWdiJ2utzYzAUrxMplEolleTlqpBtJBLBjRs3FCfCAKK9vb2xTU+zM+M79LmabZvvQI9ytCF7+qzQS5aJZY+Pjz0heoITl/uXf/mXqFQqODw8xP3798e8GTlGfd/brgGjPc6cJbSwvJAZnJwWk9j+/fffV8ohskPRaFRheCGEinITQowVASVlY449yvTD4VDl4HPL6HORefBlmSKSrsgyN+Vl4SLchU3UMa/rv5nX9aIspKClUkklEpnlkDhxL/xdd4vmcyxWc3JyMvEOzRyebv3oY2HZeHJ1OiegB01JOVI4RqNRhMNhxZW66SScgDqChw8fYnd3F8BIvDGVpRwDa3Pq1cSB8Zgc+tfQOYwJgrzCXCAGWzQeP9NppNFoKOeWZDKJz372s6qQaLPZxKNHj1AqldQi83ndHMksN3SlddJuXwWQteVmYh1HvSQ9YVb9xlXoQ/R5O6292Zd+UKkr2d3dVVW09VL2TkjICcnYxqH3y6pWjCngfTqycJqrDcw5Mifn6uqq4gioJOb7ov8EdQKMvzEV3NOQj+39MUUAs3Qz/R73EYG5L7n2unOULgpJKZHP57G4uIhYLOY5CpQwV4jBCfx+P1ZWVlSOvEgkgk996lNIp9OQUiobLzPdsGgIk3iaiGJaPoLLgEmFqdt46aWXEAqFUK/Xsb29PRZ0NY2F9zLOWcbuRtVsCkBzXoTh8EkZe5s4NE0ha7tu+53UcXd3V2Wc5ma3me/MOXpZ01AopEKz+YzJ8Q2HQ6WUDIfDqNfrqpweCQAJDg+nKaY6Ae9JJpO4d+8eUqkUisXiRMW0TCaDhYUFpWNpNpsqepUVz2kNajQa+PDDD5FKpTw54OkwF4gBcH55TBTycz/3c3j55ZfRbrextbWF999/H6urq0ilUmPKH3IFxOzUEk9j8a6Ka7BtSOo1aGdutVoqUMZGIZ8lmIo+/bMNUfA3/V6b/Ookp18UuNEfP36sCs7SRd3p3U4DHRlx7zAWhgF1unxOBKUXtwWgcj+yzGKpVBpLHaeD7o9hjoUEcGFhAZlMBvF4HJFIBD/60Y/UfmYffEYIoTKRBYNB5UPCvuv1+kTuDy8wN4gBsPv6E5gVl/bY7373u4pydLtdFAoFxQnQc23a5jA37kUVR9Pu63Q6ODk5UTUd1tbWJoLGnhbYFKs2haPtILtRcYLbobwoUnATlVh5iXEtXkRBHiBTfNLn0Ov1cHJyoorrMKTZJhbxGrmE9fV1lTS31WohHA5jd3dXmQwJlPWFENZ6HXTKop8N84GGQiF1uKWUqhAy82QwOtMM4CKXc5H3MBeIQX9xtkkwk1O73cb777+P733vewpr06ZtK1piO/j6YdBZRf0ejsnLhjOfs7VDFjQajSoqsLy8rCo/TZPHzd9m1UWYY5qFS2IkqQkX3XDTxuame9APtxs3ov/GHKHJZFIl9HGaT71eH3Od1v87tR8KhZRbOwD1PxaLjTmuBQIBlZiW+Sspgpl6m9PT07FkQHpJe0apMoZEiJEDF8P4bZWnLsKFzgVioOupzQccGCUY/dGPfoT9/X0cHx+rAh9uSh4dbPcRQ7MEmR684kaF+CL1Py9Ui6XO+cKZOdktX6CTMs4rTEMspihlrjsRJ5GbeSCduLtpXJWu4ddzc7rNzUn3YFsjnWMJhUJYXV3F4uIi+v0+PvroI0dTqm1dnJA/OYZIJIJcLqdyiTBZrvleY7HYWIEjU2lJBMAM3uSMDw8Px3xCWOuy3W4rb8tarabKKOhm2ssoqecGMZAyUQ5nfARt48fHx8jnRwW1Z4kaczoclM3IAhYKBeTzeU+JPfU2nDgMHWHwYJ2enuLo6Ai5XG6sApWTJvuq5HMnBDDtIDLfhJRPLD1eLABunJQQQuXNYJIUOgqZlaFseg4vSEe/N51Oq34SiQQWFxcn+nGai6mDMN9TMBjEq6++ijfeeAPD4VCVvS8Wi4rzAJ6ksc9kMojFYqjX6xM5RrlHqtUqHj16hKOjI2UF0fckrXS6mHBycoJKpaLEH/apr8WsyGEuEAMhk8lgdXVVTSqfz6u6e0QQhFkmaqMqZAEpwy0sLKjF9dI+2UNWMLbVUDQPYKfTwfb2No6PjxXGn9bHZcHc3Hq7TgpGfo/H49jc3ESn08He3t5UX3shhDLL2uzwwMjfIZvNKgclJknhf7LCHAu5OtbBMCuV25CoPh9m7iJn4pWoEIGRs6O5VOc0IpEI7t27p2ppptNpvPPOOyoMn/fRa5dxDEwIa4KUT8LTdTHEfF/m+G3Zpi/DLQBzghjoqcXFI4ZMp9OoVCrWfIpeZW3bwaBcRraeLBktBl7aY8m5xcVFFaKra7DNwh/8rCMRnVI8bZhGeYHJNWW9DgA4Ozuz1r/Q1yOTyWB5eVnJvPv7+2Mp1oQYuSonk0klytE3JRwOI5lMjiVYFWKUwenv/b2/h3A4jDfffFM5M9nGwM+hUEix5rVaTflZtNttVTfTNnfzezabRTabRTgcRrfbVZSZa6AfcHK5JvLhXiNXzATHtrIITu/GPOjmntKRKPUpHE+pVPKc4l6HuUAMXOB2u416va7cbBlg5IQAZlHE8X4CA2dYS9ILBQeevDi/349cLocbN24gHo/j9ddfx/3797G3t4dut+soM9PpyTauq+AQbOO1fXdbUwJDjwOBAJLJJIrFomM/jAxk3gRmbdIrSvPQhkIhFVdBykziYK5NNpvFq6++inA4rKJrdRdoEykkEgmsr68DGKWRr9VqODo6UlYrfT/ZDiCBVgFaEci56GHMnU4H7733Hr70pS+hWCxie3t7ojYm15FlA1hFW68Axr51IsYcEUI88eo1uQf9PTJAkAGHTIUXi8Xw+PFjAJgpo/VcIAYASgZvNBpq07il5571EJnKQsb50xmq0+k4aqxtQL+E4XCIVCqFl156CTdv3sRbb72FbreLd955Z6KylflZn8fTQAomOOlb9N/172TBqQwz9SYEcgtMB0/FmUnd+Eyv1xvLdUBkYLP7n56e4v79+1hdXZ3gPsz56LK8Pt5arTaRj9NEKDplN8UNfjadqXq9Ht59911lIWMZRHNczD9KoH+EuS4cRyqVws2bN1Uo+8nJCR4/fjzRv/45Ho9jY2MDqVRqzGsyEolYrW/TYK4Qgy5jAZh4OTaxQP9uu87/DHoxM+vWajWlyZ3lcFIxNxwO8ejRIzQaDWxsbOAzn/kMDg8P8aMf/WiMXaQyj3O9CrgqTsNJqddoNFAqlZQbstkvgcpEHnYeLpsI2G63lTKQLuKMYzGTikg58mp95513cPv27YnELyaLTSTGg51Op1W5exuB0fcHxSAWOjo+Plb1MugrYybuZdaw7e1tq/zP9ofDIYrFotKfUFdhG0s0GsW9e/eUSMZgqFKpNMaxmfs8Foup9aSuh9HFmUxGZWL3CnODGIBxf3wnWZb36de9WAhSqRRyuZxKuxWNRlEsFq0KMjfgOBik4vP5sLq6inv37qHb7eKDDz7A3/7t346lqicrLoQYU65dxYF2G+c0EcxUPpoHvtvtKk9DXba2tUeqRCUfay7o9wBPqo4RkYTDYezs7OD09BSRSATBYHBMx5BKpfCZz3wGb7zxBo6Pj8dK3DOZKxPy8KCS0rbbbYUsTPO2noaOYiFDyGOxGDqdjvI1YI0TW/o9EjN9jiai1V3H+bsT58JqXXqQoEkgbe+KVcwBKI/Q4XCIO3fujKWq8wpzhRiA2a0NwWBQ+c1ThjM3O5UydIYKBoOIx+MqR78Ti227zrZ7vR52d3dRLpeRTCZRKBTw1ltvqUKn3CzMAbG2toZer4cPPvjgSjwe3RCh1znYxBhzQzcajTE9gQ102V0IoRLg6NeAJ+wu3ZnJujMgiZRdHxdzPmxvb+Phw4eKm/T7/bhz5w5efvllVKtVvPvuuyoXZCgUQiKRQKfTGRMjCEzlRo9CIhqfz6fqcuprQKXxNF8Lmz5H5xqc7rVxPkQizWYT+/v7KvDPqd9arYadnR0V6RmLxfDaa69hYWFBVcieBTwhBiHEYwA1AAMAfSnlp4UQOQD/GsBtAI8B/CMpZfn8/t8E8OXz+/+ZlPJPvQ7Ii7ac1/x+PxYWFpSJs1qtYmdnZwKzU0Ot+w1QO2xr34aVbUofHpq/+qu/wne/+12lJNIrK6+vr+POnTtIpVLI5/MzR7k5gZOs6XbNpmybhoilnCypZzsALBd4enqq7PgmgjaduqhfCIVCjgFRxWIRb775Jvr9vnLuAUYWk5/+6Z/GysqKeg/k1A4PD9U625ynmGyFyYUPDg5QqVSU9aLZbColYqfTuZSp3NTJTHv27OwMH3300Vjche7Q57QnGSNEri2VSkFKqULgn2Y+hi9KKXW19FcBfFNK+dtCiK+ef/8NIcTHAfwqgNcBrAP4cyHEx6SUrvYSm5yr/2YCD3cul1Np3AOBgLWACReNIgQ3oVuxFzeNNZ/hhtP92HW2j+G5Uo4iP8vlsicF56zWFrd29PE6sa/6vGybz3zOHB9dvnmYnNy8iWQYVEZWPxQKKTneFLGY4h94kniV68qgIiEEbt26hQ8//FClcbPVnjCVjLzu8/lwdnamqLRer1MPwruM+OfGTei/93o9HBwcjHEaTv3alMFc40qlohIcCSFca6bY4DKixC8D+ML5568D+DaA3zi//gdSyg6AbSHEQwCfBfDXbo3Nwurw3kgkglQqpWy2lMlswKCTarWqMKx+r42tNsdlviC3jcKXRm9Kv9+vZFa9HxsSuCxScFPOmvOyiRGmmKHrcczf+LutoK05p3a7jWq1qooC8Tm3GAbK8OZvjUYD5XIZ2WxW3adXcLKtgy5CsV0hhHJS06MQ+dxFajM4rb9tbk5jNOdBMZjfzXZM5F2v1/Hw4UOlOJ5VfPWKGCSAfyeEkAD+31LKrwFYkVIenQ/sSAixfH7vDQDf0Z7dP782BkKIrwD4iurAQaliPKOURsFgELdu3VLKlePjY+zu7lpz27HtwWDg6uihj0Hvy4yCm4bB9RdbrVaVqcop0OuqQd9wTqKZ7TOftcm/LKwSCAQm3JdNhGBDNhQ3Go2G8mNg8lXmTXRaVxvibLVaeOedd9DtdpHL5fDgwYMJz0yntaUIQ85DNyWaSMWU/72IBF4Qve29OHEVtoA101lKfxe8l/UoLgJeEcPPSikPzw//nwkhPnS513ayJ1bmHLl8DQDOEY7+28TmpU4hGo2qBC3ZbBaJRELFINB92kbZ9P9uL5f9JJNJJXOWy2V0Op0xc6MTJdLBtMvPQnkuK044cQhOG93teyKRwEsvvYRsNqsclx48eOCaANW28YmYGdZMn383TsMJBoMB8vk8arWaykNgKi71w63/pyMdrQ+6SMn1YQ1JBkTRCU/nki4qWujcl77W0zguPsvELOvr6yqb9OHh4VgpBFPMsLlgu4EnxCClPDz/nxdC/CFGosGJEGLtnFtYA5A/v30fwKb2+AaAw5lGdQ60JjChpZQSr732Gl5++WWUSiWcnJwob7N8Pq80ypFIZKxgh00EsAFfVjwex/LysmJ3eQByuZySR/UgKP35i24WE54GJ2FuRl6jmZA+BWYg0+LiItbX1xX7zVLwtgIu5mcnauv2Ppw4HfMeehPa5uU0LgAqfwdL03HObCeVSuHTn/40IpEI3n//fVQqFVWflP4riURCZSC3iaROoHNgyWRSmTL1tPMmsjWJRDgcxs2bN5HNZhGLxRCLxVSgIcUu04TKzNpeYSpiEELEAfiklLXzz/8JgH8B4I8B/BqA3z7//0fnj/wxgN8TQvwORsrHewC+53lEeMImUaMfiURQKpWUTT2RSKDb7eK9995T4kOr1YLP58Pm5iY2NzdRqVTw+PFjRaFMd1jzBepcSSqVUjZt+r9ns1ksLi6qF0q/eRM76+D0Yl3W2vqc2ybxwtrq89OfAUYONXfv3kUikVBWnUajMcZG03mGykG6j0+j9DYxxct6OB1ynfLprLMNkZhrpgMDq8yYFb7/hYUFbGxsIBqNKqUkYx1SqRSWlpawurqKQqGA+/fve6o7qr9LhoJTP1KtVnF4eDjBjdja4B+dn4CRP8fi4iJKpdIYctE9HumL4hW8cAwrAP7wvIMAgN+TUv7/hBDfB/ANIcSXAewC+JXzAb0nhPgGgPcB9AH8upxikTAnzkxHr7zyilo8IoednR0AI/mJWn5CJBLB7du3sbKyomoQMo18oVBQse1mphtzDIzVoDWj2+2q6tT05ycLagsTPl+HiXZtB1q/1/zddt2LDG5e1xECk6fSQy6VSinuKBKJKP2B/iwdZBhkls/nJ1yMbevoBF6QgnkPXdCJsKmXcGrT5FBs+h9b336/X3ES9JHhoXrppZfw+uuvq3wKNmWg27vQES3d6aPRKDKZDAqFgmqPlh1Tz8G2u90uqtUqksmkqq1pC5QihyMMPZkXEE+DZZ0VhBAFAA0AzlE68wOLuB7nVcOLMtYXZZyAfay3pJRLXh6eC8QAAEKIH0gpP/28xzENrsd59fCijPVFGSdw+bHOpqq8hmu4hr8TcI0YruEarmEC5gkxfO15D8AjXI/z6uFFGeuLMk7gkmOdGx3DNVzDNcwPzBPHcA3XcA1zAs8dMQghfkEIcV8I8VCMojSf93j+lRAiL4R4V7uWE0L8mRDiwfn/rPbbb56P/b4Q4j99huPcFEJ8SwjxgRDiPSHEP5/HsQohIkKI7wkh/uZ8nP+3eRyn1rdfCPGOEOJP5nycj4UQPxJC/FAI8YMrHyu9rZ7HHwA/gEcA7gIIAfgbAB9/zmP6PwD4aQDvatf+HwC+ev75qwD+7+efP34+5jCAO+dz8T+jca4B+Onzz0kAH52PZ67GilHsTOL8cxDAdwF8bt7GqY33vwHwewD+ZF7f/Xn/jwEsGteubKzPm2P4LICHUsotKWUXwB9gFLb93EBK+R8AnBqXfxmj0HKc//+H2vU/kFJ2pJTbABhi/izGeSSlfPv8cw3ABxhFsc7VWOUIGOIXPP+T8zZOABBCbAD4zwD8S+3y3I3TBa5srM8bMdwAsKd9t4ZozwGMhZgD0EPMn/v4hRC3AfwURtR47sZ6zp7/EKNAuz+TUs7lOAH8DwD+WwB6dNw8jhN4kgrhLTFKYQBc4Vifd85HTyHacwzPffxCiASA/wXAfy2lrLrEKDy3scpRrMwbQogMRnE3P+Fy+3MZpxDiFwHkpZRvCSG+4OURy7Vn+e6vPBWCDs+bY7iyEO2nDCdiFFoO8ZRCzC8CQoggRkjhf5ZS/q/zPFYAkFKeYZTp6xcwf+P8WQC/JEb5Tf8AwH8khPif5nCcAMZTIQAYS4VwFWN93ojh+wDuCSHuCCFCGOWK/OPnPCYbMMQcmAwx/1UhRFgIcQcXCDG/KIgRa/C7AD6QUv7OvI5VCLF0zilACBEF8B8D+HDeximl/E0p5YaU8jZG+/DfSyn/q3kbJzBKhSCESPIzRqkQ3r3SsT4rLaqLdvUfYKRRfwTgv5uD8fw+gCMAPYww7ZcBLAD4JoAH5/9z2v3/3fnY7wP4+89wnP97jNjBvwXww/O/fzBvYwXwCQDvnI/zXQD/1/PrczVOY8xfwBOrxNyNEyMr3t+c/73Hc3OVY732fLyGa7iGCXjeosQ1XMM1zCFcI4ZruIZrmIBrxHAN13ANE3CNGK7hGq5hAq4RwzVcwzVMwDViuIZruIYJuEYM13AN1zAB14jhGq7hGibg/w+jlJhA5nAUegAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "image = data.human_mitosis()\n", + "plt.imshow(image, cmap='gray')" + ] + }, + { + "cell_type": "markdown", + "id": "083ff201-acab-4de6-a757-5d079c7c9b50", + "metadata": {}, + "source": [ + "## Exercise 1\n", + "\n", + "Apply Otsu-thresholding to the image to create a binary image and then create a label image from the binary image:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b3f9feb-fc38-4ed9-9e47-765b337824eb", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "608e6135-c74f-4953-9eb1-c3bef6409ed5", + "metadata": {}, + "source": [ + "## Exercise 2\n", + "\n", + "Use the `measure.regionprops_table` function to measure the area and the mean intensity for every object.\n", + "\n", + "*Hint*: You can create a list of measurements to be passed to `regionprops_table` like this: `properties = ['property1', 'property2', ...]`. You find a list of all possible properties [here](https://scikit-image.org/docs/dev/api/skimage.measure#skimage.measure.regionprops)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "accf79d1-c295-4877-9adc-457063943f96", + "metadata": {}, + "outputs": [], + "source": [ + "results = " + ] + }, + { + "cell_type": "markdown", + "id": "2c4d1be3-9f56-43e1-9fab-8d99047f60ad", + "metadata": {}, + "source": [ + "## Exercise 3\n", + "\n", + "The `results` variable now contains the derived measurements from the input data and is of type `dict`. \n", + "\n", + "- Use the `dictionary.keys()` command to print all columns in the results variable to the notebook.\n", + "- Remember, Python dictionaries can be accessed like this: `value = dictionary[key]`. Use this this to print all area measurements from `results` to this notebook!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fba2364a-f1cf-4975-bfe0-734a921f9606", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "cd677b97-5b0e-4cc3-b7cb-5083df882f73", + "metadata": {}, + "source": [ + "## Exercise 4\n", + "\n", + "When we obtain measurements from image data, we usually want to visualize them and do some statistical evaluation. You have already learned to plot histograms with matplotlib - use this to visualize the distribution of areas in the image data as a histogram!\n", + "\n", + "*Hint:* You can retrieve the `area` measurements from the results as described above." + ] + }, + { + "cell_type": "markdown", + "id": "c39d79c7-e8f7-4ee9-a2e0-4363db5ebf7c", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "id": "a27c8b12-fa4e-4c33-b839-c1b30d91a56e", + "metadata": {}, + "source": [ + "## Exercise 5\n", + "\n", + "Lastly, calculate a mean and standard deviation of the areas of all objects in the image. In order to do so, you need to \n", + "\n", + "- retrieve the measurements from the `results` dataframe as described above\n", + "- Convert it to a numpy array with np.asarray()\n", + "- Calculate and print the mean and the standard deviation from the results\n", + "\n", + "*Hint*: Numpy arrays have some convenience functions attached to them (e.g., `some_array.function()`) attached to them - see if you can find out the functions for the mean and standard deviation!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c0a2ff79-ca4f-48e7-9d67-1865fc9ea0c6", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/05_feature_extraction/05_feature_extraction_and_thresholds.ipynb b/05_feature_extraction/05_feature_extraction_and_thresholds.ipynb new file mode 100644 index 0000000..69fafbc --- /dev/null +++ b/05_feature_extraction/05_feature_extraction_and_thresholds.ipynb @@ -0,0 +1,386 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9a8e70d2-6bf4-4e1c-b5c6-db73213c8bb2", + "metadata": {}, + "source": [ + "# Feature extraction and thresholding\n", + "\n", + "The chosen method of obtaining a segmented image can have a profound influence on the features you measure further downstream in your analysis. In this notebook, we will use different methods to create segmented (and labelled) images and then see how this affects the obtained measurements." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "368263d5-f556-49c8-99b1-394ee6c54275", + "metadata": {}, + "outputs": [], + "source": [ + "from skimage import data, filters, measure\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "id": "3822596a-e798-42c0-b513-831d683330cc", + "metadata": {}, + "source": [ + "### Plotting multiple curves into a single graph\n", + "\n", + "Comparing measurements visually can be easily achieved by combining the results from multiple measurements into a single plot. Matplotlib makes such things quite easy! " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "efeeba45-3a64-47d5-90fa-06beeee824d9", + "metadata": {}, + "outputs": [], + "source": [ + "random_data1 = np.random.normal(0, 1, 1000)\n", + "random_data2 = np.random.normal(0, 1, 1000) + 1" + ] + }, + { + "cell_type": "markdown", + "id": "9e77ab67-e3a7-4b95-adde-073f6e98c5e3", + "metadata": {}, + "source": [ + "The next cell shows how to combine multiple curves/plots in a single figure. For a bit more information, see [this notebook](./00_plotting_in_python.ipynb). \n", + "\n", + "*Optional:* Change the value for `bins` to see what effect it has on the plotted histogram:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "c778396d-cf30-4439-af8c-554c832b4ea8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Counts')" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.hist(random_data1, bins=50, label='data 1', alpha=0.7)\n", + "ax.hist(random_data2, bins=50, label='data 2', alpha=0.7)\n", + "ax.legend()\n", + "ax.set_ylabel('Counts')" + ] + }, + { + "cell_type": "markdown", + "id": "d4462027-e4d6-4e1f-928f-4f4cce61928a", + "metadata": {}, + "source": [ + "## Exercises\n", + "\n", + "For simplicity, we will keep on working with some relatively simple data:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "fb0a36bb-0901-4d6e-a611-823baec2c525", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQYAAAD8CAYAAACVSwr3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACYvElEQVR4nO39aYxkyX0nCP7M7/uKOzIir6pkVbEksiQeS7VWS3I4mlH3CFJjAHVrBrPQBwL8oj4Gs4sRtQPsYBsQoN0FhPmyAyzRaiyBGUlN9IwgtTC7aolNoiWVeFUVJdaVlZkRGXeEH+Hh9+22Hzx+lubm9p4/j4jM9KTiDwTC/fl7dj2z/30IKSWu4Rqu4Rp08D3vAVzDNVzD/ME1YriGa7iGCbhGDNdwDdcwAdeI4Rqu4Rom4BoxXMM1XMMEXCOGa7iGa5iAp4YYhBC/IIS4L4R4KIT46tPq5xqu4RquHsTT8GMQQvgBfATg5wHsA/g+gP9CSvn+lXd2DddwDVcOT4tj+CyAh1LKLSllF8AfAPjlp9TXNVzDNVwxBJ5SuzcA7Gnf9wH875xuFkJ4YluEEAiFQvD7/ZBSQkqJXq+HwWAAIQR8Ph+CwSCGwyH6/T6Gw+Elp3F1IIQAAHjh0Hiv0/2ztHUNVwdCCLXm/Ky/KyEEAoEAhBAYDocYDAaO7y8cDqu9qu/lfr/v2LcOs7z7UCiEUCiEWq1WlFIueXnmaSEGYbk2NhMhxFcAfEX77t6gEIhEItjc3EQ8HocQAq1WC0dHR6hWq/D5fFhdXcXm5iZ8Ph92d3dxdHSEwWBgbct2jS/btujmhrgosJ9p7U9bD6fn9X6uAnFcBAmZB0gf46zzetrgNFavzwJP5kXiBAB+vx8+n2/iN5/Ph0AggFdffRWpVAqdTge9Xg/dbhfFYhH5fF7tWbbv8/mQSqWQyWQAAI1GA5VKBb1eb2xN2Tf3MH9Lp9PY2NjAD37wgx2vc3taiGEfwKb2fQPAoX6DlPJrAL4GeOcY+v0+zs7OIKVEIBBAs9lEu90GAAyHQ7RaLQBAMpnE+vo6isWiFTGYIIRALBZDLBZDt9tFrVZz5Da8HhCng+m0+cxNNg2mbear4iZmbcectxuStT07bRyXRSxOVP+i68Xn+F8/1Ho/oVAI6XQa4XAY7XYbzWYToVAIANReI/fAZwiBQACZTAaZTAbD4RCxWAxSSpTLZfVsKBRCLBaDz+dDr9dDs9lUHEu9Xsfx8fFM83paiOH7AO4JIe4AOADwqwD+y8s2OhgMUC6XUavV4PP50O/30ev11O+1Wg3FYhGxWAyBQAChUAidTse1TXIi6+vriMViaLfb6HQ6CuEA7ofD66YyWU6ntt0Qh34vqdHzAtsBA7yLSuaBNDkl/XcnLuuqxk+wIWU3hOQ2V/05n8+HXC6HVCqFQCCASCSCer2OUCiEcDgMAGi326hWqxPryOcDgQCGw6H6nEqlUK1WMRwOEQgEkM1mkcvlFKIoFAool8uQUqLf76NcLs+0Pk8FMUgp+0KIfwLgTwH4AfwrKeV7V9H2YDAYw6z6Avb7fRwdHQGAwpyBQACBQADBYBBSSrRarbHnASASiSASiShWjwjFq/hg29RXeWhNVlGf9/OCaVyBDjZEyGs2DsMJiTqNYxakoe8bJ9FRH6MbojD71tvRrweDQbW/AoEAfD4fyuUyHj9+jGg0ilAohGq1ik6nM8apso3BYIB2uw2/349gMAifz6e4ARK2eDyOUCikdBTpdBr1eh3dblfpO2aBp8UxQEr5vwH432a439MmcPrO59vtNnZ2diCEgN/vx+Liolq04XCIw8NDNBqNMRmML8Pv98Pv92M4HKpr+qHUZTj9BZpIwQlsm8jrxvb5fIhEIggGg+h2u+qF6/N43siC4DQWLxTWdt1tfS7DSTgdZLe19IK0zOvBYBCBQEDtLWB02BuNBhqNBgA4iq4cS7lcRrfbRTKZBACUy2V12IPBIAAopEDOgojtInvjqSGGWeEiWN92nYeFCpt0Oo1AYDRNHq56vT72XLvdRr1eh9/vV8ogc2zhcBhLS0sIhUJotVqo1WpKjvOirbZxE046CHPDCiGQSCSwvr6OSCSCXq+nWEVuBq/I6VmAGwK3XXMSS/jdfO4quQjbmpmHada2TCChYZutVktxrua4bW36/X6Ew2F8/OMfx+rqKt5991202211f7vdVhxFv9/HYDBArVZDv9+/sMJ3bhCDGzhZEWygHzq+EL6Afr9vNQf1ej0cHx+jVquh3W6j2+1O3BMKhbC6uopoNIpWq4WzszMcHx+jXq9b2WrKhtFoFIlEAoPBAJVKRb0sk111o7LBYBCLi4tIJBKK8yGnc3p6au1b/z5vYOoYbJv3MpzARZ4118zGjU47ZE4IrdPpqHc/GAxQKpWm6r709rLZLH7pl34J//gf/2MAwL/8l/8SDx8+VPe0220Ui0VUq1UAo/3c6/XUvr+IaPtCIAabXOok+/HzcDhErVaDlBLxeByBQACtVksdZJP9JtZ140b4Yv1+v5IVbSDEyJ69sLCAtbU1ZDIZ9Ho9PHjwAPl8fmyDUUnq9/vR7XbH/C94XyAQQCwWQzQaVbbuQCCARCKhFEwmV+K0Nk8TvLKsNjHKxkHYLDVXrYT0ws2YY/Darq4jKJVKqFQqE2KqeWhteouNjQ38k3/yT9DpdPD1r38db7/99hg3wL0JjAiY6R+hz8MrvBCIQQchBILBoJLXqIy0YfR+v49KpaKsGLzXBDeWnr+1Wi0UCgUsLS3B5/ONIRLzeSEEotEobt26hXA4rByyotHo2AH2+/1IJpPKPt3tdlGtVtFoNMaQQ6/XQ7vdViIO9Qs6IqNiikpY3ntR/YNtg86qA9LX0Utfs+olLgoXWQ8TgXnhIPT7AUy8E/13J0Q4HA6xt7eHf/Ev/gXy+Tzee+891Gq1MQJFIrWysoLFxUVIKbG/v4/j4+MLr98LgRh0ahEKhbC8vIx0Oo12u42TkxM0m82JA68fbJtW1kk8MQ8DMS8tHtVqFX6/H81mc8xyobfh8/kQi8UQj8cRjUbR6XTQ6XQmxhkMBpFIJBAIBCClVGaoXq831rZubYnFYmg2m2g0GiiVSuq5paUl5HI5ACPu5/DwEO12W41/VvHiqlh7NyWebe28POvUh9cxOuk3ZgWv3IRtfNSD2XQrpqh1cnKCP/zDP4TP51PvMxgMKhNoMpmElFKZQ1utFhYWFsZElh9LUQJ4cuCWlpawsbGBUCgEKSVCoRC2t7eV34FNzDCvmwpA3fIQjUYVy66LHUQOlUrFdTOZuo3BYIB+v49isYhKpWKdU7/fV2IJTVrkBji2ZrOJx48fK+6DIocQI+estbU1RKNRdLtdRCIR9Pt9HB4eWvUlzwv0dXP67/Qc77FR7sscbq/cjDkHr+KNG3dgI2bmfcC44xP3SSaTwerqqnJsCoVCipOl2ZOWiVnFIOAFQQycGCkxPcYAIB6Pw+/3q++UvQOBABqNhkIYgUBA6Rrq9fqYzZjYOxQK4eWXX0YqlUKj0cDDhw8nDjPvd4PhcIizszPs7OwoK0ihUFBcADdzt9tFs9lELBYD8MT3QreK6JtkOByi1+tNUBfKlfxMK0YoFFJus17G/TzhslaAi3I0bhYRHZwQgduhc+PUzLnSHG7zNzDH5/f7EQqFlNNTv99X1ovBYACfz4d6vT727meFFwIxAE8ORqPRUIvn9/vRarUUVfT5fMhms1haWkIwGESj0cDR0RHa7bYyXQoxMj2WSqUxqizEyKc8l8tBCIFkMoloNGpFDF6g1+thd3dXUQbTqUpKicFggLOzM/T7faUwqtVqE1TebbNKOTJ/EQFGo9ExRDBPyMBtLDYFnHl4TM7hIpRwWr9OYONU9P9e2nd6zufz4fbt27hz5w6+//3vK6W5+QzbI4HodruKu+x2u8oM32w2cXJyohSUF4EXBjEAI0pcKpUghEAmk4EQAkdHRwpj8tBTy59Op5XSMBqNIhKJoNvtIhgMIp1Oo9vtjr3odDqNUCiEwWCAarU65hY9DcyNYzpAOVHDXq+Hs7MzJW+anm/TFHLD4RDNZhP5fB5LS0tqk5TLZc9u3fMITvN2EhWntXMZBGITJy4DPp9PBVkNh0P4/X587nOfw5e//GX803/6T/Hw4UOrCKgjxFKpBGBECMgFk0ugmHkZwvDCIAZOsNvt4ujoCIVCQbHj+otrt9vKnKdbK/r9PrrdrpLhqcmlg9JwOES5XEYqlQIA5PP5MR8FJ+pkU9KZFM+N4hPIBTnJtG4wGAxwcnKCcrmMQCAwYceeVfE4b2AiBPOwu3EOlz3EbMPG0Uzr29YOxb2VlRUkEgkcHh6qoKf19XWsrq7i8ePHyjRuzoPjGAwGyoeFBMVNb/Njq3wkEAtSftIPoZQSlUoFg8EA6XQaAJR3YL1eRyAQQDgcVvKY+UJLpRJarRaEEGg2m2POUDaK4bRR9Wtu4IRobO1Nk3/1jUR9zNNCCBdl4d3m4PSb/m753TyUFzmkFwWnvnlNv8ecAzDiFm7cuIHXX39deSoeHR0pETkSiUy0ZSo7+b3b7Vrn67SOs8ALhRjclERUHiaTSYRCIRSLxbGAqWazqXzKfT6fUj7qCzYYDFCv1103KZ/X4ypMb0anMdpgWl/652kHnUrUaDSKdDqtPO5mDaDxMuaLgFcdw7Q2nOT7q9I7uI3NTZzxooQUQqjDr38+Pj7Gt7/9bezu7o7lWTD3PPu2cQVu8551TZ5KzsdZQQghL6KJ5nefz4dEIoHNzU1kMhn4fD7k83lsb28rrMpDQ629zT3ahnhs2uN4PI5MJoNIJIJ2uz1mcXDamLYNTU20zgraRBezPds9nF8sFsPGxgay2SwajQZ2d3dVfol5eNeEaYjT6+/T1vqquZur0C/kcjncvHkTkUgEu7u7KJVKCqE3Gg0lHtsOvZvy07ZP9Hl0Op23pJSf9jLOF4pjAOzsmhACCwsLKsip3+8jlUpNmOvoLWjqAZxYQhOI4VdXV5WeIhKJoNVqKUcS/YXpdmTzYDL+IR6Po91uo1wuo9lsWjcE9SLAiKvRU4bp9/p8PmQyGSSTSTVWPncZeNpU2ASbODXLIb2KsbpxZZdVZPJdk3Pl/ms0GmOWBBtycjr8TGuoc7GXIQYvHGIgmFSh2Wyi1+sph6Fpz+ptCCFUzIKUo6AUp5RwiURCxdYDUApN875YLIZMJoN+v68sBbofQyaTwfLyMiKRiDrEe3t7Y45a/J9MJrGwsKDs06enp2Naa5O74IY6OztzdNuetqbmfJ4lOCnNTBmb10wkr8NVj/0q2mO2MR5oujK3220VmGemd3MbSyAQQDKZVMSQ7/7s7OzCYuQLixh0kPKJLT8cDqPVaqFYLI65FbtRnHA4jI2NDcTjcQAjJWShUHA0V0opVdJPpunSIRAI4I033sDnP/95HB0dYXt7GycnJ9je3kan04HP50M4HEYgEEC/30c4HEY8Hkc8Hh9zYRViFBeytLSERCKhRIXhcGhNW8cNQV1KoVBQXIgXeNYIwCtMo5w6UvRC0S8jXni97pXjCIVC2NjYwObmpnpma2vL6vcCYIII0Xcnl8uppK/D4RDBYBCdTkfle5iVc3jhEQMXutlsYm9vT1HJYrE4lqvAvJ9AipzL5TAYDBAMBrG6ugq/34+9vb0xMyIdkIhAhBDK38HULwghsLS0hNu3b+PjH/84vvnNb2JnZ2dsPIFAYCwITE8EQ2AOCbKHfr8fsVhMebmxLz7XbDaxv78/EXJ+lWvt9fplQdfI2/qx6RK86B6uQnlqioy0crllh7aNm2nXMpmMIg5OYq05N/bNRERUZIbDYbVXLgovNGLQWcjBYIBisagCi/Q/HWybgjI83Yopq+fz+QmKywAlvgTdrEmRJBqN4vHjx/iTP/kTvP766wBGWmfKj8PhEIVCQQVN+f1+tNtttFqtifEyrVc4HEan01Eu4Hzp5v1sX5/vVSkdnxW7TrCN28YBelU2OinwpoEpruj9UGzM5XIquO7s7ExFwLrNTcqR2X1nZweNRgPxeBylUsnRY9GGGKk3SyQSah9SsW6zlnmFFxoxAPaDATinyrI932w20e12EQ6HVZyCqTzU2+50OkrGtykUabE4PT3Fn/3Zn6FUKqFer49xMJ1OB8fHx+j1eggGg0ohZQIDt5iJiolqnXzqOW5yHzZ3bC9wVQjlabdjO6g2RGFSWlv7epu29+4kjqbTaSSTSZU3g85HXpSo3AuHh4euilancUspcXp6iuFwiHg8rpCNHid0EXjhEYNXtsv8Xf/ebDZRKBSQzWaVFr9Wq1mz7Nja4IZMJBJYXFxU+f3Yd71enwiBppKT4dQ2F1Z+Z5rwaDSKfr+ParU6kX6OoOd4kFKiUChYOREnmEZFZ+UOLoMUbIdz2li8KC6dPjsl3nEaG/BE1KMnrc7N2cZpQ3CmGOoEJsLiZ9akmOYJOQu88IjBaUFNmd1NGdTv97G/v49yuYzFxUV0u10UCoWJnHlOm479RaNR5StBFo8IxulFTdMac3ynp6djiWptc6K8eefOHaXlHgwGODw8dGh9fPz8P8tGehr6BVO3YF7X+3Z7np+dxml+Z6iy0+828YUUWk+ewzTw08Zvgnng3dbVbEfXJ80qKtlgrhDDZTaZvhh6KjQqJqkLcGJHe70eqtUqarWaujbrAdEjPUOhENrttmLz3GRGL5tF1x24HQgqsHSq5dY+15tBPUKIsUxX08b2NPQLbkhch2nihZPlYlrf5ABN5zPbs9RtURelJ/CxIShz/Ga/07gHL5yTieQv8o7mCjFcZALmyw+Hw8hkMsqmGwwG0e/3USqVVPkvt403bVPa2FNer1ar6Pf7iEajGA6HKu+Dl4M/Dby0MRwOUalUcHJyorJYn56euiISItJUKqUQKZPd2vxBnhYy8AJuHIMTi+4mUropKaPRKJaWllREr57V2XxeD3s3q0nZkJM5RqfPtgNvzpnvj30TwbMNPaZoFpgrxHARMDE8cypQ1qNZL5FIoFQqqWhKPmu2ZQOnl2tuPMZa6HUr3NqdZY5uoFOaZrOJ7e1tNe9pMflMs0/riK4XsSEGJ7HqoshiVtFlGpfgBPoY3frk9Xg8joWFBQSDQaRSKezt7Y1VijL3ge1dm/fyEOtFk5zGMm096ekYjUaxsLCAXq+HVqul0rtRtDg9PR1zmPIKLzRisGFQKoHogATA0RvS66Z0okROFMCLHOzEeZjXvIob+v1mFigb6MiU+SkBTE1r7jb3i4CX9XfSObjd6/bMNESmp+UjYlhaWkKr1bKuqxcRh1xIIpFQCLzVak31ebD1w32+vLyMWCyGT33qUzg4OEC5XFZp/fT7iTRmgRcaMQDO8tVgMFCYczAYWFl6U9ljXre17zYGr0jGq+bfdgCdKPU0udTWjhAjhxyaQIPBoNpE5gFwQwjPWrTwitDdqPG090BRTC9WZJqvgSdm8WlsPzBKqrKysqL8VsrlMorF4kQKNnN8trH6/X5sbGzg5s2buHv3rnKUIkfM4kkXjZV54RED8OSlUK5nVht6C7LYrck1kGICTyi92yEy+7uqcZvX+BcMBlV+S1oYzJoTZjuzIAgq1mgODYfDaDabivWcFUE+LfBKUZ0otZf2zXXpdrs4Pj5WugO97Lw+JhvX6tQ3071Ho1EEg0Hltnx2duaaaMW2H7vdLh48eIBOp4Pt7W3lwk/XaCYs8lrcxoQfC8Sgs44MMY7H4ypHpJ6XQRcvdNauXq97tve7HUg35aTbs/o1PXclk36WSiUcHx+7cj62NbGNm5/5HM2herFUJ/HJSz/PC2wH3AnJe1EK1ut15XSmm4ht3KWJqHUXaT7L9Gt6cVont2XbXjI5lbOzM2UNoQ6h2WwiFAqp+qZ6Jq9Z4McCMQDjrDFfAK8T9BcXjUaxvr6uZOt6vY79/X1rNSrzMAshxgJWWOBFP+DkRjgmM1Ta6dAKMXKx3dzcVG6u/X4fi4uL6PV6ODo6mkBCbhyO0wHXx8LPbgoqpwP3PJCCE/J2UozyN33u08ZNbsrrodI5vXA4jGw2C5/Pp5K0Mtju6OgIvV5PheubimrbHHVkpr83usvr181EsheFFxoxmBt0mtJPp8iZTEalmQdGZcMbjcZE9R6bGBEKhZTGmorNWq2magf6/X5Eo1GkUinkcjmUy2Xl/mwDU6egx0Nwg+q1J5zmZ1sfcx5OB8Kr3K6P163fp4Uw3MZpO0Bex+TEXXgdk/45Ho8jm82qsoPRaBT5fB6dTkdVGjN9JKa164QczHE6EbVZkcXcIIaLbiYbCz9tEXQ3VrJdLNxhgo2yh8NhhMNhDIdDFdUWCoVUpeyVlRV84hOfwMsvv4xbt27h4cOH+P3f/32cnZ15ekFMxkLZkIlsK5WK5xc8K6X0imim6V/Y57TnL/O+2Yfbu3dCDuaz08Y8y5j4mfk3hRAqz2gikVAZnGlGntavTZRwQ15u85l1fnODGK7ixThhR3Mz0nWV2aSZm1+vPGUblyljkttgu/Qd+OQnP4lf+IVfUPn/6f3oNmYCQ7vL5bLKX9npdFAsFh3ZThNsVOUqwAtScDr8V3kQ2Z7+322cvGbjMN1EslmAz1KvVSqVVIEjAEqs9LKGbvOxIUNzXWfh/pxgbhDDVYAThjXZaHqzsXaklKM8/cVi0ZXisA/KhvF4XFF3KnsGgwF2d3fxgx/8AIeHhyiVStjb25uInHRT5DHajgVxu92uCsLysgb65vCiZDMRqtcD4nVDP03Rwtan03tzGstVjFPvk8Sg0WiouqTcG9Oe9QL6++WfrteiCOqkSPbUx1VSlIuCmCEZ7AXbn/iss3nkIGzynnlY9MUPh8MIBoNKCUQdAk1SZCt15aQbO2uO1QazvC+v1PSicBWU9mmDDVFcFZcwrd9p7V9Up6PXRNGtbSR03HvVanXMlbvb7V5dMlghxL8C8IsA8lLKnzi/lgPwrwHcBvAYwD+SUpbPf/tNAF8GMADwz6SUf+pp9lcIXpRMUo57CNq4Df2zfogjkYhKsWaret3r9VQNQVPBZGtbH/PTZP29go2LMNtzoq7PkjvwAk5ipf7ZSQdzGeTh9h4vwurr4mo2m0UqlUKhUFDWN7/fr8ow2hz7Zu3PSwD6/wfALxjXvgrgm1LKewC+ef4dQoiPA/hVAK+fP/M/CiEunl/KAl7YV1J1vRSYDk5cwbT29Y1CXYVp3+YfFUzM1jvLHKb17wVmUTI6UVSdRfXK2VyFfHsVYBuviRRMpaGpm7kKnYOX9Z4G+v2hUAjr6+u4ceMGlpaWlL8EI4qpVKdi3QvnYoOpiEFK+R8AnBqXfxnA188/fx3AP9Su/4GUsiOl3AbwEMBnZxrRJUCfvN/vx8LCAtbW1iYChAgma++22XW5rtVq4fT0FGdnZ67Rk7YDZ9ugF5mfrU1TweW1Pyd2m3PwOr9nJVq4vSdzLLxuQ96258yDdBVzuaicbwMmDg4Gg8hkMspByszRQcW3m5LWDS6qfFyRUh6dd3gkhFg+v34DwHe0+/bPr02AEOIrAL4ya8fTJsiDEI1Gsbq6CgBIJpPw+XxjVZlsG8OJfdYPF0UDfnbSE5jjpF+CEGKiNsRFN58+Nr1tpwzD09rS770I8prlvsscFC9sukn9nfp1Eh94v+2eWcfoRQSzPW97ByzazHQC7IeRvSzo3Ol00Gw2L1xb4qqtErYZW0clpfwagK8BI+XjVQ3AZH/JVm1sbKi4eZNLcMv0JMTIoYlcB8Oq9eCZaVSYlbKWl5cRDAZRrVZRKBTGqm3bwGnD6r+xpkAkEkEwGESr1VL1Op0Qzyzyr+1ZGyJ12+xO6zNtLLMA37Wbt6KTMtZND2H7Pit44Uq9tEHxlRmjGP/DfVur1dDr9eD3+9U9F13fiyKGEyHE2jm3sAYgf359H8Cmdt8GgOl5xS4I0/QB7XZbyVq9Xm8CA/v9fsTjcSSTSeV7riMO1n9YWlrCxsYGgFGRXNaH0NvhS9M5Cv7O6saLi4sq9RsrVHvZlCYFJDCXQiaTUc5W9HugF6Y5Ruo/bH4VXiibjbPwwtq7PX8VyIGIwakCk96PEzdhju8ilH4aeG3H6Z5KpYJHjx5hMBigUqmMWSUGgwEajYYj5zsLXBQx/DGAXwPw2+f//0i7/ntCiN8BsA7gHoDvXbAPV+BGCIfDkPKJnZjYs9lsolgsIpVKqWrXZjxDNBrFzZs3kUwmVcmw4+PjMW4gHo9jfX0dyWQSvV5PZTnSRZalpSUEg0FUKhWVMUnfAHrO/263q5SSut7CBEbiARjzpNM3NHMp8OCTQpiHIJlM4tatW8pvn265tjLr/DxNCTdto9lkdfPQ6et8WeQgpXTVwLshIjfOTOdALwImYtf/m+PyAv1+H4VCAcB4tihTdLSt+yzgxVz5+wC+AGBRCLEP4L/HCCF8QwjxZQC7AH7lfEDvCSG+AeB9AH0Avy6lnLlGlhes6vf7kcvllB6hVCrh5OREsVbEqM1mUx0as6w92W8AiMViSCaTKgksFzQSiSAcDiu7sZ6hORgM4ubNm1haWkIkEkGj0cC7776rqDXn0el0cHp6qsZWLBZd3aP9fj8ymQxyuRyAUYAXx6UD/S90BNLv98eScgSDQbz22mv44he/CJ/Ph62tLTx69AjvvfeeY5UqNzncCyU1NyUReDQaBTCKAPTqsOUVvCrZTARhItGLHlgnjmTaOL1yD/pzXubKdadlQi9p6AWmIgYp5X/h8NOXHO7/LQC/NdMoDPBCjYgYFhcX1QGuVCrKrRl4EnNga48sv5RSVe3h/fo99XodtVpNyXQHBwdqQ6XTaaysrCAYDCISiaDb7SpEo0Ov18Px8TEKhYLqz8bK06oQjUaxvLysytjF43G0Wq2xWAlSXIbx8uXX6/WxTUDz1urqKuLxOHK5HIQQuH///kT/ThvabaObFNBECtFoFJlMBtFoVGW5jsViODk5sSqCLwMm6zxtzG59X4TKOnFd5u+ziiU2DsP8bPbNsovLy8vo9Xo4ODhQPg9e4IV1idbFB5Zw4+EyNf42tpjKmkKhgEwmAwAqJ6R+f71ex/379xXl52b2+/1Ip9PqADDxq6ncZDt64IwN9AMVi8WUVyWRVjQaRbVaVfPhXHSPS7O4jBAC/X4fZ2dnSscSi8UmqI65qXjddnicKK1tPlS6plIpVdmZ7dqyIV0Wph14fe2cfjMRHWHaYXbiFpxYfLc23a7bxm27lkqlcPPmTSQSCWWxmAXmBjHoB8PGypowGAyQz+chpUQ2m8Xx8bFVxnZii0m5T05OlBKHh5pj4UEzRRA+3+12FbsGjMrQ6clenLC82wZjkk9uYEZ/mum/9Hb18Zl9DQYD7O/vY2trCzdv3kS5XMajR48mUpyb1MxJFrZxByYIIRQXxbmQijFS1IwbmIYkvFBZr2KEbbzm/1lFCfM527NekIJTnzbuQycQ5m/Uq5FQsBiN57lcJca+KPh8PkkKydgFAIoi2jIrkSIxLoHl5p2KsZjP6n+6k4iX5Jw6m3zr1i2kUimcnp5id3d37MAB3lg//VogEEAmk8Ha2pqiqrVaDXt7excyP9EKkslksLS0pAK0GKnJcdkopNPcnTY1r/l8PiSTScRiMeXXz9wX5LxKpRJOT08vFejjFWzvwss9FxEn9Gd1nYWTFWhWscLWj9kmz0UqlUIsFlPicLPZ9BwrMReIIRQKyRs3bmBhYQHLy8uK9en3+3j06BHK5bIrG2Wjak5gIgT6l/v9frRaLaWxt6X3NqklKSPtxm6p2p3kTdv4QqEQFhcXVXq6fD4/pjtxO9B6f+ZYdSrjxH24ycZO7ev3cV1zuZwq1UeTMKP+WJ59b2/vwr78FwXbQbIh8ln1AaY4xqrkNJXbCh5dFinY+tav6fVLpZTo9XpXF0T1LIBseaPRwNHRkcqPwGAkt+f0/7MA5e319XVVWq7T6SASieDg4EAlAZ3G3na73QnZ1elwTROR+IJ7vR5OTk5U6jhb0RA3+V9vi/dMm4f+jNmOm47BhpwpprGGgpRSFUMZDAZWJHrV+gavc3XTB+j3eQUi9oWFBeRyOWVOPzo6QqFQsHKkXrgHt/WxiYJcc3NeXmEuEEO/30c+n0ehUJjAchd16fQCLHsfCAQc066ZL8t8ibqcRxaO43eqJ6g/43SQB4MBWq2W64Zwk/9tB/uiMroTUnOiVMPhcCzkt91uj60Ns1HpyOFpixLT5nYVa6dzkbFYbExfFIvFlFVGv38aUrgMR3EZjmQuEAOACWebp7VR9BfRarWUY9NwOESr1VLptnUqazvUelvAE7+K5eVlCDGyUuTz+bF4eL0ts13b+Mxx62DbTNOUXxeRn51EOPMwmffr3pWVSgXtdlulwGOx36v0Y3ADL9yS/t1GfaeB/kyn01FxC+12W2UHm2W+JqEx42vMfq8aucwNYtDhabOUbL/VamF/f1+Z8FqtlhUpOC0272EOyY2NDSwsLCAcDqPX6yGZTOLBgwfWzNNexmc79OZGtXEuTuyxEzhRSicxwnxOH4f+ndeIdJnRmNdmGeNVg9u8dOrP370A72M9h1arhUAgoDJwOR1s2zW/34/FxUWsrq6qAMCTk5MJQqPPxQlR63PxCnOJGJ426AvZ6XSUQxA3s9vm5zWnzcwcEEwRHgwGJ1J8O43H3IjMKWGOy0tbNrDJ1dOec0MStrbd2nVygXYb17MA82DNqgMwETgwQg66ByyAsdKJZvYl/XnqKZaXl1VkcDQaVY5yABz1B7YxEtHMAj9WiGGWDWZugmnIwPzNvKfVamF3dxf9fh/xeBztdhvFYlEhBaf2bHPgi8zlcojH4+h2u8qlmiZMKmZnYZP1a+Z8vWx8N6ozTWaexsU8L6QATBfBpl03EYvtYAYCAfU+hRAqCtaNmxwOh/D5fKpoDD1m3VIQ2iAQCGB1dRWPHj1yvGfiGc93/hiCFxnSxmaa9R2kHCkLS6USKpXKWHk8J8QyrU/6SGQyGaUHkVJicXERg8EAe3t7qNVq1lJys8zHNha3724KORPpON3n1tfzACekNasoYXuef8wPQsqdzWYBAPl8fsLbFoAqkdfv9xEOhxUi8aKM19ddCIGFhQW8+uqrf/cQgxtb62URvbLF+u9kC/VS81I6V5rWKYkXhMT2I5EIBoMBEokEVldXsb6+jk6nA7/fjw8++GDC38LtENv6c7vHTefghXsw25l3mCZquXFVZhtmO3rAG5O1ur0bpgFgLIyXCuY28Pl8qir2LPDCIwabfEfwIpObQBMTTZimSY19LCwsYGFhAbVaDScnJ2N6immstJPeQr/GWhL8XqvVAEDFdUxTTHpRXNrG4wROCjrz+7SDcxG46ja9IgAvCJzt6WPURTO22Wq1cHR0hGw2q2Jq6Lhn49B0TlS/7tS30xxJYGZFzi88YtDlOlJy2osZQ+CVa6DrLnPptdttlEqliTgFn8+HdDqNhYUFpNNp9Pv9sTwO0w6Q2xh0VvLw8FCZ+YbDIU5PT/HDH/4Q4XBYhZhPa9P2n2ByMOY1pznYrl+E7fYKTwPRsF03McLtwOlz52eWFAiFQvD5fGi32+h0OkovUKvVVHk6m4+LbZzTEJMTQdCv09o2C8w9YvDKulGTm0qlEA6H0e12US6XxzwT3doQYhTks7i4qF4sU7mZLBzTxg8GA8RiMSwtLaFYLE7EvJucxiyytxCjUPKFhQUkEgmlhKJ/hF41y01vYNsopthhUjwbApmmK3HiFmz9ziqz2zgTt3F5pY5eRCv9v96/OQcmH6a3IwCcnZ2pIsRs0wztN+fkxonpY3FCaObzw+EQ+/v7qFQqntaEMPeIYdpm0ql9Op1GLBZTORHi8bg194HZvo4YIpGIUi6yXXPhWcmKCiQAY6nTbH1Mm58NUqmUKmgjpUQ0GlURivQc5JicwLaBzMM87dB7gYtwSReBae1epq9pHIT+X58jU+zR6sBwed43TWRxE4f1cdgQkjlOGzQaDTQaDdd7TJgrxOCEAKZRGJ2NY94/Ku7oYed2AHVszmQrZMFsMRNSjvJJ7u/vY2lpaWq59Gn9OgHnAYxEC2b/1Q+400Z2AycKdJUHWO/L7fuszz8tcNPT2NZYH5fP50M8HkcoFFJ7o1gsolAojBU0ctKBeQEGZQUCAVU82clcbUP8L7SO4aKbgFScGXLNl+YVmCcymUxCSolKpaJerIlYqDVmGjW3JCyzzMNsP5fLKY1yrVZTm85JbLGN1amfWZ5xA5uYdFHR4XmBbU1suggnsa3T6ShX6FKphHq97upnMk1no99HjmRhYQGRSAT9fh+1Wg3FYtFaSc1pnLPAXCGGywAXi7oB4EkgkxDCStFNWZXBP5Tfp/m2S2mPrrwKkFKi0Whga2sLuVwOwWAQjUaDcfWu9uxZxzFNVvfaj5suwnzmeSKLWXUTbmISr9G0OC38ftq4nK4zA3gkEoGUowQ+erq/aTqeWWFuEMNlKYuUUikEo9GoWrhpmYgptzFXgJmxSW/ffI73XxY7O/U1GAyUJpvIbdphdQKvG9+85vScqTAz27Gx5PMC0zglm1jB607t6eUIdV3ANKTiRRdDbljfm0Q+bvoJk3ubBeYGMZgwy2R4L51ISMXN/Idmu0QIsVgMsVhMHcRut+uJW9D/XzXoG9OtfLqTTsbG7trAtvmdkIK5iae9I5PrsCnPnreo4SRCTJu7m+XAhhDNz25IwjYmZidnOHej0bAGVJnPXRTmBjFcVkmlL4Ytn6D+md+ZwYkmSir4isXiTEqbWeU7cwM4bcKnwSJOG7s+Hi86CCfRwSar69/niYvwMmbb/TrY1su818naM03cIkfCKmi2e21jvAzHNjeIYRZw21hOB8wEIYQqDEq/BbqrMtPQZcY3yz1OFEf/bEMi5nNu870s2EQHfTxOv5njNLmGZ40gLsNNuYFTmzYEoQOtacxu7lQhnW16QapXofSdG8Rgbq5pLKrXNm3Psn2GNTOKbTgcjokRT+OAeaW8TuB23zQqN01vcJH2nZCC2bf+3+l5t2vPA2wiA8HL+HQkyM/64fb7/chms1hYWFBmdlo16DHppQ9zzPr1i67l3CCGZ7URdOrFbMXJZBKBQACNRgPVatVTpujL9H8Z8ErFzPvc2GQ3BZz53bYRp4kcbkj/aSOFq1QMO3FH+uG39UVulMl9mc0pGo1iYWEBqVRKJXShObJQKFjfobl2tFaQqJlZty/KPcwNYtDhaSMJLhrL2NXrdcXKPU2kcBXgJjbo17xQch3cEIn+3W2TTUNGphjhpoCb1pdX8Co2mDBN5DDFOKe2yRWk02kEAgHU63WV6Dgej485sAFQ5fyclMr6Z9ZNZSwNa6eagVcXQY5zhxguozCZtR8u2lVrdp8FK+xG4W2Hzel+m7bcCWZhq6dxDtPG7NTf0+IwvBxyJ7bdqR0hRkWR19bWVCYmU1Q1xdlut+tYU5RtCjFK/EKHJ9anJHK4itJ/c4cY3JSKF9kA0557WnoE/n9W3Me0fqYdvGngdIinva9peg2v79uNS7kKmLZ+TuLQNKVjKBRCMBhEKBRCLBZDq9XC8fGx4lZZBd3n86lygnp5eydgFCeBnIdNrHuhRYlZOQWv9z9PJdazQgqzKpq8HEY3aujGCUyj8jrCmDbWZ6WEdNIZmHN1kvfdxtnr9VRSWFJ61k3pdrs4OTlRVcHoVm2Ks7b3wnv0DOfUj9nghRUlpi2ymyz6dxXMg2pTGOr/zc9elJBOfdrAC5V3QiCzcDRXKT6Y3510NubnaZSY7XS7XeWtSDFBj29gQJSbWGtbUyrOGZJP92jz+R8b5aNX6uekIf+7hDDc2FiT+lGWJYXhxjapor6RpmnEnTTfTvoHL6y4bRy2354WTDvoNsSmfzfXrNPpoFwuq2uMuNTvM83jtjUxOS3G9dDhyc1d/iLrNXeIgTDPIsK8g3mgmJmKyipqr1kk16uS0Ily8h7zfltbJjix8ebnqwYn5asONtFiWpvmfUwSXK1WIaWcWsR3Fl2KlPJKonptMLeIAZidA/hxRhZuVFn/3QbhcFhlnPb7/VhdXcVHH32Ew8PDsQM/TZ62ydxu4zHBxmHw/7NU1NqAY7CBV32WE5Klj4EX8LIGsyCVi56JqckKhBCbQohvCSE+EEK8J4T45+fXc0KIPxNCPDj/n9We+U0hxEMhxH0hxH/qZSCzaKznAYQQM+V6uCzoFNiJ1XT67vf7EYlEEA6HVeXpVCo1Vd+gf3ZSMJrgxFLzNzdd0bN83zai4/f7kUwmsbCwgGQyqWqbOq2T+dltD7uJbm5IaRpMe4fcp7RaeAUvO7sP4P8kpXwNwOcA/LoQ4uMAvgrgm1LKewC+ef4d57/9KoDXAfwCgP9RCDFbGZwXBKhpNuF5Uj4bUNmVyWSUecyNneXvOiV3UhY6iSFedAjzAkKM3JOXlpZw9+5dvPzyy/jYxz6GlZUV9Y5tSNHpUNoOu+3Q+v1+xONxLCwsqOxMbs+Y/Tr918Hn82FhYQEbGxveFoPPTbtBSnkkpXz7/HMNwAcAbgD4ZQBfP7/t6wD+4fnnXwbwB1LKjpRyG8BDAJ+d1s9FNspl2K6rgOehHLsIMIs109YBUKnLCdNYfx3c5GDbxnYSQ/TP05DUVYM5h2AwqLJ+R6NRVSAmlUqprGBe14jejkywYyIWKoFjsRg+9rGP4bXXXsMrr7yClZWVsftt6+6GFGzIKRaLIZvNzlxXYiZeWAhxG8BPAfgugBUp5REwQh4Als9vuwFgT3ts//zalYOXA/g0D6mU0pM48bwQhc665vN53L9/HwcHB3j//fdVaDnH50X5Z1PWmfoCHXSuwdzotnaeJdiQDbN/iXOtP6NtbWy4E9JkTMTrr7+OT33qU7h586YqK2gCSxD4/X6EQiGsrKwgHo+rDGROREdHLiayMJED3a5nFXs9Cx5CiASA/wXAfy2lrLq8SNsPE29BCPEVAF9RN1ior1eljxM4scDTDoTXtr0ihuctWkg5qpC1vb2N3d1d5URjjs12uHUwqZRNmaj3qd87bXxmH7Z+rxLMNnu9HgqFAqLRqMrMPRwOVSX0Wd6h3+/H7du3cfPmTVSrVezs7EzoiIQQaLfbqNVqiMfjKqO52zvgc9SF+P1+NBoN5Wbt9Fy/31cipFfwhBiEEEGMkML/LKX8X88vnwgh1qSUR0KINQD58+v7ADa1xzcAHJptSim/BuBr5+3L82vWTXdVME1OnBWmZYeeF+Ba9vt9lSKMoG9EJ32BDtNkZ/05r6LetHdg7oungSgGgwHy+bw6qOFwWHkUmmn6p4k9oVAInU4Hf/7nf44HDx6MIWGOnQWEHj16pHQMxWLRNc071z6TyeDWrVuIRCI4OzvDzs7ORHwFEVCr1UIsFlPZzr3CVMQgRjP5XQAfSCl/R/vpjwH8GoDfPv//R9r13xNC/A6AdQD3AHzPQz8T36dtrGmUxitcdLM9b07ADWwH3os1w/a7jlB1Vpv/bQd3mnhhjtNt/a8KkTvNi58Hg4GqwaD/pnMM0wgWA5n+8i//EpVKRVWztiHTwWCAYrGIcrmskgNNy+tJ8SAajSISiUAIgWazif39/TFHKa5rrVaDEEIVwfEKXjiGnwXwfwTwIyHED8+v/V8wQgjfEEJ8GcAugF85H9R7QohvAHgfI4vGr0spZ0qH5JVb8Pr706Iy8ww26g+4I2CbjKp/DgaDyOVyADCWWt+pfVu7NvHDq7jxtPVFej86yz8rAWq32zg5OVHPUWcg5WTyYCKCWRyVqAthmgBGV5pjZX/VanXmtZuKGKSUfwm73gAAvuTwzG8B+K2ZRmJvx6ojuMizbvDjijTcZH/zs/ndfFYIgXQ6jZs3bwIYlW8/PDyc4BjYjpuIovdhgslxPE1wOvBua+SlTY7f5/MhmUwqPQW5EZsLtJMC0WxTSqmK4rK+qs2DVX/mIuLuXHs+2qibDWzU6u8yt6BvIsD5AJgH0O1A+Hw+paGnzEqqyCQ3Nm5gVmpr0wM5jfui4HT43MZo209OrD7/JxIJLC8vq+rpjUYDx8fHSh/ghBidxsjfK5UK0uk0QqEQer3eWA4GG1xkreYSMbhREq/3e/ltlj4uC88SQU1TjtlYToIpWuhADzq/349+v6+cggKBAJrNpioibM7Vbd4XWZfL6namiU7T9pobQuU9sVgMCwsLCIVCas3S6bSqJkbETZOj7WA7cXytVgs7OzuqeHO73Z6abOjKRYlnBdNYyIturnkRKeaJa3FTDNrYUWAkC5fLZeUos7+/DwBYWVlBIpFQhX53dnZUfgFdhzCLOPG8wGnuBPoOAJgwD5piAZOzmPJ/Op1GvV5Hq9WaYPNtfTrpDVqtliqPOE1km/abDeYGMZgy1iyiwFVxDD9OMI3ddvvN1A/we71ex9bWFgAom3upVEI6ncZgMEAsFkMikZgohGKTpaex7s8CvBwWji8UCmFpaQmJRAKdTgeVSgW1Ws2aI5RUvdvtIhAIqGK3/X4fg8HAVR/DPoUQyrGK1gre76SDuEqYG8QAPJmgk8zrRcS4qkWaN93ErHL1LPe6ye+mBp1Rgrx2eHiIQCCARCKBfr8/YS932sRP451dFpxEA7/fj+XlZayuriIQCEBKiUwmg729PZydnVkPa7fbRalUwmAwUDEQUo7Mh7bU8OY7YAZpYFRsmZWoCCZivax4ZcLcIIZpWNBpI5mcxUU32CxysRNcVinmBhdp1+t4bNTK9pvtc6fTwaNHjxAOhyGlVA5UpvLTJlJc9p09DbBxMqFQCLlcTmVv7vV6SCQSyGazE+nU9P3IAsQ0L7L2pO1+PiPEyN05m80ilUoBgIqENTNA6+O9apgbxDDLAZ9VB+EGV7k5n9ZLuih4ZZVth8GJE7MhcNYMdVNoOn2eN27BSYQdDocYDAYIBoMIBoOKO3IyBXL+rC7lptMx34HP51MOScy45eSr4HVuL6yOAZiUQZ/FhpmHTXkZmOWlOx1sJ0TrpV1q1Vkt3K0uhw1ZzOP6m/uw0+ng9PRUuUl3u13U63Wcnp5OIAbb+prXdUJkQ0jkuHQdQ6fTmfo+TATjRSnpBHOFGNzAJlNdZFPNC4W6KriM3mGapUe/x9YPKdvS0hJWV1fRbrextbWFZrPp2p+trWnv5Wm/NzeriZQSxWJRRVy2Wi3U63VlmnVr02m/6tGROjIlci0Wi/D5fAiFQqjX66jX665I3VwbJw7PK8wNYpi2aad996qc/HFCCm5w0U3hJgLoa8k8ki+//DI2Njbg9/vR7XZxdnamojeFEFbrxGX0N7b/lwUnnYr+vdvtIp/Pq35NHYoTmKIqkWk6nUY8HlcWDK4b22o0Gjg4OEAwGFSZpOlObRu307WL7oO5QQwE28sH3L0e3XQEf1cQgQkXpRRuFiF9LQOBAF5++WXcu3dPVQvXNfRO7/Ayehgn9vsi7TjtKyfiAsAqNngZg75+kUgE6+vrysTr9/uRSqUQDodxfHyskAP1Np1OZ2wMbutnE0suyjnMDWIwN6TXl6/fZ2rBf9zEhovAtE3h5YCYa0mdQiwWQzgcVj77Dx48QKFQsMZP2Np1u36Rd+flmcsglcsql4UQSKVSyOVyylIBQJl7w+HwGCIwOS5zHDZEGQ6HEY1GAYy4Dhun4QXmBjEQLmNdMNv4u44UAPtmNg+9/meyyU7Q7/dxcnKCdDqNVquFBw8e4Pj4GP1+39E6MQtcVNy46DNOnNI0cDt0NkRFZSY9I1mQhn/6uNz0HrZrkUgEa2trCIfDCAQCKBaLKBQKnt6nCXODGJxkW7ffnRZ+2gaZlRpdRjaeN7BxBqT+dG2uVqvKFOc09+FwiL29PeTzeXS7XcUCOx0sNzn+WYJtPn6/X3E+vV5vLJmNyYWa4LYnzDlLKVGtVhGJRBCPx9Hr9TAYDFT2KN05bBZLE/+nUimkUiml2Mxms2g0GqqmxSwwN4jBjfV3Ew1mVS5eZFM+T225PgYvlgIvbZjrFQwGcfv2bWSzWZVo5Pj4WGnibe0Ao3RoZH316xwbuZBwOKxKtethwk7ze9qgHyYmgU0kEgiFQiomhF6LXsErQWq328jn84jFYiqnQqvVGlM82iqGeelXF034PxqNqmQts8DcIAY3E5a5oZ0UjqaSywmZXOVBflZcxFWw54BdlpdSqnDq4XCIYDAIn8+HWq2mAnVsY9E3rU3e5cFjBmS/34/9/X08ePBg7CDoGnuvosxVzF+IUY6JxcVF+P1++P1+BINBRCIRdDqdMUprIq6L6LH4PJWKNgQfDodx8+ZNZLNZbG9vK2/HaetBpGPqd3Q36llgbhCD0yE3f/d64G2yow2Z/F0CJyrd6/Wwv7+PQCCAdDqNfr+vzGqmR6Op8dbbdtLzhEIhVcCl2+1ib29vrH6jEEIlNQkEAqhUKp4cei6zBtwLfr9fhUVzrBStarWadd3M+V0EOdgQqs/nw8svv4wvfvGLiMfjWF5exre+9a2JfI5O7dbrdZydnalCt6xt6ZYo1gnmBjGYME177SSzOokaf5cRgg42C4OUEqVSCc1mE+l0Gr1eDz6fb0zmtVFME0yujoq2ra0thEIhRCIRFIvFsXgKAKrGwksvvYRsNouDgwM8fPjQihxs3KPbPG3X9fFS+Ue2OxaLqe+BQMDTobqI9cQ2Rua3CAaD2NjYwNHREcLhsJVrM9sTQqDb7eLw8BDRaBRCjLJQk2N4oUWJWbEvwU3vcI0QJoFrwsNAc2Or1VJei7b1c/rsppxlNuS33npLcQx6KjK+81AohEQigXg8js3NTZRKpbG8iWZf08RJp8NsjrXRaKBWqyGRSCCTyWBlZQXZbBbZbBZ//dd/jePjY6VncSJGF1FmmzojneNKp9OoVqvodruuNSZsOqd+v690CpcRyeYGMZhgLrbb4s+qgLyK8byowHn4/X5sbGzglVdegZQSW1tb2NnZGaMwNqpr6n14r9sGZGIRUyxhe8CTA8oAJb/fP6ZzcAK+E6dgJjfOgmJUoVBAMpnE0tIS/H4/XnnlFSwtLWF/fx+lUskqNtmUwV7B3Ktsr9/v4/DwEPfv30c8Hsc777yj9BzUf/Dwu+VnMOd7kb07N4hhmoLQbWLPyirwooM+h2AwiM3NTaysrGA4HKoU5EQMbjoD85p5UJzASW8EAK1WC/fv31eKwGq1qu5xEgmmcTBex9LpdHB0dKS0+UdHRypnAsWLbrerEtDMYkGZdq/O4QyHQzx69AiHh4fKdAo8KbZ79+5dSCmxv78/FoJ91aIOMEeIgeBlEj8u1PtZgJs2vV6vo1KpKNnUTYNtKu2clMEmq+9lfD6fD8FgUClBAXgy1fFZUtN+vz+1KpNtXsPhUFkh8vk83n33XbTbbdTrdSwsLChdiZlg5SLIcBr0+320Wi3cuHEDN27cQLPZxM7ODgKBAJaXlxGNRpFKpfD2229bA6su07cOc4cYdHDaXBfVRVwlPO/+vYCblabX6+Gjjz5SCKFer08NeCJCCIfDKnlIq9Wyar69IoVwOIyFhQWVlOTk5ATVatV6uM02qaz75Cc/iVwuh3w+jzfffHNMT+KmNDX1FD6fD5/4xCfw2c9+Ft/73vfw6NEjZa3QE7heVITgM9PmFQwG8ZM/+ZO4c+cOEokE/u2//bc4OjpCrVZDOBxGIpFANBpFvV6faN8r9zYN5gYxOOkUnF7C8z6Uz7v/WcBJcUUqKKUcc+ZxQ3rhcBgvvfQSVlZWFHXb29tDsVicqWgKD2QikUAqlUIsFlPWia2tLZydnU0dSzQaxS/+4i8ik8ngwYMHqkq1z+dTJldaHfR+bQczHA7jp37qp/BzP/dzyluQ2bCp0DP9CaZxM26ETZ+bucd7vR52d3eRSqXGskDv7e2hUCiolPHTFKyXgblBDG4H383qYINZKdePGzjN2WT1bey6TavPQ+zz+ZBKpbCwsKCSnAaDQdy5cwfD4XDMU3IWGZzVmHmA6WBlEyX07+12G9/61rdUfoRMJoPPf/7zCIfD2N7eRrPZxNbWlspabQP2EQqFcPfuXZRKJfybf/NvUCwWlUWg2WyqrM6z6DLMgsdcQ9bhsGWaphLywYMHKJVKan1u3boFn8+HfD6PUqmkcm8+LZgbxEDwYmGYdth1jOyGRNxYrhdBVCC4KejcrrlVKHKieFJKJdczek9KiWQyiVKp5HlsbKtWqyESiSCTyShKeHZ2pjgYU5+hP9vr9bC1tQW/349EIoFPfOIT+Pmf/3kcHR0pc5+ZBMUGjA9588030ev18OGHHyoHr36/rxKxmnOxrY35WdfJJBIJLC0tqeQrjDOxpZBvt9s4Pj5W1b/orp3JZMa4KSfQRceLiBZzhxgucxhtVM783c18dVXj0Nu4CrZuGng1G/Iep+dtv5trVqvVUCwWVcZkAIrdtbHo09hdWgROTk5UXkWdUzAPmNn2cDiEz+fD5uYmvvjFL6JcLuPRo0cqaYztQNvG0mw28d3vfnesqpYQQlU090qM9DZ1whQOh7G2toalpSUAowSvrMWhKzXN/RkOh1XcBP1NdK9Rt/GEQiEVVFWr1WbiMuYOMTiBqf22wSwWDad7r4JTeJ6chhOra5szU4vpYoXZlnlAu90utre30e/3kclk0Ol0cHZ2puz9vNftXZltMmGqOWbbM2zXlM9zuRwODw/x4YcfolKp4PT0FIeHhyoMfNpBomXCjdK6ra3+3xybjhwAIBKJIBAI4Pbt24hEItjb25sILCNSqtfraDabCIVCaDabOD4+nooYiBRu3bqFbDar+qhUKq5roMPcIIaLUPJZD7FXTflVgI6AngXXoIMX6hYMBpFOpxGNRhW7rFsXTASqv59Wq4WHDx8qhxvTxdl8hggIcBZfpiEp9m1+F2KUM/EHP/gBfvjDH6rDzfBp04owTf9kU3YznkLKceci3ue2d3WFYrvdRiqVUroZlq3jYbdBo9HAzs7OWEg414t6GH29dCQUj8cRiUQQDAYRj8et7TvB3CAGTpLg5TDNcoi9UDGviGPa2Jz0JE8bQej9mpSPFAgYrfXCwgJyuZwqhpJMJrG/v49ms+mYNUin1qyRYN5DYJ/BYBCLi4uIRqPodDoolUpK7OA9zGAUj8cxGAxwenrqGLxlGxcpq+03pz3lFSlEo1Gsrq4iGo2iUqmgUCgolpx5HFhcltYD2z4bDAYq9iESiSiLB/Njmuusj8fM6kQlcCqVQq/Xw9nZmVKO8j7Wr2BY9+npqXX9nGAuEIMQo8o7w+FQJa8ALmZdcDrg5oFx+v2qQN/4+sF0YmuflggTCoWwsrKCWCymHHgAqA0aCATGCqgwYMeGAG0Hx/xNB5/Ph7W1NbzyyisqH8ODBw+wtbWlqDmR0t27dxGPx9FqtRAMBrG/v29VHOrvcZpS0SsCdxp7IBDAzZs3kcvl1DibzaYKMkun00ilUkr2p7XAfJdsv16v48GDBygWi+pQE9GYCExHDiZRC4fDY3kjg8HgmIOalKMQ7MePH6s1pW+HV5gLxBAOh/GTP/mTaDabODw8RLlcnpqv3wmm6SHMNmc9jLbD4cRCErvTtAeMXH/N9GdmexcB2/M+nw+Li4u4c+eO8gz0+XxKa59IJNQYddbUy4HS58jPpgji8/mQy+UU68zx7O3tjZnrGJYdCoUwGAwQiUSUEtAGVMbZxuQVnJAKx0435IWFBaTT6TFlIAAV9EUHKJa673a7Y8SAHA37arfbODk5USnXbE5l+jhsOhVaYUhQ4/H4xPsfDoeo1Wqo1+sXEmfnAjGEQiEsLy/j7OwM1WpVOZOYspNXMBfJjYu4Cj2FU3902KEHW6/Xw+HhIQ4PD9V9s/Trdr9NfIlEIshms+p6PB7H6uoqCoWC0tgvLCyoJKSFQmGmrEU8QOSGbHZ5igRksePxOLLZLI6OjtQ9tVoN5XIZ2WwWtVoNJycnY+ZKHRExoYxeCWqaIo79eJkP0+IzRwPZ8UAggHK5rGI4mBmblhkAKo9jJBJRHFKn00Gj0RjjgrlWtv75HoPBILLZLAKBgAowY0p+KnxzuRz6/f6E16oXbmoazAViYMovAMrRpF6v4/j4eMx0ZGOrvICbTuGiSIF2biHEmL3clPPX1tZw+/ZtdV+r1cLJyclMmXVs7LMXiEajigrrugSGP+u1FWkqnAX8fj8WFxcRj8eRz+fRaDQm7qlWq6ouQrPZHMsRQGg2m3j06BGi0ai63yZCkH1/9dVX0e/3sbu7i3w+78njctrasf3FxUXcuHFD+REQEfR6PTx+/HjM0SkUCql15fvP5XIqSzMrgAshUKvVHJ2/bErRpaUl3LlzB6FQCGdnZ3j06JGKtOz1ejg4OEC9XsdgMMDZ2ZnVF8LWl1eYihiEEBEA/wFA+Pz+fyOl/O+FEDkA/xrAbQCPAfwjKWX5/JnfBPBlAAMA/0xK+aduffAld7tdbGxsIJFIqOo7TiaWp8F6e7lX36CLi4sARh54ZjJP/Tkp5VguAmCSHZ5F+WkDk1JLKVV/TNzB8u26tt7tULkdJiEEcrkcXn75ZaX5fvjw4cScCoWCUgySwttci2u1Gmq1mgqoAqAUaDpyyGQyiMfjKnFtuVx2nINXAsJ3urS0hLt3744pBre2thRHpKdi1+fZ7/eVxYDWFd0SE4/HlVLXTXejAxPFMC4lkUigVqup96Z7Y7rprS4KXjiGDoD/SEpZF0IEAfylEOL/C+A/B/BNKeVvCyG+CuCrAH5DCPFxAL8K4HUA6wD+XAjxMSmlIzkKBoMqlRb93dvt9lj5cDfFlxNchUJPB3IYrH5MGTMSiaDdbivEwLEOh0Pk83nE43HE43E0Gg0cHx+PzcX8fBEuyPaclE8qHOlac+ZcMA+mU9tOQORIlpoxCuYYer3emGON01j1Nun+u7Ozg0qlMnbwO52OUtbx8Jnr6ARO9/l8PiwvL2NzcxM+nw+NRgOnp6eKE7StS7vdVvuVVJuImHEfumOSuTZuIOUooxZrUNTr9YksTm7ch22+s8JUxCBHLdMWFDz/kwB+GcAXzq9/HcC3AfzG+fU/kFJ2AGwLIR4C+CyAv3bqgyzu8fExSqUSfD4f6vU6IpEIYrGY1RSljc9xM1wlUtDbJIVk6i+b6Q544mr73nvvKXlV18Z7Ha9Nf2AqpmzQ7/eRz+dRr9fh8/lUNmI3V2izP7fNxVqOfr9fycD6PJyomY3VJZVdXl7GxsaGkt3v37+vuAbGY0g5csHmYTTB7XCYvwFQlJna+1Kp5JqElZzW2dkZGo0GOp2OUihXKhW1n4En3IS55iZi19dFSolGo4GtrS0cHx+PJbmxzccUi23E9KkoH4UQfgBvAXgZwP9LSvldIcSKlPLofEJHQojl89tvAPiO9vj++TWzza8A+Aow8gQDoHzfq9Uq4vE4NjY2EI1Gsb297ejOOY1yepzfxDWTotoWu9frodVq4fj4eCI2Xn/ZJsXU+531hfEA6QVRzXHr8+l2u2Mcghc2Vu+L//X5869YLCKZTGIwGCCfzyv3ZI7NppA0x2muPQ9Yr9cbU+yxjXa7jaOjI8V5XSYnI5+jUphBU6YIYxuzlHKMeyH0ej2cnp6qojJk+80IT13csCkjh8MhGo2GSgTr9C54jSJYOBzGYDBQUaV8Tg9S8wKeEMO5GPCGECID4A+FED/hcrvtLUy8OSnl1wB8DQDi8bgsFApotVro9XqIRCLI5XIAJiPU3OCqkAKvO23oer2OQqGASCQy5rBjPuu2YS/K4lFrTiXX4eGhyl/g1P60w++mR6BlZWFhAf1+H8ViUc23Xq/jww8/BACF/EKhEJaWlpBIJBTldZOB9f4HgwFOTk6U0xAzKZlIjdp5Jzaa/dm4LKaJp66D62ZWgvL67mxjGAwGqFarau+a8/f5fIjH48rBrFar4fT0dEwpq8+F4ioDqUyEJIRALBbD5uYmMpkMms0mjo6O1NpTlN3d3XWckwkzWSWklGdCiG8D+AUAJ0KItXNuYQ1A/vy2fQCb2mMbAA7d2m2329je3lZUIpfLKdau3W7PrC33AjomNTcUP+ugf+/3+zg9PZ1QQtlk2KtADjq1iEQi+OQnP4k7d+7A7/fj3XffxTvvvGN1i3VqxxyDG3JIJBJ44403sLq6qvr74IMPrJGLQggsLCxgY2NDOf8wmMnLGtCD8cMPP1Rr68QSu8nWtt+YGj+TySjzbLFYVJp9pzE5rZd5n0284++mu3goFML6+roKqOJh1v1b9HeezWaVWbnf76PRaODo6GiME+R6p9NpJJNJ5REZDodx584dpNPpmRDDVHIshFg65xQghIgC+I8BfAjgjwH82vltvwbgj84//zGAXxVChIUQdwDcA/A9tz6IBbmAdOPs9/uoVCpTZWITvLCWQjzJHrS6uqqqERHL6y9af0lsn/ZttpNOp5Wrq41Fvgzom4W+CLSKMJOSOWZzvmQ1M5kMFhYWEI/HVR4Et+eWlpZUlSpmUQ4Gg+pek5XnISMrnU6nZ1a8MaiK7VI8cQJ97DakIMSosMza2hqy2SxisRii0SgymcxYu/o66iKRuS62/cV4CvNduI2R/8nyU0lpcgvxeFwVEGZ5O13MAqAqZzM3BRO5hMNhZDIZlSHLK3jhGNYAfP1cz+AD8A0p5Z8IIf4awDeEEF8GsAvgV84n854Q4hsA3gfQB/Dr0sUiQdBZOsrsF6275+VQBoNBLC8vq+ASJkSlSc2pHXMsNHO99tprKJfLeO+998ZKmduesbXpFZFwA5Fy2PQX+sbiRvP7/VhZWVEmVimlStFusrCkdnody0gk4sjB6VxHuVxWSIuKN52STpsb/5PK0zzJtknhzTXTxQebGEFlcSAQQL/fRygUmmDx+RydqAKBADqdDtrtttVblRAOh1WehWq1irOzM8X+6yZFQq/XU3o0v9+P09NTJJNJ5HI5lMtlFcwGjA489yTFHxJNfdynp6cqeS3PzWAwQKfTQa1Wm0Ak08CLVeJvAfyU5XoJwJccnvktAL81y0B0tovej04eYiY7Z9sMTvdz08ViMcTjcZV0hAut98eKRMFgUNVdMEUHOsXcvHkTN27cQL1ex+PHj5Wyx0ty0lm4i1arhUqloky6jClwYm8J1NvE43FlvhwMBmN+ALaDcnZ2hh/96Ee4desW2u027t+/bw375fdOp4Pt7W0Ui0UAmJqw1Byn/p7oVxCNRiHlqCDshx9+OOYsZM7ZfNf6PHjghRBoNBpj9SnZRiAQwNLSEpaWliCEUCbfYrFo9b+gk9fy8jJCoRBCoRDa7TZWV1exuLiI7e1tFZKui0e6rsbn8+HevXsIh8PI5XJ4+PChyjpFXw1SfzqmmeHk3W4XxWJxbC1ZNOjx48eu4pwN5sLzUQed0jqBjgj0TTCLbE0NNPAkH0ClUlEbxe/3I5vNIplMKgUOqzXprOBgMECxWESlUkE6ncadO3fQbrdVRSemGJuV63Eaf6fTwd/+7d8qU121WlXOU27z56YFnuhVWMhVD7AxEUy328XDhw+xu7s7JvLZ1lV/hjoYL/Nyuk9nqzl+Oj+xv2liG8fUbrdxeHg4EapsIlK/36/Wye/3K+ewarWKVqs1oUcKBoMqzoMcSSKRwJ07dxAIBJDP53F2dqZEAVoaqAOgXiYYDCqxMJFIKC9SKaXam8FgcCx3hZNoEg6Hsbi4qN5XvV5X5fa8wlwiBrfvBK8IwAnq9TqCwaDKR1CpVNTLIEeRzWZVMA9lPT28FXjixPTmm29iaWkJgUAAKysr6uXyGS+stNM8da5oOByq+oQbGxv45Cc/iZOTExweHk64xhKklIpzodMN3dB1UUQXI/gcMGJ9TQpFGT2RSKDVainXZF3xNouIpPfPdS0UCkqcoChBbsGLglCfB//cFNlCCHXwyIXRWkEE5OaPQH8WBoHxAEejUWxubiIQCODs7Az7+/tjmaF4cIPBIOr1+lhGauqw1tbWEI/HVei6TsT0d0V9CjkQIQQePHiAnZ0dz+8BmEPEAFzOldNr+91uF4VCQVEQc8NQkUik4CbW0IxHsx4VkKQetlyIs4ApSweDQXz605/GvXv31GH8/ve/j7/6q78aS3yqU1Rq4Rn4c3Z2pqiIXnLdNj8doQghkEql8IlPfAJLS0sIh8Oo1Wp48803lfu6iVhs83C6plPBTqeDvb09HBwcqHdkE5WcFI9ua2gbC98vk9rS7Zrcma39Xq+n7ienFIvFFGJpt9uIRqOIRCKqPT0pjZQjD9VHjx6hXC4rnQDX2u/3I5fLqYCqaDSKYDBoreyltzccDlWilo997GOOsSxOMFeIYVYKc5k+uNFMhMD+WaqcbGW/358QI3TNvP7C+eIYNejVquK0wU0Opdvt4tGjR9jc3FQ5/V555RW8/fbbYy9f33xMFFKtVrG6uorV1VXcunULlUpFbUqnQCqdU/D5fNjY2MDKyoqqe+nms+/1nVJfE4vFEAqFVPSkaRY125ymWzE5tWlEh5zUycmJytJsZm3Sx0D9BZXk5BoeP36sfBRo7dIrSzEMnu3qbs/6O6AlKRAIqKxPuuOSbfy1Wg2PHj1CPB5XFqRZz9VcIYarRArTlJFO/fG3RqMBIYSyWlA773RoefCY86DZbKJcLlu10m5jdhsrN16n08HDhw8RiUSU+/DZ2Zlj6XgiLWDkl3Dv3j0Vz59KpVToLpWKNu5B5z4Y4MYksPfv3x8rEuOkezAVwGa7mUwGt27dUnkNms0mCoWCMlm7vTdT9jd/0/tyA/6uOz/Z+tDnZnp4tlot7OzsKHGCFq9kMqk4iIWFBQwGAxwfH48pGvX10kE3o9dqNde8j8PhUDm+0ZfkhUzUYoPLcg9ennXqgy+pVqspCmweFpNS0ZqiJ8aY1f+C7U5jwQeDAWq1Gn74wx9if38f2Wx2TCFlsvI8eBRvdKUeORv9gLqx5lJKpc9wir+wrSu/M8kITZAM/abSjTEGVJhGo1EVTGVr39SLmMjHtha2uZlU1aaYNJ930mUAUASCrP329jYSiQSazSZu3LiBW7duKZ3Fzs6OY1wGXay5Fvl8XhEgpzGSQ6xUKjMrHQlzixietkhBMCmy+eLdqL1NlnYKrdX78DIet+vUa0QiEeURJ6XE4uLihF++/gzl5YODA5U4ptVqoVAoqPE5ZXHSlW/cdE5jdkIKVKQtLy8jEolAypG15/DwUIkMjUZjLOMVMOJynPxZzIPh8/mU9YJ2fP0Qm2PidepeiJjIEdn0NTbOxOxDX0MpR0FRVELrOgZG6DopRamErdfrCAQCaLVaEyZwE0nq/918ctxgbhHDVYFXzsOmO9Cvm99tbVJGpuwtpVSJR/QX5EWs8DJev9+PbrergnWo9HQDhkhzM9LMxoNBCqeDSZXZv/67fmjckCkDffQ0bkwUS2sLZWPqU5yonk0cSSaTWFlZUc5JR0dHaLfbrmIjEdbKygoymQwA4OzsDMfHx2OIxTZXcyw2LkUXN4UQKBaLyGazCIfDKhGMW+UtIkx+15GQ6Smpr4dtrl7hhUYMs8iMF213Wh/8jcFNq6urSoEGjDbYzs7ORHToLC/KiVKyTZrUaMKyKdy4iXjYSJUpe968eRORSAQnJycTCWfMA2DjEKLRKLLZLJrNpvK6s21UehIGAgFlGqS83Gg0kM/nsba2ptyLT09PrZYWPUCJ4Pf7x1zbqcXnOkkp1XO69yT1G6lUSnkIJhIJxGIxa70Hc228imD8T+cmVvMyi+zYnrWJRIFAAKlUCvF4XCFQm7L2IjB3iMErhQeejbjh9NLNDUFFJfMFUotMamWyeRcZh94vdSBnZ2eIRCI4OztDuVyeuB+Aql+wvr6uchCyjUKhgMXFRaytrSlkpnvQuR0Kgs/nw0svvYR79+6hXC7jBz/4gZXKSykVFc/lcqpCEpGTlCMNf7/fRyKRmHA64xjobgw8CSvnPM2YCr/fj+XlZTQaDZXvYTAY4ODgYEyZzPR3OlAs1PtmUiFmeNJlfScqbXKZjL60cWLm8zbulePY3NzEysqK4r5KpRL29vYcrWezwNwhBv2g8UVTs+t2oC66ANOAMivThNPObMPK9XodxWJxTMFXLpfHqI6X/AE2sLHxnU4H+/v7yoRlpkEjZY3H4/jEJz6BGzduoNfrodFo4OHDhzg+PgYArK+vK9bdPFg6QnNCaqxTsba2poJ8mFzHpodhTArb0xWXRHj68/qzPNzLy6P0H+VyWVWcYlwBHYzq9TqWlpaQTqdRqVQQCASwsLCgUtzpjkT0QqSOQUdYet9LS0vKosBcHLrTm5OY4aTcNJ9zArO9ZDKJ9fV1ZDIZhcB8Ph+KxeKYKKhztLPA3CEG4Alrur6+jmQyiWKxOLU019PiHgKBAFZXVxV7KuXIA08vPMIXzMAvmwJzFnDjKkzFkp5HQN9kjPYDRuXbUqmUkumZm7DVaiEcDivxotPpTCRXNTkj27gGgwF2dnawvr4+Yda1HQbAXpHKi8IsFoupmA8iPfoRkGrqYtuNGzeUaZb6DMrter90UmNhFhviD4VCSv8hpVSp2/VaHBSBdBd1vg86OjFTlJ7xitmlGV+jx3DYkEw4HFbj8Pl86v3Zgr18Ph+y2awiBF5g7hADF3FxcREvvfSSMm+1Wi3lQXgVyjuvY6GcGovF1IZKJBITSVU5Lid20k3+NPu0yfROh9KkyORwcrkccrmcEjUYUNNsNnF6eqoCiBj0lE6nld+AGSim/7fBcDjEwcEBvvWtbylTqn4/x0S9iJNPgpNuhNf8fj8ymQzS6bRCfHodBymlckwTQmBxcVFFU+puzjQrm32ZCMN8L7TI9Pt9BIPBCU/CWCyGu3fvIhAI4OHDh4rr4cHc3NxENBpFrVbD1taW+j0YDGJpaWksf4UuQplrBEAVF87lckpkLRaLY/oYAr0nX1jEQHbI5xuV4CJ1428Xlc8vA/TAY/m0druNs7OzMTZ0mrLSdri8IAjb827aZq5fLpdTafEikQiq1SpOT08RCARwenqqCpwSAZyenqpsP071HHSW1HTEkVKqqkpmGxzPwsKC4rZOT0/HuBy9fR5AGzJkvAq9BvUybPpY+Gyv11O6jmKxqErKsWqT/gytSPrz+julSFsqlcaiKIlgfL5Rxe07d+6o8ezt7aHT6SgOh3UrWcyGiIU5MiiCMnGLzXeG31utFra2tpToSn8Uk2O4KCc9N4hBP/iDwUAVZRkOhypohPcB0w/WZXUObL/f7+Po6AiNRkOVIrPpGJz6myY7OvWrP29rk/fa+qVuhlrrfr+PBw8ewOfzjWU/1g+h2xho3xdiFHOhp0LXx6FHLOoHPZVKKdk9FoupyEJTd0DFbb1edy0Nr1tUqtXqmEinr0W9Xsfu7i4CgYDi8ABMJGdl1jAAqhAP29LjXoQQqsgszaF6kdlUKoVgMIhgMIgbN27A5/OhWq3i7t27Y8iS+R3YdyKRUCId31sgEBjLOm4iST1/iH7NRApUKLM0oVeYG8SgbyjmCdCDcmyylv6sCVelc6ALMvMLmKKDOQe3g6w/M02PoINea8GkkDYO4uzsDOl0GgBUUlBueFs9yGnrl0wm8RM/8ROqGhPZZHMMTroBegHGYjFlpjPnH41Glf9BIpFAPp9X2nV9X5RKJSQSiTH22aT+7J8U3lx7EyGtrKzg7t27kFLigw8+wNnZ2ZgJMZlMKlftcrk8lvzXJA6cK6tS8X0lk0lUq1UcHR0pUUFKqbgEvd4IiaNtzxNBkTNw8q7lGtC1e5ZEsMAcIQaCyRLaKKgucpDFMxNumG1eBFGYL92pfae+OM5wOKwogKmX8NIGc/lxrszyw3t1ijIcDlW1K65LtVpVodNm+27IiW3GYjFFzYfDIXK53IR87aQbGA6HOD09VVGBVNCaYgodrQCoWAK9lD3bZaRjMplU0Yy292sT8WxzjcfjuHv3rtLuZzKZMYI0HA6RSqWwtraGfr+vome3t7fH9BHD4RAnJyfIZDKIxWIAgEqlgtPTU6ytrSGVSqngJj1zNw+tXuLerPbNfZRMJpUDFuNV+v2+2l+2jOAXzZc6N4jBlGn16wT992g0Ohb2SyuBjRJflnuYRa+hH2gme9nc3ITf78fJyYnyc/faLj0VmZqM2YKPj4+tgTHcDKenp0q+9mLuNeegu+3SlOkW1ed0XcqR49Lu7q4ypfE96WvAYi2sUxGLxZSWXofhcJRWncjFRAom5+D0XV9bplxvtVpjadX4XKlUwsHBAdbX15VVhBmsdcp9dHSE4XCIpaUl9Pt97O3tod1uY2trS9XkZNl7jqPX66ksWsPhKBmuKarRCsECwaFQCJlMBkdHR2i1Wrh79y7C4bAy3epIhfoPepd6hblCDPpCkMXS7fO6AmxxcRErKysqz52UEsfHxxcKXLpq4Fyi0Shu376t5GspRyZN3RHJCfSNrK8BEQO98qgnMINqKALp7enjs30mkMuhHE/3aT2xiI6k9ZTsJtLjf4ZQU4bmeDnHVquFarWqQox5UGyWCl3XkE6nVXSpmVJd/3MSAWu1mgpwIoU3+6vX69ja2lLWnWQyiddeew2PHz9GpVJR/Xa7XRweHip5nmIFfV+4tqY5mMjASU8DPKlDqseRcI+l02kMh0NVFFhPrCzEyOfh9u3b+MEPfuC84QyYG8SgJ6ZIJBJYWFhAJBJROffNfIv0LGSyUTND7yxU/mkAnX5YwiwWi6kUYLOMjxSSmYHpoRcIBPDqq68ikUigWCxif39/zLHFC9fkROVZWDiRSGBnZ0f59mcyGWWDJ0SjUZVdiJWvmJjUREbJZBKLi4vKMkDfA+oPWP2Jtn7GKThxgdlsFhsbGwrZ6IRBz67s843Kzump4tlmp9PB7u6uytTlZBFpNpvY2tpSkZFEnu+9995YMl36hBAhLS4u4md/9meRSCTQbrfxF3/xFzg6OppAPtPcoikKEim02200Gg2lzGU+SLMNv9+v3PRngblBDDrkcjmsrq4qTTUAZaUAnlgKhBj5uPf7/YmUa8Bs5sGrAJMSRyIRda3T6SjWU7/Hacz6C2632yiXy0rpRqXV2toakskkYrEYGo3GREowc0xmP04UlZmoQqEQFhYWUCqV8MEHHyAWi6l5cAzr6+uKxaWuYDAYTFgdgsEg1tfXVZ7JYDCIo6MjlEoltSZ6vQ6ugf6fn3WOjPdmMhnVFpHy8vKy0ovQjbnVak3ooygiOXEV/J5IJFS4dLvdxu3bt7G9vY1KpaKSr9DPYTgcIhgM4mMf+xju3buHZrOJjY0N3L9/H/l83pPOSn+PjUYDJycnyllLT+xSrVaRSCSUwl5HyiyKq+fK9AJzhRj4Yihr9vt9JXOamLDZbGJnZ0dl0GVOAcKzRgrsR9fQ1+t1pYyiLOk1vZY+fuZ6oMkUgArUImW0iQf6oTfbptyZzWYRCoVQqVTUpqLWmxYC2sm5EXVWniJHPB4fqyKmV2bmvYw8JcJnuXk9pNpLmLApLugxDrpuh2OnKMaAKlOHoP/X10dXoAJQHqO1Wk0Vf2FA2ObmJtLp9FhWaT5zdnamam1mMhnlwm5DPm7zZSJZ/Vqz2cT29rbyq9CT9XB9bK7u02CuEAMApcUmJXQqOkOWjXkM5wX0DV4oFJSpiolMdRv5NHZfv49/pG6DwQBvv/22ChBisVe2Y3IMJhfh9/uxsbGBpaUlSCmxtLSE7e1tFc1YLpextLSkTG/ckHob1ClQv6Cn2zffCcdPkY/sN6uc63N0W1sd2bGkITNQ6foNXYdB2Z+iBJ+3vQOKJcvLy8pCwfd4dnaG73//+3j99ddRKpXw1ltvKSTBSl2xWEzpf87OzrC1tYX19XVEo1EcHBzg+PjYmlTH6f1PQx5CCMXF6ZwC50dTezgcdlxXG8wdYtDlvkgkgm63axUTeC8wGQVnKm4I00x0VwVsv9vtIp/PK49Arxvf/OzEWp+cnChFl+lt6GTlITBCkWsnhMDy8rLSIWxvb6t0bSanoLPgrOHJ8F/T159AjknPd6iLJfra6AfXaW0BKJ0EWWvK6bQQ0HJBtttEnFwnPY2bEAK5XA4/8RM/Ab/fr5SavV4P7XYbb731Fj766CMVjDYYjArIlstllUlLSqn8EQqFAv7iL/4CCwsLKBQKyl2cv5vv2twLThwN81oEAgE1Nv05nXNloNcsMDeIwVyEdrs9JjM73cv7TdCvsaiMHot/FTHr04BKJTeENI1ltukKuPlt7C+tOdMUWvydMRS0dFBUYRZt3qc/p39mDoV+v6+iIo+Pjyf67vf7ODg4QLfbVe7luqOPObZpQK6AQU+mfoD7R19H/cAwHicUCqHT6agoWCFG6dfj8TiGwyFWV1eRyWQwGAzwwQcf4PDwUIkJ+gF//Pgx6vU6wuEw6vX6WHLYfD6vXJepj+E91ImYLtlO60Ddyvr6ugo9r1arODk5mTBxso1erzdzpvK5QQzAkwPvhCXNg2JuUvOQ8TuLeXAxqWmf1RtsFjCp30Xu0w87gInDpj9LhRutOd1uF7u7uxOUgs/Qi5AmsH6/ryIjgVGR1NXVVZUxmUo7kwuhWbRQKCgXXVs+QilHuqOjoyN1CMw6FPq8p62X03entWUSl0gkojJi85BSm88DD0CJfKwPenZ2piwCUkoV0JVMJuHz+VAoFJSC3OmAZzIZVS+TiKderyObzSpuo1qtKoc0tmFDaLpeiaUObP4xbkjGDeYKMejghbq6aa/5nfECn/nMZ/CpT30Kw+EQf/7nfz7m9vq0wDZeE/npYzXv5SZgCfrT01OUy+UJMYEWkFu3bqmNSt0MDzrZZmY0ZgwKFb1MH0bzLzcrMDJfmp5+OidQr9eVW69uh7fNT6+kZFsbG9gIhNM6O7WRyWRw9+5dpFIpVKtV7OzsKMUtlaFMw3d8fKxMwp1OB+FwGIVCYczHgd6ZjHPw+XwqaMpGsJjghYieIlUsFsPKyor6LZPJjPlC2PYQ9TRmP06io5NY5gZzixh0cJM5dXCiuPfu3cPnPvc5AFCs7DRKfhVj1v8SiYTK6VCr1VwrKnGe8Xgc6+vrSKVSSgZm+i7z/mQyqTT+LJLDDRQIBBTb3Gg0VHQjKdTKygpWV1dRqVSUcozyPy0TmUwGJycn1gOvBzHp/00wrzMcOxwOK4WdrS6jbW2c1tu0JnDd6FlJar24uKhiRwAo6wr9Ax4+fAi/34+9vb0xqwz3IUUuWm/oqWnm6CAQeRB6vZ7ai3ScogKXpl9TvCZiL5VK8Pl8qr9isTiR/4HIxwkRT4O5QwymqGDKhl6wormh9PLip6en2NnZeapihDnOSCSCl156CZubm5BS4ujoCB988IFyj7U51VCWjEQiyjVYjwnR10kXOSgzt9ttBINBRCKRsVqGRByUzYPBIFZWVpDL5ZBMJtHr9XBycqJqcbKEnxNFtyEKcx42MYGs/ebmpgo46na7uH//vtI7mMTAJj/r+yOZTGJjYwNCCJX9mhaParWKBw8eoNfrIZfLIZFI4PHjx+owmuZYIpZ6vT72fni4m82mqiJNztSNcOncKRFyq9VSvi56KLse72AiB46JZtLhcDiRwCgUCqkkR91uFycnJ2g0Gi+mS7STjoAmIG54+pHzdzrL9Ho9ZbLRN85gMMDW1ha+853vIBAIYG9vTwUYPat5EbszWQljH/RcE/rm4zWG9dZqNVSrVVUKTV8fAl2tGedPj0T+RpMi8IR60YtSp240azWbTRwfHyvZVw97d9PtmAjEVJrq1+LxOOLxuNKuA3AURUw5Gxg/bDS/Mi6l0WggGAxia2tLUdNKpYL79+9jfX0dQgil/AyHw2O6EaaPW1lZwcHBgVLcMafncDhUZsxOp6MSrJAjsQUuMdEQTfBUPFarVZRKJZWroVKpTDiHmQSPpnrd41Jf23Q6rcoKMKpVTwzjBeYGMQCTm4yZb1gsttfr4fj4GJVKBUIIxRJS8VKpVNSC66zXyckJvvWtb6mcjW4p4q56PgBUuXr6zR8eHqrUXkR+OnIgNBoNfPTRR6rknRkLwOhSAKr+YTAYVIlRgJEXaavVUoiQnBMPOHUL1EswiIj+JExvbkvgYrK5+uE1uQadIvIvn88jlUopH/+9vT1lYrQhG+Y8WFhYgM/nw/Hx8VgMAvUFnGMkElEImP2zLLyOKE1TJl3Cb926pULFE4kEPv/5zyvz3/b2Ng4ODtDv95XjViqVwsHBwUR2KGA8l6WO+Lg3OHazngV1HdwbugLa5M4IRJx0lWaSmFlyMswVYjCBmW6odQ0EAipFOVOsUT5jggy/349SqTS2+IPBYMy//1kgBeAJpu/1ejg4OFAyOhFXKBTCysqK0noXi0XF7nET6FjeRAqZTAaLi4vodDrKcsCMQUR+zAVIJaSeXlzKkZPQ7u6uisXQS82RrbVxciZFY07DZDKpkI0ZzGNyGs1mEx999JHKm6jHw5jchRAj9/fNzU1FdX0+n7K8cF39fj96vZ46HDrS0kUEm8jD/wxM0pO03L17F5/85CdVKb/j42NFnJaXl9VaVyoVK2LQqb25jnq4tI4Uw+EwFhYWEIvFFAfJCFW9PZMrYyJbiqDhcFith1eYe8RA1pYblCw5E37oxVL0+gr6hnbDrk8T9L7oO0GgTHznzh0AUMVpDw4OHGPo9U1O82s6nVZhwwz7LZVKat3Ozs7QaDQQiURUII2eiJTp6oiQTFbeSemrX6PpbnV1FclkUnFl5XJZJVLR10NXDrJqs7leNmSUTCZVaXcixlarpdbs6OhIcQlEqk5Vucy2aaEYDocIh8MqAzdDp0OhkCJADNHmHOgPwspeTvPQ19WGKM33nEgklIihlyPQncLoR6Fza8zdubKyorhNcn5ewTNiEEL4AfwAwIGU8heFEDkA/xrAbQCPAfwjKWX5/N7fBPBlAAMA/0xK+ace2rcP8Fz2JDfQ6XQUG1iv11VgEeU7wF0r/qyRg963DtyM3GxSSqRSKRwdHbkmnQGeRG7G43EVL8Fkn4yr4EEnG83kHzQv6m27ZQGyyfv675Rhl5eXlWWE1Imu1HT2sbVnHiKbqMLPeio17oGFhQUUi0V1GDqdjip/xxoVtvHrCM/n82FtbQ337t1Ta7W1tYVms6lY+0ePHuGjjz5SPgv0haBzUSaTwenpqZVbcIJp+hqOjRYLWnFMJazN/bxcLqtI1U6n8/QQA4B/DuADAKnz718F8E0p5W8LIb56/v03hBAfB/CrAF4HsA7gz4UQH5NSuqaSsVkU6E1Hcx03NjX5tVpNHQpgtMFN/wSbNv15IQcdyPKVSiUVIWpDCDZ2lwlbhHiSplz3U6BWXn+e+RCoPzAPn5sC0YbUzP9E4HT5ZYAVr7utOe/XA55MRDIcDlEulxGNRrG8vKzYfJ37YQo7EwE5ITf2EQqFsLa2pkyO6XQatVoNf/M3f4N2u61ykP7RH/0RhBDKKkBRjEFMZgYlcw05z0gkgmQyOWZhMEUC4ImJle+82WyOiVtEzJFIRGVw4jumZ6nOnc0CnhCDEGIDwH8G4LcA/Dfnl38ZwBfOP38dwLcB/Mb59T+QUnYAbAshHgL4LIC/dmlfscO6DZvx/VSiSCmVmQeAyg1J5dlgMBgLUmLbwLiDj40iPQ9ot9t4+PAhstksfD6fyuSjg22T8TqpJ2MPYrHYmMbaVGY6uUjra0T7t5kw1ekZAMr/gM8CUOnKbDK1/p0Hk4VuW62WssvrfZNj2N/fR7vdVpmUbTkf9YPjtH4mkHWnOJpMJlWhGmDEebFCl678o45A9yPQKTj75/7L5XJYWlpCIpFQ4g6VqOZ6M/KU75URtvoaJpNJLC8vq2jPYrE4ximZOhuv4JVj+B8A/LcAktq1FSnl0XmnR0KI5fPrNwB8R7tv//zaGAghvgLgK8CTMmKk+HraLirUuNi60wq/m7UWTaDNPJfLoV6vKwXRNJb9suBGdYEnmX5ZB8Hm8GTb0KwHQTGC+QKXlpawvLyMZrOJw8NDVTvCy/wYqkwkVa/Xx4q32Nh/HhKWamdgjxBCBfbo71LnAogUEomEKogDQGWNstnyifSOj4+Vht2khjYRySQS5n101WaIfCQSUfk5zf5toI+TzlpMsKMjeopdiURCZR1jghU98S2BMQ5MLaBze1w/+rrQjyKbzaLb7SodHJMBzwpTEYMQ4hcB5KWUbwkhvuChTRtqntiZUsqvAfgaAEQiEUlsTQysa2n16Ldpm9zGLUSjUdy8eROpVAr1eh0LCwvY2dnB2dnZzCzWRcAmGujjdEvYaVI8rkepVFIWGWrDV1dXsbq6qvwTms2mtQCJre1UKoXNzc2xSlUME9fHbXueCO7w8HAsYpEh0eYa6++HCjbdz5+b3/Zu9P3gxAXY5ktKrvtA6CbAw8NDtFotrK2tIRqNqqI8+vNuOhe6VW9sbCCRSKhYFfok8NC+9tpriEajyOVyGA6HuH///pgbtdm2nkTGnKMuIlIJyeQ6q6ureOWVV/BXf/VXePz48YS37DTwwjH8LIBfEkL8AwARACkhxP8E4EQIsXbOLawBoJF0H8Cm9vwGgEO4gBBCpa2SUqqyYzq4IQSdEpn38jpZW2YQymQyYwlCrpprMGV2m2LJTeZ2+51s5XA4VN6KzCK0traGcDisKLfZv7k2wJNKRXyO1gIppfIfsWnXTWTllJzWbY5Ukuruu2a8gW1dbAfFhih0MSmXy6kckcViEZVKRREjppqnw1MymcTCwoJi302PUxNhB4NBZZVhsJWuX6HJ84033kAwGMRLL72EUqmEN99805oKT+/DaS2kHIWU01JHx7nl5WX8/b//97G5uamKDNHT1StMRQxSyt8E8Jvng/kCgP+zlPK/EkL8PwH8GoDfPv//R+eP/DGA3xNC/A5Gysd7AL7noZ8xJcysCkKnjcFNXi6XlclH12PYnrkskrCxrrM85zQuHah81TmCYrGIBw8eIJPJIJ/Pq8PttMH0cfKPSV+EEFhfX0ez2cTJyYlCDjYEY2vbbNd2j5RSZfim63WlUhkzxzkpj53ac+o/FAohmUwilUohFoshnU7j8ePHE7kyhBC4efMmbt++DSFGLvQffvjhWMo0N3GP5sxms4lms6nWivkvOp0OVldXkc/n8fbbb+P09HRMbKL5XRcbbISO86VZmNnIidDoan779m3EYrGrRwwu8NsAviGE+DKAXQC/cj7Y94QQ3wDwPoA+gF+XUywSdBjp9Xoqom2Ww+lEKdjGYDBQHml0kGLGI1OOvSy4US0vB8o8xDbNtimv875er4fHjx9PJDbV79FZan0DHh0dqQpb0WgUmUxGxWnoyiyn8TghMka3CiGU96YZN1AoFJT5UaecOlLQx875zRIdqysFSVmz2SzK5fLYwaSuhen6o9GomqsTpwKM9nA+n1cK3JOTE0XopBwpTh8+fIhwOIxer4ejoyO8/fbbY6XoIpEIbt68iWAwqBzeTG9X870Bo/0dDofx0ksvqaxcq6urKBaLEykPvcJMiEFK+W2MrA+QUpYAfMnhvt/CyILhCXQPP93z76JgsvHAE0UO9QrE4mRhdUXkVSEJHSh7MxeBV73JLL/pcrkNwfBwpNNpVUa+Xq8jn8+j0+mg2+2qnAF6hSTTMYuKUv2a/p9ryBRpzIPRbrdxdHSkErkQdCRmA65bKpVS+QyYJ8KL7EzK2mq1kMlk0Ov1JrI66fcxoUyj0RgLxDLXQEfSUo4sZuQSzFoeg8EA+Xwe9XodP/zhD5VHql6Bil6UkUgEq6ureP/993FycqL6ikQiWF5eRiKRQK1WQz6fV4iDtTao7/nOd76DR48e4fvf//5EjI0XmBvPx8twCNPkWP0eeqklk0nkcjmlbMvn88rv/jJIwYnNZNzH8vIyfL5RTcNCoTCRFn8aUnLiJKaNhZsrkUgoqgSMqOfZ2ZkyARNZEikwxTupFHMI0M3aNh5+pzKOgW40qZVKpTGK58Qu6/+TySTu3r2LUCikYjoajcaYco8KOJuykx6hVMyy8rdp0WChmMPDQ4TDYSwtLSEYDKJcLisOIBAIKAezcrms1oiRjk7vREdItvfMNeH6M4yeup61tTXl7crEOUSyJycneO+995Tj1dbWFra2tpQX8AuLGNzAtvl0CqhTX/13sw1uIJpHqYjkS/joo48Ux3JVXIO+aZkNqNvtqjwLu7u7YzZsN47FTRRxG6tO0RnNSE863d+BVI/epAw5XltbQ7vdVpaPTCaDbreLg4MDFTrMQDY9OIzuyTSrTkMEbnNiujVdp0InJ59vVGl6dXVVlYHTlZp8llW/3XxZyM0JIbCysoIbN0aW9kKhgIcPH6LX66mydsyyvb29rUyKtnnoSt5wOIxIJIJ4PI61tTWUSiU8fvwYg8EAtVoNjx8/xtraGiKRyFhAmR7rQD2GHrJNh6xHjx4px0BbxWyvMDeIwY0CmgghEAiMhexWKpWxF6MrnGjL1c2fVAQxa44QArFYTPnIuynZZgG9DdrgSakp4wYCAXz44Ydj1Ne2Hk6Hx9QzuK0r8KQiFM2Zx8fHY74KjPZjghZGtnLdUqmU0j0Ao3yDepoxRr+yL5o+hXgSBGS6KU9bYymlMr2SY2C8AjBKbfbGG2/gs5/9LOr1On73d38XhUIBwChz0+3bt5FOp1Gv17G/v4+TkxNrtKg+FnILTJibSCQU8tMtAAsLCzg9PbV6XOptEincuXMHP/MzP4NXXnkF6+vr+NM//VMV60GHPs6TYgk5EdbNKBQK6l7d5KoXgjYRwqyK8LlCDLqM6oTRhRjZg1dWVsai38yS4KlUSoVkN5tNlEolZU7jIWVxlEAgMGazd6LWOsyKMOh7QK6BbqusRahXXXJr32kjO4GpsKzX6zg6OkIgEECj0RjLJMW2KLeyLgPNbplMBp1ORx0SOvLo97B4K/u6f/++4kCazaby4Tfn5DQfjv309FSZHCmO6GvWaDRwdHSk3inwxETJzFnMUVGv19W8dX8Ive9Op6NyYvp8PqWsjkajikKTpfcahxCNRvGlL30JP/dzPwe/34/79+/jb/7mbybEmUgkgsXFRUgpVVzGYDAqTkyXcyIMcy+YTnsXJW5zgRh42BkmyhBcm3MHlTR0KQUwkXqM4dqkZPTBp4xI19FsNos7d+6ofH2mM48bJabM7TYnAtshxbp586aaq26e8wJelZE2joOUh9QUwBh7r99PisyIQyojGVSkR7gylwPwBKmwDeYgYF9OazpNd0JKSc5QV1g2m018//vfxwcffAAAYxmgaLnQg6/oZ2Cujw79fn/MnNlut7G8vKzybzabTVQqFRSLxYlQdad30+v1sLOzo5IHPXr0CIeHh2N1JqLRqCIeBHrp6p6cuijNft36nxXmAjEEAgGsrKyoeAhGtekhuwS+JOYjJKUyI8y4WbmYFBWo7GPmnE9/+tMIBALIZDKe2S1TK+10jwn9fl+x2nSJbTQaE5p1J6ppfnYD86Dpz7iFdfMZRhnSoy8QCIy5Sfv9fhXglslkIOXIJGcmIjHHymhSImszzsGctz42Wo/MNRgORxmVGo0GhBBj9SUKhYLKEk7ZnG3o7ZiIcTgcjkVz0oQbjUbHckUyyMrL+2g2m/j3//7fq+Qx/NPFX4aWk5O1WdiEEGOl50hcnCJJZxUjgDlBDHr6NuCJzZn5/m2bIJFIIJvNqgg1vT4BqR3t51zkWCymTFQ6NctkMmOVepwor03UcQInysgkJmapOqcN6tTuLDALUtHH0el0xqw15OL0/AksUBOJRJS5juy53he5uGQyqZS+7XZbBf3MguxsEI/HcfPmTQBP9By6Qo8p17n2Xt+h6Xqtcz26i7WXsROhmFReb5/5KcLhMBqNhtIB6WONxWJYXFwcU6qenJwoi8RVwFwgBl1eklIiGAwqjoC/m/IfHXJo+jMzNNXrdSVyMCQ2GAyqvohgvvvd7yKTyWBra8uaHp3969jaKdWWDqb4o183g3tsz1yWJTQ5BS9UQ0cKXCcqbp2oqx7qrDsc6f0yh+Li4qKS9ZnxiUo2t0A4XRlsjhUYIZ27d+/i53/+5xEMBvHee+/h29/+ttIjtNttFcfB9XfjqGzfmXtT19k0m82ZApTYtykSMM8CA69Yha3dbo8V4QUwZmpnvVD6NTDlobmPXliOYTAYKKxIs1av15so4MnPdOIws/oCT150u91WFZL0SscmkAJys7phXEbHra6uqoi2s7MzHB4eTlgV9PFKKRVyMJGgDa5KTvTSpn4wbAdPZ3PN50wkYL4HPsPYFCZS1TlD6i6cDqgQYixqk3vDzNvZbDbx8OFDLC4uWuducyiziYRO75ARmMlkUtXhqNVqE/qhaVyZuU9ZOySdTqPf76sUfWa0JRGIEGLMKsMkyHpBYls/L6RVgi6i1HIDsNphbay8OWG9rkCr1cLx8bHCxpTluRkymQw2NjZUmnWzOCz74jMMULl37x7i8bjacIlEAh988IFjklkdOVAvYib1MPu7LLhRCieRSKeG5lj09qZtfpPD4vPMyci2mE1KNyWb7YRCIWxubqry76yNmc/nVRCclBK7u7s4Pj5GMBhUhMM2Z34mkk+lUooDZMCUjrj1uZLNdzJLXsQCwMI18Xhcrc3u7u4Yl8DUeZlMBu12G+VyWTlgdTodVSjIxq2Zc/cKc4EYpBylotIjKs2Fd5qcvmHpl0/RgZvOZPd0Fo5A5ZKtxh/HQs6GLCkVacvLy8qxhPfbnhdCYGNjA6urq6hWq9je3p4pFZgJs1InJ4SnHwA36uf2PvRnbWw4g3jo/SiEQLFYVKn8bYeMyHtpaWks+lIv78YDxPfsZlHSP5ucn9/vRyKRwN7e3kT2K9sczXHyUJvxHm5Ajol+IsPhUHk7sj8hRiHxGxsbY5ascrnsuO62s/JCcgzAZPZc4MlEqeSxFdjQ2dV0Oj3mzRiLxVQGKBurfHp6ir29PWX6pHOI0/joZHJwcIClpSWVEZnmKvOQ6cAXGAwGsba2pnziHz58OOGc5RVRTKNYtrbcxqjfM2vftn75nwVuWOuB3APjMJzENyFGjmfBYFAFT+k1Gs2+p62bLhaRe2MGZY7BiR134sB4cJme7+zsbCaPQ4oNwBNLmrmWdChjhiv6wEzjDLyuiw3mBjG4bdJIJILNzU0sLy9PUFq+MPqY07og5chBh041tj46nQ4eP36sMPa0ehNSjhRO77//PhYWFpRVhJGh04A+7R//+MeRSCSwuTlKW8GgGrd18AJOh9VJvDH/u3EItmf1+83DYyJhhiKbh27afKmAY61HJoAxWX4CD72utzCL5/p8PuX0Rk9Gxl+wRoStWrYJFHWoPwFGXOvh4aGqnO22hszEtbOzg3Q6rQ6+af7UUx7qNUL0dRbiSTYn6h3cSv1Ng7lBDDqYGyyVSuH27dsIhUKIx+Mq1l1fQGp04/G42kAMCNLbZZt8hg5PXscFQGm5T05O1HW9bScKKOUo/8D29jY+85nPYDgcKscuW1WhpwFu3IJ5AJwUWbb7deWYfgjN/maZG7k6svkMya9Wq8o0ZyKFYDCoDhnfPbM3s00+x2hbhlczkQstGUdHR1MPeCQSUYVtde7Va1Ej+ksUi8UJ0yf71QvVMNkxfyeEw2Hcvn0b2WwW7XYbZ2dnODg4uHBxpblBDDZKQrav2+2OeeGZB48bkFSAeQuJOb3K4m6UwUZhbW2aWm4T+v0+Dg4O8MorryAWi13q4NjG5+WeWUUWtzYpX9M/ARixx9zATuytOQ7zPj3I6/j4eCyZr5OJmJWqWCyGcQ5SPknYao6FBIT5J3R5X68QZltH4EmCXYpIHPs0kc22LvQwpVs3A9w6nQ52d3eV0tomHtIMHIlElPMcIz8vAnODGAj6gvKP2YFLpZIKWLFtcmqWWdCVrJpO8WgzpjxHSu2WG2EWltqch+1eOt3EYjHs7u5azbKzgNtzbtyB7T6TO3BDlkKMPPBWVlZUnoR+v49EIqE2pu0A29bFpPy8xvc6Te/B8dBXhZ6VvObmiEQxRfcvmOZJyLExqzX70q0sXoDzohi8traGT3ziE0gmk/h3/+7fIZ/PQ0qpxBobwiHiOz09VbVGhHji2MeCNdOSJuswF4jByY7NnPk3b95EPB5XHm1Oufv5vG7n1jcmbcarq6tjPgiMjzf7nwWmaYL1l9hut/GjH/0IPp/PKjPOMoZZuCGv7XmFQCCApaUlldcCgJLfyVq7IQWnvp04OF1/oGv/dQTSbDYRi8UUu80s2m7iIvMkML1ct9tV+gcbwtKzSNF1vFqtqr6cIjed5uvz+RAOh/Hqq6/iC1/4An7mZ34GoVAIh4eH+Pa3vz1m7bJxWFKOlLn7+/uo1+tIpVLKPfzOnTvIZDIAoERfLzAXiEHP3KuDEKM8/C+//DLC4bBiVY+OjhypIN2r4/G4ygxF5yMiGbYDjArH2kqkzQJuVNX2OynNtD69IInLIDKvlNvpecrXAJQbLxVltnToXudiIgP+pdNpZLNZhEIhtFot5PP5sXdHEyatGRQDqtWqq48JQ5hp9aK4YooQQozyWTBcvtVqqTgFPdLzImJhMBjE5z73OXz+859Hs9nEX/zFX2B7e3tizc310b8z6rRcLiuksL6+rnQzs8BcIAYd9MXkiz47O1O5+Ck/8UXpz/Ha4uKiioKjiynlSxZDZd0D3WEFuJiTit4/29DBZI31eZpczSwHaVawbVonWdiJ2utzYzAUrxMplEolleTlqpBtJBLBjRs3FCfCAKK9vb2xTU+zM+M79LmabZvvQI9ytCF7+qzQS5aJZY+Pjz0heoITl/uXf/mXqFQqODw8xP3798e8GTlGfd/brgGjPc6cJbSwvJAZnJwWk9j+/fffV8ohskPRaFRheCGEinITQowVASVlY449yvTD4VDl4HPL6HORefBlmSKSrsgyN+Vl4SLchU3UMa/rv5nX9aIspKClUkklEpnlkDhxL/xdd4vmcyxWc3JyMvEOzRyebv3oY2HZeHJ1OiegB01JOVI4RqNRhMNhxZW66SScgDqChw8fYnd3F8BIvDGVpRwDa3Pq1cSB8Zgc+tfQOYwJgrzCXCAGWzQeP9NppNFoKOeWZDKJz372s6qQaLPZxKNHj1AqldQi83ndHMksN3SlddJuXwWQteVmYh1HvSQ9YVb9xlXoQ/R5O6292Zd+UKkr2d3dVVW09VL2TkjICcnYxqH3y6pWjCngfTqycJqrDcw5Mifn6uqq4gioJOb7ov8EdQKMvzEV3NOQj+39MUUAs3Qz/R73EYG5L7n2unOULgpJKZHP57G4uIhYLOY5CpQwV4jBCfx+P1ZWVlSOvEgkgk996lNIp9OQUiobLzPdsGgIk3iaiGJaPoLLgEmFqdt46aWXEAqFUK/Xsb29PRZ0NY2F9zLOWcbuRtVsCkBzXoTh8EkZe5s4NE0ha7tu+53UcXd3V2Wc5ma3me/MOXpZ01AopEKz+YzJ8Q2HQ6WUDIfDqNfrqpweCQAJDg+nKaY6Ae9JJpO4d+8eUqkUisXiRMW0TCaDhYUFpWNpNpsqepUVz2kNajQa+PDDD5FKpTw54OkwF4gBcH55TBTycz/3c3j55ZfRbrextbWF999/H6urq0ilUmPKH3IFxOzUEk9j8a6Ka7BtSOo1aGdutVoqUMZGIZ8lmIo+/bMNUfA3/V6b/Ookp18UuNEfP36sCs7SRd3p3U4DHRlx7zAWhgF1unxOBKUXtwWgcj+yzGKpVBpLHaeD7o9hjoUEcGFhAZlMBvF4HJFIBD/60Y/UfmYffEYIoTKRBYNB5UPCvuv1+kTuDy8wN4gBsPv6E5gVl/bY7373u4pydLtdFAoFxQnQc23a5jA37kUVR9Pu63Q6ODk5UTUd1tbWJoLGnhbYFKs2haPtILtRcYLbobwoUnATlVh5iXEtXkRBHiBTfNLn0Ov1cHJyoorrMKTZJhbxGrmE9fV1lTS31WohHA5jd3dXmQwJlPWFENZ6HXTKop8N84GGQiF1uKWUqhAy82QwOtMM4CKXc5H3MBeIQX9xtkkwk1O73cb777+P733vewpr06ZtK1piO/j6YdBZRf0ejsnLhjOfs7VDFjQajSoqsLy8rCo/TZPHzd9m1UWYY5qFS2IkqQkX3XDTxuame9APtxs3ov/GHKHJZFIl9HGaT71eH3Od1v87tR8KhZRbOwD1PxaLjTmuBQIBlZiW+Sspgpl6m9PT07FkQHpJe0apMoZEiJEDF8P4bZWnLsKFzgVioOupzQccGCUY/dGPfoT9/X0cHx+rAh9uSh4dbPcRQ7MEmR684kaF+CL1Py9Ui6XO+cKZOdktX6CTMs4rTEMspihlrjsRJ5GbeSCduLtpXJWu4ddzc7rNzUn3YFsjnWMJhUJYXV3F4uIi+v0+PvroI0dTqm1dnJA/OYZIJIJcLqdyiTBZrvleY7HYWIEjU2lJBMAM3uSMDw8Px3xCWOuy3W4rb8tarabKKOhm2ssoqecGMZAyUQ5nfARt48fHx8jnRwW1Z4kaczoclM3IAhYKBeTzeU+JPfU2nDgMHWHwYJ2enuLo6Ai5XG6sApWTJvuq5HMnBDDtIDLfhJRPLD1eLABunJQQQuXNYJIUOgqZlaFseg4vSEe/N51Oq34SiQQWFxcn+nGai6mDMN9TMBjEq6++ijfeeAPD4VCVvS8Wi4rzAJ6ksc9kMojFYqjX6xM5RrlHqtUqHj16hKOjI2UF0fckrXS6mHBycoJKpaLEH/apr8WsyGEuEAMhk8lgdXVVTSqfz6u6e0QQhFkmaqMqZAEpwy0sLKjF9dI+2UNWMLbVUDQPYKfTwfb2No6PjxXGn9bHZcHc3Hq7TgpGfo/H49jc3ESn08He3t5UX3shhDLL2uzwwMjfIZvNKgclJknhf7LCHAu5OtbBMCuV25CoPh9m7iJn4pWoEIGRs6O5VOc0IpEI7t27p2ppptNpvPPOOyoMn/fRa5dxDEwIa4KUT8LTdTHEfF/m+G3Zpi/DLQBzghjoqcXFI4ZMp9OoVCrWfIpeZW3bwaBcRraeLBktBl7aY8m5xcVFFaKra7DNwh/8rCMRnVI8bZhGeYHJNWW9DgA4Ozuz1r/Q1yOTyWB5eVnJvPv7+2Mp1oQYuSonk0klytE3JRwOI5lMjiVYFWKUwenv/b2/h3A4jDfffFM5M9nGwM+hUEix5rVaTflZtNttVTfTNnfzezabRTabRTgcRrfbVZSZa6AfcHK5JvLhXiNXzATHtrIITu/GPOjmntKRKPUpHE+pVPKc4l6HuUAMXOB2u416va7cbBlg5IQAZlHE8X4CA2dYS9ILBQeevDi/349cLocbN24gHo/j9ddfx/3797G3t4dut+soM9PpyTauq+AQbOO1fXdbUwJDjwOBAJLJJIrFomM/jAxk3gRmbdIrSvPQhkIhFVdBykziYK5NNpvFq6++inA4rKJrdRdoEykkEgmsr68DGKWRr9VqODo6UlYrfT/ZDiCBVgFaEci56GHMnU4H7733Hr70pS+hWCxie3t7ojYm15FlA1hFW68Axr51IsYcEUI88eo1uQf9PTJAkAGHTIUXi8Xw+PFjAJgpo/VcIAYASgZvNBpq07il5571EJnKQsb50xmq0+k4aqxtQL+E4XCIVCqFl156CTdv3sRbb72FbreLd955Z6KylflZn8fTQAomOOlb9N/172TBqQwz9SYEcgtMB0/FmUnd+Eyv1xvLdUBkYLP7n56e4v79+1hdXZ3gPsz56LK8Pt5arTaRj9NEKDplN8UNfjadqXq9Ht59911lIWMZRHNczD9KoH+EuS4cRyqVws2bN1Uo+8nJCR4/fjzRv/45Ho9jY2MDqVRqzGsyEolYrW/TYK4Qgy5jAZh4OTaxQP9uu87/DHoxM+vWajWlyZ3lcFIxNxwO8ejRIzQaDWxsbOAzn/kMDg8P8aMf/WiMXaQyj3O9CrgqTsNJqddoNFAqlZQbstkvgcpEHnYeLpsI2G63lTKQLuKMYzGTikg58mp95513cPv27YnELyaLTSTGg51Op1W5exuB0fcHxSAWOjo+Plb1MugrYybuZdaw7e1tq/zP9ofDIYrFotKfUFdhG0s0GsW9e/eUSMZgqFKpNMaxmfs8Foup9aSuh9HFmUxGZWL3CnODGIBxf3wnWZb36de9WAhSqRRyuZxKuxWNRlEsFq0KMjfgOBik4vP5sLq6inv37qHb7eKDDz7A3/7t346lqicrLoQYU65dxYF2G+c0EcxUPpoHvtvtKk9DXba2tUeqRCUfay7o9wBPqo4RkYTDYezs7OD09BSRSATBYHBMx5BKpfCZz3wGb7zxBo6Pj8dK3DOZKxPy8KCS0rbbbYUsTPO2noaOYiFDyGOxGDqdjvI1YI0TW/o9EjN9jiai1V3H+bsT58JqXXqQoEkgbe+KVcwBKI/Q4XCIO3fujKWq8wpzhRiA2a0NwWBQ+c1ThjM3O5UydIYKBoOIx+MqR78Ti227zrZ7vR52d3dRLpeRTCZRKBTw1ltvqUKn3CzMAbG2toZer4cPPvjgSjwe3RCh1znYxBhzQzcajTE9gQ102V0IoRLg6NeAJ+wu3ZnJujMgiZRdHxdzPmxvb+Phw4eKm/T7/bhz5w5efvllVKtVvPvuuyoXZCgUQiKRQKfTGRMjCEzlRo9CIhqfz6fqcuprQKXxNF8Lmz5H5xqc7rVxPkQizWYT+/v7KvDPqd9arYadnR0V6RmLxfDaa69hYWFBVcieBTwhBiHEYwA1AAMAfSnlp4UQOQD/GsBtAI8B/CMpZfn8/t8E8OXz+/+ZlPJPvQ7Ii7ac1/x+PxYWFpSJs1qtYmdnZwKzU0Ot+w1QO2xr34aVbUofHpq/+qu/wne/+12lJNIrK6+vr+POnTtIpVLI5/MzR7k5gZOs6XbNpmybhoilnCypZzsALBd4enqq7PgmgjaduqhfCIVCjgFRxWIRb775Jvr9vnLuAUYWk5/+6Z/GysqKeg/k1A4PD9U625ynmGyFyYUPDg5QqVSU9aLZbColYqfTuZSp3NTJTHv27OwMH3300Vjche7Q57QnGSNEri2VSkFKqULgn2Y+hi9KKXW19FcBfFNK+dtCiK+ef/8NIcTHAfwqgNcBrAP4cyHEx6SUrvYSm5yr/2YCD3cul1Np3AOBgLWACReNIgQ3oVuxFzeNNZ/hhtP92HW2j+G5Uo4iP8vlsicF56zWFrd29PE6sa/6vGybz3zOHB9dvnmYnNy8iWQYVEZWPxQKKTneFLGY4h94kniV68qgIiEEbt26hQ8//FClcbPVnjCVjLzu8/lwdnamqLRer1MPwruM+OfGTei/93o9HBwcjHEaTv3alMFc40qlohIcCSFca6bY4DKixC8D+ML5568D+DaA3zi//gdSyg6AbSHEQwCfBfDXbo3Nwurw3kgkglQqpWy2lMlswKCTarWqMKx+r42tNsdlviC3jcKXRm9Kv9+vZFa9HxsSuCxScFPOmvOyiRGmmKHrcczf+LutoK05p3a7jWq1qooC8Tm3GAbK8OZvjUYD5XIZ2WxW3adXcLKtgy5CsV0hhHJS06MQ+dxFajM4rb9tbk5jNOdBMZjfzXZM5F2v1/Hw4UOlOJ5VfPWKGCSAfyeEkAD+31LKrwFYkVIenQ/sSAixfH7vDQDf0Z7dP782BkKIrwD4iurAQaliPKOURsFgELdu3VLKlePjY+zu7lpz27HtwWDg6uihj0Hvy4yCm4bB9RdbrVaVqcop0OuqQd9wTqKZ7TOftcm/LKwSCAQm3JdNhGBDNhQ3Go2G8mNg8lXmTXRaVxvibLVaeOedd9DtdpHL5fDgwYMJz0yntaUIQ85DNyWaSMWU/72IBF4Qve29OHEVtoA101lKfxe8l/UoLgJeEcPPSikPzw//nwkhPnS513ayJ1bmHLl8DQDOEY7+28TmpU4hGo2qBC3ZbBaJRELFINB92kbZ9P9uL5f9JJNJJXOWy2V0Op0xc6MTJdLBtMvPQnkuK044cQhOG93teyKRwEsvvYRsNqsclx48eOCaANW28YmYGdZMn383TsMJBoMB8vk8arWaykNgKi71w63/pyMdrQ+6SMn1YQ1JBkTRCU/nki4qWujcl77W0zguPsvELOvr6yqb9OHh4VgpBFPMsLlgu4EnxCClPDz/nxdC/CFGosGJEGLtnFtYA5A/v30fwKb2+AaAw5lGdQ60JjChpZQSr732Gl5++WWUSiWcnJwob7N8Pq80ypFIZKxgh00EsAFfVjwex/LysmJ3eQByuZySR/UgKP35i24WE54GJ2FuRl6jmZA+BWYg0+LiItbX1xX7zVLwtgIu5mcnauv2Ppw4HfMeehPa5uU0LgAqfwdL03HObCeVSuHTn/40IpEI3n//fVQqFVWflP4riURCZSC3iaROoHNgyWRSmTL1tPMmsjWJRDgcxs2bN5HNZhGLxRCLxVSgIcUu04TKzNpeYSpiEELEAfiklLXzz/8JgH8B4I8B/BqA3z7//0fnj/wxgN8TQvwORsrHewC+53lEeMImUaMfiURQKpWUTT2RSKDb7eK9995T4kOr1YLP58Pm5iY2NzdRqVTw+PFjRaFMd1jzBepcSSqVUjZt+r9ns1ksLi6qF0q/eRM76+D0Yl3W2vqc2ybxwtrq89OfAUYONXfv3kUikVBWnUajMcZG03mGykG6j0+j9DYxxct6OB1ynfLprLMNkZhrpgMDq8yYFb7/hYUFbGxsIBqNKqUkYx1SqRSWlpawurqKQqGA+/fve6o7qr9LhoJTP1KtVnF4eDjBjdja4B+dn4CRP8fi4iJKpdIYctE9HumL4hW8cAwrAP7wvIMAgN+TUv7/hBDfB/ANIcSXAewC+JXzAb0nhPgGgPcB9AH8upxikTAnzkxHr7zyilo8IoednR0AI/mJWn5CJBLB7du3sbKyomoQMo18oVBQse1mphtzDIzVoDWj2+2q6tT05ycLagsTPl+HiXZtB1q/1/zddt2LDG5e1xECk6fSQy6VSinuKBKJKP2B/iwdZBhkls/nJ1yMbevoBF6QgnkPXdCJsKmXcGrT5FBs+h9b336/X3ES9JHhoXrppZfw+uuvq3wKNmWg27vQES3d6aPRKDKZDAqFgmqPlh1Tz8G2u90uqtUqksmkqq1pC5QihyMMPZkXEE+DZZ0VhBAFAA0AzlE68wOLuB7nVcOLMtYXZZyAfay3pJRLXh6eC8QAAEKIH0gpP/28xzENrsd59fCijPVFGSdw+bHOpqq8hmu4hr8TcI0YruEarmEC5gkxfO15D8AjXI/z6uFFGeuLMk7gkmOdGx3DNVzDNcwPzBPHcA3XcA1zAs8dMQghfkEIcV8I8VCMojSf93j+lRAiL4R4V7uWE0L8mRDiwfn/rPbbb56P/b4Q4j99huPcFEJ8SwjxgRDiPSHEP5/HsQohIkKI7wkh/uZ8nP+3eRyn1rdfCPGOEOJP5nycj4UQPxJC/FAI8YMrHyu9rZ7HHwA/gEcA7gIIAfgbAB9/zmP6PwD4aQDvatf+HwC+ev75qwD+7+efP34+5jCAO+dz8T+jca4B+Onzz0kAH52PZ67GilHsTOL8cxDAdwF8bt7GqY33vwHwewD+ZF7f/Xn/jwEsGteubKzPm2P4LICHUsotKWUXwB9gFLb93EBK+R8AnBqXfxmj0HKc//+H2vU/kFJ2pJTbABhi/izGeSSlfPv8cw3ABxhFsc7VWOUIGOIXPP+T8zZOABBCbAD4zwD8S+3y3I3TBa5srM8bMdwAsKd9t4ZozwGMhZgD0EPMn/v4hRC3AfwURtR47sZ6zp7/EKNAuz+TUs7lOAH8DwD+WwB6dNw8jhN4kgrhLTFKYQBc4Vifd85HTyHacwzPffxCiASA/wXAfy2lrLrEKDy3scpRrMwbQogMRnE3P+Fy+3MZpxDiFwHkpZRvCSG+4OURy7Vn+e6vPBWCDs+bY7iyEO2nDCdiFFoO8ZRCzC8CQoggRkjhf5ZS/q/zPFYAkFKeYZTp6xcwf+P8WQC/JEb5Tf8AwH8khPif5nCcAMZTIQAYS4VwFWN93ojh+wDuCSHuCCFCGOWK/OPnPCYbMMQcmAwx/1UhRFgIcQcXCDG/KIgRa/C7AD6QUv7OvI5VCLF0zilACBEF8B8D+HDeximl/E0p5YaU8jZG+/DfSyn/q3kbJzBKhSCESPIzRqkQ3r3SsT4rLaqLdvUfYKRRfwTgv5uD8fw+gCMAPYww7ZcBLAD4JoAH5/9z2v3/3fnY7wP4+89wnP97jNjBvwXww/O/fzBvYwXwCQDvnI/zXQD/1/PrczVOY8xfwBOrxNyNEyMr3t+c/73Hc3OVY732fLyGa7iGCXjeosQ1XMM1zCFcI4ZruIZrmIBrxHAN13ANE3CNGK7hGq5hAq4RwzVcwzVMwDViuIZruIYJuEYM13AN1zAB14jhGq7hGibg/w+jlJhA5nAUegAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "image = data.human_mitosis()\n", + "plt.imshow(image, cmap='gray')" + ] + }, + { + "cell_type": "markdown", + "id": "af565d42-0cce-4563-a2e0-d6217cb6fda7", + "metadata": {}, + "source": [ + "## Exercise 1\n", + "Now, pick three threshold methods of your choice from `skimage.filters` to create three binary images and three respective labelled images:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8d73f6e3-a7d9-49d7-bd75-e295a7ea4c6a", + "metadata": {}, + "outputs": [], + "source": [ + "binary_method1 = \n", + "binary_method2 = \n", + "binary_method3 = " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1f907542-e0d9-4513-bd40-8c6f40d7cd05", + "metadata": {}, + "outputs": [], + "source": [ + "labelled_method1 = \n", + "labelled_method2 = \n", + "labelled_method3 = " + ] + }, + { + "cell_type": "markdown", + "id": "92a2757f-2d4a-415f-a96f-cba867ba4eaf", + "metadata": {}, + "source": [ + "*Optional*: You can try plotting these three side by side using matplotlib *subplots*. You can create a figure with multiple subplots using the `plt.subplots()` command:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "49e86cd4-af72-4e2c-b9ab-066ae072c76b", + "metadata": {}, + "outputs": [], + "source": [ + "plt.subplots?" + ] + }, + { + "cell_type": "markdown", + "id": "d10e1d8c-a7eb-4bf1-8724-c2ac83cd3716", + "metadata": {}, + "source": [ + "Modify the code below to show the three thresholded image with a title that indicates which method corresponds to which image:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "430d0e4a-ba08-4bb6-8b62-c365f72d2b53", + "metadata": {}, + "outputs": [], + "source": [ + "fig, axes = plt.subplots(ncols=3, figsize=(15, 5))\n", + "axes[0].imshow(image, cmap='gray')\n", + "axes[1].imshow(image, cmap='gray')\n", + "axes[2].imshow(image, cmap='gray')\n", + "\n", + "axes[0].set_title('Title 1')\n", + "axes[1].set_title('Title 1')\n", + "axes[2].set_title('Title 1')" + ] + }, + { + "cell_type": "markdown", + "id": "765e154a-3a6c-4312-8fe3-dc6c7ddb5588", + "metadata": {}, + "source": [ + "*Note*: The variable `axes` contains references to each subplot, whereas the whole figure is stored in the `fig` variable. Since we have multiple subplots, `axes` can be accessed like a numpy array:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "83401517-9c0f-4564-8398-0c986cbe2b84", + "metadata": {}, + "outputs": [], + "source": [ + "axes[0]" + ] + }, + { + "cell_type": "markdown", + "id": "64bb88d5-d1c4-41cd-a106-0bb6f0050fd5", + "metadata": {}, + "source": [ + "## Exercise 2:\n", + "\n", + "Just like in the previous notebooks, we use the `regionprops_table()` function to measure several features. Use this function to measure the following features:\n", + "\n", + "- area\n", + "- perimeter\n", + "- solidity\n", + "- mean intensity\n", + "- max intensity\n", + "- min intensity\n", + "- major axis length\n", + "\n", + "*Hint 1*: The [previous notebook]('./04_feature_extraction.ipynb') described a way to easily measure multiple features simultaneously from an image. \n", + "\n", + "*Hint 2*: Measureing intensity within the respective objects requires to pass both an intensity image as well as labelled image to `regionprops_table()`. If you do not know how to do this, check the documentation to find out how (`regionprops_table?`)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eaa62d37-88f1-48b4-bb28-1b17de9da19e", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "7d22632c-b196-4c78-b32e-3cabc4d208fe", + "metadata": {}, + "source": [ + "## Exercise 3\n", + "\n", + "Use what you learned above with regard to combining multiple curves into a single plot to see how the selection of the threshold method affects the measured results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a6a3591-c517-4bc5-84dc-2aede44ff94d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "895b57dd-36b2-4b18-a7c6-bf6a8762376d", + "metadata": {}, + "source": [ + "## Exercise 4\n", + "\n", + "In the [lecture](./Feature_extraction.pdf), you learned how to measure *roundness* and *circularity* of objects. Neither of these is available through `regionprops_table`, so we have to calculate them ourselves. They are defined as following:\n", + "\n", + "- *Roundness* = $\\frac{4 \\cdot A}{\\pi \\cdot \\text{major}}$, where `major` and `A` correspond to the major axis of the ellipse fitted to the object and the object's area\n", + "- *Circularity* = $\\frac{4 \\cdot \\pi A}{perimeter^2}$\n", + "\n", + "To do so, retrieve area, perimeter and major axis length from any of the derived measurements and convert them to numpy arrays. \n", + "\n", + "*Hint 1*: Pandas DataFrame allow to conveniently convert data in table columns to numpy arrays with `my_dataframe['column_name'].to_numpy()`\n", + "*Hint 2*: To obtain the value of $\\pi$, simply get it from numpy with `np.pi()`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0a47ca4b-17b7-4f60-9ae6-b33d16213f72", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "a78844cb-bced-45b7-bd5e-a6503520d358", + "metadata": {}, + "source": [ + "If you have area, perimeter and major axis length for every object stored in separate variables, calculate roundness and circularity according to the formulas above" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "91f0c661-3669-46c7-902d-fa6f13dea685", + "metadata": {}, + "outputs": [], + "source": [ + "roundness = 4 * areas/(np.pi() * major_axis_lengths)\n", + "ciruclarity = " + ] + }, + { + "cell_type": "markdown", + "id": "8f3eb57f-0dc8-4edb-a149-c9749a5c08f1", + "metadata": {}, + "source": [ + "## Exercise 5\n", + "\n", + "Visualize the roundness and circularity as a histogram:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "05bc4a47-aeae-4efc-9192-27f39a24279b", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "143d90e6-beda-4c3d-b844-c204c06d3f15", + "metadata": {}, + "source": [ + "## Exercise 6\n", + "\n", + "It can be interesting to plot multiple features of the measured objects with respect to each other. We can do this for any given pair of features by using the scatter plot function from matplotlib. Replace the `feature1` and `feature2` entries to do this for your measured data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c646850-cc4b-4685-aa84-34bb60b98c7a", + "metadata": {}, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.scatter(feature1, feature2)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/05_feature_extraction/Feature_extraction.pdf b/05_feature_extraction/Feature_extraction.pdf new file mode 100644 index 0000000..dc101b2 Binary files /dev/null and b/05_feature_extraction/Feature_extraction.pdf differ diff --git a/README.md b/README.md index de8f2c6..8dbb2f6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![CC BY 4.0][cc-by-shield]][cc-by] -This work is licensed by Anna Poetsch, [Biotec Dresden](https://tu-dresden.de/cmcb/biotec/forschungsgruppen/poetsch), Marcelo Leomil Zoccoler and Robert Haase, [PoL Dresden](http://physics-of-life.tu-dresden.de/bia) under a +This work is licensed by Anna Poetsch, [Biotec Dresden](https://tu-dresden.de/cmcb/biotec/forschungsgruppen/poetsch), Marcelo Leomil Zoccoler, Johannes Richard Müller and Robert Haase, [PoL Dresden](http://physics-of-life.tu-dresden.de/bia) under a [Creative Commons Attribution 4.0 International License][cc-by]. [cc-by]: http://creativecommons.org/licenses/by/4.0/ @@ -72,6 +72,12 @@ If you have any questions, please use the anonymous etherpad (see email) or open * Quantitative image analysis (2022-May-03) + * [Thresholding and feature extraction (slides)](05_feature_extraction/Feature_extraction.pdf) + * [Thresholding and plotting](05_feature_extraction/01_thresholding.ipynb) + * [Thresholding and noise](05_feature_extraction/02_thresholding_and_noise.ipynb) + * [Otsu thresholding](05_feature_extraction/03_Otsu_threshold.ipynb) + * [Feature extraction](05_feature_extraction/04_feature_extraction.ipynb) + * [Feature extraction and thresholds](05_feature_extraction/05_feature_extraction_and_thresholds.ipynb) * Machine learning for bio-image analysis (2022-May-10) * Introduction to Biostatistics (2022-May-17) * Descriptive statistics (2022-May-24)