{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 统计绘图函数\n", "\n", "本章介绍通用的统计绘图函数,比如直方图、箱型图等。" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from matplotlib import pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 水平或竖直的线/矩形:ax.axhline / axhspan\n", "\n", "用 `axhline/axvline` 绘制水平线/竖直线,用 `axhspan/axvspan` 绘制水平矩形/竖直矩形。\n", "\n", "需要注意,下例中所有 `xmin/xmax` 参数是一个相对比例。比如 `axhline` 中的 `xmin=0.25, xmax=0.75` 表示从图像的左 1/4 处画起、到右 1/4 处结束。由于用 `axis(...)` 命令给出了横坐标的绘图范围是 `[0, 3]`,因此这个 `axhline` 实际上是从横坐标 0.75 处画到 2.25 处。" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD8CAYAAAB6paOMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAS8UlEQVR4nO3dbaycZ33n8e8Px1bTEEBtDAQ/NFnJJQ2UpOGsExS2OKuFOimRxYpKdlFAtFkLRFC7WqFNeZEou9onIVW7NAGvS62A1CRaibiYrEOCtGQDRaE+jkIeSIK8bticOlqHpJuQYm1k+O+LczsaHeZ4bp8z9nh8fT/SaOa+Hub8L13gX+6Ze2ZSVUiS2vW6SRcgSZosg0CSGmcQSFLjDAJJapxBIEmNMwgkqXEjgyDJuiTfSvJkkieS/NGQMUny+SQHkjya5LKBvs1Jnu76bhz3AiRJy9PnjOAo8K+q6jeAK4BPJbl4wZirgQ3dbTvwRYAkK4Dbuv6LgW1D5kqSJmhkEFTVc1X1cPf4J8CTwJoFw7YAX6l5DwFvSnI+sBE4UFUHq+pV4K5urCTpNHHWiQxOcgHwW8D3FnStAZ4dOJ7r2oa1X77Ic29n/myCc845590XXXTRiZQ2NV79+c8nXYKWYdXrfFttej3d3b99olWcLPv37/9xVa1eytzeQZDk9cBXgT+uqpcXdg+ZUsdp/8XGqp3AToCZmZmanZ3tW9pUmTtyZNIlaBnWnn32pEvQkm3q7h+YYA0nT5IfLXVuryBIspL5EPjLqrp7yJA5YN3A8VrgELBqkXZJ0mmiz1VDAf4CeLKq/nSRYXuAj3ZXD10BvFRVzwH7gA1JLkyyCtjajZUknSb6nBFcCVwHPJbkka7ts8B6gKraAewFrgEOAD8FPt71HU1yA3AfsALYVVVPjHUFkqRlGRkEVfUdhr/WPzimgE8t0reX+aCQJJ2GvARCkhpnEEhS4wwCSWqcQSBJjTMIJKlxBoEkNc4gkKTGGQSS1DiDQJIaZxBIUuMMAklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjRv5UZZJdwAeBw1X1ziH9nwE+MvB8vwGsrqoXkzwD/AT4GXC0qmbGVbgkaTz6nBHcDmxerLOqPldVl1bVpcCfAP+zql4cGHJV128ISNJpaGQQVNWDwIujxnW2AXcuqyJJ0ik1tvcIkvwy82cOXx1oLuD+JPuTbB/X35Ikjc/I9whOwLXAXy94WejKqjqU5M3AN5M81Z1h/IIuKLYDrF+/foxlSZKOZ5xXDW1lwctCVXWouz8M7AY2Lja5qnZW1UxVzaxevXqMZUmSjmcsQZDkjcD7gK8NtJ2T5Nxjj4EPAI+P4+9Jksanz+WjdwKbgPOSzAE3AysBqmpHN+xDwP1V9Q8DU98C7E5y7O/cUVXfGF/pkqRxGBkEVbWtx5jbmb/MdLDtIHDJUguTJJ0afrJYkhpnEEhS4wwCSWqcQSBJjTMIJKlxBoEkNc4gkKTGGQSS1DiDQJIaZxBIUuMMAklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJatzIIEiyK8nhJI8v0r8pyUtJHuluNw30bU7ydJIDSW4cZ+GSpPHoc0ZwO7B5xJhvV9Wl3e3fACRZAdwGXA1cDGxLcvFyipUkjd9ZowZU1YNJLljCc28EDlTVQYAkdwFbgB8s4bm0RO+95X8s2veZD76dLe9eA8DX9v8dn7vn6UXHfufmf/ra4z/YuY8fPveToeOuvext/OtrLwLgqUMvc/2fzy76nF/6FzNc9LY3APCfvv4UX3/40NBxv37+ueza/o9fO57kmh6be4lrb/3Oos/59Rvey2+ufSMAf3L3o9z5N88OHffONW/gnk//k9eOL7jxvy/6nP/+Q7/J71++HoA7vve/+ezuxxYd+8x//N3XHn/wz77N43/38tBx2zau4z/883cBk1+TJm9c7xG8J8n3k9yb5B1d2xpg8H8xc13bUEm2J5lNMvv888+PqSxJ0iipqtGD5s8I7qmqdw7pewPw86p6Jck1wH+pqg1Jfg/4naq6vht3HbCxqj496u/NzMzU7Ozi/yU5zeaOHJl0CVqGtWefPekStGSbuvsHJljDyZNkf1XNLGXuss8Iqurlqnqle7wXWJnkPObPANYNDF0LDD/3lyRNzLKDIMlbk6R7vLF7zheAfcCGJBcmWQVsBfYs9+9JksZr5JvFSe5k/pzqvCRzwM3ASoCq2gF8GPhkkqPAEWBrzb/edDTJDcB9wApgV1U9cVJWIUlasj5XDW0b0X8rcOsifXuBvUsrTZJ0KvjJYklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmNMwgkqXEGgSQ1ziCQpMYZBJLUOINAkhpnEEhS4wwCSWqcQSBJjRsZBEl2JTmc5PFF+j+S5NHu9t0klwz0PZPksSSPJJkdZ+GSpPHoc0ZwO7D5OP1/C7yvqt4F/Ftg54L+q6rq0qqaWVqJkqSTqc+P1z+Y5ILj9H934PAhYO3yy5IknSrjfo/gD4F7B44LuD/J/iTbjzcxyfYks0lmn3/++TGXJUlazMgzgr6SXMV8ELx3oPnKqjqU5M3AN5M8VVUPDptfVTvpXlaamZmpcdUlSTq+sZwRJHkX8CVgS1W9cKy9qg5194eB3cDGcfw9SdL4LDsIkqwH7gauq6ofDrSfk+TcY4+BDwBDrzySJE3OyJeGktwJbALOSzIH3AysBKiqHcBNwK8CX0gCcLS7QugtwO6u7Szgjqr6xklYgyRpGfpcNbRtRP/1wPVD2g8Cl/ziDEnS6cRPFktS4wwCSWqcQSBJjTMIJKlxBoEkNc4gkKTGGQSS1DiDQJIaZxBIUuMMAklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjRv5C2STsP7Sf3JJJlyHpDPKtj83fX/Vl/21ZaOQZQZJdSQ4nGfrD85n3+SQHkjya5LKBvs1Jnu76bhxn4ZKk8ejz0tDtwObj9F8NbOhu24EvAiRZAdzW9V8MbEty8XKKlSSN38ggqKoHgRePM2QL8JWa9xDwpiTnAxuBA1V1sKpeBe7qxkqSTiPjeLN4DfDswPFc17ZY+1BJtieZTTI7hpokST2NIwiGvfNSx2kfqqp2VtVMVc2MoSZJUk/juGpoDlg3cLwWOASsWqRdknQaGccZwR7go93VQ1cAL1XVc8A+YEOSC5OsArZ2YyVJp5FULfpqzfyA5E5gE3Ae8H+Am4GVAFW1I0mAW5m/suinwMerarabew3wn4EVwK6q+nd9ipqZmanZ2TPzrYK5I0cmXYKWYe3ZZ0+6BC3Zpu7+gQnWcPIk2b/Ul9ZHvjRUVdtG9BfwqUX69gJ7l1KYJOnU8CsmJKlxBoEkNc4gkKTGGQSS1DiDQJIaZxBIUuMMAklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmNMwgkqXEGgSQ1rlcQJNmc5OkkB5LcOKT/M0ke6W6PJ/lZkl/p+p5J8ljXd2b+ELEkTbGRv1mcZAVwG/B+YA7Yl2RPVf3g2Jiq+hzwuW78tcC/rKoXB57mqqr68VgrlySNRZ8zgo3Agao6WFWvAncBW44zfhtw5ziKkySdfCPPCIA1wLMDx3PA5cMGJvllYDNww0BzAfcnKeC/VtXOReZuB7YDrF+/vkdZ0ql3yy23TLoELdHHPvYMAF/+snu4UJ8zggxpq0XGXgv89YKXha6sqsuAq4FPJfntYROramdVzVTVzOrVq3uUJUkahz5BMAesGzheCxxaZOxWFrwsVFWHuvvDwG7mX2qSJJ0m+gTBPmBDkguTrGL+H/s9CwcleSPwPuBrA23nJDn32GPgA8Dj4yhckjQeI98jqKqjSW4A7gNWALuq6okkn+j6d3RDPwTcX1X/MDD9LcDuJMf+1h1V9Y1xLkCStDx93iymqvYCexe07VhwfDtw+4K2g8Aly6pQknRS+cliSWqcQSBJjTMIJKlxBoEkNc4gkKTGGQSS1DiDQJIaZxBIUuMMAklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmN6xUESTYneTrJgSQ3DunflOSlJI90t5v6zpUkTdbI3yxOsgK4DXg/MAfsS7Knqn6wYOi3q+qDS5wrSZqQPmcEG4EDVXWwql4F7gK29Hz+5cyVJJ0CfYJgDfDswPFc17bQe5J8P8m9Sd5xgnNJsj3JbJLZ559/vkdZkqRx6BMEGdJWC44fBn6tqi4B/gz4qxOYO99YtbOqZqpqZvXq1T3KkiSNQ58gmAPWDRyvBQ4NDqiql6vqle7xXmBlkvP6zJUkTVafINgHbEhyYZJVwFZgz+CAJG9Nku7xxu55X+gzV5I0WSOvGqqqo0luAO4DVgC7quqJJJ/o+ncAHwY+meQocATYWlUFDJ17ktYiSVqCkUEAr73cs3dB246Bx7cCt/adK0k6ffjJYklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmNMwgkqXEGgSQ1ziCQpMYZBJLUOINAkhpnEEhS4wwCSWqcQSBJjesVBEk2J3k6yYEkNw7p/0iSR7vbd5NcMtD3TJLHkjySZHacxUuSlm/kbxYnWQHcBrwfmAP2JdlTVT8YGPa3wPuq6u+TXA3sBC4f6L+qqn48xrolSWPS54xgI3Cgqg5W1avAXcCWwQFV9d2q+vvu8CFg7XjLlCSdLH2CYA3w7MDxXNe2mD8E7h04LuD+JPuTbD/xEiVJJ1Oq6vgDkt8Dfqeqru+OrwM2VtWnh4y9CvgC8N6qeqFre1tVHUryZuCbwKer6sEhc7cD2wHWr1//7h/96EfLW9lpau7IkUmXoGVYe/bZky5BS7apu39ggjWcPEn2V9XMUub2OSOYA9YNHK8FDg0p4l3Al4Atx0IAoKoOdfeHgd3Mv9T0C6pqZ1XNVNXM6tWr+69AkrQsfYJgH7AhyYVJVgFbgT2DA5KsB+4GrquqHw60n5Pk3GOPgQ8Aj4+reEnS8o28aqiqjia5AbgPWAHsqqonknyi698B3AT8KvCFJABHu1OUtwC7u7azgDuq6hsnZSWSpCUZGQQAVbUX2LugbcfA4+uB64fMOwhcsrBdknT68JPFktQ4g0CSGmcQSFLjDAJJapxBIEmNMwgkqXEGgSQ1ziCQpMYZBJLUOINAkhpnEEhS4wwCSWqcQSBJjTMIJKlxBoEkNc4gkKTGGQSS1DiDQJIaZxBIUuN6BUGSzUmeTnIgyY1D+pPk813/o0ku6ztXkjRZI4MgyQrgNuBq4GJgW5KLFwy7GtjQ3bYDXzyBuZKkCepzRrAROFBVB6vqVeAuYMuCMVuAr9S8h4A3JTm/51xJ0gSd1WPMGuDZgeM54PIeY9b0nAtAku3Mn00A/L8kj/eobRqdB/x40kWcRK5vujWwvpyp63v7Uif2CYIMaaueY/rMnW+s2gnsBEgyW1UzPWqbOmfy2sD1TTvXN72SzC51bp8gmAPWDRyvBQ71HLOqx1xJ0gT1eY9gH7AhyYVJVgFbgT0LxuwBPtpdPXQF8FJVPddzriRpgkaeEVTV0SQ3APcBK4BdVfVEkk90/TuAvcA1wAHgp8DHjze3R107l7KYKXEmrw1c37RzfdNryWtL1dCX7CVJjfCTxZLUOINAkho3sSBYztdWTIMe69uU5KUkj3S3myZR51Ik2ZXk8GKf9TgD9m7U+qZ27wCSrEvyrSRPJnkiyR8NGTOVe9hzbVO7f0l+KcnfJPl+t75bhow58b2rqlN+Y/6N4/8F/CPmLzH9PnDxgjHXAPcy/1mEK4DvTaLWk7i+TcA9k651iev7beAy4PFF+qd273qub2r3rqv/fOCy7vG5wA/PlP//9Vzb1O5ftx+v7x6vBL4HXLHcvZvUGcFyvrZiGpzRX61RVQ8CLx5nyDTvXZ/1TbWqeq6qHu4e/wR4kvlvARg0lXvYc21Tq9uPV7rDld1t4RU/J7x3kwqCxb6S4kTHnK761v6e7hTv3iTvODWlnRLTvHd9nRF7l+QC4LeY/y/LQVO/h8dZG0zx/iVZkeQR4DDwzapa9t71+WTxybCcr62YBn1qfxj4tap6Jck1wF8x/+2tZ4Jp3rs+zoi9S/J64KvAH1fVywu7h0yZmj0csbap3r+q+hlwaZI3AbuTvLOqBt/POuG9m9QZwXK+tmIajKy9ql4+dopXVXuBlUnOO3UlnlTTvHcjnQl7l2Ql8/9Q/mVV3T1kyNTu4ai1nQn7B1BV/xd4ANi8oOuE925SQbCcr62YBiPXl+StSdI93sj8Xrxwyis9OaZ570aa9r3rav8L4Mmq+tNFhk3lHvZZ2zTvX5LV3ZkASc4G/hnw1IJhJ7x3E3lpqJbxtRXToOf6Pgx8MslR4Aiwtbq3/E93Se5k/sqL85LMATcz/6bV1O8d9Frf1O5d50rgOuCx7rVmgM8C62Hq97DP2qZ5/84Hvpz5H/16HfDfquqe5f7b6VdMSFLj/GSxJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmN+/+29GksuDtmngAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "f, ax = plt.subplots()\n", "\n", "ax.axis([0, 3, 0, 2])\n", "ax.axhline(1, lw=8, color='g')\n", "ax.axhline(y=1.5, ls=\"--\", lw=2, xmin=0.25, xmax=0.75)\n", "ax.axvline(2.5, color=\"yellow\")\n", "\n", "ax.axhspan(0.25, 0.75, xmin=0.5, facecolor='0.5')\n", "ax.axvspan(0.5, 1.5, facecolor=\"#74D2D5\", alpha=0.2)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 散点图:ax.scatter\n", "\n", "散点图将多维(一般二维)数据用点绘制出来,一般是为了揭示不同维之间的关系。\n", "\n", "如果不显示点的大小,最简单的散点图可以用 `plot(..., '.')` 绘制:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "np.random.seed(230)\n", "x, y = np.random.rand(2, 10)\n", "\n", "f, ax = plt.subplots()\n", "ax.plot(x, y, '.')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "言归正传,正常的散点图用 `ax.scatter(x, y, s=None, c=None, ...)`:\n", "\n", "- `s`:数组,每个点的大小。\n", "- `c`:列表,每个点的颜色。\n", "- `marker='o'`:所有点的点样式。" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3deXTddZ3/8ec7W5d0b9JCk260pRUtIIayjKMgOwJ1xBHqgqOOHGZGxzl6DirOj/GM4zY6Ko4oUxn0cFQ46jBQpSwKo1aw0BRooZTWLrRNW2jSjdI1y/v3xzsxIdw0N8n33pv7zetxzj3tvffb7/fTb9rX/dzPau6OiIgUv5JCF0BERJKhQBcRSQkFuohISijQRURSQoEuIpISZYW6cFVVlc+YMaNQlxcRKUorV65scvfqTO8VLNBnzJhBfX19oS4vIlKUzGxLT++pyUVEJCUU6CIiKaFAFxFJCQW6iEhKKNBFRFJCgS4ikhIFG7YoIlK09u+H9eth40Z48UU4ehSGDYOZM2HWLJg7F0aPznuxFOgiItl66SX45S9h+XJoa4OyMqishNJSaG2NgH/wQSgpgbe+Fa64AqozzgHKCQW6iEhv2trg//4P7roLzGDKlAjx7saNi19bWuCxx+Dxx+EDH4C3vS3+XI4p0EVEjqe1Fe68Ex59FGpro2mlN2Vlcezhw3D77dDQAIsWRc09h9QpKiJyPD/7WdTOZ87MLsy7GjECZsyIZph7781J8bpSoIuI9OT55+GBB2D69P7XrktL48/fdx9s2JBs+brptYRmdoeZ7TKz53p438zsO2a2wcxWm9kZyRdTRCTPmpujuWTixMzt5X1RVgZjx8J//3c04eRINh85PwIuPc77lwFz2h/XA98feLFERHKgpQUOHoxHc/Pxj33uOdizJ4I4CRMmwM6dsG5dMufLoNdOUXf/vZnNOM4hC4E73d2B5WY2zsxOdPedCZVRRKR/2toiQJ9+Gl54AbZvB/d4mMGJJ8aY8dNPh1NOiZp0h1//Ovmx5CNHwiOPxLVyIIlRLjXAti7PG9pfe12gm9n1RC2eadOmJXBpEZEMWlth2TL41a+gqQkqKiKca2o628Ldo6b+2GMxgmXsWLj8cjj//Dhm/foI/CSNHx/t8h0fKAlLItAzlcozHejui4HFAHV1dRmPEREZkJ07o616/XqYNClGmWRiBqNGxQPg0KEYZ75sGSxcGLX7gbadd1deHrNK9+yJtvmEJRHoDcDULs9rgR0JnFdEpG+eew5uuSWaTmbO7FsteOTICP+mJvja1yJ4c9GSYBbfDHIQ6EkMW1wCXNc+2uVsYL/az0Uk79asgW9+M5pOJk/uf5NGVVV0YK5dGxOCkmaWs1mjvdbQzewu4DygyswagH8BygHc/TZgKXA5sAE4BHw4JyUVEelJUxN85zsRxB1NKAMxZkzU2FeujLb3pEa6QLTvJ1HGDLIZ5bKol/cd+IfESiQi0hdtbfCjH0VHY1JBOXJkNNuYwVNPxVosSbSnHzsWi3l1rPmSMM0UFZHi9vTTsHp1siNSSkpilcSSEti3D7ZuTea8e/bA/Pk5a3JRoItI8XKH+++PGm/SIXnSSTH5qLIyRsy0tQ38nEeOxLDIHNFqiyL9dPBgVNy2bYPNm2PUW2lp9MeddFIstnfCCXlZNXXoamiATZtirZSkVVdHE05zc4x42b17YGubNzZGOWfPTq6M3SjQRfqooSHmoSxbFv1b7tHkWloav3/22ZhhDvH/9/LL4c1vjiHIkrD163M3aqSkBM44A373uzh/Y2P/A/3YsfjE/+hHc7qErgJdJEtHj8KSJbB0afSXTZp0/JB2h7174Xvfi9r6xz6Wm4rkkLZuXXya5sqECfCGN8CqVbBrV/+m7Dc3x9e4D34wN+Pau1Cgi2Rh1y741rdiEmJt7WuX/OiJWcz0Hj8+RtV94QvwvvfBhReqGSYxmzfnbAjgn82dG6G8alW0s1VWZv9nX301/vH89V/DRRflroztFOgivdi1C7785aih9zSLvDdVVTG0+c4749v3O9+ZaBGHrkOHcjYE8M/M4E1vin8Ar7wSbeknnBDrw/Tk6NHYf7SyEv7pn6LNTVvQiRTWkSMx+fDo0ejsHIiKivjGfffdkQdveUsyZRzS8vVVxyw+lb/0pdi96JFH4pMZYleijk2iDx+O14YPh6uuggsuiE/yPFGgixzHfffByy8n1/ZdXh5hfscdMdghyQmIQ9Lo0RGsue5xbm6Otvqqqmg+ufJK2Lixc5TNsWMR4jNnwtSpMcypr9vVJUCBLtKDLVtiK8iammTPW1kZnaW/+EUMepABOPlkeOKJvrVr98eBAzBrVufz4cPhjW+MxyCiiUUiPXjkkaj4ZdMB2lcnnhjLcO/bl/y5h5STT452sVx79dXoHB3kFOgiGRw4AI8/HkMTc6FjWZA//jE35x8y5s2L9u0kZnH2xD3OP39+7q6REAW6SAabN8f/4VzUzjuMHQv19bk7/5AwcWJM/mlszN019u2LtvEi2GVNgS6SwZYtub/GqFFxnY5ZpYXUsYnOoUOFLkk/XHZZjA9vbU3+3B2zw666qigmD6hTVCSDTZty389WWhrfAvbsyV3TTm+2b4eHHormpba2yK/TTouMLIIm4zB7Nlx8cXR6JD0Vd8cOWLAgNpEuAgp0kQwOHcptc0sHs6gdF8KaNTH71SyGUpaVRaivXx8r0l53XQyjLgrvfncsoTuQ9Va627s3RrN84ANFUTsHNbmIZFRSErXVXDPL6VpNPdq3Lzb4GTcuhmV2fHiVlMS3hZqamNW6cWP+y9YvI0fCpz8df5FduwZ+vr1745P205/O/UzUBCnQRTKors79aLiOwROjR+f2Opn88Y8xF6anZVAqKqJy+utf57dcAzJ5Mtx0U9zQLVv616be1hYLaQF87nP9X+uhQBToIhnMmZP7ppCjR2NWeCEC/Q9/iIUEj2fSJHjyycHRaZu1yZNjFbSLL45g3rkzu2Bva4spwVu2wDnnxBT/IlwaU23oIhnU1ua+2XT/fjj11MI0zx461PvM9I713Zub89OfkJgRI2DRIjj7bPjNb+LriHv8JUaN6lxUq7k5Jgw1N8fzM86ID4KTTy6aNvPuiunHJJI306fHsh0HDuSuBn34cOw9XAiTJ8cAjuHDez7m6NHIxgIsSZKMmTNjEfr3vhf+9KfoEFi/Pn6oEBMB3vKWGCUze3aMaS9yCnSRDEpKYqehH/0oN4H+6qvR5DFvXvLnzsYFF8Cttx6/2eXll+GKKwrTaZuosWOhri4eKVfsPyqRnDnrrKi0Jb3einsMxHjvezuXAMi3006LZqWdOzO/v3dv1M7f/vb8lksGRoEu0oMRI+D662PiT5Idg9u3R2XxrLOSO2dfVVTApz4VHZ8vvhjDtw8ejL/riy/GMTfemIpWiCFFTS4ixzF3LrzrXfC//xsj2AZao3755RjWfN11he93mzABbr4Znn8+9mxoaooAv+aa6B8cMaKw5ZO+S12g794do5UaGqLGUVERkyRqamDKlML/J5Li8653xUCIX/0q/h0dryOxJ+7RCTlmTNR8B8tclfLyaH457bRCl0SSkJpAX78e7r8/Zv92hHbHVOaOYai1tbGX44IFKejokbwpKYn27smT4Sc/iecnnJB95eDgwaiZn3EGfOhDsWm0SC6Y52N+cwZ1dXVen8DaoYcPw89/HuvyVFbGULNMYe3eub/rG98IH/lIcks+yNDR2Ag//Sk880z8O5swIWaddw/3Y8dinPnBgzHI4tprY1i0viHKQJnZSnfPOGQnq0A3s0uBW4BS4HZ3/2q398cCPwamEbX+b7j7D493ziQC/eBB+Pa3Y4jp1KnZtW+6x2bcFRXw2c8mv72YDA0vvxyzLevr4/fQGdbu0Swzdy6cfz6cckqRTcyRQW1AgW5mpcB64CKgAVgBLHL357sccxMw1t0/Y2bVwDrgBHc/1tN5BxrobW2xUtzzz/dvVl9TU7Qf/uu/FmbqtaTHkSNRc29ujlr76NFRc1dtXHLheIGeTUvyAmCDu29qD+i7gYXdjnFgtJkZMArYA+R0BYhly+Jrb3+naFdVRRPMXXflZ1U9Sa/hwzs3ep8xI0aKKMylELIJ9BpgW5fnDe2vdfVd4A3ADuBZ4JPunrNN/o4ciSAe6KiVmppY2D8fu9OIiORaNoGeKTK712kvAZ4BpgCnA981szGvO5HZ9WZWb2b1jQPYA3DVqgj1gY6TLSmJZpff/nZg5xERGQyyCfQGYGqX57VETbyrDwP3eNgAbAZet0qFuy929zp3r6sewBCTJ57oeR3nvpo0Kc6nZhcRKXbZBPoKYI6ZzTSzCuBaYEm3Y7YCFwCY2WRgLrApyYJ2cIcNG5LryCwvj1Xldu9O5nwiIoXSa6C7ewvwceAhYC3wM3dfY2Y3mNkN7Yd9ETjXzJ4FHgE+4+5NuShwS0usfpnkkp5mMWZYRKSYZTU61t2XAku7vXZbl9/vAC5OtmjHK0++riQiUjyKbgJ8WVnMCD3W4wj3vnNPrk1eRKRQii7QzWDWrM5NRwaqpSU+JLQMgIgUu6ILdIhdo5IK9MbGWDRJi3WJSLEryhirq4vRKQNtdnGP8ewXXJBMuURECqkoA72yMtao3r59YOfZuRNOPz32hxURKXZFGegAl1wSa2f0tCdib/bvj9UZr7tiD/bkE/DCCxo+IyJFrWgDvawM/vEfY7OAbdv6lsW7d8fSu5/+m91MvOVm+P734ctfhqVLe//DIiKDVNEGOkSYf+5zMH8+bN4cte7jBfvhw7EB7qhR8M//DLP31Ufv6owZsWzjL3+Zr6KLiCSu6JfdHzsWPvlJWLEC7r0Xtm6N14cP79yC7tCheG3UqNhK7MILY4MLtlbGAe7w6qtxMhGRIlX0gQ4xNn3BAjjzzKiBb90a6710bBI9cyZMmxadn+XlXf7gWWfFouorV8buvTfc0NMlREQGvaLfU3TAOsYuVlRkt4ediEgBHW/HolTU0AfEbOALq4uIDAJF3SkqIiKdFOgiIimhQBcRSQkFuohISijQRURSQoEuIpISCnQRkZRQoIuIpIQCXUQkJRToIiIpoUAXEUkJBbqISEoo0EVEUkKBLiKSEgp0EZGUUKCLiKSEAl1EJCWyCnQzu9TM1pnZBjP7bA/HnGdmz5jZGjP7XbLFFBGR3vS6BZ2ZlQK3AhcBDcAKM1vi7s93OWYc8D3gUnffamaTclVgERHJLJsa+gJgg7tvcvdjwN3Awm7HvA+4x923Arj7rmSLKSIivckm0GuAbV2eN7S/1tXJwHgz+62ZrTSz6zKdyMyuN7N6M6tvbGzsX4lFRCSjbALdMrzm3Z6XAW8B3glcAvw/Mzv5dX/IfbG717l7XXV1dZ8LKynhDnv3QlMTtLUVujQiqdFrGzpRI5/a5XktsCPDMU3ufhA4aGa/B04D1idSSkmPrVvhxz+GP/0JzKCqChYtgje/udAlEyl62dTQVwBzzGymmVUA1wJLuh1zH/CXZlZmZiOBs4C1yRZVit6uXfCVr8D27TBtWjxaWuBb34Jnny106USKXq81dHdvMbOPAw8BpcAd7r7GzG5of/82d19rZg8Cq4E24HZ3fy6XBZci9MgjcOwYTO3yhW/MmGh2+fnP4U1vilq7iPRLNk0uuPtSYGm3127r9vzrwNeTK5qkzjPPwMSJr3997FjYsgUOHYLKyvyXSyQlNFNU8mfECGhufv3rbW1QVgbl5fkvk0iKKNAlf84/H3bvjlEuXe3cCWedBRUVhSmXSEpk1eQikohzzoEVK2D16mhmKS2F/ftjpMvVVxe6dCJFT4Eu+VNRAZ/8JDz1FPzhD3D0KLzznRH0o0YVunQiRU+BLvlVXh7NK2edVeiSiKSO2tBFRFJCgS4ikhIKdBGRlFCgi4ikhAJdRCQlFOgiIimhQBcRSQkFuohISijQRURSQoEuIpISCnQRkZRQoIuIpIQCXUQkJRToIiIpoeVzRSTd3GPt/dbW2FRl2LDUbkauQBeR9NmxA1atgrVrYePG2IC8w/DhMHs2zJsHp50GNTWpCXgFuoikgzs89xz86lewbl2E9KhRsd1hdXXncc3NsGULrFkDP/95hPsVV0S4F3mwK9BFpPjt3w8/+QksXx4BPn16z+FcXg4TJsTDHXbtgm9+E+rq4IMfhPHj81v2BKlTVESK24YNcNNNsVftjBkwcWL2NW2zCPaZM+HZZ+M8L7yQ0+LmkgJdRIrXunXwla/EBuS1tVDSz0gzi7b0kSPh3/89mm6KkAJdRIrT9u3wH/8RTSxjxyZzztGjo8b+7W9HO3uRUaCLSPFpaYHbb4eyMhgzJtlzjxoVI2F+8AM4dizZc+fYkA70tjZobIStW+Px8ssxVFVEBrmHH4ZNm147eiVJVVXQ0ABLl+bm/DmS1SgXM7sUuAUoBW5396/2cNyZwHLgGnf/RWKlTNDhw9F38thjMTy1ubmz/8Q95h1Mnw7nnAMLFsQ3MBEZRA4fhvvugylTcjvMsKYmhkBeeGHU2otAr4FuZqXArcBFQAOwwsyWuPvzGY77GvBQLgo6UEePwv33w4MPxreoMWPiw72s2x1obYWmJvjxj+GnP4W3vx3e/e6i+XmKpN9TT8V/6GHDcnud8vIIhBUr4Pzzc3uthGRTQ18AbHD3TQBmdjewEHi+23GfAP4HODPREiZg0yb4r/+KJpUpU6JDvCelpTBuXDxaWuB3v4P6evjYx2D+/PyVWUR68OCD+RsrPmECPPAAnHdeUUw6yqYNvQbY1uV5Q/trf2ZmNcBfAbclV7RkPP00/Nu/xbe0GTOOH+bdlZXB1Knx69e/Do8+mrNiikg2Dh2Ktu2kO0J7MmpUdLS98kp+rjdA2QR6po8l7/b828Bn3P24XYpmdr2Z1ZtZfWNjY7Zl7LfnnoNbbon+jQkT+n+eMWOiOe2HP4Rly5Irn4j00c6dMdY8X7Vls7jezp35ud4AZRPoDcDULs9rgR3djqkD7jazF4H3AN8zs3d1P5G7L3b3Onevq85V73S7ffvg1lsjzEeOHPj5hg3rDPXt2wd+PhHph127YnhaPrW2RnttEcgm0FcAc8xspplVANcCS7oe4O4z3X2Gu88AfgH8vbvfm3hps+QenZotLcl2Zg4fHo/bb49zi0ieHT0a/8HzqaQk2myLQK+B7u4twMeJ0StrgZ+5+xozu8HMbsh1Aftj48bomJ4yJflzV1dHJ+vTTyd/bhHphVn+A929KDpEIctx6O6+FFja7bWMHaDu/jcDL9bAPPpo1KRz8TMwi1nGDzwQi7MVyc9ZJB2GD+//ei395Z5Mu20epG6m6KuvwhNPwKRJubvG+PGweXPR9JOIpMfkyfkP9NJSOOGE/F6zn1IX6B0dlqWlubtGR61827bjHyciCTvxxOgUzVezi3tcLxfttzmQukDfti0/P+vycvjTn3J/HRHpYtgwmDMH9u7Nz/X2749leSsr83O9AUpdoO/Y0bfJQ/01cqSGL4oUxMUX52+iz759cPnl+blWAlIX6M3N+WliKymJa4lInp16atSYu278nAtHjkQn7JvfnNvrJCh1gV5enp95B21tcS0RybOKCli0CF56KXftq+4x6uGaayLUi0TqAr22NuYe5NqhQ7HOi4gUwLnnwumnRxtrLrz0EsybB297W27OnyOpC/SamvyMDW9pgdmzc38dEcmgpAQ+9CEYMQJ270723Hv3xop8H/1obofL5UDqAr22NgI9lzsPucdDNXSRApo4EW68Mf4zJrXY3+7dsWHCjTfmdjJLjqQu0Csr4eyzc7uWzt69MGtW0cw1EEmv2lr4/OdjSdQXX+z/IkutrbEp9PDhcb7p0xMtZr6kLtAB3vGOaEfPReeoewxNvewyTfsXGRROPBG+8AW48spYK3379uyDvaUl2uG3bYvhkF/8YnxIFKms1nIpNiedFLX0lSuT/9ns2hXzGk4/PdnzisgADBsGV18dGwE/+mhsXNDaGm3ho0dHW3tJSdTyjhyBAweiaaW0FP7iL+CCC4q2Vt5VKgPdDN7//tjg4sCB5DZ6PnIk/g0UYV+JyNAwdWp0ll59NaxdG0ujvvBC1MRaWiLgq6piZb1Zs2IkS752P8qDVAY6xM/oE5+Ar30tPpgHOnP36NH4ZvZ3fxff8ERkEBs1Cs48Mx5DSCrb0DvMmwef+hTs2QNNTf0/z/79EeZ/+7dwzjnJlU9EJEmpDnSA+fPh5pth3LjoBO/LpKPm5uj4NoPPfa7o5hiIyBCT2iaXrqZPj1B/+GG4//7YTWr06Hh0X8iruTnWVN+/P6b2X3IJXHVV0axvLyJD2JAIdIjgvuIKuOgiWLUKHn88lr89fLhz+KF7HDdrFrz73dFvUiSrZoqIDJ1A7zBsWIxsWrAgAnzfvgh195hTMH58/jdEERFJwpAL9K7MIsDHjy90SUREBk51URGRlFCgi4ikhAJdRCQlFOgiIimhQBcRSQkFuohISijQRURSQoEuIpISCnQRkZTIKtDN7FIzW2dmG8zssxnef7+ZrW5/PG5mpyVfVBEROZ5eA93MSoFbgcuAU4BFZnZKt8M2A29391OBLwKLky6oiIgcXzY19AXABnff5O7HgLuBhV0PcPfH3X1v+9PlQPHusioiUqSyCfQaYFuX5w3tr/Xko8ADmd4ws+vNrN7M6hsbG7MvpYiI9CqbQLcMr3nGA83OJwL9M5ned/fF7l7n7nXV1dXZl1JERHqVzfK5DcDULs9rgR3dDzKzU4HbgcvcfXcyxRMRkWxlU0NfAcwxs5lmVgFcCyzpeoCZTQPuAT7o7uuTL6aIiPSm1xq6u7eY2ceBh4BS4A53X2NmN7S/fxtwMzAR+J7Ffm4t7l6Xu2KLiEh35p6xOTzn6urqvL6+viDXFhEpVma2sqcKs2aKioikhAJdRCQlFOgiIimhQBcRSQkFuohISmQzsUiGgMOHobERjh6N5+XlUF0NlZWFLZeIZE+BPkS5w+bN8Ic/wJo1sGsXlHT5vmYGra0wcSK84Q3w1rfCnDmvPUZEBhcF+hDjDitWwJIl0NAAFRUwdixMmxYh3v3YI0fgySdh2TKYNAmuvBLOPRdKSwtTfhHpmQJ9CNmzB+68E556Kmre06e/PsS7MoMRI+IBcOAA/OAHUav/yEdg8uT8lFtEsqMv0EPEmjVw003x68yZUSs/XphnMnp0/NktW+Dzn4+avogMHgr0IWDVKvjGN6KDs6am70HelRmccELU8P/zP+Gxx5Irp4gMjAI95TZuhFtugaqqqGEnZcQImDIFFi+G1auTO6+I9J8CPcUOH4bbbosgz8Xww+HDY2jj4sXwyivJn19E+kaBnmL33gtNTTB+fO6uMWpUfHDcdVeMihGRwlGgp9RLL8HDD0NtHrbrrqmBxx+P5h0RKRwFekotWxaTgPIxXrykJJpfHn0099cSkZ4p0FPoyBH4zW/yO0580iRYvhz278/fNUXktRToKbR5MzQ3xyzQfCktjTb09dpRVqRgFOgptG1bYa5bVgabNhXm2iKiQE+ltWth5Mj8X3f0aHjhhfxfV0SCAj2FXn65c/2VfBoxIlZtFJHCUKCnUHNzYZa5LSmJa4tIYSjQU6isrDCTfNra4toiUhgK9BQaN65z56F8OnYsVnEUkcJQoKfQvHnw6qv5v+6BA3Dyyfm/rogEBXoKzZhRmCaXo0djmzoRKQwFegpNnx6/trbm75ru8TjppPxdU0ReS4GeQuPGwYIF+R1CuGcPzJ0ba6SLSGFkFehmdqmZrTOzDWb22Qzvm5l9p/391WZ2RvJFlb644IJoAslX08srr8Cll+bnWiKSWa+BbmalwK3AZcApwCIzO6XbYZcBc9of1wPfT7ic0kezZ8P8+bBzZ+6vtWtXtNvPn5/7a4lIz7KpoS8ANrj7Jnc/BtwNLOx2zELgTg/LgXFmdmLCZZU+MIMPfSh+f/hw7q5z7Fis7vixj2kMukihZRPoNUDX5Z4a2l/r6zGSZ1VVEeo7dkBLS/Lnb22NhcDe8578bKQhIseXTaBn2iO+e8tsNsdgZtebWb2Z1Tc2NmZTPhmgc8+Fq6+GLVuSnZbf2hrnvOQStZ2LDBbZBHoDMLXL81pgRz+Owd0Xu3udu9dVV1f3tazSD2awcCFccw00NCSzmfPBgxHml14K73tfYdaNEZHXy+a/4gpgjpnNNLMK4FpgSbdjlgDXtY92ORvY7+556I6TbJjBFVfAjTfGeitbt/avCaa1NT4UDh6ET3wCFi1SmIsMJr12Y7l7i5l9HHgIKAXucPc1ZnZD+/u3AUuBy4ENwCHgw7krsvTXG98IX/oS3HMP/Pa3Ee4TJ0JlZYR+Ju7RqdrUFL8/55yo7WvNFpHBx7wQc8SBuro6r6+vL8i1JZpennwSHn4YGhsj0NvaOoPdvXNbuTFj4MILoz1+woTClltkqDOzle5el+k9DTQbojpC+sILY1GtHTtiPPnhwxHiI0ZAdXXM/BwzpucavIgMHgp0YfTomLY/d26hSyIiA6EuLRGRlFCgi4ikhAJdRCQlFOgiIimhQBcRSQkFuohIShRsYpGZNQJbCnLx3KkCmgpdiEFC96KT7sVr6X506s+9mO7uGRfDKligp5GZ1fc0g2uo0b3opHvxWrofnZK+F2pyERFJCQW6iEhKKNCTtbjQBRhEdC866V68lu5Hp0TvhdrQRURSQjV0EZGUUKCLiKSEAr0fzOxSM1tnZhvM7LMZ3n+/ma1ufzxuZqcVopz50Nu96HLcmWbWambvyWf58imbe2Fm55nZM2a2xsx+l+8y5ksW/0fGmtkvzWxV+71I7S5nZnaHme0ys+d6eN/M7Dvt92q1mZ3R74u5ux59eBDb8G0ETgIqgFXAKd2OORcY3/77y4AnCl3uQt2LLsc9SmxV+J5Cl7uA/y7GAc8D09qfTyp0uQt4L24Cvtb++2pgD1BR6LLn6H68DTgDeK6H9y8HHgAMOHsgeaEaet8tADa4+yZ3PwbcDSzseoC7P+7ue9ufLgdq81zGfOn1XrT7BPA/wK58Fi7PsrkX7wPucfetAO6e1vuRzb1wYLSZGTCKCPR+bF0++BO/BacAAAIVSURBVLn774m/X08WAnd6WA6MM7MT+3MtBXrf1QDbujxvaH+tJx8lPn3TqNd7YWY1wF8Bt+WxXIWQzb+Lk4HxZvZbM1tpZtflrXT5lc29+C7wBmAH8CzwSXdvy0/xBp2+ZkqPtAVd32XaXTPj2E8zO58I9LfmtESFk829+DbwGXdvtXRvTJrNvSgD3gJcAIwA/mhmy919fa4Ll2fZ3ItLgGeAdwCzgF+b2TJ3fyXXhRuEss6U3ijQ+64BmNrleS1Ry3gNMzsVuB24zN1356ls+ZbNvagD7m4P8yrgcjNrcfd781PEvMnmXjQATe5+EDhoZr8HTgPSFujZ3IsPA1/1aETeYGabgXnAk/kp4qCSVaZkQ00ufbcCmGNmM82sArgWWNL1ADObBtwDfDCFta+uer0X7j7T3We4+wzgF8DfpzDMIYt7AdwH/KWZlZnZSOAsYG2ey5kP2dyLrcQ3FcxsMjAX2JTXUg4eS4Dr2ke7nA3sd/ed/TmRauh95O4tZvZx4CGiN/8Od19jZje0v38bcDMwEfhee820xVO4ulyW92JIyOZeuPtaM3sQWA20Abe7e8ahbMUsy38XXwR+ZGbPEk0On3H3VC6pa2Z3AecBVWbWAPwLUA5/vhdLiZEuG4BDxLeX/l2rfdiMiIgUOTW5iIikhAJdRCQlFOgiIimhQBcRSQkFuohISijQRURSQoEuIpIS/x//x+mDFsGnagAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "np.random.seed(233)\n", "x, y = np.random.rand(2, 10)\n", "np.random.seed(666)\n", "point_size = 1000 * np.random.rand(10)\n", "\n", "f, ax = plt.subplots()\n", "ax.scatter(x, y, s=point_size, c=[\"b\", \"r\"] * 5, alpha=0.5)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 条形图:ax.bar / barh\n", "\n", "条形图按多个分组来展示数据。用 `bar` 绘制竖立的条形图,或者用 `barh` 绘制横置的。\n", "\n", "基本用法:\n", "\n", "`ax.bar(x, height, width=0.8, ...)`\n", "\n", "- `x`:一维数组,长度与组个数相同,给出条形图的每组的水平位置。在默认的 `align='center'` 参数下,条形图每组的下端正中与 `x` 数组中每个元素对齐。你可以指定 `align='edge'` 来让每组的下端左侧与 `x` 中的位置对齐。\n", "- `height`:条形图的高,即数据。应该与 `x` 等长。\n", "- `width`:条形图的宽度。\n", "\n", "下例的第四幅子图用到了 `matplotlib.ticker.PercentFormatter` 来将纵轴的刻度改为百分数,读者可以参考之前的坐标轴刻度章节,或者[官方 Tick formatters 示例](https://matplotlib.org/3.1.1/gallery/ticks_and_spines/tick-formatters.html)。" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3wAAAFmCAYAAAA2xpj2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzde5yVVb348c93LswwgKYCiiAOKKmIiYId8hZoaoqaHkzF9GCimP60LMtDeTpZ5pFTmmaohV0OaqammZw0L6mgZZqIoAQHVBwU5CYigjDMbf3+mA1yZ2Aue8+ez/v1mtfez7PX86zv8ziy5rvXetaKlBKSJEmSpPxTkO0AJEmSJEnNw4RPkiRJkvKUCZ8kSZIk5SkTPkmSJEnKUyZ8kiRJkpSnTPgkSZIkKU81KOGLiE9ExAMR8X8RMTMiPhMRu0bEkxHxeuZ1l+YOVpIkSZLUcNGQdfgiYjzwXErplxHRDigDvgO8n1IaExGjgV1SSv++tfN07tw5lZeXN0HYkqQd9fLLL7+XUuqS7Thyke2UJGWf7VTTKtpWgYjYCTgaOB8gpVQFVEXEF4DBmWLjgYnAVhO+8vJyJk+evOPRSpIaLSLmZjuGXGU7JUnZZzvVtBoypLM3sAT4TUS8EhG/jIgOwO4ppQUAmdeuzRinJEmSJGk7NSThKwIOBW5PKR0CfASMbmgFETEqIiZHxOQlS5bsYJiSJG1eROwXEVPX+/kwIq6IiGsiYv56+0/KdqySJLW0bQ7pBOYB81JKL2a2H6A+4VsUEd1SSgsiohuweHMHp5TGAeMABg4cuO0HBiUphwwePBiAiRMnZjUObVlKaRbQHyAiCoH5wEPAl4GbUko3ZDE8Scod1+zcQvUsb5l61CDbTPhSSgsj4p2I2C/TqB4LzMj8jADGZF4f3pEAqqurmTdvHpWVlTtyeF4rLS2lR48eFBcXZzsUSWotjgXeTCnNjYgmOaHt1JbZTklS7mtIDx/A5cBvMzN0zqH+W9MC4P6IGAm8DXxxRwKYN28enTp1ory8nKZqnPNBSomlS5cyb948evXqle1wJKm1OBv43Xrbl0XEvwGTgStTSsu294S2U5tnOyVJrUOD1uFLKU1NKQ1MKX0qpXRaSmlZSmlpSunYlFKfzOv7OxJAZWUlu+22m43oRiKC3XbbzW+UJamBMl9Kngr8PrPrdmAf6od7LgBu3MJxW33W3HZq82ynJKl1aFDC19xsRDfP+yJJ2+VEYEpKaRFASmlRSqk2pVQH3AF8enMHpZTGZb7UHNily+aXffLf483zvkhS7suJhC/bFi5cyNlnn80+++xD3759Oemkk5g9ezYVFRX069evWep89tlnOfTQQykqKuKBBx5oljokqY0ZznrDOTMTiq11OjC9xSNqIrZTkqQd1dBn+FpM+ehHmvR8FWOGbvXzlBKnn346I0aM4N577wVg6tSpLFq0iL322qtJY1lfz549+Z//+R9uuMHJ4ySpsSKiDDgOuHi93T+KiP5AAio2+myH2U5JklqTnEv4WtozzzxDcXExX/nKV9bt69+/PwAVFRXr9lVUVHDeeefx0UcfATB27FgOP/xwFixYwFlnncWHH35ITU0Nt99+O4cffjgjR45k8uTJRAQXXHABX//61zeot7y8HICCAjtZJamxUkqrgN022ndelsJpUrZTUgO43IC0RW0+4Zs+fToDBgzYZrmuXbvy5JNPUlpayuuvv87w4cOZPHky99xzDyeccAJXX301tbW1rFq1iqlTpzJ//nymT68fPfTBBx8092VIkvKU7ZQkqTHafMLXUNXV1Vx22WVMnTqVwsJCZs+eDcBhhx3GBRdcQHV1Naeddhr9+/end+/ezJkzh8svv5yhQ4dy/PHHZzl6SVK+s52SJG1Omx+nceCBB/Lyyy9vs9xNN93E7rvvzrRp05g8eTJVVVUAHH300Tz77LN0796d8847jzvvvJNddtmFadOmMXjwYG699VYuvPDC5r4MSVKesp2SJDVGm0/4jjnmGNasWcMdd9yxbt9LL73EpEmTNii3fPlyunXrRkFBAXfddRe1tbUAzJ07l65du3LRRRcxcuRIpkyZwnvvvUddXR3Dhg3j2muvZcqUKS16TZKk/GE7JUlqjDaf8EUEDz30EE8++ST77LMPBx54INdccw177rnnBuUuvfRSxo8fz6BBg5g9ezYdOnQAYOLEifTv359DDjmEBx98kK997WvMnz+fwYMH079/f84//3yuv/76Tep96aWX6NGjB7///e+5+OKLOfDAA1vkeiVJrYvtlCSpMSKl1GKVDRw4ME2ePHmDfTNnzuSAAw5osRhaG++PlF2DBw8G6v9ozhcR8XJKaWC248hFtlPbz/ujnOAs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dZO2LF++vLBHjx5VhYWFjB07drfa2loAZs+e3a5Xr15VV1555XsfffRRwZQpU8oWLFiwvKSkpO7888//4JOf/OSaCy64oFdzxG7CJ0mSJKlVacgyCk2poKCACRMmvHnppZfudfPNN+9RUlKyblmG9ctdccUVi4cNG7bPH//4x12OPPLIFe3bt68DePzxxzvdcsstexQVFaWysrLa3/72t29VVFQUjxw5sryuri4AfvCDH8zbuN5JkyaVnXnmmft++OGHhU899dQnrrvuuj3feOON7Vr+oVEJX0TsAdwMHAasof6LjytSSrMbc15JkiRJyiXl5eXVjz766JzNfbZ24pWDDjpozezZs2es3X/rrbfOB7j88suXXn755Us3Pm7GjBkzt1bnZz/72VWLFi16tTFx7/AzfBERwEPAxJTSPimlvsB3gB1eI0KSJEmS1HQa08M3BKhOKf187Y7MWkmSJEmSpBzQmFk6+wEtOnZWkiRJktRwzT5pS0SMAkYBFO7UhfLK3zR3lVKrVzFmaLZDkCRJUh5oTA/fP4EB2yqUUhqXUhqYUhpYWLZzI6qTJEmSJG2PxiR8TwMlEXHR2h0RcVhEfLbxYUmSJEmSGmuHh3SmlFJEnA7cHBGjgUoyyzI0UWySJEmStKlrdt7mSMPtO9/ybc5N8vbbbxddeumlPadNm1bWrl27devwlZSUpJNPPrnP2qUZmjSsa67Z/a677upcWFiYdtttt5rx48dXfPKTn6za9pEfa0wPHymld1NKZ2aWZTgwpTQ0pfR6Y84pSZIkSbmkrq6OU089dd+jjz56xTvvvDP9zTff/Of1118//9133y1uznoHDBiwaurUqTNnz54947TTTlv29a9/vcf2nqNRCZ8kSZIk5bs//elPnYqKitJVV121ZO2+ww8/fPXnP//5leuXmzVrVrsBAwbs17dv3wP69u17wJNPPtkBYO7cucUDBw7cb//99+/bp0+fAx977LGONTU1DBs2rLxPnz4HfvKTn+z7/e9/v+vG9Z5yyikrOnXqVAdw5JFHrlywYEG77Y292WfplCRJkqTW7NVXX21/8MEHr9pWuT333LPmueeem11WVpZee+21kuHDh/eePn36zF//+te7Hnvsscv/+7//e2FNTQ0rVqwo+Pvf/162YMGC4rVDQd97773CrZ37F7/4RZfPfe5zy7c3dhM+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bs1Qnx5//HHmzJlDo0aNaN26NfPmzaNTp0713o9cvKJdh+j80NLztun32Ioa5RPlYfJn/7mqXLjzELfM1L9VERG5eBc14HP3AWepe6LO0YiI1NUj9Xyt8CNHzvu0uzNs2DAKCgpYuDByWXNJSQn79u2jQ4cO9RtLNT179qSoqIj09HSeeuopHnjgAV544YVL1p+IiIg0TLogQESkDlasWEFaWhr33XdfVV12dja5ubk12u3cuZPc3FxycnLIyclh3brIaox79+6lf//+ZGdnk5WVxZo1a6ioqGDkyJFkZWXRo0cPZsyYcUa/eXl5pKenA9CnTx/dhF1ERETOqi63ZRARSXqbNm2iV69eF2yXkZHBsmXLCIVCbN++nfz8fIqKinj++ecZPHgwDz/8MBUVFRw/fpySkhLKysqqpoIePnz4vO89d+5cbr311nrZHhEREUksGvCJiMRAeXk548aNo6SkhNTUVLZt2wZA7969GTVqFOXl5QwdOpTs7Gy6du3Kjh07GD9+PEOGDGHQoEHnfN/nnnuOoqIiVq1aFatNERERkQZEUzpFROqge/furF+//oLtZsyYQZs2bSgtLaWoqIjPPovcQLt///6sXr2a9u3bM2LECObPn0/Lli0pLS1lwIABzJo1i3vuuees77l8+XKmTp3KkiVLaNKkyVnbiIiISHLTgE9EpA4GDhzIyZMnmT17dlVdYWHhGWfcjhw5Qtu2bUlJSWHBggVUVFQAsGvXLjIyMhgzZgyjR4+muLiYAwcOEA6HGT58OFOmTKG4uPiMfjds2MDYsWNZsmQJGRkZl3YjRUREpMHSlE4RkTowMxYvXsykSZOYPn06oVCo6rYM1d1///0MHz6cF198kby8PJo1awbAypUr+clPfkJaWhrNmzdn/vz5lJWVcffddxMOhwGYNm3aGf1OnjyZY8eOcccddwDQsWNHlixZcom3VkRERBoaDfhEJLFc4DYKl0K7du1YtGjRWZ+rXHilW7dubNy4saq+chBXUFBAQUHBGa8721m96pYvX36x4YqIiEgS0ZROERERERGRBBXTM3w92l9G0fQhsexSREREREQkaekMn4iIiIiISILSgE9EGjx3DzqEuKS8iIiIiAZ8ItKghUIhDh48qMHNadydgwcPEgqFgg5FREREAqRVOkWkQcvMzGT37t189NFHQYcSd0KhEJmZ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.ticker as ticker\n", "\n", "bar_width = 0.35\n", "groups = np.arange(5)\n", "y1 = np.linspace(10, 50, 5)\n", "np.random.seed(0)\n", "y2 = np.random.rand(5) * 40 + 10 \n", "\n", "f, ax = plt.subplots(2, 2, figsize=(14, 6), gridspec_kw = {'height_ratios':[1, 2]})\n", "# 并列竖立条形图\n", "ax[0,0].bar(groups, y1, bar_width, label=\"Class 1\",\n", " yerr=2 * groups + 1)\n", "ax[0,0].bar(groups + bar_width, y2, bar_width, label=\"Class 2\")\n", "ax[0,0].set_xticks(groups + bar_width / 2)\n", "ax[0,0].set_xticklabels(list(\"ABCDE\"))\n", "ax[0,0].legend(loc=\"upper left\")\n", "\n", "# 堆叠竖立条形图\n", "ax[0,1].bar(groups, y1, bar_width, label=\"Class 1\")\n", "ax[0,1].bar(groups, y2, bar_width, bottom=y1, label=\"Class 2\")\n", "ax[0,1].set_xticks(groups)\n", "ax[0,1].set_xticklabels(list(\"ABCDE\"))\n", "ax[0,1].legend(loc=\"upper left\")\n", "\n", "# 横置条形图\n", "ax[1,0].barh(groups, y1, bar_width, label=\"Class 1\")\n", "ax[1,0].barh(groups + bar_width, y2, bar_width, label=\"Class 2\")\n", "ax[1,0].set_yticks(groups + bar_width / 2)\n", "ax[1,0].set_yticklabels(list(\"ABCDE\"))\n", "ax[1,0].legend(loc=\"lower right\")\n", "\n", "# 堆叠竖立百分比条形图(附百分比数字)\n", "y1_percent = y1 / (y1 + y2)\n", "y2_percent = y2 / (y1 + y2)\n", "ax[1,1].bar(groups, y1_percent, bar_width, label=\"Class 1\")\n", "ax[1,1].bar(groups, y2_percent, bar_width, bottom=y1_percent, label=\"Class 2\")\n", "## 加上百分比字串\n", "for k in range(len(groups)):\n", " ax[1,1].text(groups[k], y1_percent[k]/2, r\"{:.0%}\".format(y1_percent[k]),\n", " color=\"w\", ha=\"center\", va=\"center\")\n", " ax[1,1].text(groups[k], y2_percent[k]/2 + y1_percent[k], \n", " r\"{:.0%}\".format(y2_percent[k]), color=\"k\", ha=\"center\", va=\"center\")\n", "ax[1,1].set_xticks(groups)\n", "ax[1,1].set_xticklabels(list(\"ABCDE\"))\n", "ax[1,1].legend(loc=\"center left\", bbox_to_anchor=(1.0, 0.5))\n", "## 设置 y 轴刻度\n", "ax[1,1].yaxis.set_major_formatter(ticker.PercentFormatter(xmax=1, decimals=0))\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 直方图:ax.hist\n", "\n", "不同于条形图,直方图绘制的是一维的数据,展现数据的频数或者频率。\n", "\n", "最简单的直方图 `ax.hist(x)`,可以是单参数的:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "np.random.seed(0)\n", "x = np.random.normal(0, 1, 1000) # 标准正态\n", "\n", "f, ax = plt.subplots()\n", "ax.hist(x)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "下面是我认为的几个常用参数:\n", "\n", "`ax.hist(x, bins=None, density=None, weights=None, histtype='bar', ...)`\n", "\n", "- `x`:直方图的一维数据。\n", "- `bins`:控制分组的参数。\n", " - 如果传入整数,就会对应自动分为几组。\n", " - 如果传入列表,会按列表中的数给出分组。比如 `[1,2,3,4]`,会将区间 `[1,2)` (左闭右开,即包含1不包含2) 与 `[2,3)` 分为一组。但是列表中的最后一组将是双侧闭区间:`[3,4]`。\n", " - 如果传入字符串(较少用到),请参考 Numpy 文档中 [histogram_bin_edges¶](https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram_bin_edges.html#numpy.histogram_bin_edges) 函数的 bins 参数。\n", "- `density`:(不常使用)控制图像密度的参数。设为 True 时将在绘图时对数据进行归一化,使直方图下方的面积求和为 1。\n", " - 该“面积求和为 1”与每个组的宽度有关,并不是常规统计意义上的密度。除非组宽是1,否则设置 `density=True` **并不能得到频率图**;频率直方图可以参考 `weights` 参数。\n", " - *旧版本有一个与现有的 density 参数相关的 normed 参数,但它即将被废弃。*\n", "- `weights`:控制每个数据点的权重。常规的直方图每个数据点出现 1 次,就记 1 频数;因此每个数据点权重均是 1。下例的图 2 用数据点总数的倒数作为权重,给出了一个频率直方图的实现。\n", "- `histtype`:控制直方图类型。\n", " - `'bar'`:默认的直方图。多维数据会在组内并排排列。\n", " - `'barstacked'`:多维数据会在组内堆叠排列。。\n", " - `'step'`:用阶梯折线图(lineplot)代替了直方图,参考下例的图3。\n", " - `'stepfilled'`:下方用颜色填充的阶梯折线图。\n", "\n", "几个例子(**注意例中各图纵坐标刻度的区别**):" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "np.random.seed(0)\n", "x = np.random.rand(100, 3)\n", "bins_num = 10\n", "\n", "f, ax = plt.subplots(2, 2, figsize=(12, 8))\n", "ax = ax.ravel()\n", "\n", "# 频数\n", "ax[0].hist(x, bins_num, color=(\"darkblue\", \"orange\", \"g\"))\n", "ax[0].set_title(\"Histogram with counts\") \n", "\n", "# 频率\n", "ax[1].hist(x, bins_num, weights=np.ones_like(x)/x.shape[0])\n", "ax[1].set_title(\"Histogram with frequencies\") \n", "\n", "ax[2].hist(x, bins_num, histtype=\"bar\", stacked=True, rwidth=0.5)\n", "ax[2].set_title(\"Stacked histogram\")\n", "\n", "ax[3].hist(x, bins_num, histtype='step')\n", "ax[3].set_title(\"Lineplot-style histogram\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 核密度曲线\n", "\n", "Matplotlib 没有简洁的核密度曲线图(kernel density plot)的实现,这件事恐怕自从 matplotlib 风靡之日起就在被吐槽。相比之下,基于 matplotlib 的 [seaborn 库](https://seaborn.pydata.org/) 提供了一个很简单的 `distplot` 来实现这一功能,但在 matplotlib 里我们恐怕需要稍微多花一点功夫。\n", "\n", "下例是频率直方图(通过 `weights` 参数转换为频率)与对应的 Gaussian 核密度曲线:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEICAYAAABPgw/pAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3deXxU9fX/8dfJZN8DhH0VcQEURcrigqwKWsUFRbRa21qlan/ar221tdattlpt69pal4qtVYo7IogIYVORxYKCuAAiYVHClmSyJ3N+f9wbO4QsE5jkzkzO8/HgQWbunXvf85l7z9z53E1UFWOMMdEvzusAxhhjwsMKujHGxAgr6MYYEyOsoBtjTIywgm6MMTHCCroxxsQIK+gRQkRURI5sYNhlIvJ2K2bpKSJ+EfE1Mk6DeaNBS7ZppLSNiEwXkd+FOG5vN3d8C+Zp1eU4VCIyV0S+30rzatE28LSgi8gWESlzi0ftv65eZopEqvpvVT2jqfGaswI3Mb+tqpquqjXudBeJyFWHM00R6SciM0SkQESKROQLEXlERLofbt5DEWqbmvCp2+ZefPGJyB0i8lydXBNV9dkWmNdBX5ItvdxFwhb6OW7xqP23o+4ILbnVYFqeu9J+AOwATlTVTOAUYBNwqpfZIlljv5CMqZeqevYP2AKMq+f53oACPwK2Akvc54cD7wH7gbXAqKDX9AEWA8XAfOBR4Dl32ChgW0PzxvliuwWnwOwBZgLt6mT5vptlN3Br0HR8wK/d1xYDq4EewGPAn+rM8w3gxgbaQoFpwBfAPvf14g67Eljm/i3AX4BdQCHwETAQuBqoAioBP/BGPfO4E3jE/TsBKAH+6D5OAcqBnKD3HA/cA9S4w/zAo03lrWe+z9WXp844OcBsoMCd3myge0PLCnBH0Oeb7M5jj7tsrAQ6BbXdZvez+RK4rG6buo8fAvKBIvczPK3OvGYC/3Snsx4Y0sh7UeBI9+9T3emOdh8fg7N87gU+Ay4Oet104G/AHPezGec+9xjwpjvvD4C+Qa9panq/ayCjD3gAZ3neDFxX+5m7w7OAp4GdwHbgd4AvuO3c1+9z23Vi0LSbbHNgiTu/EpzlagqwDmcDr3Y6CW6+Exp4D98F1rif+XvA8UHDbnZzF7vtMhaYgLN+VLnzXOuOuwi4Kijjuzjr2H73fZzsPp+Ps959P2g+ZwP/xVlu8oE7goZtdd+j3/03goOXu5NxltdC9/+Tg4YtAu528xQDbwMdGl2PWqJQh/qPpgv6P4E0nGLTDWeFPQunAI93H+e6r3kf+DOQBIx0GyDUgn4jsBzo7r7+78ALdbI86eYYBFQAx7rDfwF8DByNU2wHAe2BoThbpHHueB2AUtxC00ARmA1kAz1xCtuEelaEM3EKTrY7v2OBLk2twO7wMcDHQQvSJuCDoGFr67zn2pV7Ee4CH0reeub7NXBlE8tCe+BCIBXIAF4EXmtoWeHAgn4NzpdlKk6hOgnIdJedIuBod7wuwIC6beo+/p6bIR64yc2cHDSvcpxlzwf8AVjeyHtR4Ej3s8oHhrrPp7mPf+DOZzBOwarNNB1nxT4FZxlPdp/bi7M8xQP/BmY0Y3oNFfRpwKc4Gx/tgLw6n/lrOOtBGtARWAFcE9R2VcCP3fb4Cc6yLs1s82+/+NzHvwT+E/R4Eu7yWk/+wTjFdZib4fvuMpKEsy7mA12Dlue+dZeboGkt4sCCXu22qQ/ni2wrzpdqEnAGTm1JD6otx7mf1/HAN8B59a1H9azL7XC+EC93P7+p7uP2Qbk2AUfh1J5FwL2NrUeR0OXymojsd/+9VmfYHapaoqplOCvcHFWdo6oBVZ0PrALOEpGewHeA21S1QlWX4KzgoboGZ6t7m6pW4Hzok+t09dypqmWquhbn18Eg9/mrgN+o6mfqWKuqe1R1Bc7KOdYd7xJgkap+00iOe1V1v6puxVnBTqhnnCqcgncMzhbxBlXdGeL7fB/oJyLtcb70nga6iUg6cDrOL5zmCCUvOF9mX9c+EJHr3c/bLyJPArht9rKqlqpqMc4vg9NDzFGFU4yPVNUaVV2tqkXusAAwUERSVHWnqq6vbwKq+pyboVpV/8T/CkOtZe6yVwP8i/99/g25CHgCOMtdFsDZotyiqs+48/kQeBmYHPS611X1XXcZL3efe0VVV6hqNU5BP6EZ02vIxcCDqpqvqntxvqQAEJFOwEScX5MlqroLZ4v1kqDXf6WqT7rt8SxO4e7kDgupzevxHM76nOk+vhynrevzY+DvqvqB+5k/i7OhNRznF2US0F9EElR1i6puCjEDwJdum9YA/8H50rvLrS1v42zlHwmgqotU9WP38/oIeIHQl9uzgS9U9V/u5/cCzpfsOUHjPKOqn7s1cCYNr2NAZPShn6eq2e6/8+oMyw/6uxdwUVDx34/zc7YL0BXYp6olQeN/1YwMvYBXg6a7AWeh6BQ0ztdBf5cC6e7fPXC+RevzLM4XEe7/DS2cTc3jW6q6EKc76THgGxF5ImgFaJS7UKzCWeBG4hTw93C2CA+loDeZ17UH53OqzfGoqmYDD+L8rEZEUkXk7yLylYgU4fwkzw6xH/lfwDxghojsEJE/uityCc5P+WnAThF5U0SOqW8CInKTiGwQkUJ3GcjC+SJq6L0mN7Fv50Zgpqp+HPRcL2BYnWX4MqBz0DjBy3xD865t51Cm15CudeYVvL70wvlcdgZN9+84W+oHZVLVUvfP9Oa0eV3q7D97F7hQRLJxvlT+3cDovYCb6rz3Hjhb5Rtx2v8OYJe7M745B1sEb3SVudnqPpcOICLDRCTP3dlfiPO+g5ebxnTl4Dr1FU5vRK1Q1zEgMgp6YzTo73zgX0HFP1tV01T1Xpx+vhwRSQsav2fQ3yU4P8eBb3c25daZ9sQ6005W1e0hZMwH+jYw7DlgkogMwukaqfsL5JCo6sOqehIwAOfn2C9qB4Xw8sU43Ssn4vTZLcbpGhiKU0TrneVhBYYFwAVNjHMTzhbxMHV2mo50nxf3/wM+Q4KKlqpWqeqdqtofpyvpu8AV7rB5qjoe5wvlU5yuswOIyGk4fa4XAznul01h0LwPxUXAeSJyY9Bz+cDiOstZuqr+JGic5rR1KNNryE6cAlgreH3Jx9na7RA03UxVHRBKqFDavBG1G0EXAe83sg7mA/fUee+p7lYuqvq8qp6KU/gVuK82XjOyhOJ5YBbQQ1WzgMf533LT1Lx2uPmC9cTp+z8kkV7Qgz0HnCMiZ4qIT0SSRWSUiHRX1a9wtjzvFJFEETmVA3+2fI6zRXW2iCQAv8H5SVbrceAeEekFICK5IjIpxFxPAXe7h+WJiBzvdmmgqttwiua/gJfdLeTDIiLfcbcKandqluP8mgBny+KIJiaxGKfYfaKqlbj9hzg/MwsaeE0o023MHcBpIvJnEenmvo8OOF9ytTJwtnz2i0g74PY601gDXCIiCSIyhKBuBREZLSLHuV/URThdMDUi0klEznW/6CtwdkzVcLAMnH7TAiBeRH6L0wd/OHbgdLf9PxG51n1uNnCUiFzuvo8E9/M8tuHJNOpwpjfTzdZdRHJwDgoAwO3Cexv4k4hkikiciPQVkSa7EprR5lD/cvUaTv/4DTj70BryJDDNXRdERNLc9TtDRI4WkTEikoSzfpRx4DrSW0TCVfsygL2qWi4iQ4FLg4YV4HQ/NbTuzMH5/C4VkXgRmQL0x/lcD0nUFHRVzcfZSfJrnIbKx9kyrX0Pl+LsINmLUwz+GfTaQuBanOK7HacQbgua/EM437Jvi0gxzg7SYSFG+zPOyvE2TjF5GmcHRq1ncXaaNNXdEqpMnIV5H87Psz04Rxvgzru/1L8/otZ7br7arfFPcBb6hrbOwWmfySKyT0Qebm5gVf0cp2+zO7DWbeN3cYrebe5oD7q5duO0/1t1JnMbzi+hfThH6zwfNKwz8BJO+2/A+dJ6DmfZuMmdz16cbqVrOdg8YC7OF/9XOO1RX9dHs6izb2EscLOIXOXuGzgDpy96B87P6fs4cOOiOdM/nOk9ifO+1wIfAq/UGX4FkIizfOzDad8uNC3UNgfni/5Zd3m92H1PZTj7AfrUk+lbqroKpx/9UTffRpwdjuC8/3txlqWvcbqKfu0Oe9H9f4+IfBjC+2nKtcBd7jL9W5xaUJuxFGdf0Lvuexxe5z3swfk1eRPOevxL4LuquvtQw9QeFhdzROQOnJ1k32tq3BbOMRKnuPRW1YCXWYyJBu4vpKO8XnejkZ2w04LcbpEbgKesmBvTNLe77Uc4R7iYZoqaLpdo4/Zj7sf5mfqgx3GMiXgi8mOcrq656hx6bJopZrtcjDGmrbEtdGOMiRGe9aF36NBBe/fu7dXsjTEmKq1evXq3qubWN8yzgt67d29WrVrl1eyNMSYqiUiDZ8Fbl4sxxsQIK+jGGBMjrKAbY0yMsIJujDExwgq6McbECCvoxhgTI0Iq6CIyQUQ+E5GNInJLA+OMEpE1IrJeRJp7owRjjDGHqcnj0N1rTD+Gcw/PbcBKEZmlqp8EjZMN/BXnnpJbRaRj/VMzxhjTUkLZQh8KbFTVze4NEWbgXJc82KU49z3cCuDeg9AYY0wrCuVM0W4ceLH/bRx884ejgAQRWYRzB4+HVPWgu42IyNXA1QA9e/asO9gY45HOeWsO6XUSCJBeVkpJcgoBXyi3fz3Y16Mbve+xaYZQCnp991Wse4nGeOAknLuzpADvi8hy9041/3uR6hM4d0JnyJAhdplHY6LU0Vs2cem8WZzw+XoyS517s2/o1Zd5I0Yy+9Qx1PjsVgteCKXVt3HgzWS749xequ44u907fpeIyBJgEM4tvYwxMSKhqorrX3yWc5cuoDAtnSUnDmVr525klPgZvu6/3DjjGc5ZuoA/XHktm7rXvf+xaWmhFPSVQD8R6YNzP85LOPBGqACvA4+KSDzOfQiHAX8JZ1BjjLfSykq599F7Gbj5C2aM+y7/Out8SlNSvx3+j0lTOHntKn72wtM89Kc7ufUnP2ftUf09TNz2NLlTVFWrgetxbii7AZipqutFZJqITHPH2YBzU9+PgBU4t1xb13KxjTGtKamygt8/9keO2bKZO666gb9feNkBxbzWe4OG8JNb7qEgux33PXov/Tfbj/TW5Nkdi4YMGaJ2+VxjIkOjO0VVue3pRxj14XJ+98OfkjdkRJPTy/QX8dgfbye1vJSf3HIPu9p1aHBc2ynaPCKyWlWH1DfMzhQ1xjTqnKXvMGb1+zw1aUpIxRygKD2TW3/ycxKrqrjjyQeJq6lp4ZQGrKAbYxrR/ZudXP/iv/ig/yBmjD+nWa/d2qUbf/rejzl2yyamvv1GCyU0waygG2Pqp8rPnn+KyoQE7rtiGhrX/HKx6KQRLDxpBN9/8yV678hv+gXmsFhBN8bUa/yKZQz+/BOeOH8q+7KyD3k6D11yJWVJyVz34j/Bo312bYUVdGPMQZIqK/jxqy+woXdfZp8y5rCmVZSeyfTvTmbIp+s45aPVYUpo6mMF3RhzkAsXziW3cB9/u+B7h9TVUteskePY0qUb17zyb9tB2oKsoBtjDpBR4mfqvFm8e9xgPu53TFimWeOL56lzp9Bj19eMX7EsLNM0B7OCbow5wAV5b5FeXsbTk6aEdbrvDhrC5z16c/mcV/DVVId12sZhBd0Y862U8jIuyHuLZYOG8GW3MF8RVYRnzrmIbrt3MW7Fu+GdtgGsoBtjgkxaMp/M0hKem3Bei0x/+cAT2dy1Bxe/86Yd8dICrKAbYwDw1VRzQd48Vh89kM96922ZmYgwc9zZHLEjn6Hr17bMPNowK+jGGABGfriC3P17eWnsxBadz4LvnEJBdjumvDO7RefTFllBN8YAMHnhXPI7duaDAS17sazq+HheO308gz9bT8+d21t0Xm2NFXRjDEdv2UT/LRt5ZfSEsBx33pQ3TxlDZXw8k5a83eLzakusoBtjOGfpAsqSknh72GmtMr/CjEwWDR7OmcuXEigpaZV5tgVW0I1p42qKixmz6j0WDDm53ptWtJTXTj+DtPIyCt98s9XmGeusoBvTxhXNnk1KZQWzTx3bqvPd0OdItnTpRuGrr7XqfGOZFXRj2rj9L77EF9178VmvI1p3xiLMGz6Ssv/+l8otW1p33jHKCroxbVjFxo2Uf/IJ84aPBJFWn//8oadCXBz7X7Ot9HCwgm5MG1Y46w3w+Vj4nZM9mf+e7HaknXoKha/PQgMBTzLEEivoxrRRGghQOPsN0k45mX2Zh34Di8OVfd55VO/cSekHH3iWIVZYQTemjSpduYrqHTvJOneSpznSx44lLiOD/a++6mmOWGAF3Zg2qnDW68SlppIx9vDuSHS44pKSyDz7LIrfnk+N3+9plmhnBd2YNihQXk7xvLfJOOMM4lJSvI5D9nnnoeXlFM+b53WUqGYF3Zg2yJ+XR8DvJ2vSuV5HASB50CASevSgaO5bXkeJaiEVdBGZICKfichGEbmlnuGjRKRQRNa4/34b/qjGmHApnPUG8Z06kTp0qNdRABARMidMoOT996net8/rOFGryYIuIj7gMWAi0B+YKiL96xl1qaqe4P67K8w5jTFhUlNcjH/ZMjInTkR8Pq/jfCtjwplQU4N/wQKvo0StULbQhwIbVXWzqlYCMwBvd4sbYw6ZPy8PqqrInHCm11EOkNy/Pwk9e1q3y2EIpaB3A/KDHm9zn6trhIisFZG5IjKgvgmJyNUiskpEVhUUFBxCXGPM4Sqa9zbxnTuTfPzxXkc5wLfdLsuXW7fLIQqloNd3PnDdmwF+CPRS1UHAI0C95/Gq6hOqOkRVh+Tm5jYvqTHmsNX4SyhZupSMM8YjrXDd8+bKnDgBamoonj/f6yhRKZRPdBvQI+hxd2BH8AiqWqSqfvfvOUCCiHQIW0pjTFj4Fy1CKyvJPDOyultqJR1zDIm9elH8lnW7HIpQCvpKoJ+I9BGRROASYFbwCCLSWcS5so+IDHWnuyfcYY0xh6d43jzic3NJOfFEr6PUS0TImDiBkg9WUL13r9dxok6TBV1Vq4HrgXnABmCmqq4XkWkiMs0dbTKwTkTWAg8Dl6hq3W4ZY4yHAiUl+JcsIWN8ZHa31MqcUNvt8o7XUaJOfCgjud0oc+o893jQ348Cj4Y3mjEmnPxLl6IVFWREaHdLraSjjyahV0+K33mHnCkXex0nqkTu17QxJqyK5s3D164dqUNO8jpKo0SEjLHjKFm+3K7t0kxW0I1pAwKVlZQsXkLG2LERdTJRQzLGjYWqKkqWLPE6SlSxgm5MG1C6YiWB0lLSx4z2OkpIUgYNwteuHcULFnodJapYQTemDfDn5SHJyaSNGOF1lJCIz0f6mNH4Fy9GKyu9jhM1rKAbE+NUFX9eHmkjRhCXnOx1nJBljB1LwO+nZMVKr6NEDSvoxsS4is+/oGrHDtJHjfI6SrOkjRiBpKZSvMAOXwyVFXRjYpx/0SKAqCvoccnJpJ96Kv4FC+0G0iGygm5MjPPn5ZE8YAAJnTp6HaXZMsaNpXrXLsrXrfM6SlSwgm5MDKves4eytWtJHx0dR7fUlX766eDzUfyOXSM9FFbQjYlh/iVLQTXqultq+bKySD3ppG+7jUzjrKAbE8P8eXnEd+xI8oD6bjIWHdJHjaLi88+p2r7d6ygRzwq6MTEqUFlJybJlpI8ahXsx1KhU++uiePFib4NEASvoxsSo0pXu2aFR2t1SK7FPbxJ69bRulxBYQTcmRvnzFiFJSaSNGO51lMMiImSMGkXp8g8IlJZ6HSeiWUE3JgYdcHZoSorXcQ5b+ujRaGUlJcuXex0lollBNyYGVW7cSNX27VF7uGJdqYMHE5eejj9vkddRIpoVdGNiULFb+NJHne5tkDCRxETSTj3VuSeq3QytQVbQjYlB/rw8kvv3J6FTJ6+jhE36qNOpLiig/JNPvI4SsaygGxNjqvfto2zNmpjpbqmVPnIkiNjRLo2wgm5MjPEvXhzVZ4c2JL5dO1IGDcK/yI5Hb4gVdGNijD9vEfG5uVF9dmhD0keNovzjj6kuKPA6SkSygm5MDNHgs0PjYm/1Th89CgC/3Wu0XrH3iRvThpWuWkWgpCTm+s9rJR11FPFdulg/egOsoBsTQ4pj5OzQhogI6aNOx//uewTsXqMHsYJuTIz49uzQ4cNj4uzQhmSMGoWWllJq9xo9iBV0Y2JE5aZNVG3bFrPdLbVShw1DkpOt26UeIRV0EZkgIp+JyEYRuaWR8b4jIjUiMjl8EY0xoSjOywNi5+zQhsQlJ5M2YgT+vDw7a7SOJgu6iPiAx4CJQH9gqogcdDyUO959wLxwhzTGNM2ft4ik/seS0Lmz11FaXPqoUVRt307lxo1eR4kooWyhDwU2qupmVa0EZgCT6hnvp8DLwK4w5jPGhKD27NCMUbHd3VKr9ldIsXW7HCCUgt4NyA96vM197lsi0g04H3i8sQmJyNUiskpEVhXYiQHGhE3JkiUQCMR8/3mthE6dSOp/rF19sY5QCnp9966q23H1IHCzqtY0NiFVfUJVh6jqkNzc3FAzGmOaUJy3CF9uh5g8O7QhGaNGUbZmDdX79nkdJWKEUtC3AT2CHncHdtQZZwgwQ0S2AJOBv4rIeWFJaIxpVO3ZoRkxenZoQ9JHj4ZAwPl1YoDQCvpKoJ+I9BGRROASYFbwCKraR1V7q2pv4CXgWlV9LexpjTEHKV29moDf32a6W2olDxiAL7fDt9d+NyEUdFWtBq7HOXplAzBTVdeLyDQRmdbSAY0xjSvOy3NuADE8Ns8ObYjExZExahQlS5eidtYoAPGhjKSqc4A5dZ6rdweoql55+LGMMaFwzg5dROqI4cSlpnodp9Wljx7N/hdfonTVKtJOPtnrOJ5rOx1uxsSgys2bqcrPJ6ONdbfUShsxAklKssMXXVbQjYli/m/PDh3lbRCPxKWkkDZ8OP48u9coWEE3JqoV5y0i6di2cXZoQ9JHj6YqP5/KTZu8juI5K+jGRKnqvXsp++9/yRgzxusonqq96UXttWzaMivoxkQp/2L37NAxbbP/vJadNfo/VtCNiVL+hQuI79SJ5P5t5+zQhmSMGm1njWIF3ZioFKiowL/sXdLHjEakvqtztC21Z436Fy/2OoqnrKAbE4VKly9Hy8rIGDPW6ygRIXlAf+Jzc/EvsoJujIkyxQvziEtNJXXYUK+jRASJiyPdzhq1gm5MtNFAwLl36GmnEZeY6HWciJE+ejSBkhJKV63yOopnrKAbE2XK139C9a5dZLTxo1vqShsx3DlrtA0f7WIF3Zgo489bCHFxpI0c6XWUiBKXktLm7zVqBd2YKFO8MI/UwYOJz8nxOkrESR89mqpt29rsvUatoBsTRaq2b6fi009Jb+Nnhzakrd9r1Aq6MVGktn/Y+s/rl9CpE8kDBuBf2DYvA2AF3Zgo4l+4kMQjjiCxd2+vo0SsjHFjKVuzhqpdu7yO0uqsoBsTJWqKiylZudK2zpuQMW4cqOJfuNDrKK3OCroxUcK/aBFUVZFuZ4c2KvHII0ns3Zvit+d7HaXVWUE3JkoUvz2f+I4dSTlhkNdRIpqIkDF+HCUrVlBTWOh1nFZlBd2YKBAoLcW/dCkZ48YhcbbaNiVj/HiornZ+1bQhtmQYEwX8S5eh5eVknHGG11GiQvLAgcR36kTxO+94HaVVWUE3JgoUv/02vpwcUoec5HWUqCBxcWSMG4d/6TICpaVex2k1VtCNiXCBykr8ixaRMW4sEh/vdZyokTF+HFpejn/ZMq+jtBor6MZEuJJ33yVQUmLdLc2UOmQIvqwsiue3nW4XK+jGRLjit+cTl5FB2rBhXkeJKhIfT/rYsfjz8ghUVHgdp1WEVNBFZIKIfCYiG0XklnqGTxKRj0RkjYisEpFTwx/VmLZHq6ooXriQ9NGjELv2ebNlTpxAwO+npI10uzRZ0EXEBzwGTAT6A1NFpO5daRcAg1T1BOCHwFPhDmpMW1Sy/AMChYVkWnfLIUkbPhxfdjZFc9/yOkqrCGULfSiwUVU3q2olMAOYFDyCqvr1fxcgTgPa5sWIjQmzojlziEtPJ+2007yOEpUkIYGM8ePxL1xIoLzc6zgtLpSC3g3ID3q8zX3uACJyvoh8CryJs5V+EBG52u2SWVVQUHAoeY1pMwIVFRTPn0/G+PHEJSV5HSdqZZ410Tkxa/ESr6O0uFAKutTz3EFb4Kr6qqoeA5wH3F3fhFT1CVUdoqpDcnNzm5fUmDbGv2QJAb+fzLPP9jpKVEv9znfwtWtH0dy5XkdpcaEU9G1Aj6DH3YEdDY2sqkuAviLS4TCzGdOmFb05B1+7dqQNt6NbDofEx5Nx5hn4Fy2K+ZOMQinoK4F+ItJHRBKBS4BZwSOIyJEiIu7fg4FEYE+4wxrTVtT4S/Dn5ZE54Uw7mSgMMidOdE4yivFruzRZ0FW1GrgemAdsAGaq6noRmSYi09zRLgTWicganCNipmhbvUurMWHgX7gAraiw7pYwST3pJOJzc2O+2yWkr35VnQPMqfPc40F/3wfcF95oxrRdRW/OIb5LF1JOPNHrKDFBfD4yJkxg/3/+Q01hIb6sLK8jtQg7U9SYCFO9bx/+d98l86yJdqncMMqaNAmtrKTorXleR2kxtrQYE2GK5s6F6mqyrLslrJIH9CfxyL4Uvv6611FajBV0YyJM4auvkXT00SQde6zXUWKKiJA1aRJlH35I5datXsdpEVbQjYkgFV98QfnHH5N9wfm4B46ZMMo65xwQofD1WU2PHIWsoBsTQfa/8irEx5N5zjleR4lJCZ07kzZiOIWvv04sHohnBd2YCKFVVRS+8Qbpo04nvl07r+PErKxJk6jato2yDz/0OkrYWUE3JkL4ly6jZvdusi+4wOsoMS1j3DgkNZXC12Jv56gVdGMiROGrr+Br3550u7Jii4pLSyNz/HiK5s6NuUsBWEE3JgJU791Lcd4iss45B0lI8DpOzMu+aDIBvz/mzhy1gm5MBCh87XXn2PMLzvc6SpuQctJJJPbty77/zPQ6SlhZQTfGYxoIsG/GDFJOOonko47yOk6bICLkTJlC+UcfUf7JJ17HCRsr6MZ4rGTZMqq2biXn0qleR2lTsiadi6hBTSIAABXISURBVCQlxdRWuhV0Yzy279/P4+vQgczx472O0qb4srLIPOssit54gxp/iddxwsIKujEeqty2Df+SJWRfNBlJTPQ6TpuTM+ViAqWlFL35ptdRwsIKujEe2j9jBsTFkTNlitdR2qTkQYNIOvpo9v1nRkycOWoF3RiPBCoq2P/Sy2SMGUNC585ex2mTRIScqVOp+GQDZatXex3nsFlBN8YjRbPfpGb/fnIuu9TrKG1a1qRz8WVns+eZ6V5HOWxW0I3xgAYC7Hn6aZKOOYbUYXYTaC/FpaSQc+lU/AsXUrlli9dxDosVdGM84F+4kMrNm2n/46vsMrkRIGfqVCQ+nj3PPut1lMNiBd2YVqaq7H7iSRJ69CDzzDO9jmOA+NxcMs89h8JXX6N63z6v4xwyK+jGtLLSFSsp/+gj2v/oh0h8SPdpN62g/ZVXouXlzpFHUcoKujGtbM+TT+Lr0IGs8+26LZEkqV8/0k47jb3/fp5AebnXcQ6JFXRjWlH5J59QsmwZ7a64grikJK/jmDra//gqanbvZv/M6LwcgBV0Y1pRwSOPEpeRQc4ldiJRJEobOpTUYcPY/cSTBMrKvI7TbFbQjWklpR9+iD8vj/ZXXYUvM9PrOKYBuT+9nprdu9k34z9eR2k2K+jGtAJVZdef/owvtwPtLv+e13FMI1KHDCHt5JPZ8+STUXdHo5AKuohMEJHPRGSjiNxSz/DLROQj9997IjIo/FGNiV7+xYspW72a3OuuIy411es4pgkdfno9NXv3su+FF7yO0ixNFnQR8QGPAROB/sBUEelfZ7QvgdNV9XjgbuCJcAc1JlppIEDBn/9CQs+eZF94oddxTAhSTzyRtNNOY8+TT1Hj93sdJ2ShbKEPBTaq6mZVrQRmAJOCR1DV91S19mj85UD38MY0JnoVvfEGFZ9/Tu4N/8/uFxpFcm+4gZr9+9nz9797HSVkoRT0bkB+0ONt7nMN+RFQ751XReRqEVklIqsKCgpCT2lMlKopKuKb+x8g+bjjyJw40es4phlSBg4g6/zz2Tv9WSq/+srrOCEJpaDXd6GJei8cLCKjcQr6zfUNV9UnVHWIqg7Jzc0NPaUxUargwYeo2buXzrffjsTZMQjRJvdnNyIJCXzzx/u9jhKSUJawbUCPoMfdgR11RxKR44GngEmquic88YyJXmUfr2PfCy+QM3UqKQMHeB3HHIKEjh1pP20a/gULKHnvPa/jNCmUgr4S6CcifUQkEbgEmBU8goj0BF4BLlfVz8Mf05joojU1fH3HHfg6tCf3xhu8jmMOQ7vvX0FCjx5884c/oNXVXsdpVJMFXVWrgeuBecAGYKaqrheRaSIyzR3tt0B74K8iskZEVrVYYmOiwL7nX6B8/Xo63XwLvowMr+OYwxCXlESnm39JxRcb2fOPZ7yO06iQLvWmqnOAOXWeezzo76uAq8IbzZjoVLFxI7seeIC0004j8+yzvI5jwiBj3DgyzjiD3Y88QsbYMST17et1pHrZXhpjwihQWcn2n/+CuNRUuv7+Hrt5RQzp/NvbiEtLY+evb0VraryOUy8r6MaEUcGf/0LFp5/S5ff3EG9HcsWU+A4d6HTrrZStXcveZ//pdZx6WUE3Jkz8y95l7/Tp5Fw6lYzRo72OY1pA5nfPJn3MGAoeeoiKTZu8jnMQK+jGhEHlV1+x46abSDyyLx1/8Quv45gWIiJ0vuN24tLS2H7jjRF38S4r6MYcppriYvKvvQ6AHn/9K3EpKR4nMi0poWNHut7/Ryo2buLru+72Os4BrKAbcxi0uprtP/s/Kr/6im4PP0xiz55eRzKtIP2UU+hw7bUUvvYa+19+xes437KCbswhUlW+vuceSpYto/NvbyNt2FCvI5lW1OHan5A6Yjhf33UX5Z984nUcwAq6MYdEVdl1773sf2EG7a/6ETkXX+x1JNPKxOej2/3342vXjvxpP6Fq506vI1lBN6a5VJVdDzzA3mf/Sc4Vl5N7001eRzIeie/QgR6PP06gtJT8a6Z5fu30kM4UNdGjavt2SlaupOKLL6jYuJGqr7ZS4/cTKClBKyqIS0vDl5mJLyuLxCOOIKlfP5KOPorUwYPtPpch0ECAXX/6E3uf/gc5l06l069+ZScPtXHJRx9F94cfYuvV17D9hhvp8fjfPLvuvRX0KKeqlK9bT9GcOfiXLqFyo3NsrCQkkNi3L0nHHIMvM5O4tDQkKZFASSmBoiKq9+6l9MPVFM2e7UwoLo6U444j7ZRTyDjzDJKOOsoKVR2Bigp2/urXFM2ZQ/bUS+j0m99YGxkA0k4+mS533sHOW3/Djptvoesf70PiW7+8WkGPEp3z1hzwOKW8jPEfLOO7yxbQb9tXVMbHs7bfsayYfDmrjjmOrZ27EvD5mpxuWlkpR+ZvYfCn6xiy4WOO/tvf2P3Xv/Jll+68M/QU5g0fyfrzx7TU24oa1fv2se266yn78ENyb/o/2l91lRVzc4DsCy+kZv9+dt3/AMT76PqHPyAhrIPhJKr13quixQ0ZMkRXrbKLMoaqtqCnlpVy/qJ5XLRgDlklfr7o3ovZp45lwdBTKEk5/JsPZxUXMerD5Yxd+R7HbfqM6jgf7SacSc7l3yPlhBPaZBErW7uW7Tf9nOpdu+h6370xeeehuhsMrenr0Sd4Nu+WsPvxv1Pw4INknX8+Xe75XdhvbCIiq1V1SH3DbAs9SiRUVXFh3lymzptFZmkJ7w88kecmnscnffpBGItsYUYmr59+Bq+ffgZdd33NeUvmM2XJEormzCF5wADaXXE5mRMnIomJYZtnpNJAgL3PPMOuvzxIQseO9Prns6ScEFvFx4Rfh2nXoNXV7H70UbS62rlIWyv1qdsWeoRTVfx5eXxw+110K/iG9weeyPTvXsjnvVrv8p07hvajcNYs9j73byo3bSK+c2faXfl9sidfhC89rdVytKbK/Hy+vv12St57n4wzzqDL7+6O6Z3GtoUeXqrKnieepOAvfyHttNPo/tCDxKUe/i9oaHwL3Qp6BKvasYOdd95JyeIlbOncjccuuoJV/Y9v9Ry1K5yqUrJ0KXuefIrSlSuJy8wk59KptLv8cuLbt2/1XC1Bq6rY88x0dj/2GOLz0fGXvyR7ysUx39VkBb1l7HvxRb6+/Q6SjxtIj8cfJz4n57CnaV0uUUYDAfbNmEHBA39CVel4y82M6z6QGp+3H5eIkD5yJOkjR1K2di17nnqaPX9/gr3PTCfr/PNo/8MfRu2p77W/hHb9+c9UbtxExvhxdLr1VhI6d/Y6moliORddRHxODtv/7ya2TLmEHn/7a4veHMNOLIowVTt3svX7V/LNXXeTcuKJHPHGG7S/8krPi3ldKYMG0f2RhznizTfJOvdcCl9+hU0TJrLtxp9Rtm691/GapXTVKr667Htsu/Y6qKqm+18fo/sjj1gxN2GRMW4cPZ+dTqCkhC1TLsG/dGmLzcsKegQpeustNk86j/L16+lyzz30eOpJErt38zpWo5KO6EOXu++i74J3aP+jH1KybBlbJk/mqx/8AP+yd/GqS68pGghQvGABWy69jK++dzlV+fl0vuMOjpj9Bhlj7DBNE16pJ55InxdnktC9O/nXTGPv88+3yHwia7OvjQqUlPD1739P4cuvkHz88XR74P6o67pI6NiRjjfdRPtrrmH/f/7D3unPkn/VVSQdeyztf/QjMiec6cmJFnVV791L4Wuvs3/mTCq3bCGha1c63Xor2RdeELadVsbUJ6FrV3r/+zl2/OrXLfbrz3aKeqzs43Xs+PnPqdy6lfbXXE3uddfVe4hTtO20ClRWUvTGG+x56mkqv/yS+E6dyDr3XLLOP4+kI45ogZSNZCkrw79kKUVz5lC8cCFUVZFywgnkXHYZmRMnRMQXjdeibflqy2ynaATSQIA9Tz9NwUMPE9+hAz2fnU7a0Ni5/GpcYiLZF15I1vnn48/LY//MF9nzj3+w58knSR4wgIxxY0kfM6bFLjFQtXMnJe+9h3/JUvxLlqBlZfjataPdpVPJnjyZpH79wj5PY7xmBd0DVd98w46bb6F0+XIyzjyTLnfdiS8ry+tYLULi4sgYO5aMsWOpLiig8I3ZFM+bR8FDDztfZp07k3rSSaScNJiUQYNI6tOn2V0fNf4SKr/cTPm6dZR99DFla9ZQ+eWXAMTn5pI16VwyJ0wgdcgQ2xo3Mc2W7lZWNH8+X//mNgKVlXS553dkXXBBzB/jXCs+N5f2P/wB7X/4A6oLCijOy6Pk/fcpXbGCojff/Ha8hK5dSejVk/icHHzZOcRlZECc20bV1dTsL6Rm/36q9+yhcutWanbv/va1vvbtSTnuOLKnXEzaySeT1K9fm2lfY6ygt5JASQnf3Hsv+198ieQBA+j6wP0k9enjdSzPxOfmknPxxeRcfDGqStX27ZSvW0fll19SsflLqvLzKd+5gZp9+6gpLv7fC30+fFlZ+LKziM9pR/rpI0ns1ZvE3r1IGTCA+K5drYCbNiukgi4iE4CHAB/wlKreW2f4McAzwGDgVlV9INxBo1nZxx+z4+e/cHZ8/vjH5P70+jZxLZRQiQiJ3buT2L2711GMiWpNFnQR8QGPAeOBbcBKEZmlqsE30dsL/D/gvBZJGaW0poY9Tz5FwaOPOjs+p0+3+04aY1pMKFvoQ4GNqroZQERmAJOAbwu6qu4CdonI2S2SMgpVbd/O9ptvpmzVajImTqDLHXfE7I5PY0xkCKWgdwPygx5vA4YdysxE5GrgaoCeUXbiTKg0EGD/iy+x6/77IRCgy71/IGvSJOvXjTJeHZdtx2S3nlg89j6Ugl5fJTqks5FU9QngCXBOLDqUaUSyyi1b2HnbbylduZLUYcPo8ru7SezRw+tYxpg2IpSCvg0IrkrdgR0tEyc6aXU1e555ht2PPoYkJtL57rvInjzZtsqNMa0qlIK+EugnIn2A7cAlwKUtmiqKlCz/gG9+/3sqPv/cueTqb24joVNHr2MZY9qgJgu6qlaLyPXAPJzDFv+hqutFZJo7/HER6QysAjKBgIjcCPRX1aIWzO6pyvx8dv3xfornzyehWze6PfIwmePHex3LGNOGhXQcuqrOAebUee7xoL+/xumKiXlV33zD7r/9jf0vvYwkJJB74w20u/JK4pKTvY5mjGnj7EzREFVt386e6c+yf+ZMNBAg5+KLaH/NNOteMcZEDCvoTShbt56906dTNHcuiJB17rl0uPbaiL/xhDGm7bGCXo8afwlFb77J/pkzKV+/nri0NNpdcQXtrrichC5dvI5njDH1soLuCpSX41+8hKI5c/AvXoyWl5N09NF0uu03ZJ17Lr6MDK8jGmNMo9p0Qa/cutW5AcLSJZR+sAItL8fXvj3ZF1xA1qRzST7+eDuW3BgTNdpMQQ9UVlLx2WfOTRDWraN01SqqvtoKQEKvnmRfeCEZY8eQOnSo3QTBGBOVYrJyaVUVFRs3UrZuHeXr1lP+8ceUf/EFVFUB4MvJIWXQINpdfgXpp51KYq9eHic2xpjDF/UFXWtqqNi0ySnc69ZRtn4dFRs+RSsrAYjLzCRl4ADaX3klyQMHkjLQboJgjIlNUVfQqwsKKFm+3O06WU/5J5+gZWUAxKWmkjxgADmXXUbywAGkDBxIQs+eVryNMW1C1BX00lWr2PGLXyLJySQfeyzZkyeTMnAAyQMHktinDxIX53VEY4zxRNQV9LRTTqHP66+R1Lev7bw0xpggUVcRfZmZ+DIzvY5hjDERJ+oKOsTmnUaMMeZwWYezMcbECCvoxhgTI6ygG2NMjLCCbowxMcIKujHGxAgr6MYYEyOsoBtjTIywgm6MMTHCCroxxsQIK+jGGBMjrKAbY0yMsIJujDExwgq6McbEiJAKuohMEJHPRGSjiNxSz3ARkYfd4R+JyODwRzXGGNOYJgu6iPiAx4CJQH9gqoj0rzPaRKCf++9q4G9hzmmMMaYJoWyhDwU2qupmVa0EZgCT6owzCfinOpYD2SLSJcxZjTHGNCKUG1x0A/KDHm8DhoUwTjdgZ/BIInI1zhY8gF9EPmtW2v/pAOw+xNceliZuN+1ZrhAccrYWvsV2pLaZJ7lCaOuYa6+2uHzJ4eXq1dCAUAp6fe2thzAOqvoE8EQI82w8kMgqVR1yuNMJt0jNBZGbzXI1j+VqnraWK5Qul21Aj6DH3YEdhzCOMcaYFhRKQV8J9BORPiKSCFwCzKozzizgCvdol+FAoarurDshY4wxLafJLhdVrRaR64F5gA/4h6quF5Fp7vDHgTnAWcBGoBT4QctFBsLQbdNCIjUXRG42y9U8lqt52lQuUT2oq9sYY0wUsjNFjTEmRlhBN8aYGBHRBV1E/iEiu0RkXQPDPbnkQAi5RolIoYiscf/9thUy9RCRPBHZICLrReSGesZp9fYKMZcX7ZUsIitEZK2b6856xvGivULJ1ertFTRvn4j8V0Rm1zPMs0uANJHLy/baIiIfu/NdVc/w8LaZqkbsP2AkMBhY18Dws4C5OMfBDwc+iJBco4DZrdxWXYDB7t8ZwOdAf6/bK8RcXrSXAOnu3wnAB8DwCGivUHK1ensFzfv/gOfrm79X62MIubxsry1Ah0aGh7XNInoLXVWXAHsbGcWTSw6EkKvVqepOVf3Q/bsY2IBztm6wVm+vEHO1OrcN/O7DBPdf3SMEvGivUHJ5QkS6A2cDTzUwiifrYwi5IllY2yyiC3oIGrrkQCQY4f5snisiA1pzxiLSGzgRZ+sumKft1Ugu8KC93J/pa4BdwHxVjYj2CiEXeLN8PQj8Egg0MNyr5aupXODd+qjA2yKyWpxLn9QV1jaL9oIe0iUHPPAh0EtVBwGPAK+11oxFJB14GbhRVYvqDq7nJa3SXk3k8qS9VLVGVU/AObN5qIgMrDOKJ+0VQq5Wby8R+S6wS1VXNzZaPc+1aHuFmMuz9RE4RVUH41yR9joRGVlneFjbLNoLekReckBVi2p/NqvqHCBBRDq09HxFJAGnaP5bVV+pZxRP2qupXF61V9D89wOLgAl1Bnm6fDWUy6P2OgU4V0S24FxxdYyIPFdnHC/aq8lcXi5fqrrD/X8X8CrO1WuDhbXNor2gR+QlB0Sks4iI+/dQnHbe08LzFOBpYIOq/rmB0Vq9vULJ5VF75YpItvt3CjAO+LTOaF60V5O5vGgvVf2VqnZX1d44l/9YqKrfqzNaq7dXKLm8aC93XmkiklH7N3AGUPfIuLC2WShXW/SMiLyAs4e6g4hsA27H2UmEenPJgVBzTQZ+IiLVQBlwibq7tFvQKcDlwMdu/yvAr4GeQbm8aK9QcnnRXl2AZ8W5gUscMFNVZ4u3l7QINZcX7VWvCGivUHJ51V6dgFfd75J44HlVfasl28xO/TfGmBgR7V0uxhhjXFbQjTEmRlhBN8aYGGEF3RhjYoQVdGOMiRFW0I0xJkZYQTfGmBjx/wGokJWAWgiSxQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy.stats import gaussian_kde\n", "\n", "values = list(range(1, 6))\n", "freqs = [5, 15, 10, 60, 10]\n", "x = np.concatenate([np.ones(f)*v for v, f in zip(values, freqs)])\n", "\n", "density = gaussian_kde(x)\n", "x_plot = np.linspace(min(x), max(x), 200)\n", "\n", "f, ax = plt.subplots()\n", "ax.hist(x, weights=np.ones_like(x)/len(x), color='tab:cyan')\n", "ax.plot(x_plot, density(x_plot), 'tab:red')\n", "ax.set_title(\"Frequency hist with Gaussian kernel density estimation\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`gaussian_kde` 函数的 `bw_method` 参数的默认值是 `'scott'` 方法,读者也可以选用 `'silverman'` 方法。 除了接受这两种字串,`bw_method` 还可以直接接受数值作为 Scott factor(如上例)。默认的 Scott factor 的选值是:$n^{-1/(d+4)}$,其中 $n$ 是数据长,$d$ 是数据集的维度。\n", "\n", "更多关于 `bw_method` 参数的细节可以参考 [Scipy.stats.gaussian_kde](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gaussian_kde.html) 页面的内容。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 饼图:ax.pie\n", "\n", "*我讨厌饼图!非常讨厌!如果你一定要画饼图,并且玩很多视觉花招,那我不建议你用 matplotlib 来实现。*\n", "\n", "-----\n", "\n", "饼图的绘制指令的常用参数:\n", "\n", "`ax.pie(x, explode=None, ...)`\n", "\n", "- `explode=None`:控制扇形区域向外“炸开”的距离,传入一个数组。\n", "- `radius=1`:饼图半径。\n", "- `labels=None`, `colors=None`:扇形区的标签与颜色。\n", " - `labeldistance`:标签到圆心的距离。\n", " - `rotatelabels=False`:旋转标签,使其文字方向指向圆心。\n", "- `autopct=None`:显示百分数。可以传入一个格式化字串,或者一个函数。\n", " - 如果原数据集已经是百分数,那么可以使用格式化字串 `autopct=\"%.1f%%\"` 显示含一位小数的百分数。下例中使用了较复杂的函数实现来针对不同的数据集情况。\n", " - `pctdistance=0.6`: 在 `autopct` 有效时使用,指定百分数标签到圆心的距离。\n", "- `startangle=0`:开始绘制饼图的角度,从 X 轴正向开始逆时针旋转。\n", "- `counterclock=True`:是否沿逆时针绘制,设为 False 是沿顺时针绘制。\n", "- 其他绘图参数:\n", " - `wedgeprops`:绘图属性,比如线型等。\n", " - `textprops`:标签文字的属性。" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwcAAAHyCAYAAAC+mLLMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd3xb1dnA8d9zJUtesp29iYAAEsSQsFcIYUNCgTIChWJmCaUFCm+pSxlmu0BaVoCWMtLSlgJl1qxCSkgIIWwEmBGIs/dwppd03j/ONSiOZMu2pCvJ5/v5GBzpjkey7tF9zhSlFIZhGIZhGIZhGJbTARiGYRiGYRiGkRlMcmAYhmEYhmEYBmCSA8MwDMMwDMMwbCY5MAzDMAzDMAwDMMmBYRiGYRiGYRg2kxwYhmEYhmEYhgH0kORARKpE5PFuHuMcEZnZzWNcLSJ/6c4xYhzTLyJKRNxd2HeMiHyVzHiijq1EZEQqjm3kJhF5WUQqUnDcbl//XTjnmSLyWjvPHyoiizpxvDdF5IIEt60TkSMSPXay9k2WrsTQ2fczFTEYzjLlR3YTkcdE5OYu7ptw+ZjkfT8XkUO7sm87x/y+7EnFPWOiciY5EJGfiMj7IrJRRJbaBcXBTscVTSl1q1KqSx/CVFBKzVBK7eJkDMlIuozsYRd8W+zrdLmIPCoixQBKqWOVUlMzIL5u3xQqpf6ulDoq6rgmWTaMbjLlh5FJlFK7KaXeTOHxHbtnzInkQESuAO4CbgUGANsB9wMnOBmXYRgxHa+UKgb2BPYBrnE4HsMwsocpPwwjxbI+ORCRUuBG4BKl1DNKqU1KqWal1ItKqV/H2edHdnPQOrtJKRj13DAReUZEVorIahG5L84x7hCRmSJSKiLzRWQv+/Gz7Cx/V/vfF4jIc/bv3zdPiki+iDxun2OdiLwnIgNaX5OIPGy3gCwWkZtFxGU/5xKRO0VklYh8B4zv4P2pE5HfisgXIrLWrmnJt5/bqmlSRAaLyL/t1z5PRC5t57iPiciDIvJfEdkgItNFZHicbUtF5K/2ceeLyDUiYtnv+4PAAXZN0Lr2XouRW5RSi4GXgZGwbfOuiJwnIrX25/bVdj5frV3rfiYiS+zr5sp45413/YvI39AVCy/an8erYuw7XUROtn8/2D7vcfa/jxCRj+3fv28RE5G37N0/sY87Mep4V4rICjvmcxN530RkRxGZZpcdq0Tk7yJS1mazfWJd8/b+E0TkY/v1zxKR3eOcZ1/RrbHrRdfS/iHOdr1E5D/29b3W/n1o1PNvishNIvK2XVa8JiJ9o57/qV0urBaR33Xw2o+zX9cGu2z8vzbPx3w/RWS8iHxkv5aFIlLVZr+4MYiIV0Tusj9bS+zfvfZziX4eRtjb1tt/s3+19zqNjpnyI/HyQ0TOtd+LDSLynYhcFPXcoSKyqBPHau/+5AEReTpq29+LyBuitZ7navsaqBORM9s5z4UiMldE1ojICyIyOOq5I0XkS/t6ug+QNvvG/dt3tG+b41SJyNMi8i/7vftQRPaIej66C5AlIpUi8q1djjwpIr3jHLev6HJynf36ZojINvfj0qZLm/2ZmWXvt1BEzrEf94q+L1wguqx+UEQK4r2uRGR9cgAcAOQDzyaysYjsDPwTuBzoB7yEvpg99gf8P8B8wA8MAZ5os78lIg8BuwNHKaXqgenAofYmhwDfAWOj/j09RigVQCkwDOgDTAK22M9NBVqAEcBo4CigtdC7EJhgP743cEoCL/tM4GhgR2BnYtS02B/MF4FP7Nd9OHC5iBzdwXFvAvoCHwN/j7PdvejXugP6fTkbOFcpVYt+3e8opYqVUm1vcIwcJiLDgOOAj2I8dyJwNfBj9HU6A33dtmccsBP6eqmUGM377V3/SqmfAguwayaVUrfHOEenr3Wl1CH2r3vYx229MRyIvi6GAOcDU0SkVwevEfSX2W3AYCCILkOq2mwT85oXkT2BR4CL0OXOn4AXxL7ZbeNu4G6lVIl9nCfjxGMBjwLD0TdHW4C2lSo/Ac4F+gMe4P/seHYFHgB+ar+ePsBQ4nsYuEgp5UPfFE6Leq6993MTutwpQ1eoXGx/xhKJ4XfA/sAoYA9gX34oQxP9PNwEvAb0so99bzuv0UiAKT86VX6sQN83lKCvwz/aZUGrzhyrvfuTK4Hd7eRmjH2sCqWUijpPX/s8FcCfRWSbrs0ichi6jDsNGIS+J3vCfq4v8G/0NdgX+BY4KGrfuH/7jvaN4wTgKaA38A/gORHJi7HdpcCJ6L/nYGAtMCXOMa8EFtnxDbDjVXG2bX1d26GT4Xvt/Uah77sAfo8u50eh/y5DgOs6eF3tU0pl9Q/6S3BZB9tUAY/bv18LPBn1nAUsRl+wBwArAXeMY5wDvAv8C/3h8kQ9dz7wgv17LfpCecL+93xgzxhxnAfMAnZvc54BQCNQEPXYGcD/7N+nAZOinjsK/aHaJmb7+bo22x8HfGv/fiiwyP59P2BBm31/Czwa57iPtb5G+9/FQBgYZv9boT+kLvv17Bq17UXAm1Hv60ynP0fmJz0/9udxI7DOvjbub/2sA28CF9i/vwycH7WfBWwGhsc4pt/+vAWiHrsdeNj+PaHrPyq+I9qJ/3DgU/v3V+xrfbb97+nAj+3ft/pct14PUf8+FH0T7Y56bAWwf5zzfv/exHjuROCjNu9xvGv+AeCmNvt/BYxt+/qBt4AbgL6d/BuPAta2if2aqH//HHjF/v26NuVIEdAU72+Avvm6CChp83hn38+7gD8mEgP6BuK4qOePBuo6+Xn4K/BnYKjT12A2/2DKjy593mPE8RxwWWePRQf3J/a/9wXW2H+fM9rE3AIURT32JHCt/ftjwM327w8Dt0dtVww023+rs1vfM/s5Qd9od/i372jfGK+3qs32FrAUGNP2742+9zs8attBdsyx7idvBJ6P/pu2+YwfEXX+1s/eb4FnY2wv6MqPHaMeOwCY151rLRdaDlYDfSXx2XoGoz+0ACilIsBCdKY1DJivlGqJs+8IdBZ5g1KqKerx6cAYERmIvhn+F3CQiPjR2fjHbOtvwKvAE6KbMm+3s9HhQB6w1G46Woeu3esfFf/CqOPMp2Nttx8cY5vhwODWc9rnvRpdGHR4XKXURnSB0PbYfdE1hdFxzke/30bPdKJSqkwpNVwp9XOl1JYY2wwH7o76LK5BF4LtfW4S+Zy3d/0n4h1gZ9FdAEehb/qG2TVS+6JvqBO1uk1Zsxn9JdguEekvIk/YTfrrgcfR11m0eO/FcODKNtf5MGK/V+eja6O+FN3tcUKceApF5E+iu+WsR78HZXZLbKtlcV7nVuWZUmoTukyP52R0sjNfdBeNA6Kei/t+ish+IvI/0V2f6tEtlq3vWUcxbPWZYev3M9HPw1Xoz+8c0V1SzmvnNRrtM+WHlnD5ISLHishsuwvLOvQ1FF1mJHqsju5PUErNQbeICNu2Nq61r69Wib7PG9HX5BC2vV4VW//t2vvbd7RvLNHbR9DJRLx7qGejzluLrjCNdQ91BzAXeE10N6/KDmIAXU5/G+PxfkAh8EHUuV+xH++yXEgO3gEa0LVniViC/iMCICKCftMXoz8E27WTaNSim+Rejm4KU0rNRV9MlwJvKaU2oL8Mf4bO/iNtD6T0uIgblFK7Ageim/zOtmNoRNfWldk/JUqp3exdl9rxttougdfcdvslMbZZiM40y6J+fEqp4xI5rugZI3rHOPYqdPY8POqx7dDvN3TQlGb0WAvR3UeiP48FSqlZ7eyTyOe8vesfOvg8KqU2Ax8AlwGf2ZUEs4Ar0LXzqzp4XclwGzrO3ZXu8nMW2/abjfdeLARuafO+FiqltulyoZT6Ril1BvqL//fA0yJSFCOeK4FdgP3seFq7QcTtyxtlq/JMRArR3XpiUkq9p5Q6wY7pOeJ3dWrrH8AL6JbNUvRYp9b4Oophq88MUe9nop8HpdQypdSFSqnB6JaP+8XMPpNKpvz4IUYvurfDncAApbvvvkRi12dbHd2fICKXAF70e9V23EWvNmVIou9zEfqaXMy216uw9d+uvb99R/vGEr29he4WGO8e6tg2581XemzMVpRSG5RSVyqldgCOB64QkcM7iGMhuntnW6vQLT+7RZ23VOlB+12W9cmB0n3+r0P3kTvRrsXKszPlWH3+ngTGi8jhdk39legP+yxgDvrDUy0iRaIHDW/VH83+Er0aeF1Eov9Q04Ff8EOfwTfb/HsrIjJORMrt2rX16BvosFJqKbpv6mQRKRE9xmFHERkbFf+lIjLU7hOYSMZ5ib19bzv2WIPh5gDrReQ3IlIgeuDzSBHZp53jHid6gIwH3af2XaXUVlm4Uipsx3yLiPhEDwy6Al3bCbAcGGofwzBaPQj8VkR2g+8HwZ3awT7X2tf/bugkPtbnvL3rH/TncYcOztOpa70Tx02UD7trhYgMAWJNvBDvmn8ImGTXpItdzo0XEV/bA4ieXKGfXbnROllAOE48W+x4egPXd+K1PA1MiCpHbiTO95LocWFnikipUqoZXW7GiicWH7BGKdUgIvuix0AkGsM/gWtEpJ9dw3sdP5RfkMDnQUROlR8Gaa9F30QmGrvReab8+IEHfbO+EmgRkWPR3ZE7raP7E9FjMm5GV1j8FLhKREa1OcwN9rU8Bl0p+lSMU/0DOFdERtnJza3o+4s6oAbYTUR+bFfkXooey9Cqvb99R/vGslfU9pej/96zY2z3IPo+Z7h93n4iEnPGTNGTQoywk5PWcqyj8uDvwBEicpqIuEWkj4iMssvnh9DjSPrbxx8i7Y8X7VDWJwcASqk/oG84r0FfAAvRF9tzMbb9Cv3BvRedcR2PHkDUZN/IHo/uPrQA3Xw0McYxpqK/QKaJ7joE+sL28UOzYNt/tzUQ/aW0Ht0iMZ0fvnDORl/QX6C/SJ5G918D/SF4FT1w+EPgmTjHj/YP9AX9nf2zzUIjUa99FDAP/d78Bd0tqr3jXo9uttsLPf4jll+i+8R9B8y093vEfm4a8DmwTETSUetqZAGl1LPo2uonRHdV+Qw4toPdpqObat8A7lRKbbOIUHvXv73JbegbwXXSZiacNufpzLUOuu/oVPu4p3XwOjpyA3oax3r0l12sMiDmNa+Ueh89qcF96LJlLrp/cyzHAJ+LyEb04OTTlVINMba7CyhAv5+z0U3aCVFKfQ5cYse71I6pvcWdfgrU2Z+JSei/ZSJ+DtwoIhvQN/fftzgkEMPNwPvAp0AIXe5Gl6GJfB72Ad6138sX0P295yUYu9FJpvzYKuYN6JvgJ9Gf7Z+gP4NdFfP+xL55fhz4vVLqE6XUN+iKib/JDxMeLLP3WYK+2Z2klPoyRsxvoMd3/Bt9Te4InG4/two4FahGdzXaCXg7at+4f/uO9o3jefR94Fp0+fNju3KirbvR7+trdjkzGz2WM5adgNfRlTzvAPerDtZLUEotQHcHuxJ9z/UxeoIEgN+gP7uz7df8Oro1t8tEd7kycpWI1KEH27ye5OM+hh7MbOaYNhxlJ+jzgDwVf7yQYRjGNkz5kR6iVxJ+XCnV3mxkGUX0lMcjlFKJVkLkjJxoOTAMwzAMwzAMo/tMcmAYhmEYhmEYBmC6FRmGYRiGYRiGYTMtB4ZhGIZhGIZhACY5MAzDMAzDMAzDluiqwoZhGIZhGIbRKaIXD4umQK9QLCKiTP/2jGNaDgzDMAzDMIyUUEpF2vyoqITgpBjJg+EwMyDZMAzDMAzDSDp71fEqoBm9cNwq9GK1K9Arq7+tlOrvWIBGTCY5MAzDMAzDMJJORHZArzB+IzAEKEavCJ0HDAD8Sim/YwEaMZkxB4ZhGIZhGEYq9AbmAy+gWwvyAS/QBBwFXOlcaEY8JjkwDMMwDMMwUuEz4AxglVJqI7Cx9QkRmQe841RgRnymW5FhGIZhGIZhGICZrcgwDMOIQUTCIvKxiHwiIh+KyIFRz70iIutE5D9OxmgYRmYTkTwROVdEHhCRESKym4j8TESOF5G+TsdnxGZaDgzDMIxtiMhGpVSx/fvRwNVKqbH2vw8HCoGLlFITHAzTMIwMJiLXAYPR4w0GAh70wGQ/8Bbwa6XUGscCNGIyLQeGYRhGR0qAta3/UEq9AWxwLhzDyE4iYonIqU7HkUb7Aa8qpa4DDgHeVEodqZTaCRgG7ONodEZMZkCyYRiGEUuBiHyMnl1kEHCYw/EYRlYTkT2BZ4DtRKSvUuoBp2NKAzfwhv37V+hZi1o1A8vTHpHRIZMcGIZhGLFsUUqNAhCRA4C/ishIZfqiGkaniEgRcB9wGnpuf4BpIvK0Umqlc5GlxaHA2yLyBTAeuNKudPgG2B6THGQk063IMAzDaJdS6h2gL9DP6VgMI5uIyERgAXqu/08Btz2lZwi4yMnY0qQXej2Dm4HDgXnAaOA3wHr0aslGhjEtB4ZhGEa7RCQAuIDVTsdiGNlARFzolYHXAoOUUk0ishqYIyKXAAXAbCdjTAel1GZgM7DUfmi6g+EYCTLJgWEYhhFL65gDAAEqlFJhABGZAQSAYhFZBJyvlHrVoTgNI+MopcIi8jLgVUo12Q//HV2Lvi+wDJguIq7W68owMoWZytQwDMMwDCMFRORt4I/oVoRHgM+VUr+0nysGTgB8SqkHnYvSMLZmxhwYhmEYhmGkxvXAycB7wBetiYGtAfgSuFREgk4EZxixmJYDwzAMwzCMFBGRPKBQKVXf+m+lVHPU/y8GxiqlTnc2UsPQzJgDwzAMwzCMFLETgOEiMgj4GqgH1iilmu1NCoB5ImIppSKOBWoYNpMcZIDJEye40MuLb2f/DEIvPJTX+nO//8JwWNwCtAAbgTX2z1r7/8vrqscvjXF4wzB6kqrSXui51AfaPwMAH3pQcSwt6HJklf2zDFhEVf3G1AdrGD3GzsCTwN+AchFZiZ7adCT6Ov15xiUGVaUWevri6LJkAPr+JJ4G9KxmreXJUmAxVfVN7exjZBjTrShN7ARgD/QsBX5+SAS2QycGrvb2v3/4hQ1hy93eBQl6urDvgLn2zzfAR8DHddXjm9vb0TAMEJEwev5xAcLAL5RSs0RkFPAAUGI/fotS6l+OBVpV6kHfVIyyf/YA/EqpASLiTdJZ1gMLgS+Aj7//qapfkqTjG0aPIiLPAq8rpaaIyJHoCtrtgaccXQytqrSUH8qSUUA5MBS9tkm79yYJUuhEoQ6dEH0MfAJ8QlX9+iQc30gykxykyOSJEwqB/YCDgTHA/ujauy5JMDmIpxF9Mc6xf96sqx6/qKuxGEauEpGNSqli+/ejgauVUmNFZGdAKaW+EZHBwAdAUCm1Li2BVZXuBhwG7BNRarTALnY/ZiesRH+xf4Ses/x/VNVvdigWw8gaIrI78ASwtz3/f/pVleYBB6BXLt4TnQwMdyQWnTTMQ9+ffAC8DrxPVX1mtaD0QCY5SJLJEyd4gCOBcehkYDS6S1BSdDM5iOVz4GX7Z2Zd9XjT5Gf0eG2Sg1OBM5VSJ8bY7hPgFKXUN6mIo3xqeRlw7L8XLDlox+bmU1yWDEjFeZKkAXgLXZa8QlX9lw7HYxgZS0SuAd5XSr2SrnOWTy3foSwcPmrGgsXHA4cAxek6dxesAl5DlyevUlVvVlB2gEkOumnyxAkHAWcBpwG9U3WeFCQH0TYCrwKPAy+ZRMHoqaK6FeWjx/4cppT6oM02+wJTgd2S2Ue4fGp5mVLqVMKcLS4OQMR12rzVS69l06BknSNN5gGvAP+kqn6G08EYRqZpnaUolecon1q+Iz/cm+wK8NLCJYuGtbQMTeV5kyyCblGoAf5GVf13DsfTY5jkoAsmT5ywE/BT4Exgh3ScM8XJQbQ1wFPA3+qqx7+dhvMZRsZo03JwAPAXYKSyC0p7tpE30asFz+7u+cqnlucppY5TzepCcctRYm3dVWjQ6i1LXlu/cnB3z+Ogr9ALP02lqn6508EYRi4rn1reG5iIvj85oO3z565b/9YVa9cdkvbAkkMB/wMeBp6hqr7B4XhymkkOEjR54oQy9AV3FnpQcVqlMTmI9g1wL/BoXfV4M3OJkfOikwP738uBcqXUChEpQScGtymlnurOecqnlg+ONEWuEJdcIC4pjRtPS6RpzvyFrnxLkjEo0Ekt6Nq/h4GXqKoPOxyPYeSM8qnlewO/Ak4BPPG2G9TSMue1hUvSfv+SAmuBfwB/oar+Y6eDyUUmOejA5IkTBgJXAhfRjQHF3eVQctBqHboG9d666vELHIrBMFKuTctBAJiJnrrPhe4D+6JS6q6uHn/koyP3jDRGrre81nhJ8Ib/pu+WLz1RGrOta1F7FgN3AQ+a6VINo2vKp5ZbwAnAFeiJTzqm1MYP6hZ6PO0kEFloDlANPEdVvbmhTRKTHMQxeeIEP1AJnAMka2rALnM4OWjVgp6nuaquenxKBmIahpOixhyAns70aqVUjYicBTyKHsjf6hylVEK1Vrv+addxwB2ufNdenY1p3yUb5j/cuNap2URSaU2Lsu4a0fj4vXXV49Mz65NhZLnyqeUu9H3J1XShW/Mfl6/86IjNW0YnO64M8EVdZMANhzb98d911eNNy2Q3meSgjckTJwwCrgUuIImzDXVXhiQHrVrQN0o31FWPX+x0MIaRqQL3BPYXl9zrLnbv3dVjFGxqXjNnxdKUTXbgpM8jw2eOb7ptJPAH4K666vEbnI7JMDJR+dRyAU4FbgR26epxDty8Zfqflq8cm7TAMkhV89nvPBY+phdwA/Cvuurx5ga3i0xyYJs8cUIv4LfAL9BLmWeUDEsOWjUAU4Db6qrHr3Y6GMPIFMF7g7siTHEVuw4VibcwceKe/XbRhhFWxLFujanQEkEdvvnWNfPd/j72QyvQZfCj5kvdMH5QPrX8GOAW9LoE3eKNROa+P3/RiO5HlVkaVN7cQONjO8L3Be77wC/rqsd3e+KInshyOoBMMHnihFOBL4Ffk4GJQQbLR4/H+NpfWXORv7LGfJ6MHm3EzSNKAn8M/M1V7Aq5fe6kJAYAT7kL1iTlQBnktfph0YkBQH/0gOXZ/sqaXBg0aRjdUj61fIfyqeX/QY936nZiANBoWSMWu105t8r57S2nr4xKDAD2Bmb5K2um+itrBjoVV7bq0S0H9mDj+4GTnI6lIxnactDWHOBnddXjP3E6EMNIt51u2ekiT1/P7Va+VZLsYw9ZvWXxK+tXDkn2cZ0SjsBhm25aNz9vx7I4myjgMeA3ddXjzSJIRo9SPrU8D7gKuAZdCZdUF6yrn3HZ2voxyT6uUxpU3rfBxke3V1jxKijXo7tj3V1XPb4ljaFlrR5b0zt54oRzgS/IgsQgi+wLvO+vrKn2V9ZkeiJjGEmx/W+33zHwx8B7+UPzH0xFYgCwpNTbryGSvAXXnPZa/dDV7SQGoAeDnwt85q+s2WaFasPIVeVTy/cDPgRuJgWJAcBLRUW5NFsRd7RMXNFOYgBQAtyJbkno8niNnqTHtRxMnjhhOPBn4CinY+mMLGk5iBYCzqirHv95h1saRhYqGV0ifY/te1mBv+BWy2ulvDviLd8tW/Yjacr65vEEWg1imQpcVlc9vj5VcRmGk+xZiH6HnhDFndKTKbXhw7qF+XkZNOlKVzWqvG8D7bcatLUFPbbpHjO2Kb4e1XIweeKES4DPyLLEIEuVA+/5K2t+7nQghpFsg04f1GfAqQOmFe1S9Md0JAYAL+YX5sSKoK/XD+mo1SCWCiDkr6w5PBUxGYaTyqeWD0Ov/nsDqU4MAER8MwoLcqLi7o6W05Z3IjEAPa70LuANf2XNdikKK+v1iJaDyRMnFKD7r57mcChdloUtB9FeAM4zMxoZuWD45cOPKxxRONXtc/dN53kLNjWvnrNiaZ+Ot8xc4QgcvummdXWdTw5aRYDrgVtMrZ+RC8qnlp8CPAR09ZrokoM3b3nzgeUrD03nOZOtC60Gba0BTq+rHv/fZMaVC3K+5WDyxAlDgBlkcWKQA34EfOCvrNnd6UAMo6tKRpfk+a/0V/vKfc+nOzEA2FKU1+fbiJXV6wC8Xj9kdTcSA9DfWTcBz/ora1IyvsMw0qF8arlVPrX8TuAp0pwYALyX7836CQ4mt5za2VaDtnoDr/grayqTFVOuyOnkYPLECfugZ9Dp9KqkRtINB972V9ac4HQghtFZJaNLyvoe17emuLz4N+KW1Df7x/G0u2CtU+furnAEqt0XJes75wRgjr+yJpik4xlG2pRPLS8BXkRPBe6IRsvaaYnbtdSp83dXo3J/91D4uP2TcCgLuM1fWfO0v7KmOAnHywk5mxxMnjjhdGA6MNjpWIzvFaNr/H7rdCCGkai+x/bdacBpA94p2rnoyGStW9BV04sKs7bMfqN+yOp5eSN6JfGQuwDv+itrjk7iMQ0jpcqnlu8AvAMc53Qs/y4u/tbpGLrqDy2nLu1mq0FbJ6PXWBmaxGNmraz9ooln8sQJMnnihJuAf2IWNMtEAtxqL0ziWA2sYSRiwMkDxvU9pu/b+YPzA07HArCozNuvSWXflKYRBdWuC10pOLQPeNFfWXNGCo5tGElVPrX8AHRvhl2djgXgpeLCrPwOblTueQ+Fxyej1aCt3dDTnfb4FsmcSg4mT5zgRfffu8bpWIwOnQ087a+s8TodiGG0VTK6RPqf0P+s3uN6P5NXltfP6XhaKbfl/S/eFU7H0VlvrBu85jvPzqnqV50H/N1fWXNpio5vGN1WPrX8MOC/QMZMKrDI7Q62QNYtCvbHllOWRLBSUdkAMAyY4a+sSUXykTVyJjmYPHFCHvA0umnIyA4nAC/4K2tMC4+RMUpGl1j5w/Mn9T267/1unzvtAwU78rw3u6Y01a0GP0t1fywB7vZX1tyS4vMYRqeVTy0fD9QARU7HshWR0rcL8rNqStMm5Z735/CEVN+490FPdXpMis+TsXIiOZg8cYILeByY4HQsRqcdhZ4twOd0IIZRMrrEVbBDwa/6HtP3DleRKyM/k5+UFmRkXPFMWzd4zbeenZM51qA9V/sra25P07kMo0P2VKXPkqLVjrvryRJfVk1ycFfLyalsNYhWCDzfUxOErE8OJk+cIMDDmKlKs9khwGv+yprMqlUxepSS0SXufH/+VX2O6nOTq8CVsVlK8WYAACAASURBVJ/FzcV5feZHrE1Ox5GIiILbUt9q0Nav/ZU116X5nIaxjfKp5acCT5DBKxHPyfcOcjqGRDUpd92D4ePT2d3HAzzjr6wZm6wDikiRiDwoIiNExLIfy7h78YwLqAvuQ6+eaWS3/dFjEDK2EDVyV8noErdnkOf/+h7V92pXvivju7k95SrIigUF/7duUDpbDaLd4K+scWyaSMMon1p+DPB3IB213F3WYFm7LHO5ljkdRyLubvnxojS1GkQrAP6TxDEIQeAC4GbgNwAqAyeZyOrkYPLECbcDP3c6DiNpjgEe9VfWODtfpNGjlIwusYZF3Bdd2lh6kStfMrbFINr/igsyvuy2Zyhy8lq+019ZM8nB8xs92+lkcItBtGd8xXOdjqEjTco1/4Hwjw5w6PTFwMv+yppRSTjWeuAjYDJwpoicLyKDIbNaEDImkM6aPHHC9cCvnY7DSLozgT84HYTRM4zz+WTEai6vbuxVdepij//qPzUtdjVHwk7H1ZGFpfn9mpVSTsfRnjfXDVzzjSfgRKtBtCn+yprxDsdg5JjaQPD42kDwmdpAsL1WxvOA+9MVU3fUFBdmdOsGwD0tP17oQKtBtDKgxl9Z0621s5RSXwNr0bMinWj//3YRKcqkFoSsTA4mT5wwCahyOg4jZS73V9b8yukgjNxnwZFXu/pcOQJPX4BR69xDb7q/eYV3S6TJ6djao/Is739V+1OarmtQnPLkZgL3bSQ4ZSPvLNx6xsK1WxQn/Wszuz+wkX0f2shnK3ROtHJThIMf2cTI+zfy3JfN329/whObWbIhse8uu9Wgsy8rFSzgn/7Kmt2cDsTIDbWB4L7ocQQnAa/VBoIxZzQLVYQioYrQJWTBvcoCt3vXMLRbKeJkedKkXAscbDWINhg9SLm7XU//A0SA5cABwPHAn0UkE14jkIXJweSJE/YH7nY6DiPl7vBX1oxzOggjd43z+fb+SVmv23fz5m9VEzRis2vQ7+9vri9eF97sVGyJeCG/cEt7z1/2SgPHjHDz5S+K+WRSEcF+W1e63TqjkVEDXHx6cTF/PamAy17RM6T+87NmKvbI453zi7hjls6RXvyqmT0HuhjsS+wrY/q6AWu+9gR7d+V1pUDrQml9u3oAETlJRJSIZMRieIYzagPBHdE3doX2QwcDb9UGgnEH9YYqQjeguz9nTK3wNkRKZ3UwpamT5cl9LSctCOPKlNaNvYHHutn92YUeczAH+EQpVQrUAeeLyPDuh9h9WZUcTJ44YQB6LQOP07EYKecC/uWvrBnmdCBG7hnn843Yt6DwpgMKC3eP9fzgJle/O/4cbuqzvGV9umNL1MelBcXxnlvfqHhrfgvnj9Zdnj0uoSx/6++yL1ZFOHwH/X0b6Ouibl2E5Rsj5FnClhZFY1hhCbREFHe928SvD0qs2LVnKOrqy0qV7YF/d2PCgzOAmeh+5EYPZHcheh5ouyhiOTCrNhDcKd6+oYrQA+jPTsa2SD7pK14T7zkny5Nm5Zo/JXxCpi1IdhrQnRnR/ope8+IKpdRV9mN3AJcopeZ3N7hkyJrk4J7zp7rQTXlDnI7FSJt+6C90s4qykTTjfL6Sfi73ryeWlY0Rkbi1P33CVtkdj0asYfNa4n5pOmlTkbvvoojEbN34bm2EfoXCuc83MPpPG7nghS1satp6iMIeAyyeqdVdA+YsDjN/nWLResVPyvN49dswxzy+maqxXu5/r4mzd8+jMC+xirK3MqvVINohwJ2d3UlEioGDgPMxyUFPdg8Qr3uaH3i7NhDcK97OoYrQU8CxwIbkh9Z97xbkD4z3nJPlyX0tJy4M43J346WlyvX+yprjurjvJuBVYIPYlFLrlFKNSYyvW7ImOXDlDbvJXXhUIbDO6ViMtNoHPV2tYXTbOJ/PEjj3gt69jyuwrA5nJipWVvEtT6iiwGfNy9MRX6eI8KSrYFWsp1oi8OHSCBfvncdHFxVTlCdUz9z6e6fyYC9rGxSjHtzIvXOaGD3Iwm1Bab5Q85NC3v9ZMXsOcvGfr1s4edc8LnxhC6c8uXmbvsbRdKtBRow1iOfSLnyhnwi8Yg8kXCMie6YgLiOD1QaCp6Onn2xPP+B/tYHg4fE2CFWEpgGHAu2OF3LCFpFdVrhcMeNyqjxpVq4F94VPzLRWg1aCnl1xQGd3VEo1oBfFa1G2pEfXTVmRHEyZNO0I4Ddu78h9PSXnbQRPVi33bXTbBf7KmhOcDsLICeNOKy07e5jHMzTRHfIR77Uv0mefd5sWpzKwrphWXBiz+m1oiTC0RNhvqK5wO2VXNx8u27rLc4lXePSEAj6eVMxfT8xn5SbF9r22/kq4cXojvxvj5Z+hZvYa7OKREwq4elr8yq231g1Y+5Vn10xsNYj2mL+yJm4taQxnoFutsf9/RvJDMjKVPc7gTwlu7gNeqg0E4y7KGqoIfYhuiZqXhPCSR0Se9RV9Hespp8qT+8M/WpChrQat+gNTuzj+4Hyl1OxkB5QsGZ8cTJk0rQ/wN+xYLVfZUG/ZxTtb7qHTnY3MSLM/+ytr2vb1NIyEjfP5/Lvn5/9qTFFRp+eqzkPcV06TwUe83rggFbF1VbwpTQcWWwwrtfhqlZ4x5I15Lezad+vifl2Doimsd/3Lh80cMtxNifeH77hvVodZsjHCWL+bzc26v7AADXEq+vQMRRdkXA1YDP1I8AtdRPoAhwF/EZE69PTZE9vrjmbkjtpA0INOCEs6sZsH+GdtIBh3DaZQRWguOkH4tHsRJteLxUUx7wmdKE+alWvhPS0/ztRWg2hHA52eXVEpldFTZmdyRtZqMrBVLY+IK8/jO21sS+Mns1s2vxEESp0JzUij/ujamx87HYiRfcb5fEVllutXZ5X1GmN1caEZC5GfvefarteGxrqnTvL6O7PvV1d+hVVgISLgghFVI7Z6ft2sdax8aaU+T77F4LMHU7BdAS3rW1hw7wLCm8MM+PEASvbS9yjz757P4LMHk9crL38anuVH07xN0/a9x+Zz5jNbaArDDr0sHj2hgAff1+MhJ+3toXZlmLOfa8AlsGs/i4d/tPXsfL+b1sgth+nhPmeU53HiE1u4+90mbjw09hCgGfX913yZv1umtxq0Ogq4HPhjB9udAvxVKXVR6wMiMh09S82M1IVnZIhq9Ow0nWUBU2oDwQHBL2uvj7VBqCK0tHxq+SHAC+jxMAlLVXmyoExPaeqKsapzusuTB8LHzw/jypYJSW7zV9a8UVc9/hOnA0kWycCuTt+bMmnaYcAb7W0TCa9Z0LT+75ugOZimsBxx//ALG8KWO9/pODJARV31+L86HYSRPcb5fAJceHGfPr8qzy9IylSUrw8Nz//TmXnDxUosz/jqyq/YsWpH3L7Y9TGbv9mMd7AXV5GLDZ9uYMVzK9jxuh1Z/d/VSJ5Qul8p8yfPZ4drdmD9R+tpmN9A/xP7AzBmcX3d/U31/mS8rq6KKBi/4eo1tZ6R2ZIcAGwGRtZVj4/bvUNE3gSqlVKvRD12KRBUSl2c+hANp9QGgscCNegK7u54ELgk+GVtzKlMy6eW56NbJxLuOpvK8uTBZStCB21pKO/0q0yiZuVaFGx8dEAL7qxYYdr2PrB/XfX4jG4RSFTGdiuaMmlaPgn087Ncvbfzll28g7gGv5WGsAzn3d2d+cqNHmmfgNd7/Ehv/i7JOuARi1zDr/pL0wJpiSRl7vLCnQpxFenKusIdC2leYy8W5ALVrFAtCixQYcXq11bT99gfLoGPSgo6HFidajPr+6/NssQA9Fz1D7a3gVLq0OjEwH7sHpMY5DZ72tL76X5iADAJ+FdtIBizijxUEWoATgYeTsK5gO6VJ0/6ilcnK46u+lN4wrwsSwxAtzBd6nQQyZKxyQFwPTCiw60AEbfXW3L6Ie6CsbPI0GnCjKQpA251OggjO4zz+QqBs04v6zU62f3E91nt3u7G+5uX5TVEmjvcWKDuzjrmXj+XNW+2PzPq2rfW4tvdB0DZ/mVsCG2gbnId/U/sz5ppayg7qAzL+0PRvbE4r1+8KU3TIaKg2jo/cxd4at9R/sqaiU4HYWScq9DTkybLKcDLtYGgL9aToYpQOFQRugC4LaGjpbA8mV2Q3+nZd5KpRVmL7mo5ORvGGsRyo7+yJiem28/I5GDKpGnlwP91dj93/l4HekrOXgXumCPujZxxvr+yJu580oYR5diji3179He7U1Jg77LJNbj6/ua1hevD7a5WvMPvdmDEDSPwX+lnzRtr2PTVppjbbazdyNq31jLgNP397Cp04b/Cz4iqERQML2D9x+sp2buExY8sZsF9C9g8dzOI8G9XgWO1fW/X91v7hae8j1PnT4LJ/sqauAvKGT1LbSA4HPhNCg49DnizNhDsH2+DUEXoavRYmHb7e6eyPNksEljlslZ2+VV205/Cx2djq0GrYuAPTgeRDBmZHKAHIXdpsLTl6ru9t+zn24lrgBkslrss4J5uLl9u5LhxPt+gIrFOOMrnG53K8wxrdPW/40/hhl4rw3FbLfN66e86d4kb354+tny3bS7RsLCBxY8sZrvLtsNdvG3xt+L5FfQ/vj/1s+sp8Bcw5PwhLH9aL7/wRlFhsl5Op0QUVEvWthq0GgJc7XQQRsaYDBR0uFXX7IleLG37eBuEKkJ3A2cBcVskU1qeiMizxcWOVLC2KGvRH7O31aDVaf7KmrFOB9FdGZccTJk0bRxwZHeOIeLO95acOcZdcPDb6JXojNxzILoANYxt2IOQT59YVlZeYFkxm/KTqV+L1euOR8IMXtiytu1zkcYI4S3h73/f+PlGvEO27n7ctLqJBfcuYNjPhuEduG3X5MZljTSva6YoUESkKfJ9yR1p1vfl88vy+7Y4MLvErPp+az/37p7NrQatLuvk2gdGDqoNBA9D9/9PpRHoBGH3eBuEKkL/AH5EjPuXdJQnLxYXOVLx9ufsHGsQS9Z3fc645IBE+9wlwJ2/70Ee31nLwDU3Wcc0MspN/soaj9NBGBlp5PC8vDGjCwrSNutGScTy3fZ3lT/iy5atmuRb6luYd+s85l47l29v+Bbf7j58u/tYM20Na6bp/sIrn19Jy8YWlvx1CXOvncvcqq2LrOX/Xs6AH+uuAWX7l7F25lq+u+k7+h6jBxJG8qyCN/HEXC05larlvGxvNWhVCFzjdBCGc2oDQTdwT5pONwh4qzYQjDuFaagi9ApwOLBVl8F0lCd1ee5ABNJ6bbcoa/EfWk7J9laDVgf6K2smOB1Ed2TUVKZTJk07AXgu2cdVqnlz04Z/fqjCqw5O9rHTxUxlGtclddXj73c6CCNzjPP5PMAtV/TtN2GE15uUqUs7oxnVfOeRauVHe3sGp/O8hy6ur7s3jVOazlzXd91Z+feUpet8adAM7NLe1KZG7qoNBC8F7k7zaRuAM4Jf1sa97ymfWh4AXgPSOuf/Q0uXf7Z/Q+PIdJ3vgZbjZ/y+5Ywx6TpfGnwKjKqrHp85N9mdkDEtB1MmTbOAm1NxbJG8Qm/J2Qe78w+YCbQ7cNDIHgNZs/wfeTcfQ1WpaT0woh0y2O327+Dx7OzEyfOQvKv+KwPHvtm0MJ3n/SDNU5pWy/lx1jbNWnnADU4HYaSfvRJypQOnzgeerg0Ez4+3Qagi9CW6G+0XaYsK+FeJL20tkS3KWvKHllP3S9f50mR34Ayng+iqjEkOgIlASrNUd8EBB3t8P1kELlMzlMUGsXrZE56bpr/j/UXpga4vjgfOcTomIzPYrQYnnFBS6u/qSsjJ4EKsn78jw058sbEuXefcUJzXd6lKz5Smb6/ru+4z7x65uN7Imf7Kmh2dDsJIuzPRXX2c4AL+UhsIxh0UH6oILQLGAO+kK6h3CvLjzqqUbA+Hj53bjDsXK/muzdaJUzIpObgiHSex3AN38pZd3E+s3m+n43xG8gxi9bJ/eW6cPsv7y7L9rdqxIrR2s7qKqtJtlns3eqTRJZbVJ5ifH3ewX7oIwk8+c/nP/UdDXXpOKPK0lZ4pTavlvFxrNWhlkUMLGRkdqw0EhS5MnZ4Ct9QGgnfZ8WwjVBFaAxwBvJyOYDaJBNZYVsrLkxZlLb2zZWKujDVoKwAc43QQXZERycGUSdP2R68ulxYinmJv6TkHubz7zED3+TMy2GBWLX3Sc8P0Wd5f9trP+jI6KWi1I3CaE7EZmWOcz2cBJ/yopHSYWyRjaqGOne/2/+ovDQskHEl539PX0zCl6ax1fdaFvKNysdWg1Xn+yppSp4Mw0uY4YFeng7BdBjxeGwjGnLEnVBHajJ7F6PGURyJiPecr+jLVp3kkfMw3Odpq0OpXTgfQFRmRHOBQTU1e4ZgxHt/p88Ga78T5jfYNYeXSpz1Vb73tvbT3vtZXY0WIufy87aK0BWZkqmAeMnR0QcEopwNp64CV7u2ue6B5ibsxktIa97rS1E9pmsOtBq2KgQucDsJIm0xoNYj2E+DF2kAw5hiiUEWoBTibNCy29UJxatcGtFsNcm2sQVtH+itr0jawO1kcTw6mTJo2CL20uCMs9+BdvGUX9xKrLG19+Yz2DWHl0n97rn9rpvey3ntbXx/SQVLQaixVpSNSHpyRkex1DSYc4/MNLrCsjFztdrcNriG33t+8umBjpDFV54h4rIKZKnVTms6u773uU+/oXG41aPVLf2WN6aqY42oDwb2BQ52OI4ajgWm1gWDMNURCFSEVqghdSWpWcv7edyme0vSx8DHfNJGXyPd7trvc6QA6y/HkAJiEniXCMSLeEm/peQe4vHtOB5qcjKUnGyorlzzjuW7GTO9lffayvkk0KYh2XkoCM7LBcCB4YFFR2tY16Ap/g2vA7Q82byxdE07Z4ozPegtTduzbSLzVYNVLd7Hw3jNZ8vDPv38svGUDy5+4hsV/vpDlT1xDuGFj3P1VJMySRy9lxdM/TCC09s1HWfLIL1j1n8nfP7bxs2msf//5zr6UjgwHxif7oEbG+bXTAbRjX2BmbSC4XbwNQhWh29Hfe+FUBKBE+ryf761NxbHDylp6eydaDbK8PDnTX1lTkuyDppKjycGUSdNcwIVOxhAtr/DQsZ7i0+aCldYpCHu6YbJi8bOe62bM8FzWd09r7hgRutr/sMIMTO6xjt7V6y0qdbnSNsNGVw1odvW546FwuP+SlnWpOP77JQUpGXgwe13v+k+8eybcalBcfgT9T916ZtD1s58i378HQ372EPn+PVg/+6m4+294/wXy+vwwtXukcRONi2sZfN59KBWhaWUdkeZGNn32Or7RKbmPNyuw57DaQHAQqV8NubsC6NWU446JCFWEHgVOIkXTtD/pK17Z8Vad91j46K8702qQ5eVJPg72kOkKp1sODsG56cNisvKG7uotnVQiVsm7TseS64bJisXPea6d8Zbn8n6ju5cUtBqMHlxm9CDjfL4SYL+xRcVDnI4lUWURq+T3f414tp/bkvQuQOt9ef2WRSTpNwrVcl5zZ7bPHzYSV4Fvq8c2z32XopGHA1A08nA2fzM75r4t61ex5bv3KN7jqKhHBRVuQSmFamlCLBfr5zyDb68fIS53515MYo43A5Nz2unoaUQz3VBgRm0geEC8DUIVoReBo4CkVzi8XVjQL9nHDCtZ9vuW0zs1Q1EOlCc/TcVBU8Xp5CAjZ5gRK7/UW3rBfi7vHtPRq2YaSbSdLF/0vOeaGW95Lu8/yvo2GUlBtLiLyRg5q1yAEV5vVg36KlJW4U1PqZLyT5qXJvXAIvKMKz+pSce79b3qP+5Eq0E84U3rcBf3BsBd3JvIptj3Mmvf+DNlh56HyA+zOlreQgp3OZClj12Ku3QA4i2iaenXFO6UslkQs662z+iUM50OoBN6A6/XBoJxK79CFaGZ6ArXJck88UaR4FrLWpPMY04NH/1VMsYaZFl5MtZfWZPWVa67w7HkwO5S9GOnzp+IvMLDx+YVn/wVyGKnY8kFw2XZohc8v5sx3fOrAXtY340RSclYk/FUlcYcxGXkrHH7FBT6CizL1/GmmcWDeH77Ev0PnNm0KJnH/W9hchdLrubctI3F2jx3DlZRGd6B284vULrfKQw+9156H3YB9TMep2zMWWz45FVWPlfNullPpCKcrKrtMxJTGwjuAuzldBydVAg8XxsIxv1MhipCIeAg4OuknVXEer44eVOa2q0GaZuhKIPKEyGLElInWw7GAhnfP9iVN3ykt3RSIVL8ntOxZCu/LF34oufqGW96rhiwuzUvVUlBKze6edXoAcb5fP2AHfcpLMyaGpm23Ijr0hky5LiXG5M2pfK8svw+kSTNaDqnvlf9R969k9K1wFVURstGXQnZsnENVlHZNts0Lv6CLd+8y6IHzmPlC7fTMP9TVr1451bbNC3/FgB3ryFs+mwa/U6spHnlfJrXJL0e5xB/Zc3AZB/UcFxG9lpIgBuYWhsIXhlvg1BFqA44GHg/WSd93leUtOmR/xo+6qtGPG3XKuqSLCxPJib7gKniZHKQNRenWAW9vKUX7u3y7PYmkOtzfCfN9rJkwX88V8/4n+fKQeVWXaqTgmjHpuk8hvNGAmp7jyfgdCDdYSFyzseu4Wc9mZwEIeyxCmeovKR0LUpmq0HhiP3Y9NkbAGz67A0KR2xbgdhr7DkMvWQqQy9+hH4/uor84bvT9/itp6JfN+NxSg8+EyItoOyZFsVCtSR9llghS1c4Ndp1ktMBdIMAd9YGgrfH2yBUEVoJjANeT8YJv83L21lBtxOEsJLl1S1nJK3VIAvLk1H+ypqMGmcbjyPJwZRJ0wQ40Ylzd5WISF7R0YfmFZ/0BUhy+wjnmB1kyfwaz29nTvP83+CROilIyeiedhxNVWnMJeiNnHNQeX6+t9CycmLg6I++dQ3/xaMN84l0fzXl57yF8ef1S9B79WX1H3ax1WDlC7ez7G//R/OaxSyaUsGGT16jZP9TaKj7iMV/vpCGuo8o2f9UAFo2rGb5U9cndNzNX7+DZ+BOuH19sPKL8Q4OsOThS0DA03+HroTaEVPZkENqA0E/MNrpOJLg17WB4CO1gWDMQdWhitBG9HS8T3b3REqk3wdJmNL08fCRX3a11SCHypOsqGyQFC+mGdOUSdN2Az5L+4mTREU2rWpc/3gdatPe6Trn/cMvbAhb7qQ0xaXKDrJk/n159ywMyoL9HUgI2tqbqvoPHI7BSKFxPl8Z8IfzevXefu/CwkOdjieZPilrWVR9gWdQOM/q8mwqpeubVsxcvaxbXTdPrv/Vyg+8+yR9tpIssxboV1c9PiVzyRvpVRsIXg780ek4kuhFYGLwy9qYM5SVTy23gHuAS7pzkmM3bpp++8rVY7u6f1jJit0aHylpwJvR9zFp8GRd9fiM717kVLeiQx06b1KIVdTXW/qzvSxPYDopWnwkm+woi+e/7Kmc+Ybn/4bsai04OAMSAzC1fT1BAJAheXlZO94gnj3WuYfedH/zCu+mSJe79NT78vqtiEhDV/d/v76s3iQGAPQCUjaFiZF2uTYm7XjgtdpAcNsO90CoIhQJVYR+ASRWlR7HzIKC3t3Z/+/hI2pNYgDAkdmw+rpTyUGXs89MISLiKTpubF7Rj0IgK5yOxwk7yaK6Vzy/mfm659dDg5mTFLQyyUHu2x3Y0sftzpr1DTpjxGbXoN8/2Lzetza8uUsHEJFnrPwuL2BUrSrMavE/ONrpAIzuqw0EhdxM9A5Gr4UwON4GoYrQjcAkINKVE2ywZNd6y+rSOgphJStubfnJvl3ZNwf1Qq9+ndFMctBNLs+IUd7SCwUp+MjpWNJlZ1k471XPVW+/5rlqWMBaeLBIRi4ksx9VpVk3taWRmHE+nwC7BrzePI9IztZGDW5y9b3joXBTn+Ut67uy/3+LCrvUb/SD+rL69/P3M60GP8jFG8qeKIC+OctFI4FZtYHgzvE2CFWE/oSeDKbzI21FXC8UF33RlcD+GT6stgFvQVf2zVEZX56kPTmYMmnarmTBFKadIVZxP2/ppD2svJ3epItZeTbYRRbMe83z61mven6z3S7WooMyNClo5QL2cDoII2XKgJKR+fkDnA4k1XqHrbI7Ho24hs1r6fRCRN92cUpT02qwjX38lTVmkoPsF3eV4RwxHJhZGwjGHQ8Zqgj9G92yvqGzB3+uuKjT9zdhJStvbjkr42vK0yxt6zx0lRMtB2McOGfKiYjlKT7+0Lyi8R8BXW7Kz0S7yIJ5//X8etYrnsrhO1uLD8zwpCDaKKcDMFJmGKC2y/MMdTqQdChWVtEtT6iiwGfNyzuzX9jjKprVySlNP6gvXf+eaTVoqwyIWyNrZI1cTw4A+gH/qw0Ej4i3Qagi9D/02M9OdYn+xpO3S2enNH0iPO4L02qwjYxPlpxIDnK6Ntfl2WUvb+mFYST/E6dj6a6ALPjudc//zXrFUzl8J50UOLkuRleY5CB37QCo/m53zg1Gjicf8V73In32nd3UqZV5nvF0bkrT31PR5UHMOS7jv9CNDvWE5ACgGKipDQTjzooTqgh9iF5NeV6iB1Ui/T7yehJeLTmiZOXNLT/dJ9Hte5Dt/ZU1fZ0Ooj1O3Ozt6sA500os30Bv6aSRVt4Ob5KEhUPSLSjzv33dc+Wslz2V/hHWkmxMClrldCLaw5X3crkafZaV0QVssrkR9xX/k8FHvt64INF93ispTLjW7sP1pevnePfPqW6fSWRucrJYbSBYSg+4/4jiAf5RGwj+It4GoYrQXOBAIOHKzCdLfAm3NjwRHvfFFryFiW7fw2R0eeLETV/QgXOmnYjl8hSfeGhe4bEfAJ3uK+yEXaXu2zc8V77zkue324+wlmZzUtBqJFWl2dIFykjQOJ/PA/h38+b7RHpeN3ALkQvfc2132jONdYlsv64kr//KBKc0/b0627QaxLeb0wEY3bIfenXhnsQC7q0NBG+Mt0GoIrQMPUnM9EQOOKMgP6EB3RElK28yrQbtyejyJK03f1MmTetDjg1GA4MrSAAAIABJREFU7ojLG9zbU3J+A+INOR1LPLvJvLnTPFe8U+O5evsdraUH5EBS0CofPTuFkVsGAQxwu3NiVeSuOuUrl/+ivzbMV5EOxgiKyHNWfofjDj5aX7L+Xe8BPap87qQRTgdgdEu50wE46NraQPDB2kAw5nd7qCJUj16599mODrTesnart6S+o+2eDB9qWg3al9HlSbpvAntSk973LFfpYG/pxUHLPTyhzDxdyuW7b/7n+dU7//H8bscdrGW5lBRE293pAIyk6wtImctV4nQgTjt8sXt45UNNC63m9jOEVwsLO5xl5PcR02rQgaH+yhqv00EYXTbc6QAcdhHwZG0gGPMzHKoINQCnAn9p9ygirv90MKVpRMmqG1rONq0G7TPJQZQe0aUoFhHL7fGdPNZdeOQcoEsLiSTL7vLtN296fvXOC55rRmxvLT9AJKebWv1OB2AkXS+AUperR7cctNprjXvYDQ80L8triDTH22ZuWX67q5t+vL5k/ez8A02rQfssYHungzC6rMdMXtCOk4GXawPBmBUroYpQOFQRuhC4tb2DPFdcHG7v+afCYz83rQYd2tHpANqT7uRguzSfL+O4veX7ekrO3Qiez9N97j1k7tfTPZfPft5z7Qh/7icFrXJy9dwebiDQVGxZJjmw7bLJNbj6/ua1hevDW2I9H/a6imdF3Kvj7X975CzTapCYjK7tM9rV4+8/bOOAN2sDwbhrxIQqQr8DLiPOhCpfe/J2ijelqd1qEHedBeN7w/yVNR6ng4gn3cmBmTsbsFy9hnrLLt5J3EPT0s1olMz96i3P5bOf81y303Brxf49JClo1SPmwe9hBgCNRSY52MqwRlf/Ox8MN/ReGY65uNEznsKYj3+y3rdhVv7BptUgMT29a0o2M8nBD0YDb9cGgjvE2yBUEboHOBPYpkUyIjLgU6/nm1j7PR0+5PPN5BclLdLc5SKD709McuAQEZfH6zttrLvgsNlAh4N7ukInBZfNftZz3c7b9bykoNVgpwMwkq4/0FBgWT1+zEFbfcNWrzseCcvgBS1r2z43p6Qg5pSmt0fOitnaYMTUx+kAjM6rDQQL0GOVjB/siE4Q4k75HaoI/RM4HtjU9rknfcVL2j4WUbK6qqXCtBokLmPLE5McOMydP2p/T8k56yAv4YVFOrKnfP3VDM+l7+qkYGVPTQpaZezFZ3TeOJ9PgD79XG7LLZLndDyZyBexim/7uyrYqbZlq/nI1/o8/dYoGqMf+3S9b8Pb+WNMq0Hi2h27YWQsM94gtoHA9NpAcGy8DUIVoVeBw4CtuiVOLyzYZkrTZyJjQqbVoFMytjwxyUEGsFy9h3vLLt5eXIPe6s5x9pSvv5zpvXTOM96qXYZZq/br4UlBK1NblFuKAWtgnrvY6UAyWQGSX/Wc6jX6/aYfavcssZ6VgpXR290eOXNz2oPLbhn7ZW60y3Qpiq8UeKU2EDwp3gahitAc4GDg+8UX6y1rt/VRU5pGlKy5vtm0GnRSxpYn6U4OzI1aHCJur7fkjEPcBWNnATH7Bsezt3xV+7b3l3Oe8VYFhsqqfVMUYrYqoarU1DDnjhIgkidiFrfrQB6Sd9V/ZeChbzYubH0sekrTT9f7NszMPyTuoEQjpoz9MjfaZSom25cPPFUbCF4Qb4NQRehL4CBAT2Mq4n6pqKi29flnIwd/uokCU2nTORlbnqQ7OUhoZb2ezJ2/14GekrNXgfvrjrbdR76sneX95XtPe28IDpHVJimIL9/pAIykKQBw9byVTrvEhVgXv2MNG//slnqAb6KmNL0j8hPTatB55jssO7mdDiALuICHagPB38XbIFQRWgSMAd4BeMZX3Ay61eC65nP2SkuUuSVjy5O0JQdTJk2TdJ4vm1muvtt7yy4eJq4BM2I9v6/UfvGO9xfvPeW9MThYVpuFRoyexNL/EVOWJEgQKr7MKz3nb5vqW7yu4hnN7s2h9cUbZuSPNa0GnWcWQctOpqUxcTfXBoL31AaCMStgQhWhNcARwEtfefJGADwXOejTTRT40hlkjsjY8iSdX7Amc+8EkbwCb8mZY9z5B72NPVPAfvLFF+94L3nvSe9Nuw6SNSYpMHoiAbDMeJpOO26Rt7Tyz1sWPxspVHeYsQZdZW4ys5P5u3XOL4G/1waCMbvkhipCm4ETIiL/fd9T8OG1zeeaVoOuydjPZTpv2E1NXxe4C/Y7yG0NnH253Lr0pwVfH1oWiWRsM5RhpIEFurtMMg72u6VLmb5pI71dLl7YXk/5fd+qlTxdX08vly63L+/bj7HF23alXR8Oc92yZXzT1IgANw8cxKiCAiavXMGMjZsI5HupHqRn0n2hvp76SJif9nK2i+meq/OGrJ05fMXioRs37y//me9oMFkkElFul2VtyS8s/gLGOx2O0XkZexOWwc4AetcGgicHv6zdZirTUEWopXxq+Tn/XvaTyQdumtWpcZKGtsUqWJup5Uk6k4NIx5sYbeVvWTV7n/fvDcKWAeN/Prg5UkDo4C1b1py2YWO/vRsag2L6Xhs9S1JbDk4qLeXMXr2oXLr1lN1n9+rFeb3bnwX3thXLObioiLv+n707D4+qPBs//r1ny75AEtYAQVQYBVwQRVxYrLVad+vWVrGLbVpq37b0tdbWqv3Z7a1trTYtdelmtdLWpRW3qgFcEAUEjDADyA4hELZkss/y/P44kxpwErLMzJlJ7s915SLMOXPOPZOZc577WUeOpM0YWiIRAuEwq5qbeWbsWP63upoNrS2Mdnt4ur6OB0vtn01xnyvHtB73PwVjD/5LSjx7dJBmT4SBAPV2h6F6RSsTeucC4FLgb7E2lr/16/ONicwtbvzdekzrpOSG1i+8YXcAnUlmbX4oiedKf8YER+5cvGT623dOc4ebC9xhxt7/+0htMCzHvJibM+Pzw4eecFLZqP2Xjxz25h8L8t486HAcsDtkpZIgrmMOTsvOpsDZ80M1hMOsaG7mqgJrkWaPCPlOJw6BoDEYY2g1EVwIfzhwgM8WDsIt9ubxYQOvT/hcONOTmzGy5LqSQy002BpQevrIarEqLcSl5eCKgoKYSf6NgwbxdNlYni4bGzMxgA8rE54bewxPlY3lGI/nsMqEsIENrS20RCI8XV/HdYUp0UngCa/fFzMxqCivHAn8VcThyci7oRjQMkjPpWy5OGnJwdz5sw3aetAtEgnvPGXNrzeM/+Afhy1Mkt3GiffPD/udYRMEMCLFmzyes345eNBZ544eWThtTOnabw0pXvx2ZsbaiL7Xqn8SIOHF7McPHuTyLVv43u7d1IXDH9m+IxhksNPJ92p2c+XWLdxRs5umSIQch5OP5+Zx5batjHS7yXM6eb+lmfPy7B+r9+qYy+oLir0uAIfDyaCiGyUYjnyku4DqkiYH6SkuycFAqkwANgBfirWhorzShdWaUAIgzvzh7uwLNwMmeeH1Cyl7PUn2OIBDST5f2sloOfDO2Utvyx10aOOJsbYPamTKvY+El2PM4V9CEUejw3HiyznZM784fOiJJ5eNOnjZyOFvPlyQ/+Z+h2NfUoJPTQZosTsIBSIyTESeEJFNIrJORJ4XkeNF5EUROSQiC7txGAdgmiKRtkTFeV3hIF46ZhxPlZVR4nLxf3v3fmSfMIZ1LS1cWziIp8rGkiUOHj5gLSD6haIini4by3eGDOX+fbV8rbiEfx46xDerdzF/vz1fxTX53hbn2PMPy1AyPMU5xjMrYI68lqiupOzNXHUpoZ/xfliZ0Axc7fX7OhtLcA/WlKb/5czwnuZwH7Mk4ZH1Lyl7PUl2cjCQC6ldMyY0ovrNJdOX3THVHWoq7GrXkfuZftdj4S5XUzYiRZs97rN+PbjwrJmjRxadMaZ03TeGFC9emplZNcBaFQ5yV13KfgEHChER4GlgsTFmnDHmBOB2YCjwc+CGbh4qAsihSDhhs+0Uu1w4RXCIcHVhAVUtzR/ZZ6jLzVCXi5OysgD4eF4e61oOz0Hb/1/m8fCv+jp+NWIkG1tb2dqWsLwmpv2u/NDuSV9o/xscJj9/yrDG8EgdmNx9dUffRaWghFVM9sfKBOAWr9/3XqwNFeWVnwRujbXNnXPpOUjmmoRG1r+k7PUk2clBbZLPlx5MePdJ71X4Jmx4fEZ3BxifsIMZt/w7vLhbxxeRJofjhFdzsmd+efiQSSeXjaq7ZOTwpb8vyH+z1uno73+TGrsDUADMAoLGmPntDxhjVhtjXjfGvEr3VwVvBsz+UChhyUFt6MNuoK8EGjgu46NTUZe4XAxzu9nS1grAsqZGxnkO3++BfbXcUlxMyBgi0XpLB0JLJHm5ecjA0olfafK4szpdCHBw0TVjGtucu5MWVHrbcfRdVApKWCm7v1UmAI96/b5HYm2oKK8cDfyFTsopIg5nRv4NQ9GyXnel7PUk2WsP6AfmCJ7WQytOX/GTsZ5gQ49H+p+z1sysLQi//sQM5zlH3/tDRmTQVo97+m8GF/KbQQUmyxjftOaWPdcEGgaf2dxyorN/TfumyUFqmAisjMNxmgEOhMMtxhgTqza8J75dvYt3mpo4FA4za9MHfK2omHeam/C3WDOKjHS7uWvYMAD2hoLcUVPD76MDEr83ZCi3Vu8maAylHjc/Gjb8v8d9JRBgYmYWQ1zWNOEnZWVx2ZYtHJ+RwYTM5C3Y/erYK+tzCkfnd7WPw+GQvEE3FLTW/6HB7XTEHk2p2m23OwDVK/sTdeDaUIgSl1WU6k5lwlhPRqeVCXcPG2ZrZQKwDvhKrA0V5ZVuYAHQ5RRK4sgb5s65+N1g48IidAr7o0nZ64kmB3YxJjxszzuve/1/6XZrQSxXLDXT9+VFlr1yqmNarw4gIs0i3kU52d5FOdmIMYdGhUK+ixsaw1cGGo8bGg6n+yqqe+wOQMVVEyARMK3GNGaK9Kkwe++IkR957KrC2L36hrjc/00MALyZmfyjrCzmvh/Ly+NjHfoN3zpkSF/C7JVVBSc2u8bM7jIxaOfxDM5uyTh/jwm+ktPXhKufS9mbuepSXFoO+nllQiPWOIPOJin4KdCtcobTc/yp4bbjFkeCG2fGK7h+KmWvJ5oc2MFE9kx6/8HdJfurZvb1UALOm1+KnHIwj9Urj3Oc3OfQRAq3u91n/nZQIb8tLDCZxqw/o6Vl99X1DYPPam45wZV+K11ry0FqWAt8Kg7HaSJaG9UUidRnOrSmO5a97sLQ3kmfd/RkxpP8vJOG7qvdsC3XtWNMAkNLdynbDUB1qfrouxxdf65MAL7q9fvWxdpQUV55OfCtnhzMnXPxua1181dhmk+JS3T9T/28BQtTdt2UZDf5DPgLq7ut/t2zlt7uKNlf1eeCfDuBjFv/GRl77C6zPl7HtA4s0uJwjF+SnT3za8OGTD6lbFTjhaXDl/2msOD1GqczXQrd6RJnf1cJZIjIze0PiMhUEZnRxXM+YlEg0Io1+5SrMRJJ2QurnUKIeWfSV5rcrsyP9m84isFFV41pbHPtSkRc/UTK1vT1NyJSIiIzROTTInKziBSLyDdF5G0ReVJEur0QgNfvayGBXYv6gT94/b6/xNpQUV45FvhjTw8oIo6M/BtKQT46QltBil9Lkp0c+JJ8vtRhTGTI3pVLzl56+8kZwUDcVyYVKLjn0fCg4ftN4j5wIgU73e5pvx9UcM75o0cOmzqmdMNXh5YsXpSdtSaYulNy7bQ7AAXR6TKvAM6PTmW6FrgLqBaR14F/AOeJyE4RueAoh9sPZAQ0OYjp5bGfCmTnl3arO9GRHA4HeYNuHNwWinR3gPiAYYwJAjpwOwlEpBD4IdY14gJgCjAZa9GoJ4F8YEQPD6v3gtiqgK/F2lBRXukB/g50OYNiZ8SRW+LOuaQaa31xdbiUTg6S3UUkZpNVv2citRPXPrJjyL7VPaol7SmHYcgvHg5v++pcZ+2hXIl7AnKkFofj+Nezs45/PTsLjKkfGQqvvKixMfipQMOxI0Lh4Uc/QlJU2R2AshhjqoFrYmzq0YB6YC9wbG0opN0Uj7CycHKzZ/SMXiUG7TyewqzWrAv2Rtr+k+OQ+KxE3U/smrdg4UCaBtpO9wH7jTGz2h8QkeHAO0A2MAkoij4u3VyrYxtwUgJiTWcNWOMMPjrFkuUXwGl9OYHTc+zJ4bYJiyNB/8y+HKcfSunkIKkX/rnzZ9cywNY6cLc1rJ7+1h2RIftWn5qM87kijLl/fnh/VotJbq2qSP4ut2vaQ4UF51wwauTw08aUbvzy0JIlr2RnrWqDpM/FFtXKQG6t6r/2AJmb2lq1FreDPe5BwX0Tb3LEYzxxXu6kIU2RsgHfDbQjEUnpm3l/ISJ5QBbwcvT/mQDGmN3GmAastU5agPaO+d39wMect3+A+5LX74vZHbmivPJqOmlR6Cl3zoUzkJwV8ThWP5LS1xM7aoUGRuuBMaZ435rFZy+9bVJm26GkzviTGWTCA/PDm10h05rM83bU6nActzQ7a8Y3h5acMqVsVNvHS0e8/atBBa/tdDmT2Z95LXfVhY6+m0ozWwDX2paWPRFjtCYXaEPM8slzW9yuGPMo9lJx8VVjGtrcOv7gQ367AxggcrEqEduv3a1g9WGP/j8I1AM9bR2Px1TK/cl8r9/3t1gbKsorjwUejteJREQy8m8YC6IVOh9K6euJHclB/6/JNZH9J/r+uHLy+w/OFIwtawbkN3PyLx8Kr5JUKDyJ5O52u874Q2HBuReOGjlyyphRm24eNmTJf7Kz3k1wq4Ku1Ng/7QZMszGh+khEuxYBr467rj47b3je0ffsmYKim4raQjq2I+oNuwMYIJqx+qi3F/49AObwe1kAKO7hcTU5+NAq4BuxNlSUV2ZijTPoU/fEI4kju8ide3ktHyZ9A92bdgfQFTuSg37dtOcKNr135rI724buXdmnfnrxMOwQ0+75SzjlbmhtDhm3LCtzxryhJadOKRsVPH/UiHd+Majwte0uV7wHjK2O8/FUamifgcqxLxSKyxSF6Wz54FOaMkadXZCIY7tdeZmOrItaI8bogEJNDpIlgFUB8AkAY0x7y8FwERlijKnDGj+QFd2/WxVwXr9vBzqdOlitLld7/b7OehbcByRk+lGne+xkp+fElC4UJ8mGeQsWpvQsTnbMWf+6DedMPGPM4APrlkx+f/7ZDhNJmbUAjqvm3HlPhhf/4irnTLtjiUkkp8blOv1Phfn8qTAftzFbTmlp3f6pQEPueY1NEz3Ql24Smhz0Q4sCgeCsvLydQO6uYHD3sRkZA3Ye7WpPUfDgCTe6EnnByc09oWTfvg3bcp2b47L+wWvrN/P2Fms4w/CCfK49fTJu54flu0X+TazabuV84UiEvYEG7r70fCLG8KelK2luC3LhpPFMHGktNvXHN1Zw5ZSJFGQlbrGoiDG7//fvz21J2AnUfxljwiLyFFAhIt8ENgLHY3U3elVE/gBMBUpE5HzgC3S/0nEl0aRjAPu81+/bFGtDRXnl9cCXE3lyV/bHzw0Hty3HNEyNx/HS8XpCGlQ02FGIfR+rP2FPmwRTlzEHvev/unF4zbKZdocSyxkbzMw5r4SX/PljzoTOlhQPQZGx72Rljn0nKxOMaRoaDi//eGNT89WBhjFjg6GeFE4iaLei/mw9MGNzW2v1DAbmOmhtOMy7k7/aku3yxL070ZGKiy8fs29Pxc5cT2tpX45T19TC6x9s5dYLZuB2OfnL0ndZvb2aqWM/XCxq1oRxzJowDoC11Xt4bcMWsjM8vL5hC6eNKeXk0SN4+LV3mDhyGGur9zByUH6ib+RIf63USlHGmPUi8hngbmAmsBWrQLUG+BXWjGU1WDMa9aTr7EBPDh7w+n1PxtpQUV45Hngw0QFExx8c21o3fxeYj64q1wPpej0hDZKDpHcrmjt/tgFeS/Z5E8UZal575tt3Ng2vWXa63bF05aLl5pyL3okstTuOHhHJ3uNyTX20IP/cS0tHjDm1bNTWzw0bsuS5nOwVrULLUZ69irvq6pISp7LDJsD9/gAelPzKsZ+pz84dlvDEoF1B0Y0lraFIn79TkYghGA4TjkQIhsPkd3EjXr29mlNGWdPZOx2O/z5PxKoFfH3DFmaOH9fXkI5KRFL+Zt7fGGP2GGPKjTGXGWP+xxjzD2NMgzHmVWNMlTGmtoeJAQzscQfLgW/H2lBRXpmFtdZMUmpaxJE1yJ175UHisD5SOl5PSIPkwK7uL0uAK206d9wMOrh+yUnv/Wa6w0TcdsdyNAKOOa9GTjuQx7vLvI6kTKsab0GRshVZmWUrrFaF5pJweMX5jc2N1wQCY8YFQ2VH7P6yHTGqpKkmOih5fzi8s8TlGm13QMn0dtHUxszSaQkZZ9AZtysvw5l9aSDS+mzYIdKriRYKsjOZOf4Y7nmuErfTyfFDixk/LPakM22hMP6aWq445UQAThk9gsfeXsXKbbv45OQJLP1gG1PKSvG4kjLng7Yc9A8DdTrNQ8A1Xr+vswlAfoO1dkTSON1jJkYyTloSbl3T6x4NaXo92TNvwcKNiT5JX9m1wM1im84bH8bUjV//t2WnrLl/RjokBu0EPN98JnK8d7tJ/+lkRbJqXa7THi/Im3F56YiyU8pGbZszfMiSf+dmL28RaQZesTtElVA1gAGcG1tbU3pKuHjbmVHSVnfCpz12nDs35/jiZjO+1xMHNLUFeb96D7dfNIsfXHIebaEwK7fFPty66j2UFQ0iO8N6qVkeN18853S+cf7ZjBxUgG/3XiaPHMY/lr/Hn5euZOu+g70Nq0vGmAD9fCKNgSI6KDn97389d5PX79saa0NFeeUc4PPJDcfizj5vhjjy3+7t89PxekIatBqAfclBFWm6GJoz1OKb9s7d9SN3vzHN7lh6QyD3zsfCQ0trTb8aXBcSGfNuZuaM75UUT506prTpr/m5WtPXjy0KBIJY15FBy5oaYy7i0x+1itOsmTy31eX02FYpUVR08ZiGtsxeLZC2cc8+inKyyM3MwOlwMKl0WKc34dU7qjll9IiY215eu5HzvMeyans1IwcVcO3UybxQlbAc8S1dGblf+ZfdASTZL71+X8zXXFFeeSLw2yTHcxhP3mcngGMgXU80OehMdNxB2n1BC+o2vXbOm985Jru5dtTR905dDij6+R/C7qJ6U3P0vdOQyBuf/dYuu1ZlVsmzDMj5oK3tQH04PCCmKHzluBvqs3JKkjbOoDOFRXOGtoZMj6vWCrMz2bb/EG2hMMYYNu7Zx9D8j3Zzbm4Lsqn2ACeO/Oj6kbWBRupbWhg3pIhgOIxDBBBCkcSU30VkYUIOrOzyjN0BJNFbwG2xNlSUV+ZgjTPITmpERxBHZoEn91MBerHmUTpeT4DnEnXgeLKr5QCsRTbSgzH1x238x1tTVv3yXIcJxW0FUjs5I5Te9/twILfZHLI7lgR41u4AVFKsx+paJJvb2vp916KlxWc0Zo2YmtRxBp1xuXI8rpzLTCRierSg0ZiiQUwuHc6vXn6de196DQNMO2Y0Sz/YxtIPtv13v/d31TB+aDEZMSZpfaFqPZ+YOB6Ak0ePYPnWHTzw6pvMGH9M315UDMZa3+GJuB9Y2Wk51joK/d1+4Fqv39fZoN/5gDeJ8XTK4S49wZlx6ls9fV66XU+Ad9JhvAGAGGNsOXFFeaULq99wkS0BdJMj3Lp+6sr/y8hpqimzO5ZEaMjgvfJbnMe1uSXr6HunhTZgeNWcqgN2B6ISb1Ze3h3A4NOysnI/P7joi3bHkyjbM4cG10/9Lk6nO6XGOO3f/8L2HIev3w4GD4bDr972zxc+ZnccKr58E7zzSfB8/jYzwMVev+/5WBsryiu/CDyU3JCOrrXuD2+ZyKEz7Y4jgW6Zt2Dhb+wOojtsazmYO392CHjarvN3R1791tfPefPWMf01MQDIbWXyfQ+Gqxw9rAFMYS9oYjCgvAkUrGxu3tUciTTYHUwiNIsrUjV5bmuqJQYARUUXjg60ZW+3O45EcTkcD9sdg0qItOvW3EP/10ViMBl4IMnxdIsn/zMngmPb0fdMSyHSqBXSzm5FkKpdi4xpHLfp6Tenvvvzc5yRUMJXw7BbcT2n//SP4WV2xxEnj9odgEqqdWBVk20P9s+uRa8ePyeQlV2Usiu9DSqeM7wl2PPxB6kuYkyTiPT3QuRA9SoQsDuIBHkd+F6sDRXllXlY4wxSslwjkpHvybumBY66jlE6emnegoVpMxGP3cnBIiClBhI6wm0bT1/x4z1jdrxylt2xJFPZXs7+7oLwYrvj6KNDgA4eHFj2YF1Dcl5vbFxldzDx9saQsxqzh5+aEuMMOuNyZrk9eVcSjpg+L2iUSsKRyL/mLVjYbHccKv6i8/2nxcDQHqoFrvP6feFOtj8EHJ/EeHrM4Rox3pkxdbndcSRAWlVc2pocRLsWpUyzbW5g5xvnvPmdkbmN1QkZiZLqTtlsZt78QniJ3XH0wT+q5lS12h2ESp5FgYDBmhpu8LvNzdX7QqFez8GfarZkDm9rnnBNWkyAkJ01dlCrTOpXs5+5nc5H7I5BJdTv7A4gziLAZ7x+X3WsjRXllV8Brk1uSL3jzj7nHHEMftPuOOKoHvi33UH0hN0tB2DNsWtvf3djmsZuWfjG6St/crYz0mbrtF52+9hqc+7lSyPp+qWcb3cAyhZvYV3LHMubmnq9oE4qaRJ3xHfSV9ucjhjTa6SowYM/PqqhLbdfjD8IRyK1WC3bqp/y+n2vAWvsjiOOfuT1+16OtaGivPJU4FdJjqdPPPmfPgmc/WU9pqfSrRXS9uRg7vzZO7Fx3mGJBDdPXfmz6rHbXjjbrhhSiYBcvyRyxrlVkXRr1nutak7Vu3YHoZJvUSCwD1gBlLzYEFjXHwYmV074fCAza3DKjjPoTGHxjSNagma/3XH0lTE8qgufDQgpOTC3FxYBd8XaUFFeWYA1ziAtWiHbiXhyPXnXhYC0KlR34s92B9BTticHUffbcdJ1BV/ZAAAgAElEQVTsxt1vnvvGrUPzGnYca8f5U5WAa+7CyImTtkSq7I6lB9KqVkTF3ctAZtCYyNqWlhV2B9MXrw09tyF76OSUHmfQGZcz05WRd7UjHImk7SKEEWNCLqfjl3bHoZLicaz1ANJZDfBpr9/XWTL7ByAtu0o7XEOPc2WeudLuOPpo5bwFCxfbHURPpURyMHf+7NdJZvOeMS1jtr34+rTl95zljLTlJO28aUQg+/tPRErLaswmu2Pphk2kWX8+FXcbgWog//lA/YqwtXhV2tmUVdraNv5Tab3mSFbW6EGtjlP32B1Hb7UEQ8/MW7Bwl91xqMTz+n3NpNC4x14IYyUGMcf7VJRX/g9wZXJDii9X1plni7P4Dbvj6IOf2B1Ab6REchCVlJpfiYS2Tnn33m3jtjx7TjLOl84EBv3kT+HsIYdMqt8o76+aU6VdAAaw6MDkhcCgmlCocVuwba3dMfVUo8MTWX/SV0IOh9Npdyx9NXjQ7FGBtvy0m6/cGGPcTkfMaSBVv/VbrEJ2Orrb6/fFHBtTUV55OvDzJMeTEJ68608F5wd2x9ELfuApu4PojVRKDv4KrE/kCbKa9r51zpu3FhUEto5P5Hn6E6dh+K8eDLfmNZlUXVishvSu+VHxswprfmzPy4HAW3at/t5biyZ8MZCZWdhvWjIHF99Q2hwkbeb1BmgJhl6+7Z8vbOhqHxEZJiJPiMgmEVknIs+LyAwRWSkiq0VkrYiUJytm1Tdev2876bko2n+AH8XaUFFeOQhrHamUWzixN0Tc2Z686wVotDuWHvrZvAUL0+tGFJUyycHc+bPDwB0JObgxraN2vPLame/cfaYr3JqXkHP0Y+4wxzzwu/DujDaTil/M/1c1p6rJ7iCU/RYFAi1YYw+GrmlpqdkeDKZN68Hi4bMbsoecmJbjDDrjdGY4M/OvcYcjkbSYXtgYY5wO+VZX+4iIAE8Di40x44wxJwC3RzdPN8acDJwB3CYiIxIbsYqjn9odQA/tAj4ba5xBRXmlYA2AHZP0qBLI4RoyzpV19mq74+iBDViV3mkpZZKDqH8CcZ1xRiKh7aeu/tXm4zY9fW48jzvQZLdx4v3zwz5nOKUWOtqMtaiLUu0WYy2Y7H6qrq4yYkzKdzfbmD2qNXTc5Wk9zqAzWZmlBW2OqSm10GVnGtuCL3z3yRePllDOAoLGmP9Om2yMWW2MWWKMaU+CMki9e6vqgtfvW45V/kgHYeB6r9/X2fdqHnBJEuNJGlfm6WeJc+jrdsfRTXfOW7DQ3mn6+yClLmBz5882fFgL02eZzfuWnf3mbQWFdZu88TrmQDaokdN+/kj4HVKnv8ZdVXOqUilZUTZbFAgcAJ4Hhm9saz2wsa01pae3DTgyIxsnfzXcH8YZdGbQoBmlgWBhSo8/iBgTdghf78auE4GYs6eIyCgReQ/YAfzMGBNzMSqVsr6H3Wsudc/3vX5fzAJyRXnldNJ0AGx3efKunQquhHZBj4M1wAK7g+iLlEoOAObOn/0S0LdVeo0Jjty15LXpb985zR1u7ldN9XYr3c9Zdz4eec3uOID3gcfsDkKlpP8AbUDGgkOHFgc/rNFNOYu9XwxkZub3+4UXBxd9trQ5SMq2IDS2tj15x9P/6dPMbMaYHcaYycCxwBwRGRqf6FQyeP2+DVjTfqay54CfxdpQUV5ZjFUgTZuFE3tDxJXpyf9MBhCwO5YufD9dxxq0S7nkIGoevZw9QCLhnSevuX/D+I1/125ECXLidjNj7rPhviVwffd1naFIxbIoEGgAngSG1YRCjSuamlIhmf2IRSPOD+SUeAdE5YXT6XFm5V+XEYpEWuyO5UhtoXCDMear3dx9LTClqx2iLQZrAZ0RL/3cAdTbHUQndgBzvH7fRwqd0XEGjwKlSY/KBg5nUZkra0aqrsP0r3kLFi60O4i+SsnkYO782SvpxcJoGS0H3jl76W25gw9tODEBYakOZrxvZly7JGxX37+/Vc2pijl9m1JRrwEHgPwn6g4tC4TDKbXQkT9nbGv4uEv7zcxE3ZGZOSI/5JyWUn8HgNpA4/fv/vcr3Y2rEsgQkZvbHxCRqdHZirKi/x8EnEWCZ99T8ef1+/YCP7Q7jhiCwLVev6+zz+ltwCeSGI/tXJlTpotzeKpV/BwCvtKXA4jIjSJyh4gsFJFr4hRXj6VkchB1B9C9fqrGhIbvfnPx9GV3THWHmgoTG5Zqd+VSM/28VZG3k3zaOqyWJaU6tSgQaMWqSSsKGhN5MRB4we6Y2tU7s8NbJn857BBHKl9/E6Kw8OyRgeDgrXbH0e5gY/O7L63d0O2KKGONt7oCOD86lela4C7geOBtEVmD1S32XmNMqtZsqq7djzXTTCq5zev3vRVrQ0V55bnA/0tyPCnBk3f1GeD22R1HB/PmLVi4uzdPFBGXiHwO+A7WZCt/BMpF5EURSfrMU5I6Y0s/qqK88kKswYWdM+HdJ733u9qig77JyYlKdWSg5Wefcqx/9zjHSUk6ZXnVnKrfJ+lcKo3NyssT4NvAMcCebxQXX3x8RmaXXUISLWIMz03+Rl1O0fF97k7018U/5/1ty8jLKuR71zwCwNNv/Z73t7+F0+GiOH8En515K9kZud16LsAzyx5k3Y53KC06lhtn3wbAOxteprG1nlmTrupryACEI6FI3b4H9mW7zZC4HLCXguFw69Z9ByfOX7wsHRdXUgnkm+A9D2taZLE7FuBfXr/v8lgbKsorhwCrgeF9PUm6Xk8i4QPb2+r/VADY3UXzlXkLFp7f2yeLyAzgs8C/jDELOzx+M7Ad+BLwuDHmyT5H2g0pXXM1d/7sF4AnOtvuaT204uylt3s0MbCPQOZ3/hkpO3aXSUYT+hLgwSScR/UD0VWTHwc8gOehAwdesrt70aLSCwPxSAwAph1/AXMvOnxikgmlU7j96ke4/eqHGVJQyn9WPd7t5za3NrBlz1puv/phIibCrv2baQu1smz9S5x7wmXxCBkAp8PlyC64PisUjjTH7aC9sDfQ+FNNDFQsXr/vVXrRtTkBtgI3xdpQUV7pwJqUo8+JAaTv9cThHDzalX2e3a0HjcDNR92rEyLiBM7GWr/ipehjnujmZ7DGMP0J+FK0JSHhFSspnRxE/Q8cscqmMeGhNW8vPuut703xBBuK7AlLtRMouOfR8KBhB8yOBJ7mIHBD1Zyq1G3qUilnUSCwCytBGNkYiQT/XnfoKbvWPliXe2yLOfaTcRtncOyIyWRn5h/2mHfUaTgd1qyoY4eewKHG2AsUx3quiINQJIQxhmCoFafDxatrFjBz0hU4nfGdACUzY1he2H3WQbtaruuaW3wvvb/hbltOrtLFbViFMru0Add4/b5DnWy/A/hYvE6WztcTV8ZJ0xyuUjsnSbl93oKFW3v7ZGNMGDgNqDLGBEVEjDFt0W21xpidxphnjTEXYI1rODkuUXch5ZODufNn76Vj5mwieya9//uqE/1/mSmp0eSnAIdhyC8fCkcKGkyipiu8uWpOVSKTD9V/LQbeA4avbG6ufre5Oek3kYPOnPD2yV8yyRxn8Jb/BU4YNbXb+2d6sjl57Dn89MkvU5Q/jCxPDtv2rmdy2VkJia+g4MwRDaEhWxNy8C6EwpHg3vqGa9fuqtGKBtUpr9/XAnwGq5Buh29HF2f7iIryyvOAHyQzmFS/nrhzr5oOHjuSuaXAb/pygOhkBsOwWg4A3Edsv1JEfiYiU4DLgISvoZLyyQHA3PmznwPuc7cF3j1r6e2Okv1VCc+aVM+5Iox5YH54X1ariff8ww9VzalKSj871f8sCgTCWE2yESDnzwcPvL4vFNqZrPNHjOGNE7/c4PHkJG0V5BfffQyHw8nU43pWsXj+ydfx3U89yJVnfoWFK/7IJ6fexFLfczzy8g958d2/xj3OouLrxzS1OfbE/cBd2FMf+OX8xct0sLA6Kq/ftwb4vg2n/qfX73sg1oaK8sphWN2JklZ+S4friYjT7cn/bAFWzXqyBIDPz1uwsE+t0caYZuDPwJzo/9tEpGPl9wrgTKyF+j5njHm/L+frjrRIDgCyG3ffevbS77ZkBAMldseiOpcZxPvA78KbXKG4LTzlB74Rp2OpAWpRILAfeAgYGgb588EDT4WizbaJ9uroS+pzBo9L2mC5Zetf4v1tb3HT7Ns5/P7SfTv2bQRgSEEpb294mS+c/wOqD2xhb118cyqHwyU5hZ/OCYYjTXE9cCd2H6pf+tLajbcn41yq3/gFkMypszcBX4i1oaK80gn8DUjaAntpdT1xFpa6sj++AUhGq2AE+My8BQvjNd7ySaxpkteJyL3AJ0QkB8AYsx24HMgDnorT+bqUNsnB5x79TFAw1wJ77Y5FdS2/mZN/+VB4lfS9b3cdcEXVnKqkFBxUv7cKq4vRyE1tbQf/Ewj8O9F93t/PO77ZccwFeQk9SQfrtr/DK6uf4MufuAePO7PXx1m4/I988rSbCEfCtH+NRRy0heK/2HRGxpDciPvcOpPgP8aBxqadr23cetXaXTW6eKLqNq/fF8Gq0U1GjXQrcLXX7+tsIba7gZlJiANIz+uJK2Pi6Q7XmGSsf/DdeQsWPhuvg0XHFnweuAioAUYB325PEIAria6dIr3N0nogpacyjcU3wTsLa4oxp92xqK5tGMFr35/j6u1K1WHgk1Vzql6KZ0xqYJuVl5eDdYN1AwdvGjT4nNOzs2cn4lwHnLnhd864M+jxZPf+rtqFP75yDxt3r6GhpY78rEFcdNoc/rPqb4TCQXKigwPLhni5/txvcqhxH48v+QVfjc4oEuu50ydcBMCaLW+wa/9mLjrtRgCeems+vp0rGDn4GG46L3GV7rV7H9uW596TkPm8m1rb6t/ctO28F6vWr0jE8VX/55vg/QTwLBDf0bSH+4rX75sfa0NFeeUFwAskaKxlf7qeGBMJtdb9zodpnZSQE8Cf5y1YeFOCjg2AiBQB9wKnYM3U+HGsLm4LjYlbz4zOz59uyQGAb4L368Cv7Y5DHd2y8bL4l1c6Z/biqd+smlN1X7zjUWpWXl4Z1kX2AND0jeKSS47PyDg1nucIG3j+lP+tzyksyz/63gogEomYg7X378nxRIbF87jBcLht+Zadn39yZdVj8TyuGnh8E7w3k7jptP/m9fs+HWtDRXllKVbLZ3GCzt3vmHD97tb6hz1AvGe0XArMnrdgYcIL6ADRBdBmAmuMMauTcU5Io25FHXn9vvuBH9kdhzq6aevNzBtfCfe0ie9hTQxUoiwKBLYCDwBDAM9v9tU+tzsY3BTPc7w65jJNDHrI4XBI7qAb8oPhSGO8jhkxxry/a8+9/pra2BO0K9UDXr/vIeCnCTj0eqxFrj6iorzShbXekyYGPSDO/OHu7Au3EN/xB9uBK5KVGAAYY7YZY/6czMQA0jQ5APD6fd8HKuyOQx3dJ5ebsy9cHom59HsMzwNfTWQ8Si0KBNYAfwFKQyC/3lf790PhcFxmzVmT721xjj0/aeMM+pMMT1G28cwOxGv8wQd79z+zanv1nTptqYqj27EGBcdLM9Y4g4ZOtv8ISMz8n/2cM8N7msN9TLzGHzQCl85bsHBAjHtN2+Qg6hasKb1UChNw3PRKZMo0X+Tdo+y6CLiqak5VMBlxqQFvEfAcMLo+Egn+dv++x5ojkT5Nw1vryg/VTPpCUgaM9Vf5+acOawiP3NbX4+w4cGjFGxu33rh2V00oHnEpBeD1+wzwOeD1OB3yFq/fF3Nq3YryyouB/43TeQYkd86lZyOZfa11DwLXz1uwcE08YkoHaZ0cRL+kN2ENElIpTMDzzWcix0/YYTpb5vwt4NKqOVUtyYxLDVyLAgED/BN4Gxi9MxgM/OnggcdaI72bVjNkYNmkrzS53VkJGYA8kBQVXTOmsc25u7fP31x7YPXL6z64dO2ums5qY5XqNa/f14o1tWRfp7H8i9fveyTWhoryytFYc99rRUMfiDicGfk3DAd6u0BrC3B5PGcmSgdpnRwAeP2+EHAN1hSFKoUJ5N7113BJaa3ZesSmVcCFVXOq9Eaukiq6QNofsOYWH1HV0rLnwQP7/9ibFoRXx15Vn1MwWscZxIHD4ZC8QTcUBMORHl8TNtTUvrt4/ebr1u6q6XVyodTReP2+A8AFWNeO3lgHfCXWhorySjfwd2BwL4+tOhBH3lB3zsU7sNYm6IkG4KJ5CxY+n4CwUlraJwfw32XOLyV+zXwqQRxQ/H9/CLsG15v2/t3LgfOr5lTV2RmXGrgWBQItWAOU9wAjfa2t+x7Yt++RhnD4QHeP8W7BxGbXmFmaGMSRxzM422Sc32h6sF7Kuuq9y974YNt1a3fVxGthIqU65fX7tgFnAz1dcbsRa5xBZ62U/wec0ZfY1OGcnuNPdbiP68n4gzrg4/MWLEzmAngpo18kBwBevy8AnI81ql+lMFeE0l//Plxf0GieBWZXzanab3dMamBbFAjUYd2QtwGjtgbb6n65r/YP3RmkvNddGKqd9DmHDjOIv/y8k4Y2hkdvP9p+xhje21nz2rLN2z+9dlfNxmTEphSA1++rAWYAy3rwtK94/b51sTZUlFdeAXwjHrGpw7lzLj4XyTra2EeAfcCseQsWdncilX4nLdc56IpvgleAHwO32R2L6tICYE6076ZSKWFWXl4W1mxZE4Htg5zOjG8Wl3y62OUaFWv/EGJePPW2QHZ+qbYaJEgkEuFg7W925XhCI2NtN8aY1Tt2v7pqe/Xn1+6q2ZHs+JQC8E3w5gBPY1VSduURr9/3xVgbKsorxwLvAoVxDk9FmUhDbWvdQwbMkE522Q2cP2/BwrXJjCvV9JuWg3Zev894/b7vAl/GWmVXpZ6fA9drYqBSzaJAoBmri9FyoOxgONz2s9q9j3a2DsIrx1ytiUGCORwO8gbPGdwW+ug4kIgxkRVbdz2/anv1jZoYKDt5/b5G4GLgyS52ew9rlsWPqCivzAD+gSYGCSWO3BJ3ziXVxC4fbgPOHeiJAfTD5KCd1+97ELgEa0CJSg0h4Gtev+/W6ExTSqWcRYFAG9YqqIuAssZIJPLT2r2P+1talnfcb2Xh5Gb3qHM1MUgCj7sgS7I+0RzpMP6gNRhqXOzf/FjVrprP6eBjlQq8fl8bcC3WJAdHCmCNM2ju5Om/AKYkKjb1Iafn2JMdnglHjlF9FTht3oKFH9gRU6rpd92KjuSb4D0ZWAjEbJJWSbMVq7WgJ/0ylbLNrLw8B/AprNrAXUDrZfn5k8/Lzbtkv2ewWX3GHRG3KyPD3igHln37ntya69xWdqCxaXelb9MT9S2t96zdVdPtgeNKJYtvgvd/gHsBV/Sh671+X8wxkRXllddgdbVVSWKMMa11D67ENJ4G/Az43rwFC7W3SVS/Tw4AfBO8g7FqAq+yO5YB6kngi16/75DdgSjVE7Py8gRrsOEcoM4ggWF5w66aOO3rRYOGnNBZn1WVIMZEzJr1P1297IO1D0eM+dPaXTW9WpNCqWTwTfCejdVV6Bmv39fZtKWZwBZgWDJjU2AijVta6x6aN2/Bv5+2O5ZUMyCSg3a+Cd6bgPuBPJtDGShagG95/b7f2R2IUn0xKy9vHHBLc8ag01oyi8jILn7tglM/e/HQwlGT7I5toGhpawgvXff4Yv+OxT8HXl67q6anc5YrlXS+Cd5hwMGuxthVlFd6sWZanJy0wNQ7wHVz58/eYncgqWhAJQcAvgnescCjwFl2x9LP+YFrvX7fe3YHolQ8zMrLK6zLG3N30J1XjMhWIDht/CdOnjj6jE+4nG7tXpRA++qrd7648pF36xs3371257buTEWoVFqJtiD8DPga/Xg8aAoIYXX3+sHc+bODdgeTqgZccgDgm+B1Yk11eifgtjmc/iYCPIzVYtBodzBKxdOksulOrFVRrwEOAYcG5w7NnTXpygtLCkaeYG90/U8w1Nq0ctPilau3vP4v4JGqrUu1a6Lq1yrKK8/E6gY90e5Y+qGVwBfnzp+92u5AUt2ATA7a+SZ4TwMeAk62O5Z+Yhlwi9fvW2F3IEol0qSy6ccCXwJKsAYrh04ee874U46ZcVGGO1NnMIqDnfs3bVhc9dQ7DS11jwKvVm1dqoMF1YBQUV7pBr4DfB/QVsm+awR+APx67vzZeh3phgGdHAD4JngdwM3APUCxzeGkqxqslpi/6BSlaqCYVDY9A7gQuBRrfM3ebE+uZ9bkT51XWjRuquiSyb3S3NZ4aKnv+eUbd695GfhL1dalR12lWqn+qKK88nisVoQZdseSxl4EvjJ3/uytdgeSTgZ8ctDON8FbiNXN6KuAx+Zw0kUQa4D3D71+X73dwShlh0ll00cBNwHHAtVA65iS8UNOP+5js4vyh4+3Nbg0Egy1Nq7bsfy95RtffS8UCf4JeKdq61IddKwGvIryysuxKjBPtDuWNLIKuH3u/Nkv2h1IOtLk4AjRAcs/BD6NDgrqynPAt71+n9/uQJSyW3QswjnA9Vjzmu8GQseNOLl0yriZ5xXmFJfZGV8qC4WDrR/sfm/1W+tf/KA12LwE+HvV1qV1dselVCqpKK90AJ8F7gbK7I0mpW0A7gD+MXf+bC3g9pImB53wTfBOxvqAXQE4bQ4nVQSBvwH3ev2+KruDUSrVTCqbXgh8Ajgfa3D+biAycfS0Y04ae/Z5eVmFI2wNMIWEI+HQ1r2+NUt9z29obK1/D2s++M1VW5fqTUmpTlSUV3qwukJ/H10boaMdWInTn3RcQd9pcnAUvgneUVhdjW4GimwOxy71wO+BX3v9vl12B6NUqptUNr0Ea2Xlc4E2rHE5xlt6WtkJo08/vThv2AQRx4Ack9AabK7bXLP2vRWbKqsbW+rXY60M69OkQKnuqyivzACuA24Bptgcjp3ewure/KROTRo/mhx0k2+CNxOrq9EtDJzZjXYC9wEP6ZgCpXpuUtn0EVitj6dhza+9FwiWFIwsmHLMzKkji8ed6nZ6smwNMknqGvdvW7vjnXVV296qNSZSg7Xo0xodV6BU31SUV07HKptcxcCYnr0V6/rxwNz5s1faHUx/pMlBL/gmeM/BWqjkEqC/3dibgWeBx4HnvX6fZuJK9VE0SZgBzMK6ee8HGjJcma5Tx82cOKZk/OSCnKKy/taa0BZsCdQc2u5fveWNHdUHNtcDa4GXgHU6NalS8VVRXjkC+AJwLf1z8PJqrKTgD3Pnz661O5j+TJODPvBN8GYDHwcuw+pCkK5TobYArwD/BJ7y+n0Bm+NRql+aVDY9B5jKh9eLZmAfEC7ILs6eNGbaCaXFx55QkD04bROFtlBLw55DO9dt2LVq68bda5qwxipVAq9VbV1abXN4Sg0IFeWVJ2At1ng1kM4LNK4B/o41wHij3cEMFJocxEl01eWzsBKFy4Bx9kZ0VNXAYuBp4EWv39dgbzhKDRzR2Y0mYM1wNAVr0oMWrBaFcGFOcc6Jo8+YMKxw9DGFOSVlbpcn28Zwu2RMxDS2BGr2B2q2bqqp2rmxek2DwQiwBVgCrKjaulRXS1fKJhXllScCV2K1XE4jtXs8NAJLsSoUnpo7f/YGm+MZkDQ5SBDfBK8X60s4JfpzEvZ9IYNYc/6+1f7j9fu22xSLUqqDSWXTs4DxwJnAqViJQitQh5UwMKr4uJIxQyaUDSkYOaYwp6TM48rIsSveiIlEGlvqd+8P1Gyr3r95+8bd79U1tzW0rw2zDXgNqKraunSfXTEqpWKLznZ0OjATq6vjdMDOyocG4A2sioTFwEodWGw/TQ6SJNqycAIfJgunAGOxpiKL13oKDVjTeW2P/rseWAas8Pp9LXE6h1IqQaKJwgSsSQ9OAvKjm9qAQ0SThaK8YXnDBo0pKcobVlKQXVSSm1VQku3JK45nC0PERCItbU0HGlvrawNNB2sPNtbW7j2080D1gS2hYLg1EzBAGPBjVT68X7V1qfYDViqNVJRXOrF6OpzQ4ceLdR2KZ9LQgHWtWHfEz5a582frpAQpRpMDm/kmeF3ACGAkMARrutT2HzfWzbfjT6TD73V8mAxs9/p9B5Mdv1IqMSaVTRescQllWIMLOyYLgjX7USPQ3q+fbE+uJz97cE5uVmF2TkZ+TnZGbnamJycnw52V7RCnUywODMYQiRhjTDDc1trS1tTU3NbQ2NTa0NTYUtdY33ywua5pv4lEwtlAeyJA9Jx+rIGBW4CdVVuXhpLzjiilkqWivFKAwUBJjJ9BWC2crui/YaxrQwg4CNTG+Dmoi5KlD00OlFIqDUSThQI+vEGPxmp9HIVVgO9Y++bASiCCWDduw4cFfIn+OPhw2sMjtxusBdy2Rn/2YN3g92syoJRS/ZsmB0oplcaiSUMukBP9ye7w+2CsxMGBVcsnfNjyGMTqqlSP1frQ3grRBNTpVKNKKTUwaXKglFJKKaWUAuI3EFYppVQaEZFhIvKEiGwSkXUi8ryInC4ib4nIWhF5T0SutTtOpZRSyaUtB0opNcCIiGDNJf5nY8z86GMnY41pqDbGbBSREcBKwGuMOWRftEoppZLJZXcASimlkm4WEGxPDACMMas77mCMqRaRvViDnzU5UEqpAUK7FSml1MAzEatVoFMicjrgATYlJSKllFIpQVsOlFJKHUZEhgOPAnOMMbpAkVJKDSDacqCUUgPPWqyV2j9CRPKB54DvG2OWJTUqpZRSttMByUopNcBEByQvAx42xjwUfWwq1hoJPwCeNcbcZ2OISqk0JiKzsVZ2B3jfGLPIznhUz2hyoJRSA1B0NqL7sFoQWrBWQl6GlRys7bDrTUcOVlZKqVhEZBjwNNAGrIg+PAVr/NIVxpg9dsWmuk+TA6WUUkop1WcisgD4jzHmkSMevxmYbYy53p7IVE9ocqCUUkoppfpMRD4wxhzb020qteiAZKWUUkopFQ/NXWxrSVoUqk80OVBKKaWUUvGwVUROO/JBEZmMNa5JpQFNDpRSSimlVDy8jf/RUvYAACAASURBVDXr2ZEKgLuTHIvqJR1zoJRSSiml+kxEWoHXsWYmCnR4fBzwqDFmum3BqW7TlgOllFJKKRUPa4F/A4ujK60DYIzZBOTbFpXqEU0OlFJKKaVUPIgx5n7gR8AiETkdIJoohGyNTHWby+4AlFJKKaVUv2AAjDFPicgO4E8iEgSGAN+wNTLVbTrmQCmllFJK9ZmITDbGvHfEY+OAWmNMvU1hqR7S5EAppZRSSikF6JgDpZRSSimlVJQmB0oppZRSSilAkwOllFJKKaVUlCYHSimllFJKKUCTA6WUUkoppVSUJgdKKaWUUkopQJMDpZRSSimlVJQmB0oppZRSSilAkwOllFJKKaVUlCYHSimllFJKKUCTA6WUUkoppVSUJgdKKWUDEdkqIib6ExKRGhF5WkSOsTs2pZRSA5fL7gCUUmqAWwhsAS4ALgcKgNm2RqSUUmrA0pYDpZSy1yPGmK8D347+f4KdwSillBrYtOVAKaXs9QURmQ2cH/3/k3YGo5RSamDT5EAppex1cYffW4GVdgWilFJKabcipZSy1xVY1+Jp0X8fEZGx9oaklFJqoNLkQCmlbGaMMVgtBo1Y1+Vx9kaklFJqoNJuRUopZa8viMgs4FSgEGgC3rM3JKWUUgOVJgdKKWWv9jEHh4A3gDuNMXttjEcppdQAJlZrtlJKKaWUUmqgS9iYAxF5QUTmJOC4d4nIX+N93KOc8zMi8p8uts8UkZ3JjCmZROR2EXk4zsfs1++ZUkqp+NDyRJfHWywiX4xPdPEhImXRld9j9k4RkbUiMjPJYfWIiPxJRO7p5XOvEJEdItIgIqfE2G5E5NhuHKfL9zFRz4U+JgcislVEmqNvwB4R+aOI5AIYYy40xvy5L8fvq2h8H+vrcYwxjxljPt7huN36wyZLogvaxpgfG2NS6uKjlFKq/9DyxMBhjDnRGLO4L8ewI7HrgXuBrxljco0xq+wOpjfi0XJwiTEmF2sw3VTg+3E4plLd1tvMWCmlVErR8oTqD8YAa+0Ooi/i1q3IGLMLeAGYCB9t6hKRz4uIT0QOishLIjIm1nE6NIV8SUSqRWS3iMzr7Lwicmm0iepQ9Jze6OOPAqOBZ6M1EbfGeO4SEbkq+vvZ0fNeFP3/x0RkdfT3m0Tkjejvr0WfviZ63Gs7HG+eiOyNxvy5LmIeHK0VqY6+H88ceZ4O+/63VkFELhKRdSISEJFdIvJtEcmJvu8jovE0iMgIEckQkfui56iO/p4RPc5MEdkpIrd2iPfy6PE3iMgBEbm9Qwz/zdBF5DcdztMgIiERuSu6bYSIPCkitSKyRUS+3uEYWdFmuoMisg7rwt+p6Ov+uohsFpF9IvJzEXF0eJ/eFJFficgB4C4RcYjI90VkW/Q1/UVECqL7d/mZEpHTRWSFiNRHa6x+2VVsSqWwXOB4YCbWQOcrgGuBG4AvAOXA14FvA98FvgF8DrgSOA84DTgOGAJkJDd0pSxanuh+eSJGHJ2+NyLycRFZLyJ1IvLbaMzdel+jr6dcRDZGt1eIiES3OUXk3ui9ejPwyaPE+N9WmGj54u/Re3Yg+v6f1mHf74hV3glEYz9PRD4B3A5cG33f1kT3LRCRR6Lv2S4RuUdEnNFt40SkUkT2R+N8TEQKO5znFBF5N3qeBUBmF/HHLG+IVe5qAJxYf9NN3fh7fVJEVkXLHzskWp46wuc7Kbs4ROQ2EdkUfV1/F5HBnZznJrHKUwGxymef6SquuNW4isgo4CLgqRjbLsf6Q14CbARuA/4GTO/ikLOwblLHAJUissYY88oRxz0+epzLgcXAN7G+vCcYY24QkXOALx75vA6WYN1EnwTOBTYDM4Dno/9fcuQTjDHniogBTjLGfBCNYyYwDCgARgLnA/8UkWeMMQdjnPdRoAE4MfpvV+9DR48A1xhjXheRQcBYY0yjiFwI/NUYU9rhvfkh1qJKJwMG+BdWLcwd0V2GYX34RwI3AQ8BLwNTsC6CK0XkCWPM5iNe/9eAr0XPcXL0Of8Sq+D+bPQ81wOlwCsist4Y8xJwJ9bc7eOA9oTmaK7AKqzkAq8A64H2sQ9nAE9gFWLc0ddwE9bnZi/wF+A3WIWidp19pn4N/NoY86hYzdgTuxGbUsnmwPpuTgTKCAdH0dYwDhMZg8M1DFdmMeJw0XSghYaaMK0BCLUK4TbrJ9QqhFsdhFodhNusH09uiKxBITILw2QVGjILwJPnxJPjwp3pwRAh2LiXSGgzrsz38eSsAz6I/mwD2mx8P1Q/peWJHpUnOr6GTt8bESkG/ol1n/w3MBe4Gas80t339WKsir18rHVZngVejB7nYuAUrLVanuwqzhguxaqg+BxwD9a9e5qIjMcqb0w1xlSLSBngNMZsEpEfA8caYz7b4Th/BvYAx2KVMxYCO4DfAwL8BHgtGv+TwF3AN0TEAzwD3Bc992XR1/6zTuK9iRjlDWPMDUDukX/To2gEbsRqaZgIvCwiq40xz3TYp7PP79exPq8zgFrgfqACqwz2X2JVIt+P9T6uF5HhQMwkol08koNnRCQE1AHPAT+Osc+XgZ8YY3zRQH8M3C4iY4wx2zo57t3GmEagSkT+iPVij/xSXgs8Z4x5OXrce4H/wfowL+5G7EuAX0V/Pxfrg9OeRc/AKjR2VxD4oTEmBDwfzR7HA8s67hT9o1wIFHX4on/kotHFOU6IfjAOAl1dKD4D3NI+JaKI3I31BWlPDoLAj4wxYRF5AngQq4AcANaKyFpgMtYF7iNEpATry3SLMWaViJwBlBhjfhjdZbOIPARcB7wEXAN81RhzADggIvcDPzjK6/1Zh/3vw/oMtCcH1caYB6K/h6JZ8C/bkxkR+S7wvhxe49LZZyoIHCsixcaYfRzxN1PKBplY378ptNSfhQlPwZMzltbGMLX+IPs2eDi0PZNAtRCogfpqCNRAyyGwkunuctJVC4E720Hh6BEMHjuCwcecTfHxLZR4Wxlc5iS7KItg8wHCbR+QkbcIp+dNrO/OgT68bjWwaXnC0q3yRAydvjfRGNYaY56KbrsfqwXxqM/t8L7+1BhzCDgkIouwKh9fxLq/32eM2RF97k+wEqXuesMY83z0uY9itWgChLGuTyeISK0xZmtnBxCRoVhlq0JjTDPQKCK/Ar4E/D5aUG8vrNeK1UPgzuj/p2FVMt4XXZDynyLyrS7i7bS8Ef2bddsRYy/eE5G/Yf2tOiYHnX1+v4w1tmFnNI67gO0i0rFStF0EmCgi240xu4HdXcUVj+Tg8i4y6XZjgF+LyC86PCZYWXFnX+YdHX7fBkyKsc+Ijs83xkREZEf0uN3xFnB89EN1Mlb2enc0wz4dK8Psrv1HfCiaiH2THgUcOFoNQCeuwqr9/6mIvAfcZox5q5N9D3tvor+POCLecPT35ui/ezpsb6aTQoaIuLFqIB43xjwRfXgMVtemQx12dQKvd4jnyL/p0Ry5/4hOtrUf/8jX6wKGdnG89s/UF4AfAn4R2YL1RVzYjfiUipd8YCZtDZcQDs3GkzOKuh3N7Hjbxc4V2ex5H/b62wv/yRNsglq/9WPJpL253emGglEllIwvofT00zlmRgNDJ2YTat0L5g0yC17Fusauw7oxKXU0Wp6wdLc8caSu3pvD7sHGGCOHT2TSnfe1ppOYenN/7+jI42aKiMsY84GIfAOrhv9EEXkJ+JYxpjrGMcZgFfB3i9XbCazW1vaEZQhW7fk5QF50W3s5bASwyxw+t39Xr6Gr8saurl/q4aIVqz/FajXwYCVD/zhit84+v2OAp0Wk4/U1zOHlHqI9TK7FSgYfEZE3gXnGGD+dSNZAzh1YtdSP9eA5o4D2wEcDsT4M1XT4kov1iRjFh3+cLhdxMMY0ichKrNqB940xbSKyFPgWsClaixxvO4DBIlIYzcA7agSy2/8jIsOOiHc5cFm0cP414O9YrzfW66zm8EExnb2HvfEAEODwwWI7gC3GmOM6ec5urFg7xnM0R+7fMf4jX3P76203GghhJTzt3a1ifqaMMRuB66Ndo67EqjUoimbqSiWCEziNcPATtDZciSd7ArtXt+BbmMe2N4U9ayHU4rY7yC6Fg3Bgs/Wz/gUnr1KAwwlDThhJ6enXUnb2xYw505A12EVb43KyBz+G1Z2hyxorpY5CyxOd6/S9EZHj+PBe2P76Srvz3G5ov7+36879vVv+P3vnHR5F8cbx7+xeb+kN0mmhHB2UjoKooCBSpSoqiIoUFfmBYhApgiIg0qRFEARUBIwUUXrvNaGFBAjppN3l6u78/thQQjokuUvYz/PkSXI7O/Nucrc733nLUErXAlhLCNFBiH74BkK48KP/j1sALAA8C1m9n5F7TkNKaVpuGNWCh+yvTgghDwmEQACF5QwUNd8oLWtz7XiZUmrOjZLwfKRNYe/fWwCGUUoPPtppbgjWfXLDu3cQQpQQQrd+giCUCqTc9jl4hMUA/kcIqQ/cTxrpU8w5XxBCVLnnvAVgfQFtNgDoRoQEFSmAjyG8OQ7lHk+CEKNVFHshTLTvhfbseeT3gihJvwWS687ZBmAhIcSNECIlhLTPPXwWgjpuTAhRQFDLAABCiIwI9ZFdKKU2AFkQFOI9ezxIbgJuLusAfE4I8cpduZgM4InLfhFCRkBweQ2glD6sVo8ByCJC8pCSCAlKDQgh9xKPN0B4D7gRQvwBjCrBcJ/mtg+AcMMt6D1wj3UAxhJCQoiQNzAdwPpHbhIFvqcIIYMIIV6513NPsHEQESlbvAC8i5z0bbCbs5AeuxPHfpqI34c1xDdBMizvosOh+QTxJwG72dG2Ph48BySeB04sB357S43vwjSYU1eByI/b4dKW72DLuQFTRhQ42+cQcq5IcV2KiDyCOJ8onKL+NpEA9EQoPiKBkHPgW8Jzi2MDgI8IIf5EyIecUBYXQwipQwh5ngjFVMwQIhoenvcE5y7q3Ztb7QTwHSFER4Rk3RqEkA657bUQcjwzCCHVAXz60FCHIUzuPyKESAghr0Pw9hRGSeYbJUULIZrETAhpCWBAAW0Ke/8uBjCN5CaO5873ejx6MiHEhwjJ9moI72kDipnjVIg4oJRugqD2fiWEZAG4ACE2rCj2QogP+xfAt5TSfJuGUEovAxgEYSU7FUIizauU0ntJcjMgTJAzCCGfPHr+Q+No8cDl9+jvBREOICK3377FXEdBDIYQUxgNIZllTO71XIEQ3rILQkLQgQLOi839G74H4dqR6xpaByHOP4MQUg2CMjwB4ByA8wBO5b72pLwB4UZ2hzyoWDQxN0TpVQju1BsQ/h/LICRVAcAUCO6wGxA+wKtLMNZmCElPZyDc2JYX0XZFbp/7cscwI78AKew99RKEPAsDhLjQ/pTSSjo7E3EylAD6wZSxBzbTLURt/R47JryEeY1UmNdIhx3/k+H6f4DNVGxHlZacNODiH8CGwWrMDJRj49AwnPr5c+SkHYMl+w5spnuu/oparBKpxIjzicIp6m+T67noA2AWgDQA9SDMESzFnVsCfoKQW3gWwlwjXyL5YyKHEHKTCiH0yBtC0jTwIPQmjRByKvfnIRBCcy5BCBn6DYBf7rEpEErk3stnuW9j7v/4dQhJxukQ8k+KuoaSzDdKyvsAviKEZENYxN1QQJvC3r/zIHhjd+aefwRCsZZHYSCI3TsQcsI65I5bKCRviJXjyXWF3AAgfUwVJlIFIEK2f60SZvsX11cwxPeUSMXBAOgIc9a7kMh6IP6UHSdXahEdCVjFSLU8+DYE6r7CoWG/HKg8cyCRzQcrW4G8McgiIo+FeO8vnNwV99sABlJKdzvaHhHnQhQHIk6JKA5EKiF1YDONAOWHIjtBihMr1Ti/kYHhccJQn0KqNQVavmtC/Z4EnHU3FC7fQ1gpE5OZRR4L8d6fF0LIiwCOQgjP+RRCaFFobnUfEZH7iOJAxCkRxYFIJYEAaAtzZjhAWuHUKgnOrJUiOcrRdlVe5FpA34ei1QcGaHxFb4LIYyPe+/NChFKXo/Ag9OYjSulRhxol4pQ4nTgQERERqQSwAHrCnBkOqzEY+2arcHYdqdK5A47ggTeBAWfdBoXLFxBioUVEREREyglRHIiIiIiUHBV47i3YTJ8jPVaDvTM1iI4EqBj5Uq7IdUDzYRzajbMCOAiFy0QAxx1tloiIiEhVRBQHIiIiIsWjhs38KUDHIe4gg72z1LgleuMrHKkSaDKEp89P4sxEeVkplw2DKBJEREREyhRRHIiIiIgUDgvKD4XN/C2u75Jj1xQV0p44DUbkSWCloGOj8OdVC+1Yx9vEMuSwTiH9BELJYxERERGRJ6SidkgWERERqWx0hiV7MdKu+yBynAbxJx1tjwgA2ugNauSl/Nj1x1i5hFENfCbwuTGdax9iCPlDo5CMg7B3jIiIiIjIYyJ6DkRERETyUh/mzIWw5jTDtvFqRG1xtD0i92AkoOOi6KR/ksjaozfvv6yVSzD2hdqWN1oG2iUsmSxlmR8gbDQpIiIiIlJKRHHgQAghMgA+uV++uV8+GhkCGQJZUefyFDajFQlU2DkwDcL3BAibmmRQ8R8rIlJavGHJng2gD3ZPl+P4Tww4cX7pTNAmg6nxua9pg+kHC9xNuYaXBjNe1xvrVdOlauSStyHskyAiIiIiUgpEcVDO5O5CWBNAYxmLZhoZacPzNMjMwd3GQaGTw+ypYmzVtAT+OkYS4EIUPmrCylhSZL92niLNRGmSgVoSDdSWaKB8goEnKUaqsPOAUoo0KUNiDVZ62MLhBIR43CuUUq4CLltEpDJBQPl+sJuX4tRqGXZPl8Oc4WibRB4l12vwxT9JZM1DXoOC6FLPB9N66nMUUmavViEdCSCuYowUERERqfyI4qAMIYRIATQF0Fgrw7NSlrTMttCabgpia+zHcK38WU1jX5ap6c7AV0PgriRgSNEi4HHItlDEZ/O4dpfHmUSeP3ybM55O4EhqDpVrZIix8ziWbcURCILhJKXUUuZGiIhUDnxgzloFU3o7/PamGvGnHG2PSCHQJoOo8flptMG0gr0GjyKXMBjZsYZtRPsaVpmEGcsyZBkA8YEnIiIiUgyiOHgCCCEEQF0CvOCmJK8brLSlv45Yn/VnJc9UZ1WNfFg08mXhqih7AfA4ZFsoziVxOJPI49gdznTkNmeLy+BlKimOpJuxAcA2Smmso+0UEakACIC+sOYsxfFlCuz+Wga7qJGdFkYCOu4Snbwrmaw+UrTX4FFq+2iwcGAzo49OfkyrkA6EEH4pIiIiIlIIojgoJYQQBYDnGTnTi4L2kQCqAWESa9daEuXzISw8VSVa1HIa0nJ47LzO4c/LNuP2a3YGwF0bhz9NdmwBsI9Sana0jSIiZYw3LNmrYEpvj41vqiuiCtHcIxasOG3DxRQePAW+7CBDeEcFAGDdeRsWnrAiOpWH0UoR6sZgXCsZhjUpPO3obCKHcTvNOBbPwWAFglwIYsdo7x+PSecxZJMJpxM5NPVjsbqnEsGuwr3py91mRF6149i76nLxXJYHtPFAmtNpOq1fQq/Bo0hZgjGda9uGtQkxK2Xs2wA2lrGJIiIiIlWGyjWTdRCEEIYQ8hyrZNcRCbmrCFKs8+rh9VbAewFaHmBXdJcr+9aXVjphAAAeKgZv6KVY31ulTv9Mq/x3iLr6hLby9xr6MBtlLDJcFWQnIeRVQohY9lakKtAH1pyrOLmqExY0rxBhAAAnE3i4KwkCdPkn4zuu2xGTzuPFGhK0DWRxMYXH21vM2Hq58GTom5k8Eg0UTXzZAo9/+o8ZpxM5vFpbgpN3OHz6j6DxY9J5zD5kxY9dFZVGGICRAJ2+xKzdtx/7BmvjKGbvuCztv/SwNj7DtDLbbNsEwL0MrRQRERGpMoiegyIghDQgUvIWGLwpdZVK3Tu6q12edWGkblIAAKUUlz+Kxm9dZegRJnWwtWXPXRPFpigb5h+zZl27y/M8xTKzHUsppVcdbZuISCmRwmr8AeaswVg/UOWoPQte+zUHmy/b83gOTtzh0NCHwb0iBB1XGbE3jsOoljLMf1lRZH9/RtvQc70pn+eg3o8G1HBnsPUNFbqtzcGNdB6XPtDg1XU58FETLOuuLL+LLGNo4wE0p9OMx/YaPIpCymBi17qW3s38DSqZpDuAQ2XRr4iIiEhVQVwNfoTc8qL9GSUzidWw/m7t3KSubVylCv/8D2lCCDSNtNzSU9lMjzBpJVmGKznuSoK3m8rwdlOZ7lIKhyUnbR+tOmP9wE1JojLMmAvgd0ppjqPtFBEpBl9Ysv/C7RN1sXGoCuZMR9uTh+bV8q7+W3PrifkX4GUoKXW9GOy4ZseA33OwJ9aOrrUk+OuKDQdv2nFllOZJzK1YGBbo9CVm744vM7es2cZj8uaL8t3RKfIfBjTZJZcwn0pZZiHEZGURERERAGJY0X0IIZ6MlPmSyEiSqqbqx4D3AmqHzQ9T+fbzLVAY3EPXVMfuTwJfgaY6hHpeLOa9pJClfKpVLntV2bRjEPujQoIUrZwsI4SEOto+EZFCaAWr8QKOLGqINT2dThg8ypzDFhy+zaGmO4P3mhe51UmRzH5Bgca+LDZftqOpH4uvOsoxersZ055X4K8rdjRcZEDDRQasPG0tQ+vLAX1fmKCkqw7FlnnXuy8n45X5+5V3MkzfGCz2XwAU7aYREREReUp46j0HhJC6jIL5H5GSPi4tXKjny55KRUDJnxHqumrcyuHZhGweftqqr7VkLEGvelL0qifV3s7iseCYdciCY9aBLgoSmWXBl5TSi462UUQEAAFnHQm79Vv8/rYSV7Y72p5imbLHgvC9FoS6Efw7RAWd/PE9B6FuDA4MU9//PXyPGa4KgvZBLBouNmJhVwV4Cryz1YxWASzCPAvOXXAoDAvaOZx+u+fxcw2KIzYtBy/P26+e26/xa61rejbSyCUvAyhdOSQRERGRKkbVn80WAiEkhFWyGxkFc9LjRY836nxXR+E/3L9UwgAAWCULRYCCW3DMyVfgygF/HYOZnRXS+HFaxfg28td0cpzQKdiThBC9o20TeapRwGJYg8z4WVjSzumFAU8p3o80IXyvBU18GRwcpkagS95bc3Qqh+hUDhZ76SNfbjyUhHyvWlLL6ixaVmfBU+B8kpM6PvV9YCJKuuJgbLkOk2PlMHz1SeWC/67WNlnt5wA8V64DioiIiDg5T11CMiHEl5EzUymlgzxf9JR4dvWUsMonWzVL+TuF6vak8ldGqp1w+a3ieGeLifslRkssJrMFwC5qzfmUUnrZ0XaJPFV4wZL9H27sC8Uf76pgNTraHgDAslNWHLjJ4b8bdtzKomjkw6CxL4vXwiQ4Hs9h+gErGAK82UgKba7HoKY7gw9bCqFFZEoWAOD0CDUa+7KITuUw84AVNzN57I7loJYCvetJ4aki+LZL3gWO7uty4KUiWN5DibOJHBovMaKVPwsK4MhtDmffU6Ohj5PduhgWdMxF+vXedLL84I0KG7ZNTQ8sHtTMpJJJRrIMiaiwgUVERESciKcmrIgQ4kpkZBKRkg9c27ky3t295RJd2Vy+tpGWxGxOZnmeB8M8nc6Y21k8fjlvY92Gfg2JzkuZfXJr18zDGzozMsVKarNMpJQ6d7C3SFUgABbDARxf5otd4Y8fsF8OHLjJIeLsg9KkZ5N4nE3iEexKEJ8tLNDwFFhx5kGbDkHsfXHwKIkGmqc/ow2IOGtDkEtecRB5xYb9N+248qGQhNzIl8XMTnJ8d1jwdM7sJHc+YQAADXrDzKjo8oOnKrTQw8FraXjtx0PKDSOeXaSWS3wVUvabihxfRERExBmo8p4DQggDBm8SCfle10wn9ento5R5lO28gVKK6A+j8eerMrxSp+qVNC0J7241cesSAuA5ZP79mQZnzED6npWmnOgDVmq3jgVoBKXUSWMYRCo5tWE1HsCemW44NP+pWfSokjAs6JgLdNr+DLJsf8V5DR7Gz0WBDSNa5XhoZEtVMsk4iJWMREREniKqtDgghDRklMzPUg9pTf93/NXK4PKr7X176S2ubaqB2fqGusqVNC2O+CweNX8wwG3Ij5B5BeU7bkm4grRt8432zKRYajUNo5Qec4CZIlWXxrDm7Ma28TqcXv10uu6qEg37wtTlW77u1wcc+r90VUmx9p1njYEeqq0auWQwALsj7RERERGpKKrkg5QQomTkzLeMgjni29e3Yc2vaparMAAAXTMXdl/i07kqPmWvhWM9Q7iChAEAyP1qw++t+Wr3ziPqMXL1HkamXE4IqUTF1kWcmLaw5uzHn++5iMKgCkAY0E7hdM7estvX4HHJyLGh16JD6nO3MrobzPbtAFSOtklERESkIqhyngNCSBtGzmxU11O7VBtaTSV1rZgwH87EIXpUNBJGq+GjcfhzrcJ44DVYAJlXcLHtebMBaTsXmUzXjmZQm7kPpfRg+VspUkV5CVbj7/h1oAoxux1ti0hZoO8D84vf8WEO9ho8jIQh+L5fY9NzdbwvaBSSjgDEjR9Fnj7CXdwB+OR+FVXW0QwgDUAqgDSEZz59pRyrAFVGHBBCJERGwglLxvm/46/UNdNVuA3Xw69xnwTy7FfPPT176Yz4y8T9El8dnkMXlCqrMefKYaT+PdcE3r6Y2iz/o5RaystGkSoIz78Om3ENVvdU4vZxR1sjUhYQBnTMBTrjYCZZus8xuQaFQQgwv38T03N1vE9oFJIXAIj3K5GqRbiLBkBDAI0B6AH4A/DFA0HwuMmaaQBuA4gHEAvgHIAzAM4jPFMU2k5KlRAHhJAgRsFsUgQoage8H6CWujkmKTglMoW67kvho9/TOGH5j7LnTjaPGvMNcBv8A2TeIaU+nzNmIPXv73Msty4lUpupF6X0TDmYKVL1eAmW7D+w8mUlEs872haRskLfG+aX5vBhU53Ha/AwLEOwdHCznGdCPfZr5JJXAdiKPUlExBkJd9ECaAugKQQx0AhADVRsGUTENwAAIABJREFUqDkP4CoEoXAGwEkABxCeaapAG0QKodKLA8KQvkRKlnv38FZ4vuwpIYzj8oHNt8y4MS2GWj9VkaehpOl7f5m4NfHV4Dn0x8cWQ5RSGC/8R+/+s8hMOdtHlLMvK0sbRaocbWE17sDq11S4Jea1VxkIAzr6PP3mcDZZvDfG0dYUipQliHirZU7DANftGrmkLwDO0TaJiBSHPkLP1LBam/8Zn9gVQGcAz8A5S9mbAewFsA3ANoRnXnGwPU8tlVYcEEKkjJxZwqiYfkEfBamUIeWbcFwShJKmUdjaQ46Xa1XtkqYJ2TxC5xvgNugHyHxK7zV4FFvaLSRt+NLIm7I2Upv5PTHMSKQAnoM1ZyvWD1Tj+n+OtkWkLGnQC+aXv3dar8HDyCUM1r37bE5tX+1vGrnkTYhlTkWcEH2EXgKgC4C+ALqCUo99N+Mz3Hje3cGmlYYYCEIhEsA/CM8UK4ZVEE5/Iy4IQogHo2AOqGqp+tWaXssphAEAEEKgbajllpyyVvmHxdR9Fo71COLKQhgAgNQjANWGLVArAhr0JTLlMUJI9TLpWKSqEGqym7aaCNSQqh1ti0hZQhjQzlPo/P0JleJ5ZLHzGLz8qOpmmrFXjsW+AMBTV75axHnRR+ib6yP08yDE+EcCGArAC4QwmzXqaMdaV2pCAXwA4G8ANxHuMhPhLrUcbNNTQaXzHBBC6hE5+dfjOQ93n74+MkeGERVE5vFMZK6J5zLHVN28g3teA9dB8yH3CS3TvinlkXl4gy3r8EYDtVt6UEr3l+kAIpURrxxbzum5p+b6ppvTma9af0WUOycBx5c72i6RsqBBL1hensvXmbq/UoiDe+gUEmwd1dbo56KcKJMw8x1tj8jTiz5CrwXwNoARAMIKa1fLaj34R3ximwozrPzYD2A5gI1iUnP5UKluxoSQrkRGjlYbXM3Ht7+v0wkDANDU1yDbQNnUnKq75cHX+y2cxCOQK2thAACEMHBt3V/q1XOiG5EptxOGHVjmg4hUJuQGq2HX+svrvdZFr2O3x24no/eMRk6Xr4HnJjraNpEnhTCgncPpDwcqh9fgYbLMdgxaflRttnMzAbzgaHtEnj70EfogfYR+DoRqQN+jCGEAANek0tq0aoTBtQOwCkACwl0WINwl2LHmVD0qjeeAkTJjiIxMDx4brFTVcu69aK5PvsZ/FsIzX3aseiVNEw08QucZ4FIOXoNHsabEImnd/0y81fw5tVvnlOtgIs4IMdqMa44nHu856r9ReWIHG3g2wNIXlkJ9/k/KbP3Q+VYJKhqVJ1DrBcC7HuAaCKqtRu0KH46XuRBI5IRhWQJCgPshMPf+ZJRSnge1WynsFsrYDVRijGdJxg2C5EvAjf1A4rnys7v+67B0nVfpvAYP0zLEHaveapGtkklaALjsaHtEqj76CH0jAJ8D6AmgVFEKq+4kRTWzWOqWi2GOww5gHYDpCM+sbKFTTkmlEAeMjPmS1bDjQyeFqmSej1tqt+JI3ppMPQ6m8pdGlCK0KOwVoN3HgHddgLMCyZeAtf0Bc0b+tl51gM5TgICWACsDbuwFtk0AMm8Jxxv2AzpNBmRq4MwvwI5JwuusFHj/CHBsKXB0yWNd24d/m7hVcX7wfGthhYRN2TOTkfjL+BzelL2Q2i3jaWV4w4qUCVbOOirRmDij99beapM9f3W7YF0wIl5aBd3tk7zklz6VdnJZajxqAfV6gAa1oTb3+hwUrqxELiWGdDOfkWSihnQzsu9amJwsK8nJsiInywKzwQaeK/ijI5GxUGikUGqkUGpl0LjJ4eKp4Fy8VcTVR8WwUgacycRJjDcpG39Egsvbgev/AvwT5gYSAjr6HJ1zzER++O/ak/XlYPq1COAnv1LvjlouaQgg3dH2iFRN9BH6mgCmAuiHx8x16Wow7vkmJa1jWdrlLKy2d97zhX1YAoDw2JndxEpHT4BTiwNCCCEyMkviIhkZOilUXVG7HT8ppjgT4mbcoLbPNCX78DboBfReAdjNQHQkYDUC1ZoAv/QBshPytlW4CBN8XTXg8jaAswH1ugtiYlFrQOkGjIsC0uMAQxIQ0l7o5+pOQXzU7wksaQ/Q0oc93fcaDJwLuW/NUp//uHA5mUhaN9Foz0zaRG3mtyilYsWCqk8Hg9Wwrc9ffZS3s28X2shb5Y2IlyKod1YyL1vWiX2c97XTo3AFnnkPXM2Xec49jDBSKUlPMHIJMZlIuZnNpt4y4G6iEby9fO7lKp0MHv4aePprqF8NF94rUMsoNVLCGe7aZfEHWBxdRHDraOk7rt8Tlq7zK7XX4GHCu9e39G7qf1KjkHSAsJIpIlIm6CP01QFMBjAMT1iCVMvx5w/dvK0vE8OcCI6S5PqWFVoz5EoIJYaXAfg8dma3VAebVilxWnFACGGInCyUucsGhUwMUUu0zliSt2AopYj+IArbXpfjhRolEDRjLwAuAcCqbkDsgaLb1uoCDNwoTP7nNRRee28/4NsQWD8YyLoNvLtb+DnuIDA+BvhnMnDhd+CDo8Ca3sDNw491XaP+NnEr43zh+daiCk+25q0mJG8Mz7Emx+yjVlN3Sqm4AVHVJdBkN50bvXu0y+E7xb9XdTIdlndZxgcTOVUsbMXCbq4AE8sZtxCg/SewBnfmWI0Hy/McTm6Pp7cu3SUpN7Ph6Nu2UitFYD0PhDbxsgfUdZNQu52yaRcoe2Y1g9M/F7/4QAjoR2fp9yfMZP6/ldtrcA+WIVjzdsuchv6ua9RyyYgn7Y8QQgDcABCU+1I9SmnUk/YrUnnQR+jlAD4DMAFA2ZRlpJQ7cDM+24XnXcukPydhtb3z3i/swzo88nI6BFG1KHZmN3FPklLglCs2hBCWkTOr5T7yQaGfh1YqYQAIJU01ei236KSt+Ee4Rw1BGNhygDajgYnxwEengRbvFNzenlv+X+UGuAULHgStn/CabwMgPVbwQDw3UfBGAEByFPDiDCBq62MLgyQDj+Wnbaz2pXEOqcLEyJTw6f+1Sl6tTnsiU/5GCKmy1aCechRGm3HnojOL1CURBgCQZc3C4G1DmDPmZJhGn+Wh8ihnE8sJiQLoHA7L6Mu8feRRxKAOt2vNGnbxiMHgbDYk3cgiyXGOFwYAYMq24fLRRGxbfF7y05h92LLgAjl1wYNktZ5BbZ8lU37o3zz8WxTeQd0esMrdaFURBgDA8RQjVp9UGS32QQBeK4Mu2+OBMACAwWXQp0glQR+h7wLgIoApKCthAACEsFs06iolMjlKUqbZB7Ys4JAbgB8AnAqeEPmocBApAqcTB4QQwsiZn+X+8tdCJoaoWXXlnAPqmunY3XdKEONwbyIjVQmT/YubhMl+t++AsG7528cdECb4ch0w+qwQQqT2Eo5pfICcu8DW0YBCB/g1Bg4vEGKDQzsAe2cB3RcI4mPQH4IwKSHT9ls4xt2fk/s5rsQwYaXw7jVZJfMK6UxkytWEEKd7/4o8GTm2nO9OJJ4IWHlxZalWBMycGSN3jWT3pJ6mOaNO8HALLicLywGf+uDf2m63fRKL5Ord+R0rVjALhvXHpplT2KgDe2A2GnDj9EmufrtqTiAL8kMpkHQjC8e23CCrPz9C/vz+DLmcEEJtg3fAOuYGh87hgvC5ByGgL0yhCw8mVrnPb5bZjhGrT6pMVu5nAP5P2N2g3O+nc78PyPUmiFRh9BF6T32Efg2AHQBK/pAuBZs16iq1ir6Oe/5SbjhRYTQEsCd4QuSS4AmRmoqyqzLjVGFFuTkG8+U+8rdCJoWoWUXlFAYAwBk5RI+ORupYNdxVRTwD3UOFyToALH0OuHMK6Pot0PJd4PRqYPOH+c9hJELugFcYkHkbCGoNNOwL7PsW+G9q3rasFBh5GDixXBARTQYDEa8CL38jPLBXvFjstSQbeQTPNcBlwPdwpDi4B281I2ntZ0bb3fh11GYeLiYpVxm6pJvTN72y6RVVljXrsTsZ3+JTrleN1xhVRHeCO6eLP8FR1OkKe6epdrgGSGJOn7Qf+3ODJCmm4JX02s+2QcehH3A/TzxRaW6KEimDGk290aiTP+/mo2KYm/t5ZusHDPybw/rKAr72V1Uj16AgRj1f0za8fehprULaGkL8c6kghMgBJAJwBfA8gN8hrIJ2pJTuLVNjRZwGfYT+ZQglOr3LcxyG0uQzsbe8SBXYwI+jJKWBZYXaBHlJy1jGABgaO7NbMTHcTzdOdXOWEbKISMjw4M+CK7UwAABWzULuJ+MXnigmND7zFmDOzPvavcUhq1HwEHjWAlwD8x4/v1EQAlFbgBrPC6/H7Mnff6tRQvWjY0sBX72QpJwSDaRcFn4vAdP3WzjGrbpDvQYPw8gU8Hljulri4v0GkcrniKtpVQJPk9306yd7P3kiYQAAs47PZpdcWE5Nb0UKOTrORqsPYR1zhbO+tgKnj5wly0cPx9Y50wsVBgAQd+4MVFolK1NVnhBLu43H5aOJ2DD9BLNx5knEZNWj9g/Pw959CV1zKtWpnj1lzY+7r0mvpxjrm23c/x6zi1cgCINkAHsB/JX7+qBCzxCptOgj9HJ9hH4uhB2Ny1UYAABPiPdZuaxKlN1dzz13qRTCABB2Xd4bPCFydvCESHl52VXZcZobNEvIUA3DDNWaIUtYHl8lSo7omruQX6NtRa8acTbgyCLh556LgR4LgMYDhVCgcxuAuq8AH54A+v/y4JzBm4C+PwshQiMPAmpP4Mp2IPaRzYR11YH2HwN/fwLwHJB6BfCpL4zTsC+QVny8b7KRx9KTNlb70sdOpdYYuRo+A2aqWbX7cLDSzxxtj8gTQQxWw9oNlzeojyUeK5MOV1xYwUw9Oo2a+/4sfJ6cgSaDYP34Bp/dfCzd99vvzKIRg7Dvl5Ws4W5asadacoxIi7/FN+xQvQIMLXvuJhix46eL7IHfroHjWDK0eTX8PLQZ76aqHBXoSgtPgZFrTqptHD8RQEGx0MVxTwRspZTyADbl/t4n16sgUkXQR+jrAjgKYDQqcCV/vU6bWFFjlRc8JSlT7YOLSG4qFAbAJwCOBE+IDCljs6oETiEOCCGdlQyzKCIgUPFbcDAU500k7qvrHM9Xbo2gbaQll9NL8DfeNwvYP0coU1r/dSGBeF1/IP5kwe2TLgKBrYBG/QURceB7YMOQ/O1enC6URo07JPy+/zvg2i6gbnchHGnLR8WaNuOe16Ba7WLbVjSsUgefN2aoGKl8MiGku6PtEXk87Lx9eLIpufW8U/PKdBOTrde3knF7P4ap27dA24/LsuvS4dcYtg9OcznPTcfO5T8xSz94i5z9529it1hK1c2VIwdISGP3yhsrTIAmnQNo1qpliO3ZE00So+iJT9thQf9GVCFxikdRmZKQacanv51TGi32zQB0JT2PEOIGoGvur28TQiiAP3J/dwHwatlaKuIo9BH6fgBOAGhU0WPvUyrcK3rMsmY917G0XoNHaQzgRPCESHGH80dweM4BIaShgpCDS/0DNM1Vwv/4rt2Oobdu8kmuoIHTarKM9PEfHCteXIEWvnmF5dX0q3h9y+sFtv+y1Zdo4t0Efmo/WDkrzqeex3cnv8P1jOsAgFdCX8HopqOhlCix+dpmzD4xGwAgYSTY1H0T1kWvw9rotQAAylNEfRCFf/oo8HxI5QkHuEeKkUfQPAN0/b+FolqRu7I7FMudy0haN9FI7ZZWlNLzjrZHpFQEmeymS/3+6qe6kXmjXAZo5NUISzovhvL0Wsps+7TiQtBkGnD91nK8/zPsyb+38Ec3rWdKKwgexjs4FH2/nEmXjTtSKcPoQhp7otPAWjSmRdP79ivq14PPpM95pmYt8tGfUWTnpWRHmlguzOnbyNylvu8vGrmkkBJ0eSGEjACwGEAWgN0PHaoHoBaALZTSHmVvqUhFoY/QEwBfQdjl2DFQyh24edvgwlMXh9nwBPCUpNa3rFA9oTi43x2ASbEzu80sg76qBA5driGEeCgJ+fdrXz/1PWEAAO4SCX4NCmJqZrMkbtwV3m588v1kVl9aff/rr5i/Cm3Xu3ZvGGwG/H3jbxhsBrTzb4clnZdAxsjgKndFeOtw5NhyEH03GkPqD0G76u0AAG/WfxMWzoJfL//64PoYAo1ewy0+YX1i+x3BjAMWnnWtxjmzMAAAebU68HhplIpI5bsIIV6OtkekxJBsa/byFedXyMpLGADA2ZSzGLRtMLIa9SH2vqsrxh3ZeCCsYy7T20YdVn38AQ7++vMTCQMASI6NAaWUVKtdCcuTE6D16zVp1ppVeYSN+eIlxA0YwNz9ZiYW9a6PlUOa8lXNiRC+9aKC4+kAAK1LeMq9OLgllNLX7n0BeDf39ZcJIZW0Xq+IPkKvBvAbHCkMAIAQ9q9KXNJ0A9fhQhkJA0CYC88InhC5MXhCpKLY1k8BDvMcEEKImmF29dS5tJ3o41NgOIGVUoy7E88dsZuI/7QajMyj9FEH9zwH+oiSJd828mqEsylnAQDV1NWwo/cOAEDfrX3BMizWdVuHsbvH4mTSSezrvw9zTszBttht2NxjM0buGolTyafy9Jd5NBOGdfHc3dEap4rZL47K4jV4mPQ9q6zZpyMvUKupNaX0yWZiIhVBz3hD/OpXN72qtvHlv6edn9oPES9FUI+7N3nZii7l83lUuMI+4Hee8whj/vnpR1w+vL/4c0pBt48+5Vh5GLtz2cUy7be8CWnkiU6D8noNHkVavTqqz53L84FBeOvX88yxG+kVaWK50lXvi1m9G8Vp5JI6AMR701NK7k7Hf0EIZ3E4dS3W/RvuJLZztB2lhacktYFluTIHCnU5dL8PQPfYmd0yi21ZhXHYGo0UGFNNInnmE2/vQmf8MkIwv1p1tptcQ299do2abpoee7yD/Q/iYP+D+KnLT6jvUb/QdveEAQBIWSFZjuM5pJhScDv7NiycBR80+QCz2s8CAFzLuIbxLcZj181d+YQBAKjrq5FhoGyGuXLlT8w8YOVZF+f3GjyMa4chMoV//TAiUy52tC0ixaLNseUsm3RgUoUIAwBIMCag7199yU2tB7F8eIwDW6YpDkDD/rCNvkRjEixYPnp4mQsDALh2/AjrG6KsdHkHrV+vQbPWRBQZDmWLj0ds376MYcki/DqkCeb2aVhlShT/fT4Rp+LSvcw2boKjbRFxDPoIfQiA/XASYQAAl2VS5yhBWEo2cu0vlJMwAITNB/cGT4j0Laf+KwUOEQeEkGYSQqYtqO6vlhVThZIhBOE+vuybLm40PjyGZkdll2oso82IPbf2YHvsdiQYE/Cs37NY8sISeCiK9soqJUp83eZrAEDEpQikmlKRYcnAlENToJVqUc+jHn6++DPs1C70eXYJprSegsiekVjceTGCdMLGlhKNBHIfGb/oeMVMgMqC1Bwei09aGfVLYyuVt4MQBp7dx6sYqaIvIaSno+0RKRyjzTjr35v/Kk8mFZJ0X05kWDIw4O8BzAXOQEyjz/BQlE2IDn1lHrW+PBd/L/iebJ0zgzFlP1k51sKIO3caKp2SlSkqTw5TSCNPKFUsUufNK74xpbi7YiVzo3cfvOxmw5nx7fh6ftryN7ICmLjpvIqndDyAYEfbIlKx6CP0dSCsSDtVZRyeEN9zlaykKU9J2hT70MepUFQaGgE4FDwhsmY5j+O0VLg4IITolIRsmerrpwiQlWzljhCCUZ5ezHhPbyTNvomMIxklHm/Uf6Mw6r9RmHpkKvpH9ke8IR4uche09Cu8upyr3BXLX1yOxt6N8duV3/D9ye/vH9sasxWdf+uMNr+2wfenvsf/Wv4PC88sxGs1X0MH/w74aPdHYAmLqW0ebEambaEj66LslWa1b+YBK09c/DhF9bqONqXUMHIVvHpOUhGJPIIQ8qQ7lIqUD814yg/95vg3Re1oWW6Y7Ca8s/Md5lB6NDV9dIqHS8Djd8bKwQ3fb8+p2R1rP/8Y104cKTtDC8BsNODunXi+QSUqadqqZw2avbZor8GjWK9fR0z3HsS2/hdsHd4C416olAucebidbsLivddl2WbbEkfbIlJx6CP0egjCwCmfR+u1mgRH21AafufalafX4GFCABwInhBZpwLGcjoqVBzk5hmselGrc++q05W64kZ/Nzcy08ePpi6JR8r2lGLbK1gFvJQF56fyPA+NVIMQXQiqqavdf91P7YefX/4Zek89lp1fhimHpxTa/9B6Q2Hn7VgXvQ5h7mFINaXiesZ1xGTGoI7bg/eTrpGORGfQSpFml5rDY9EJK6N5sXJ5DR5GXj0MulZ9lESm/IMQUmmvo4pCsq3ZS7898a0i0+K4kE47b8fYPWPZrbf+pTnvH6LwaVD6TtxDYRt9iUsxKUjEJx+StNs3y97QArhy5ACp0bRylDQNbugJtYZFyvdzS3+y3Y7UefOZm0PfxActfDGnt77Shxkt3hMjMVjsbQC85GhbRMoffYS+MYA9qICNzR6XvSqlm6NtKCk8JXfD7UObVeCQPgB2BU+IDK7AMZ2CCp2wMsAwN5bt8oWPz2Nng3fR6cgif39kb0hGwq8JRT4s3BXu2N5rOxZ1WoQvnv0Cv3b7FdU11ZFqSsXRxKPoFNgJW3puwbznH7i7V3ddjRCXENwx3IGclWN8i/EY32I8GnjmnTz4qHwwvOFwTDs6DRzlcCPzBmq51cK0ttPQLbQbYrNi77dVBCnAUZD9cU9edam8+eaAlWdcfDmFfz1Hm/JEuDzbRyL1CKhHWOkkR9sikoduWZasOpuvbXZ4OU4KiqlHprIrL63mTW/vpAjpWPKTa3WB9d0D9OqZc3TdF+PZ8gojKoiY08eJzlNWKRYbWr9eg2atXf1E/2vzuXO40acvXg1SYfWbzSpX8tYjWDke4VsuqrPNtgVwkn2GRMoHfYS+NoAdAJx6P4FMhqmfTUjF3cCegE182/NGKDUVPKw/gH+DJ0RWK7ZlFaLCbk6EkLpyQub/WN1frWSebNhnVGr8HBAE6850cnvRrUIfFhmWDGy5vgVBLkHoXqM7PJQe+Pfmv3hn5zvIsBQcmuSj8gEAVNNUw+B6g+9/1XCpkafd+Bbj8d/N/3AvZvqn8z/hYPxBdA7sjERjIqYceuBxIAyBpoGGW3jcuUuapuXwWHjCyqgrsdfgHoRh4fXa/9RgJRMIIc842h4RAABrsBp+mHFshpqjzrPwvfjcYnbWiW9hGrAO0Pcp/oQW78DWazUOblhLt/04R8JzFSv6k2NjQAghfjWLLk8uU0rw4vAGGBD+DN748hn4hOTdh0uukuDl9/To93lL9J7QHO7VBE+9QiNFz0+aov8XLRHSyPN++64j9VC5lDyJO1jvIXgN5j6G1+ARbHFxiO31OmmpspLt7z/LPeEjxKHsuJiE+AyTD4C+jrZFpHyICqtbvc4tuhRO7DG4DyGSvzXqS442ozh4Su5Otr1ZkV6DhwmF4EF4akqlV0gpU0IIq2aYC594edXu5+pWZrf1OKsVg2/GUWtNBe//WRDLOPETI+NIBnJ+vcOlOXFJ08/+MfMLL7tTj3eWOa2NpcUYtQ9p23+IpVZTHUqpc6uzKg5P+WFRaVHz+kf2r+iVnxLxfODzmNl2JpT/fQ0cXlBgG9rla9iavIOt389A7Nn81ckqilfGfMYRSW32n+WFlzTtNLQu7lzLQNTBBDAsgUTGwmp6IGRav14DNguH45GxcPVRocMbtbF57hk0fM4fdhuPq8eT8OpHjfDH7FMI1nvAK1CL45GxJbZxwJfP8FzkOibl2++e5FLzwGi1CFy1ks/wrE47/XiYzbFWTkdC6xoe+GlI8wS1XBIEoPJUqxAplqiwujoABygQOLMPE3u6JlPhux+XlnoWy/71d5KcuqTpH1zbveNs73dwsBknALSPndnt8UtnVhIqZDbNAG8HSaUBfV1cy3S8IJkMvweHENcYK3Nz0nWOtzvvg0LTQIN0A2WznLSkaVoOjwXHq4bX4GFUYe0g96vtDVY60dG2POUozXbz7BnHZjilMACA/27+h/f/fR/G5yeCvjA136oJ/8p8aqo/GL9MGutQYQAA144dZn1DCy9pKlWwqFbLFVEHhVxDnqN5hAEAuPmpcTta2EsgIykHWg8llFopOI5CImXAShhQXvB8NuoUgNM7S55TEaT3gFrLkpQ53xffuBTw2dmIGzCQ0V67iMNj2/CemvyejKzjm3FnxYeIm9Udcd+8gowDv+Q5bow+gDvL3kfct6/h9qJhyDz6W4nG5kxZuP3jEMR98wpuzu13/3VbRiIS14zHzTm9kPjLeNgzk+4fy9j/CxIixoDSvPf9Q9fTEJWQpeV4Oqw01y/i3ESF1ZUC+AOAngAuEzbydZ4/wx91tF3FES2TFZvxn2Gm6L0hB2ELDKj7owGHb+W9n6SbKHquz0HDRQa0/MmAC8nC7SnFyKPtCiMaLDTgz+gHOrjHrzm4k12y+RBPkf6F7a2mpbmmcqI5gJWONqIiKHdxQAhxkxEy+ytfPzUppmzp4+AlkWBjUDAJTick7pOrnN3knHH9Eo0EMm8Zv/ikcy4SzT5k5RmdD6cIKHwPiMoIIQQeXUerCMOMJ4TUdrQ9TytWzjrmRNIJ+cP7iDgjJ5JOYOi2ochqPpRwvX66LxDoK/OopU5Psu6LT3E3/rYjTQQAxOaWNJUoCr6Fu3gqYTLY8PzQuug7sQWeGxQGySNpCmm3DQhtInjJvYO10LrLoXFT4OqxRATUc8erHzXC8b9uQN+hOqKPJMJuK/nCRuvXa/DZ638h4Mt+MYRaLLg1fARL9++l+z9qRUM88m6Sak26BkahAav1zHeuJT4KqZu/gT07Beq67QGeQ8aeVcg+s63Yce/u+BFcTv4k+ozdK2BNvg5ljZawJl5H+u4VAATRkHXsD7i/MBKE5P8/Tf3rksZi56YDcEjVLpFyYSmATvd+IYBixDa+eZ/9XNlvelKG8IT4XpDJrhbVZvR2M16qKUH0hxqcfU9xPbElAAAgAElEQVSNul551xGn77egsQ+LcyM1+LmnEqO3mwEA6y7YMLSRFIffVmP2IcF5v/WyDU19WVTTlmwKuplvc84IpbPUNO4XPCFysqONKG/KXRyoCJnZVaeT1VOU347UWpbF6oBApolNRm6Ou8pb050zekTXQkfWXnK+kqZ3TRQ/HLMyqi5jqpTX4B4SnTdc2w6UEZlqBSkPhSpSHEqOchPmnJxTEeXnnpjL6ZfRP7I/0mp0hG3oVg4vTKXWen3I+vAJyEhyjqp/ZkM2MhLv8Pp2BVdHJAyBV4AGF/fGY8P047BZOTR9MShPm5M74iBXSdFvUgs07BiAlFsGwcNg5hD54zlsnHECKbeyEaT3RMzpFHQcFIYXhzfIl7vwKEENPKDRSUnyd3PK7HrzwXFIGD+ezfl9I7/9vZbU6yEPgucrH8N3wEzIfELznZZ59HcAFK5t3oBnt3Hw6DZWeP3wxiKHM5z/FzlXDsOlVf40AVvaLSgCG8Krx2dQBOphSxU8LOm7lkBdrwPk1QquhHj2diaOxtyVW+38hyW9bBHnJSqs7jAAbz76OgHYPgdou/f/4vZUuFGlYINOE1/YsSwLxb44O95uImwMK2MJXBV5H6WXUnl0ChWmEGGeLGIzeCQZeEgZApOdwsJRMASw8xRzj1rxaZuS5S/xFOmf24Y5g9fgYcKDJ0T2drQR5Um5igNCiJ4QMvhjT6/yUwa5yBkGi6r7M52lanp7/DXeHG8u7yFLjbaRllxywpKmsw9aeEbnwykD9Y42pdzQNuvOskptYwC9HG3L0wbHc8NOJ51mrmdcd7QpJeZ29m303dqXZPnWZ7gW75Pfvv4cFVWqtKRcOXKQ1GjqUeBigzHDAkOGBUmxQhGS66eS4RWYd+HNZubw389RWD/tOHatugSlVoqstLyhtM27BePktljUauGDlLgs/PdzFJ59LW9xhkcpT6/BoyR/M4s17fqH3zHyGU5SgjurNUl4D8p8hSgKuZ/wnctKBm82FHiOPTMZd3ctga7Fa1AUcI+UegTAfPM8UrbMhvnWeUg9A5Fz7Rgs8VFw7TC0SHum/R2l5nj6BQBVkQ1FnJqosLp1AfxQVJuO52nHyWu5vaiIRM/HYLdKWeiOkDHpPLxUBG9tNqPJEgPe2WKC0Zr3Mhr5MPgjSojcOBbPIS6D4nYWxQC9FDuuc3hpTQ7CO8ix8LgVQxpKoZKWbJ1uC9/ambwG9yAAIoInRFatUIuHKLeJKiGEaBhm+RhPL7mbpGJ282QJwQxfP/YNrSuNnxxDjZeNFTJuSVEGK8FxIIduOk/oU7qJYn4V9hrcg7ASeHQbqyZS+WJCiOjGrzgkFs4yeeHZhU6ba1AYzXyawY11JVyamfYYO4mTlaP383GIOX2cuHgXXNI0J8sKw10LXH2EOad/mDvSE/LeD2VKCRhWeEDXa1sNd65mwGZ+oDVcvJVQu8hx52oGJDIGlAKggERa+GPjvtegDJOQiyNh8mRWGR9L/ni3ZbFeWc4oVKkjMuEWQKSKh46l52tPKY/UyDmQuPrAtf3gAvt0fW4YZN6hMF07AplPDbi2HYT0f5fCtf0QmK4fx50VH+LOig9hOPdPvnOvJRtwLPYu4SkdUrKrFXE2osLqKgCsRwkEXoM42uG7ZdwhlqNOF1+cwTD1DYRkF3TMzgOnEniMbC7F6REaqKUEMw9Y8rSZ0FaOdDNF48UG/HDMiiZ+DCQM4KIgiBygwonhGjT1Y/HXFTt61ZPi3S0m9N6Qky934WF4iozPbcOalO2VlhkqAOuCJ0Q614OhjCjPVeze7ixbr59r2SYhFwchBB97ebOj3T1pwjexyDzuuI2WHuVeSdMfnaik6beHLDyj9a7SXoN7KAIaQO5fXwFGIrrxK44+sVmxKmfPNXgUvYces1p/g/QNV2jyj2cIm0bIu/NX8SrX0u8X9M4PyzFk9gIM/mY+Bk7Pn6Ab1rYjhsz6AUNm/YA3vpoNr6AQAIBSq0P/Kd9g6Lc/ombzZ++37/HJ51C7uSMp5hoIQ4hvaMElTfevv4IXhtVDv89bwtNfg5Pb41C/XTXUbyeU63bzVeGNL5/BgPBnEFjfHQc25A05frZHKI5uiQEAXD2ehLBWfuj9WTOc/qdwD0qrnjX47I1rK8RrcB+bDbeGj2DqqsFMf61+kauyrFpYHKVWU57vwrH8/1suKxWWWxcASpGyaTrS90YI59nMSP5tCjhjBqSuvvAdNAuB436H78BZMEbvAyNXQ+5fH2nb5kPbtBu0TboibfsPsKXdyjfGoj3XNDkWbhLEfQ8qK3MBlPgBGpCKNj8u5M7KrdS5Vi8JkW7TqAosaeqvI/DXETzjLyz09q4nwanEvJ9xnZxgZQ8lzrynwc+vKZBipAh5pDjlV3stmNROjnXnbWhWjcWKHkpM/C+vyHiYrXyrswaoio5jdCx6ALMdbUR5UC5L+oQQlZKQhVN9/dQSB4V4D3F3Z9xZlk5eeJvYB9nh0cnDIXY8iq6Zjt2xwcgBcPhKfbqJYt5RK6PuPdbRplQYbs8NUyf+PO4LQsgSSmml2PilEkMMVsPUBacXVCqvgZvcDas6r6TZ/9ykpgupDACkRVxi3HrV4t6Z8xO/5ouxzN34/JO8otj41UQUtlFaVnIi1k+ZAIvRiODGzfDCux9i7ecfI6xNB1zc+x+iD+1Dr4lTcO3EEYQ2bYnk2Oswpt8FAMSdO83pO9ZgE2PyL4Kk3jZg44wTeV67uP/O/Z+TbmThl8lHCrV5x08PyqSasm34Y/bJIq8xsL47tK5Scn32t0W2Kw+4jAzcfOst0m/Depy/E4h1xwoWMDLvUJiyUmBJuAJFoB6WBEEQsTovMArhbXpvAi9x8QUgaA1bSixsKbEPOuI5mK4fB7XnndjcS0L26TdNyD2gPOR+tYVIEsrDmhIHqUdAnnOOxNxFcrbZVaPQvATg7yf/a4hUFFFhdXsDGFHa89wNaL7kB+7iqJGsX7aKOM0maX9oNdY+2fk1i6+GQYALg8upHOp4svj3hh31PPNO/DPMFCqpkI+w7JQN7YMk0MkfzP+upnG4Y+DRIViCM4kWKKUEBIC5EMcBT5Exyfa2s3oNHubD4AmRO2JndvvL0YaUJeUiDuSETGqjVqtaqBwbRvmKiwtxk0jw0ZrbsGXY4NvL16H2AEJJ0/gVPGuw8tA4eJPT7w5beKL1pspAvcOFSkUh8wqGsuYzEtPVo58BEHdPLl+6pFvSffbHO3Whjnz88uIazn4tG4b98Q8+FxRI/+0qq+sSxA+ZPp9unPE5iY8ufI+B0nDnSvT9nxOuRkPjIVTZ4Tk7JDIZJFIpKE9BGAZNu/bAn7O+ut/+6rHDbLs3GjjFYkPr12vy2Rt/ZSrUa/AQ1uvXET92HEIaNwK/ZyusiUJ+Qc7VI7BnJkNV61nonukF07VjyDy4DrbUOJhjzwAAXJ59sPndnWUjAQB+b86HzCcUQZ89eOabb55D0rqJIHI1Asesz2dD+r9LoQprD3n1MBCpkHB5d+ci0FyRIXWvXqDtC3Zf03z5av0vXJRSURxUEqLC6oYAWPa456usqL9oAXd97HDWnOJKSrX77uWPL4NRMiCEACxQM7xmnuMZhzKQ8ncKAIBRMKg2pBqUgUrYs+y4+cNNcDkcfF73ga6ZsCgfNy8O1YZUQ5SrrNCEoh9eVmDgHyZYOSDUjcHKHkosPiFEQbzXXIaoFA5D/jSDJUA9LwbLu+eN3p30nwXTnpcDAN7QS/HarybMO2rFVx3lBY4XyT97xgBVx9L8XRzIyuAJkfrYmd0SHW1IWVHms1NCiA7AmPFe3k6RYNVGrcbKgECYIu/izrLbDk8EkugkkHlJ+SUnHBtymGGmmHvEyqi6jHb4pKKice0wVAmCMYSQp2a3Q0eQZcn67KdzP1Uqr8GnLT6lfqwPk77xSoGfi6ydcUzWzjjad+I01GrZqoS9UvSa9BUGzZgLfacXi2ypf64LYs8Iq/1RB/YiuFFTvP6/KTj821o07tINl/b9C7v1wWp13NlTULmo2EfLlFY0gfUEr0HyrFkOtcO4bx/+Xb6c3jq6HVy2MDmyJd+A8cK/sCbHQOFfD57dP4VE5wXjpX0AYeHaYSg0jV9+4rFzrh+H5dZFuHV8E4DgpXDt8CZsGQmwZyTCtcObkHmHFHju1rN3AKARShGeIuJwVgIoepvyYpBxqDF/MUeCkmipqzWEfBaCmlNr5hMGACDzkiH0f6Go9XUteHf3xp1Vgscw82gmXNu4IvTzUKRuSwUAZJ3OgjJICambFBwh1S7JpNcKGq+xL4sTwzU4N1KDP/ur4KYkeK+5DO81F0RwqwAJro7SIPpDDf7oJxx/mA19VKjlIdxWvdUMDr2txsX3NehVT5pvLEqRObFyeA3u4Qmg4J0zKyll7jmQACPaqdXwl5WsTFVF0FCpxPrAIAw5fJPcyojlAz4JduiTVNfchfxy6i7/cWu5w+z47pCFJ1ovqgxq9NSJA6mrL9T1n2eMl/Z8CUDMPygfqktZaavtsdsdbUeJaeTZCINqDiQpS86BWgrPbTUeSmB4g42+MmoC2b16Cc7sLHqxd93k8TCm34VS54Len3+Nu3duIz4qv9choL4eDZ7vgl8njwcAWE052PTNFACAXK1Gi+69sOW76Xhh+Cgo1Bqc+GsTEq5GIzMpga/fvjpzdlfpQp3Kktav1+Czf1vvMK/Bw4Qbc8iSzVs4e+v2aP7tgXz3N3Xd9sIeB4XwsKfgURSBDQs9rqrRAqpHvAkuz/aGy7PFVzy0cRTL98dI320fOkGrkA4s9gQRhxIVVrc/gDLZrZel8Ju1gkv/uj9z4XwI06As+lTVerA2q6qhgu1u7mIkC1AbBbVTgAEoR5G2Mw1BYx6UOd6g1caHp93NrzgqkEj+mdPZUHd0pA2PQa/gCZE9Ymd22+xoQ8qCMp2cEkKkUkImjPDwdAqvwcOEyuX4LSgYmssWEjv5mkN3U9Y20pIL6dRh9fYzzBTfH7EyqheePq/BPVzbDlSA8m8TQnwcbUtVxMpZ39l2YxtM9sqxy7yMkeGn55bwWf/E8bb4gktaPozpXCpJ+/kSnhs0HG36DSqy7b38AFNWJq4dOwy/Gvn34vMMDEaX4R9h8+ypMBvyFwxp1esNHN20AWFtOiAp5hp2LJ6Ltm8IBW6uHD1IajbzcNgNLaCeO7RuMpI823ny8hImTWI16cnk+z56h3uLS8rqI3ESKcu8DsBpYtBF8hMVVleFMk5CJYDb57/yoe3+z955h0dVpX/8e+6902t6JQQCIaF3FKUjawMVsK1rWV3suioWxNXV1bUtoiKu2N2fvYuCiIIivXcIJb0nkzp95pbz+2OoJiGZZCb3ZsjneXzAybnnfCfM3Hve87b90vbWRwcuKFxQiNx/5qJuTd0Zh9avrYdpcKASqPUcKxz7HCh8qRDxl8ej7tc6WM+zgjnlnPJXg07WBGBKYZ/P36K0vgZtZXH6vOVdylveEqE+ub66r0ajHqCwkn/HSVSp8GXPdJJaRUnxw7mi5JXnearrrYMoUrKltOUSXm6eIr9ewqYSAd/m8PjiAI+f8wRsLRNxpFZsUmM4GBZu8knEGCfq0oe2e46uDmuMgj57PMCq7pFbSwTCCJJw1+eHPlfmjaAZ3p7ylkTK/XCuK2vzPdGX2wDbW/sw+qLZ+NNtf2/2C8lpNFBpdSf+nj54GGpKik4bY4qJw4y587Hi9ZdQX1HeZA5rYjKMUdEozdkPTqMBpRIoBbhjMe35O7cRa5xGtsOGsTMzJOfXXxAIyinRDJ5H+QNzmRn948iglA5FfnQa9W4ea4/aRABXtjq4GzmZD6D57oMdgAD6u3+Qhl62SdrQ2tjej/VGn6f6IH1uOupW16Glsu3OHCfq19Yj4arAGRirZ5H+QDr6PNkHup462HfbYR5pRtl7ZSheXAx3rhv1DDPARUjrJyRh4kdpzE47jEquUHQmUgFERPdkEqp+HIQQYmCY3JeSknuPNyrbcPJIEu4sK5X2Ez96PNeH4cyd04fhVIpfLRIvEzzsPydqsaZQwC/5gutwrSRUOSlT56EaQQKjU6FBzZIaBqikAA/AKlFqFSSYPQJidBz4ZBPjHxjPcNMzOcOFfTgkGM+8t2n0UqQsdMBwxb+g69Ux4/zm89Jx5cgeyEwwgWUIXll1BK+sOlkO8eJBibhvaiZ6xuhhc/jw4aYivLk2v9V5rXoVVt43HglmLeweHoOf+hkA0CNah4VXDcWAZDP2l9nxwBe7UVofOJm+f2pfTMqKx2Wvb0BbP9J8TQkq/vd3OxX8CZRS5XXN67pMK2ws/Gr6d9OV1rimWWb1mYXHhz2GqgXbIbmD3+BysTrE3TaYluTup18//8RpX0BLfAJmPPgPAADDMDi04Xds+fYLDJ4aiHHfu2oFpt12D/qOPg/2mmoAgCSK+Hj+yQpil973CNZ/9iEaKsuhM1tw+YP/gFqvx8YvPsbRrRtBCIO73/8cS1/dj+rCZsuUh40e2dG4cE5/mjd6hLKMg2PE3nuPxF59HR3+n6bhRUpkSnY8XrpyyF6rXj1Ebi3dNCUnK7s3gIMAms+iDQEUoD8PI2vfvZBtU9hS1bdVYLUsYi+KPe11b4kXRYuKkD43HZrEpnIrPqmAebgZvkofIAGWcy0ofrUYveb1wlO22q0zna7RoXlHbYdSNA7xvQU7jF3Dom8eHsCgwucvOSy3kI4Qyl3xVCvLxo8zGEI4ZXjQMQzeSu3BPFJRLq598KiU8nRvRpMQtu/6aUh+Ca4cFwSniI8KRfr1IWejmsXaBi+WAzgMoBJAFYBGh6/lbS4hhHH4EX+4Vko/XCsN+rVAmHXbMozvaWX4Wdmc/pK+HDcmlQXHnH6guHCzTyKmWKrrNbzDD8uBKRY0enhUNHqQGnV6JNnwNCsWXzscbl7Esj0VGNsnBo9enA2HV8AnLZQZPM6/Lx+EaEPTnJX5F2djQLIZq3OqMTU7AY9elI27PtmJHtE63Do+A9e+vbnNhgEAqGJ7QJ2UyfhK9v8ZwHttv7KbM2H32+/7MOdDZZ8QHMPAGfDYiEdpw9e5pD2GAQAINR5UvbaLpNw2GNc/t0j88LH72OOx943VVfjw4abOqb2rVpz4+89vvoaf32y5ueqyV1448XePvRGfPvHQaT+nVELx/t3ioInp7OoPctr1HtrL2JkZkvObLxglGgYAUPPGEqb3pZfSf83oT5/4/qBs3pW2svaIDRzLZALoBaBAbj3dNOFlhNEwAAACkD/tohPi7OKa569iJ/7x55JPApUoWB0LySfBecCJ+Bnxp43x1/pR/Foxetzao1nDwFfpA9/Aw5BlgKfYA+ZYQQOJD9y3vjYZvTOdnd+GYYU0epcdxomdvnBoUQF4GsBVcgvpCCELKzIxzFN3xsQYiUx9DYJFRQgWJCWzM/VmWjo/j7rz3WFdz2/zo+LjCn/O3Tm+0rdK97hz3fMoT0e4eUTXe+hllNK3KKW/U0oPU0obaCsuHUqpRCmtpJRuppS+XeehF/pEWI7UStNf3ux/5dJP3fmW5x2+K790u7eVBZIrG70UCzf5Gf3Ue0NyivbAF3twzVubcbC8af322ydkgDnmTZj75R7M/SLQBOvOSS1WSgMAzBqeggsHJuL135oWTOgTZ8TGvFrc8+kubMqvRWZCYP/5z+kDsHRPGXaXNAT9HiznXGkkav0/SFf54Cofq5bVTvkx/8cu8ft8YdwLkmTzSZ59NR2aR7L7Ub14N7Fq4sicl98RuU4uyHBky0Y2OUPfaofgUJKaHQVzjIZUPf9C64PlIhBeRK4blkhSrMqPcuNFiqW7y+AXpO6OyQojJyv7QgAzOmu94Xl04vPvCesYiZ72vRYaBRQ8W4Dcx3OR91QeTINNMA02oe7XOtT9Gsg/sC21QXAKKP+/cuQ+novcJ09/nlZ9XYWEmYFQI+s5VtSvr0f+0/mIvTDgfTigUffujPd4KpSi8VH+b5ES6zw7fd7yrlRtqQkh8RwQQoZaGGbIJeau5QliCMH8hAQ2lmOlJc8UkIR702AaGrpICEopPLke2JbbXM4DTgKCd6mfviT4hKLWr27XejyAtcf+e4gQkvRtjnDtiqPC/AHxrCYjihhgiJFC4TVojf7JgZDBfaWNp/2ZGqWHWcvB3kznkxSrDv+cMQBvr8vH5vzaJj/PtTkxvm8cXr1mKM7pHY3fDtkwOSseI3tGYdKCNe3Sqe01HIzWGCf63ZMBrG7XJN2cyqU7qnb4nLxTOeXKWiDdlI5xiecz1a/vDsl81CPAtmQvE3NDf/HWRR9I7z10O+NtofFZqCncsxPTbtOxnJqB4O+cXKqxV/SRnN9+qVivwXG8+/fDsXKl+M6fz8dF/92i+PCir7aXamcMSZ6j5ph/4XgXtm5kJScrm0CGTri9qzDutTfErfffyg7yq4gOANTxavR5umkxoejJJ/PYU25OQcrNzffUAIC0u9JO/J0zc8j4x+mHdiIhqYfUqrwsP3/m07wQslIataux63sNjkMAPAug4zWSZSIkngMjwzx2S3SMRt1FD19vjYllHo9LoFWvFqNu7Zkz/9uKO9eNvCfynIULCqscex2PUZ4mSj7pXkppWAyD5qCUVggSXejikbS1TLzjh6OSzUtVPk/RnrCvHWcMuDJd/sDGwc2fPPyIMzV1cxICLLxqCErr3Hjp5+ZD9Z79MQcHK+y4oH8C9pfZsfCXI/jn9P5YsPIwpmQnYMXfx2HF38fhyhFtzxUjhMBy7pUGojHMC+b9ddM8dp/9pmX5y7pErsGr418R3TurRaEqdF5DykuoeX8/KxV56ZxX3pUsCUkhm/tMeOyNsFdXS/3PD6qXUrtJzYqCJVZDqp57vlPW6yjVL7zIZsbo2KnZ8a0PlpldJQ1w+0UrgJFya+nmBBcBCEmZ0WCJs2P0ksXiUYOHNm2DHka+MBlLO2stSmF/hJ8TKV6D41yYPm95yzWTFU6HjQNCiNlP6fTZVqviT2TOxBVWK1mYnIK69ytQ/UN1u+cR7AJKlpR4Cl4sqPeWeu+UfFIKFemrlNLOzRQ8BUopTyn9yOmTkoSGyjm2r5+urPr8cbforA/bmjZnoFGTQc0d+/Pkx8Pm8DUZn2zRYUzvGBBCsOQvI/Dwn7IAADo1i3dvHIkYgxoldR5cuWQT+j+xEle9uQnThyTB7hGwpaAOL8wajA83FeHjzUV4ftZgZMS1PffFkD2eUME/jhAS05H33A2MWk57/pqSNXLraJUJKROQbuzJNq4sDP19SwLqPzvM+nbV0pteeJ0m9mlaujQcHNmygfQdEdspboOxMzMk57dfKTIJuTnE+nrYXnmFLpzRT/5GDG3g063FGpdPuFluHd2c4KHWh4QPoxeDlywWq6PttKqz1vzVoO+0Q56fpZE7G2G0dtZ6nci/Wh+iTELhObhipE7HW9kubRsAACYajXgntQdc39ag/MPyoNy5lFLUb6inRx4+4rHvtL9F/bQnleiHlNJOjQM+E8fyFD6hvLenr/TgorK3b/O4Dq0Py1o5FYFwiiE9At/3wamBP0vr3SdCijLiDMiIM0DNMjjudMpOMmNKdgKG94wCAKhYBlOyE6BTn/75So3S4dbxvfHE0v0nqiXtKW3A7tIGsAxBv8S239cYjQG6XsMFgHSXEOwYF++r2ee3+zsnlKYj/HvMM1Lj8gJKPeHb3DYuL2Cdv5XSa594Eb2Ghf8QOH/nNmJNCH9J09R+UbDEaknVc8+Fe6mQUv/Jp0TrspN7p8ja36lN/LS/kqPAFQiEJ3QjIzlZ2SMATJRbh0ZA38VviHyqjRZ2xnq1DDPATUjYs5KPeQ0itTrXhPR5y7tkz4YOGwdmhrl9lsXaJSqTtIXhej0+SesJcU0DKXm1qE2nTKJXRPGrxe6KDyvyJa80XvJJ98npKWgNSqlf4r2PUr97Uu2Pr5TavnvOI3qDL2t89ageWHDlYAw4Vkd8Wv8ELLhyMKb1T8CS3/MhSRR/n9IXL105BAuuDHz3l6w52SV+9dyJWD13IvrEG1Fa70H6vOUn/rvmrU0AALuHR/q85SdKlh7nn9MH4Ic9FdhV0oD8moD2f102EP+aEfD85tuCu6cZh0wzMBrDnUH/Ero5gd1vv/GHvB8UH1I0q+8sGCQd49peGfaNl3NtGdOwNI9e/sDjGDDpgrCuVZl7BAzHkri08N6Oz52ZITmXftNlvAYnEEXYXl1E5oxIVLz34FClA4IomQD0lVtLN/J6DU6Fk5C64B3RmFVCw1+WjBDNzwZ901buIeYXacTOBpiiwr2OjNzf+hDl0SHjgBCS6Kd02ESF9zUIlr4aDb7q2QvafR5S9K88UZJafpb4a/3IezLP5TrkWip5pQGU0rZ1OFQAlNItlPf28+Tv+L/yt+Z4fJVNKwSdiVHpUZg9ogdSrIEmT/2TLZg9ogf6J5uxo6ge9362C+UNHkwfkgyRUryw4hA+2nLmMqZtYVK/eIzuFY0XfjoEAMipcOD5FTnoGaNHWowez6/IwaHK4GwzXa8RoJLYlxDS6VUaIgStltVO/rX4V7l1tMoDg+8XHauLaWelerp3VpO6j3Mw7ea7MeaKq8O2TqCk6R5x0MSQ92c6QUq/KFjjup7X4Dj2n36CniXMxYMS5ZbSKqsPVROJ0i6b0BgJ5GRlpwOYLbeOU2GA2Kc+ElPHHJJ2hnutr03GsPb/oRSOh/lbI9VrcJyr0+ct75xksBDSoSZoDCH3/slkem5hcoq+9dFdjzpBwI0lxVKlFbTnM33Y47WAj+POdaNwYaGH+umTVKD/aa38qJIhhFxBVNqP4mb+Q3+2dk6uXbnY59y76nkq8k/KraULMuVo/dFvZn4/U9GdLWdkzMDTI5+i5c9sIRA69wBZnWZC7M0Dsff3lXT1e2+ExWvRf/xkjL3qFvGjx3eEJc7zykdHSneVEUgAACAASURBVKpNK5jKJ59s8zVJ/34GxokTIdTWoWBGoBIkY7EgZeFCqFNS4C8rQ9n990OytxCOxjDo9dWX4KurUXr7HQCAuLlzYRw/Dt6cQ6iYF6glYJ4xA6zFgvoPPzyjnpg77pB8V/2Fjnt1k6JjYS8amIhnZw7aGKVXnye3lrOVnKzsVwHcK7eO5qCA/4OpzI4Vo5hzw7UGR2nJrsKSHuGaf5U4/Pe/8Q+2qdlbF+fZwucveUxuEcHQIc+BiWFuutRsjkjDAACiOQ6f9UxnMh0sKZp7RBScJ93oDRsbaMGLBS7JLc2WeOnFrmwYAACl9FvKey+2ff2003VoXZd+L+3FOHCqhnDqW+TW0RXxib6Lfiv5TfEdEO8ZeJfgWF9GO9swAAB/sQPV/92DQedfQC578LGwCCjcsxMGi47luJC1sDlBSqYV1jgtqXz22aCua/j2O5TMufW012LnzIF78ybkXXgh3Js3IWbOnBavj77hevjyT3ZWZ4xG6IcNRcFll4OwDDSZfUE0GlivuBz1n37aup5PP2VSovRsVoKyI+A25NbAoOZGAtDJreVsJCcr2wpAsc8DAqhvWiWNuX61uDZcawiE9DiiUoWlGR+lcD7E3zqoreNrfnwFJa9dh/J3T0b/ih4Hqj77B8remoOqz/6BM4VHU0lE+fv3ovqrp068Vr/mfZS/dzdqlr104jXn/l9h37402LfTGrelz1uuCvWk4aTdTxBCSKyX0gFj9YrfD3QIA8Pg/R5pzBiqRfGDRyV/jR8NGxto2Qdl9dRPx1BKf5RbY6iglP5OBd/5tctfaXDsXKb4uNxQo07OBAhiukOLgscn+C7bWL5R0SexfSx9EK9P4Fwby0O/c24jQrUb1Yt2I73PMPLnpxeGvFiBu7EBjlqblHV+6EuonjszQ3It+47A7w/qOs/27RAbT29QaJwyGY3fBR7Ajd8thWnqlGav5RISYJwwAQ1ffnXyRSqBqALPWaLRgvICYm65BXUffoS25EGIDQ2wr1gh/mt6lqLvcXavgCNVDi8UkAx7lnIVAEVvcAjATN9Kxz/wjfh7uNb40mwsCce8v0rDdtTDHN36yADGQVMRf+VTp71m3/wltOlDkHLr29CmD4F985ctXu/Y/j1UMSedIJLPBV9ZDpJvXgxKJfhthZB4H1z7V8E07JJ2vKMzEgPg4lBPGk468pCcfo5e79cysj1nOw01IViUnMJeojHSknm5tPT9Ujv103GU0rAn63Q2lNI9VPCNrF/zQbVz7y+KfniGGkIY6HqPpOjCjUtkIkrLadP22MLfP6MjPDpqHnXvrpYkt7yJtGKjD9Wv7SIx5mRyy8K3RYYLSS/KExzZshGZI+NC+t1NzrQiKkFHKp/5d0jm42JiINhsAADBZgMX3fweIWH+o6hesACgJ9+O5HLD/vMv6PXtN+DLSiE5ndAOGgjnr23Pd6l9+x12RIqZMWlD+7sPNT/uqzC6fMJlcus4S7lObgFt5ZzDdMIz/xPWEkpD/sxepdeHPDqEUjgf5G9rs9cAALQ9BoLVne7tc+dugWFg4GDBMHAK3Ec3N3utYK+BJ38bjEOmnfIqARUFUEpBBT8Iw8K+9RuYRswAYcNyX7g+HJOGi3bv7M0Mc8PFJnNkZSKfAYYQTDdbWFGkAnjMpJQelFtTuKCU5lPeO6nulyVub8l+ueV0Kvq+5+gZrbG7pGlwjDtYe9ArSMqtXqNm1BgRN4I41pQq4jRDcguw/XcPo/XpyG2LPhA1+tDdSvN3bmWsCaFtUD32igzJ9cPSoL0GHcE4cSLE2jp4DzS91da9+y4KrpiJ6hdeRNy998K26DVYZ89GyssLEXP77a3O7c/Ph3f/fvHxS/uHQ3rI2JBbwwgSvVBuHWcbOVnZaQDGya0jGDLLMf7VJeIWTqBNGwl1gBqWGeglxNP6yLbzmzQ0KK9BS4iuBnDGwDScMRqSq6HZcfWr34J14s0gpzTqZTR66PuNRcUH94KzJIBoDPBXHIG+7zkdldUSl6bPW24J1+Shpl0PSkKIyiNJ506IsCpFZ6LU78cdZaUeP6WXUEqVX5Klg1BKD1HBN6v666c9QmOn9V2RHW36MEi89xxCiFZuLV0Fj+CZuq5snaJvBjcNuAlClZuKdWEtvhEU1C+h5t39DCoE3LroXckUExeSeSuOHgan5piYlNBERCT3tSIqUUcqn3kmJPMBgFBbCy4u8H65uDgIdU070+uGD4Nx8iRkrF6FlJdegmHMGCS/+MJpYzTZ2QAAf2EhLJddhrL7H4Cmb1+oevZsVUPtkjfYyzOtis6vyqlwQK9mU6Dw8JYI5Bp0wR4TiQ04d8li8aDOF8JS6oRofzboQnZKSClcD/K3dVq3aXfuVjAGKzSJTfubWMbMRvJfX0P05L+hcd1HsI77Cxx7VsL23fNo2PhZqKVoAHSZg8f2nqINiedUPksEND5rCzyluKe8zMVT+k9K6S9y6+ksKKU/U8E3v+qzx1ySzy23nE6B1Zmgik71oYudGsmJX/RP3Vm1UxEn8i1xTe+rRNeW8Pc1CBqRou7jHNa3v5HevGAJjevZq8NTUklCyYF94uDJoSkyMnZmhuRa9j1C6TVw/vorLJcHomUsl18G5+qm5y22hS8jd+Ik5E2ZirK5c+HasgXlDz9y2pi4v98L22uLQDgOYI99BKkERtu6be/asBFwOnD9OWkdf0Nhwi9KKKhxuQB0yUZKXZhZcgtoL2YPhr35mlhqcVJbqOb82mQM2QZgjTRkex0sMaGYizVYITgDBwuCsw6MoWmTZV/ZQXiObkHpGzfD9v2L8BbtRc0PC04b468K9F/iolLg2v8r4i6fB95WBL6uLBQyT+XPoZ4wXLT3gX7uKL2+S2Ved4SXbTZ/Kc9v81P6UuujIwxReFV0NXxds3zh2WEdAND3O89AOM0MuXV0ETi9St8npy78PXnaS7IhGTGGWNazr0ZuKc1DgcaleaxrfYV03dMLadqgjpcSPrJlA5vS19DhOK+kPlZEJepJ5TPPtNuwSn5pAdI//QyaXunos+Y3WGbNQu3b78AwdiwyfvoJhrFjUfP22wAALj4OPd58s03zGqdMgXffPgjVNkgOBzy7d6PX90sBSuE7fLhNc9i//wGzhyQpOrdqa0GdVqJ0jNw6zhZysrKTAYySW0dH0PLIfuN10Z1YR0OSTLxXo0kPxTyUwjWXvz1kXgN9nzFw7V8NAHDtXw19n6Zfk6gJNyH1rv8h9Y73EDfjYWh7Dkbs9AdPG9Ow7iNYzr8OkIST+U2EARVCGqEFAOPS5y1XdLnv47TLODAzzNSRet1ZUV5tg8uFzxvqnS5JupKGIdlH6VBKKeW9t3sLd9e5D2+UW06noO05mCWcKrztbCOHfvXeep+LD64jdWdyx5A74CtsFKgv5MWBQorj1xLWvqwAsx5+Elnnd6z0d+HuHTBYdRzTwZKmY2dmSK4fvwd87X9Ils99EEfHj8ehQYORO3ESGr/+GmJDA4r/ejPyLrwQxX+9GVJjIwBAqLah5Lbbmszh3rrtRI+D4zhXr0bN6/898f/VL/4HBTMuQ/lDD7dZm/P3NSQrWq08j9Ip7Ciq19g9/GS5dZxFXI4uGFL0RzgJPV95S1RnlNMjHZ1LIKRnnoor7Og8v0uD2+01sH3/Iio/fBB8XRlKX78Rjj0/w3zObHgLd6HsrTnwFu6C+ZxA1I7gqEXVl/9s07zuI5ugTuwLzhQDRmuEJjkL5e/eFagVGx/ywoUcgKmhnjQctCslW6D03KHayLcNfJKE+RUVbg+l11FKFXrsGH4opR5CyLW1K179WdNzsI7VKjq8vMOo4zMg+T29CSEaSkOb3BWBDN9fo+yk9YkJ40XPTzZll6U5hmtbFRFdAi667QEYrdHYvuzb9s3TUA9HXa2UPTaRObC2vF1zJPWxIDpJT/Jmtt9roHQ8e/aCU3FkYLIZ+8tbaMImM7tLGqBimS59kt3FmC63gFDBUCQ8+z9R+8JsZs/OvkyHOhF/YTIVP1pXn97e6wNegzsGtPf6uBnNG/0J1zTtu8KZYpDwh7KnAKBNGwxt2uDTXtNnngt95sk+clGTb0FUeNtbXAjgm3AuEAqCPlYihCRKgDldHdpqGErkg/o6wUOlDZTSn+TWIjeU0vWUSl80rP2/iN8sM2otOHO8B0Ckt3XvMB7Bc86u6l2KTZY0q8yw6K2sJ6dpwqtS8R6sRc37BzDuqhsx4fq/tTth9uiWDcgcFd9ub+fYmRmSa8UywKucJO6QI0lwbd4s3jg2XW4lLVJY6wJDiAlAgtxaIp2crGwGQER1pCaA5ZGvpH5TdklbOjLPLwZdh0qarpUGb6+FJbYjc0QIXaJUent8zucO1Gp9DInYwyQAQCXP483aWt4pSa3XxTtLoH7Pg659q3i/rVBuKWFHk9pfBWC03DqUjk/0nZ9Tm6PYm8G12dfCX+GUqEe5ZVabw1/QCNuSvRg2+RJyyb0Pt8tAyN+5jYlKbN8hTlKGBTFJBlL5r38p9t82VDh/+YWdmGZUbMwZpUBOhd0LYITcWs4CBgBQduvsdkAA7a0/SSOvWiuua+8cNpYd4CNo10kBpXDP5W9Xdt3gziM1fd7ydntQOougjQM1IePO0RsiO64EwCs1Ng+A1yml+XJrUQqU0hoqCo/Xr3lfuQHmIUKT2l/HaAyT5NahcIie0/dTcjLylNTJovdQXZfc4PIVLlQv3o0+A8fg6ieeD9oDUHH0EDi1iolJDt6xc+7MDMn10/LI9hocw7luPWIselbbwfyMcHKwwq4FkCm3jrOAc1sf0jUhADt7Ax131w/t7KZMiG6VXt+uGNJ10qBtNbCGplZzZKB471TQd0MdIVOH6nTKvYuGAJsgYKXDAS+lz8utRXFQ6W1f8T7KN1TKrSSsaJIyQSkNWzeUCCHRL/klu1+ZsdoA0EufTvxFji5pHACAWOdF9Wu7SEJcb3LTgjdEhml76oQkiig9uF8cNCk1qDUTMyyISTaQirPAawAAYk0N+IpK6erRoSn9Gg7ybE6Nyyco/rQxAhgrt4BwM2E/nfDPj8XfQWnQHsmvTMagDwYphfsB/o5ur8HpKD4qIahNPiFE5ZKkfoPbUEO6K/O/ujqeBT6ilNbKrUVpUEpdAHnLse3bzmuVKgOq2DRQwRdPCFFsPL0C6F3hrFDs58CsNkOj0TL+ktD1A5IDycmj+vXdxEgtZM6idyV1EPffI1vWs6lZRjG1XxQGjEvGqEvS6cTr+nnHXZ3pH3lROs0cnQBT9Onzjb0iQ3Sv/BHwhLQpqqJx/PIzLh+YqNhqdIU1bvgEqdMaR53FRKzn4FQGFNMJC98WN7Ii5YO5bo9W03p3wT+wQRrY7TVoiuKNg2AreKSZWdZvZNmIzUZ2SSI+bagXPd1egxahgu8V595Vd1rH3wBGE5l7Z8KwYI3RbtFu6w1gn9x6FErvInuRYjshXtL7Egh2n0R9Ypf3dFKfCNtbe5mY67KlOa99IH3w0J2Mq6HlJGuW45B5zvkYOOkCt86o1vzp1oH7CcEelYYrYFhSBUAlClIi7xMHcSrmfI+TJ3k7qzVVhXZVbKqBzW2m0kck4/xtDdP/qqsVaxwU1bqgYknHO+R10yI5WdkxOItCt1Jrcd5/Xxe333s7m+1Tt+0QjCckvUDFFfXihTYZCZTC0+01aJb+6fOWGwqfv0SxIdrBPjR7JHCcYhO3QsEKuwMcIeu6cw1ahlJaAob92blnpWIfpqFAFZUMAE17rncDABAlMSO/Mb9DFSzCycQeEyV/fmPkfEYFitr/O8iIh530loVv0eiU5sNg+o45D39b/J578s23b0rp1/82tU4XozWoBmn0qr8wLHkcwGIAL7Mc84jWoLqYU7NWU7R28sDxKYun3JDNS5XlAmeK+LSy0/Ds2we1Qc/o1cq0I0vrPdCp2BgAZ03zURk468JIo1wY+eZrYqHJTdtczu0rk7GorWM3SgO2ViOq22vQFBYKLzAQ7J0wrYdKrdiTwlDwZWODwyFJb8itQ+lQv/tF+85lirV6Q4EqNk2HbuOgRZy8c2CJo0SZuykAWYZMyZff2CX6G7QZCtR/fZT1bKmmNzy7iKZknQxD15ktmDnvSfeFd/y9wBgVPUNrMI4F8BGAxlZmlQBs49TsA5yajVclxC/OWLnSa7rwT+0uo9rl4HkIDQ10WI8ouZU0i1+U0OjhfQDS5NYSwSg+1CMc6P0YsGSx2BDfQMvaMn6lQd+mJlfHvAbZHVMX0Si6VHrQxkGaWhWx3c9qBAGHfT4VgBVya+kCbJZcDUSw2+TWETZU0akqotYPkluHUqGUZpY6SuWW0SJmjYX1F3ftfIOWsP9cxNhXFtGr5v8bfcech+iUVPx14Rue1P4D31Dr9NkAVrdz6gZGp7uf0enOSX7uuYaoP/85oj3Fp8KXlErDeyrTOACA4jq3gO7DinCSIbcAuVCJ6P3qEpFJr6R5rY2tYtkBfqDVfkebpP5bqxAdHxqFEYmiP29BGQdGhumXrFJFrOfgV6cTGkJWUUojv35fB6GUimBVqz35O+SWEja4qCQQhu2Ol2wBNatOKXe2r/tuuFEzarAqlgi1kZtU69pUwdR/dZReevfD+PMzL3k1esPtKo32QbThwd0G9jA63cj4B+dWxd57T1BJi10VX14uspPMcstokcJaN4duz0E4UW65qk6ApUh64X0xelCBdOYcO0L0qw1nLmlKKbz383d2ew3OjKIN/aCMA46QjCQuckMef3M6HA5J+kJuHV0F6nN95T6yMTKPZgFwUcmgIp8utw6lombVpnpfvdwymiUrOguSRwAiPDDGl99IqF/0qbS6ZxmW/b8QT5/P6PXDo2+8MT/2zjsj3kDw5+ayGVa1Yj0lNodPA0C5ro2uz1lveBEg6h+fSRnj90nbzjTuK5PReaafb5ayt3R7DVolcowDkdIeSarICuE9ld0eDwtgo9w6uhArfcX7NFSMzH0Da4gCFfwWQiK8HXj70AFgPIIyT+YHxA6A0OiLnGTkFoi6MtNNNOx/GYZ5OkxLVLEGw5SYOX/zagdGdpl9f1ExErXK/ao3uP2cX5C6kzvDQE5WNgMgRW4dSoAA+ruWScMu3yhtaGnMLq2mRUMq4DW4Kys86iKKXunzlis2Z6/NwgghxCNJcZHqOajgeXgpFQF0VylqI5RSG+HUxb6Ko3JLCQuMSgME7IKIzbPpADFu3h2K8JWw0NfaF2K9N6L9Bpo+Vmh6WeyMip0f5qXKiEZze8qCBS4win2WdRh/cTH0WoWWKwLQ4Obh5cVEuXVEKInorgR1AgJw1/4ujZ2zovluyjwhvYo4rqS5n22h2VsqEZ0QXoURgRoKNkiDuRFaWUKIiY3MlIPdHg+0hGyn7egaeFZDyG6hTrlJqR2FUWn96HblN0e0g3cIcotoiTRzGhVsHsVu9DoMQxA1q6+L0bC3AQh7jhRhmE/ZmJijlssvi9j7I19aCk6nJZxCPzUNHj9EiXZvusLDWR9S9EcIQC7YTSc8+nnzBsJXJmPBH1+jFN77/Xf2C7+6iCFWbgEtEcxtMDWaZSM2UfeIzyc5JGm93Dq6GpLXtY+vK1dsnG5HIRqDACBabh0KJKbR16jYjWKqNkUU633KjRHpILr+0WC03FEAP3TSkpQ1mf4ed/fdEVu+mPp8EJ1ODFVoOdMGNw8KxMitI0LpNg5aYFg+nfDCe8J6RqKnPed/MuqbtGrfSrO2VCCm27vVdhS7twjGONBqGUaxm4GOUsT7PRJQKLeOrgc9ytcUueVWES5YnUmCgr/AMhJd761X7ObbwpmJ2KjYqKcOYxid5GR03Cvo3JTr9Wx0NOWSkztxyc6FLy+Xhve0yi2jWRo9PFhClGm5dH1S5RagZHpV4fzFb4g71Dw9kWRW+YeSppTCd5//rm6vQXAodm8RjHHAKtTbGhJKeV4AUCy3ji5ILl9XFrGJn4zOTKDgL7CMGJ28U7G3BBWjIqIzMhPliYqBprdFDWBpJy8tUb//F+O4cZ28bOchNjRKUXq13DKapdHDg2OJRW4dEUp3XlkrxNoxesli8ajBQwNNFQkxrNHrDhz/+Tbab3O31yBoFLu3CObhzrERXLSlkudZdBsH7SFXsNt0kZqqwWiNLIDuB3JTWFESFXtDIIQAUmR+JlUpRlC/mA+gobPXZs3mr03TLojY8sXU74eGU2ZenZcXwRCiTMul66PMf3SFYfRi8JLFYnWMnVYCwJdmkwM44TXIlFddlyQijIMITUUO4JAkNYBquXV0NSil9RAFDlJkph0QliMAIrd+b/thRapg4wCE0Ag1DlirBhRotZNpmFilHzFCI9PaYSdgHCjTISZKFIQEV368mzbTfY9vIxoBfRe/IQqpNlqwU6NJBYAdNHNLOWKT5NbWBdHLLaAlggwrUuxeoMNIlBIAiq2+omgYRqRShP7qCEPQfarUHKxIFWwQEkRsAzTOqgGjYg/LtLyNqNWqSD0qon4fUSvVOKAUBBH8EJaXyPxAhwlWQuqCd0RTRil8xSxX8Hf/XX3l1tRFUebNBsFZyywbwbclKfCPpODdjnJRMwyt+e/1EZl3QEVRB6D7RKQpyg4rQuSGFbEWjY+omGZrjHcCVBCcQsbWNWwkWl+EU7GXMFo6qf95inxzfsnDaWCUW0Yk0m0cBAkDxD75saj9dty5P+o0jX36oLFCbk1dDYHhzthpWk6CMw4i+NCCBk5kuo2DdiCKAm4cO4xRKzRWtyOsOpjrP1xpq5RbhwJRdFgRCHCmPJio2X2hzYqG5ORR9cpOAIB5ahoMoxIhugKJzPaVhfAerm86tZZF1KxMqBICHuH6r47AX+yA5cJ0aPpFg69wov6LIwAA/bB4MHoOzg3lIXtr1C+xAGQL7WE5Pdl94E5GkvxySQgbvdLvlg57OeaNPW8o7rOtV+nx2uTXIjPLXn46/PB6rKICv7uciGZZfN+rNwBgcY0NXzU2IuqYp+2+2DhMMDY17uyiiCcqK3HU7wMB8ExiEobqdHjJVo11TheytBo8nxSoEvZ9YyMaJRHXR8kfru4yJFezuP28i2xvUoB2V3wKnp+Au+TW0CxBGQdMG26XUTfcAOusmdD06QPCsrAtXoyaxa8DACxXXI7k555rck3B7Nnw7j/Q5PUTIpOTET93LgznjQWj00GoqET1wpfg+PkXqFJTkfzC89BmZ8N78CDKH3kEfFngQRx7z90wTpiAwiuvAlpJmCWBY7DI2912AhRgesVGIxKNA71axQOIvF1Qx2FFSVSsSxSteA5cO6rg3FiO6KtOr7znWF8G57qyM85snZ4B75E61H2cA7AERMWAaFioe5pR/epORF/dD1yCHkKtF/oRCah5b39I3tFxRJefk/xiCqOW5fumJYQw9fWb5Fg77PCCXapy88xu2265pTTBrDaDQsmxfF2aDn+ZrrBYcF1UFOZVnH4QcENUFG6OPnN7iueqq3C+wYBXUlLgpxReSYJDFLHL48F3vXrhofJyHPF5kaZS41t7I95K7dFRuR1GZNTu7cMfEgmrTlEZZx3gnV8loLvLdLAoNh475J4D3YABEBsbwVdWQp3SfGdo54YN8OeezKcTampbXtRqRfonH0OVmAj3rl3wHT4MVXIyVKkBIzX+4Yegzc6G47c1ME2ehPiHHkLZffdDlZqKmJtvRtGNN7VqGACAnmH8DkmKBnDmnUE3p0EI0TOEEC5CC92KkiQB6D6ta4pXy2kVu1FprbCav8AONir4w3eiYaHpZUH9lwHPAEQKKoogahbkWNwlUTGARGGakArnxrKQhzeJdT5QXhoIeYyDUW53gROAWY7Fww1DVOAlZbZtYQgDGqll4eSnw1+mkXo9yvjgz5GcoojtHg+eTQxEr6oJgZpl4ZJE8JSCUgoflcCB4L26OvzFGgWVAipH7hg2d6fEqs8HAFaVNkDSDFkr+vaMl1tXF0Oxe4tgjIM2fRrLH3kEAJC6+LUWjQP7smVo/Pa7Ni0afcMNUCUmouHbb1Hx6PwmP9f07g3Xli0onzsXPZYsgaZPHwBAwmPzYV+2HN69e9u0jplleYckxaHbOAiWHgaN2s0QYpJbSDgQJAlQ8BdYRpxGtVGxxoEkSmC0HEQE1wjNODYZ+uEJ4MscaFheAOo5/WCHi9ZCcvGIujITqiQD+DInGr7PA/WLcO+vRfy9w+DLa4DkFaBONcKxOvTVkX3FdjBqdgwCp3Sd+tmkVBxXV7e+SWfUSIEwavhFZToKNawGEpW670XhIWwW4Sf19fi+0Y4BWi0ejo+H5Q/J/CU8j2iWxWOVFTjk82GAVotH4xNgYFhMM5ows6gQ5+j1MLEs9ns9uDM2NlxS20xBz4vWO02p55/6mko/ZbzEF26mUuM5cunqgij2+xzMcW+DI0TlKhPmz0e/3bvQ+8fliLr++jOO1Z8b+Jxx8fHou24t+m7ehOQXXwBrDXSx9OXnwzB6NJIX/Af60aPgy82FceJE6IcNQ/VLL7VZUxLHUXR3SWwPPaw6bUQmIwOAKFEKBbv+ZMRhUpkUaxz4Rb/E6IPzcDs3V6DyxW2oXrQTot0P6yW9mg5iCFTJRrg2V6B60S5IfhGmiQEXv3NtKaoX7ULj8gJYpqXD/ksR9KMSEP3nLJgmhy4MQLL7IdR5BQCd3o1MEOwX19dvidha+xp1HLF5bHLLaBaT2gSBCopNYOzitBy+0AGusUZhZe8MfJOejjiOw4vVTauli6A46PXiamsUvknvBR1h8E5dQM4tMTH4Nr0XHolPwKIaG+6OjcNXDQ24v7wMS2prwiG5VRzGHrkF6ZcMb+5natN12QDT3S+q7bjkFtASwRgHtfViB2OMJQrP3r2wr/gJzrXroE5LQ+Jj82G96soWL2GjAt3i9SNGwLl2LcS6OlhmzEDSM08DAKpf/A+8hw7BNHkyvAcPwrboiw2UzwAAIABJREFUNSTMfxTVr7wK46SJ6LX0O/Ra+h0sM684o7SearUaQDO7gW5aIS3GqI/YGtFenqcAuh/ITXEa1Aa5NbSIS3CBCfJjKTn5QOYRBVzbKqFObeoMExt9EO0++EsCfcA8+2qgSjk9wVCVHPi9CDYPDMMTUPfJIagSDOBiQnfg7t5TbZB84tUhm7BtJDKMbkR9w+ZOXrbz0GgSmEO1h+SW0SwmtQmSJDXKrSNCCctOO5bjwBIChhBcabVgn9fTZEwCp0ICx2GILtCkeZrJhINe72ljjv9/ulqNpfZGvJycgqM+Hwr9nevlEhm1a/vwuQwIabY+P2G0FrVxtgsI0mV79lIqt4CWCMo4cEhShzaBjUuXovCqq1H5xBMou/de1L73HgDANG1ai9eIdXUAgIavv0HFY/9A+cOBsCXD+PEAy4IvLUXRdX/B4eEjUPSX62G++CKIDgfc27cj6ZlnUP/JJ6j/9DMkPf001L1a3vsP1Gp1RoY5v8UB3TQLS0ifWJMhYlvPN7i9DAC5ykYqGYeBU65xUOevZxhTcAfcjOmkp0E3IAZ8VdNIA8nJQ2zwgYsNfOS1fawQ/jDOfEFPNP5cBLCnVKWnFCSEOQLundUsYfAXAJ0WYyCK3gcqK7+DINg7a8lOhkCliiL7a0ObQB4qjCojKGi3cRAewuI5sAknnc6rHE701TTNc4rjOCSqVCjwB/bTm90uZKhPH/dajQ33xMZCoPREChMDAq/UuU77bSMe3k0ZVe8zjWFUqdmsZsSWztLUxVGslyWYzX6tR5I0lFKQdibDqNLSwBc387sQT37Aj2/g+dJSUJ6H7/AR6Ief4sE6tjb1+QDx9KgGVUpKIAn5rzefqJbk2bsPhCEgLAtNZib8BQXNahug1YIAY9r1xs5iNCrugp4xURGZjUwphdPn06HbOGgOp16lV+y/e7m3giRb+lK0kCsVfU0/aHpbwRg4JD46GvZfiqDpbYE62QhKAbHei/pvjwIAGJMaUbP6ovaDQEW1hu/zEH1NP4BlINZ5UPfV0RPzavvHwF/qhOQInOj5ix1IuG84+AoX+IrQeZDFBh9cO6sZ/dD4fzMa9raQTdwyyQC9u6BwccTmG6jVMZAoD7tfmcaPWW0GAamTW0eE0uFy1Q+Wl2Gr240GUcSkvFzcHROLrR43DnkD5UlTVCo8mZgIAKgWeDxeWYk3j1Udeiw+AQ+XV4CnFKlqFf6deLK1ziqHAwO1OsRzgcOLITodLisoQKZGgyxt530d83pNX+c2JLUplFGlnzBe4vM2Uanh3HDr6uJ0feOAUupXM4zfLknaPybUnIp19mzoRgyHtn9/AIBpyhSoUlLgWLUa0TfeANZigXfffjBmM0yTJwEAGpcvP3F9xoofAQD5l18B36FDqPvf/2CdPQvWWTPBaDXQDR0auGbp0iZrJzw2H/YfV8C7Zw/oMTdc4hOPnzAoWjIMAKCvWgO3JKUQQnSU0qa+v26aQAhRsQwZ1DMmSm4pYcHt50FAeEolZe4W5KVRz+kVW7u2xFmCc2IGtWgc1H3WtMGwe3tVs3NJDv8JwwAA+AoXqhc3X+rSe7AW3oMnDyEbfyxA448t33c6gn1loVY/JO56AO8BCOdJHSsIzk/Kyj5mfb7I7XOk1SSDFzwSFNq11KQ2gWO4sJxwd9PxQiQLkpsWYJl1LDfyj8RzqhOGAQBka7X4Mj292bFTTSZMNZ0McXw4Pr5jQttBoyn9cFHan0YFc43afN1AX8MbhYCUHh5VXR7P3M+XyZM40gaCuglqCampFs6cm6kbMRzWK66AKjnQsEObnQ3rFVdAm50F+/c/gPp8ME27AIbzxsJ3+AjK582D/fvvW5zPX1iIkjvugD8vH+ZLLwXRalHz5puofvE/p40zTpgA/YgRJ5KQfYcPo3rBS1CnpUHdoweqF7wE35EjLa6jYRikqdVuAEF9Ac5yhlp0Wp9eHZmljRvcHnAs0zSDrBsAqDKoDFqWKNM+yG/MBxutlb/eXxiR3ALqPj+sk/ziCgDp4VpHFN0vO52HR+XlL4zYRGQA0GqT4eJdii2uYFKboOE03fej8FAJBVeOkROB1Th2DrtfA0KCclMQojGpTVf7AHhbHXx2ouiIhKByCFiQ8kqBT20ubu44FY/Ob7bk6HEavvrqjGvkZGU3ec21fgMK1m8443XO33/HkTGnV9Cqfecd1L7zzhmvO5VpRpPhf/V1MwGsbfNFZzfj+ibERuyGocHtBUOIYt1+MsP7RJ8jVhdrqXI3f+IuJ3uq90A1XBfRxgEAeHPqYF9ZaDZPS1/DaNhhAJq2dO4AksTfwvP2W/bsnaOnNLKLdmm0SbB5GxTpNQCAZGOyV8WoFL2h6KpkH8qRcrKyKwCkya1FaWwbMW8/Zbh2hQcxXFI/Vjt6nejd2umV1boAit5bBHUjFEHzq/jIfUBcYDKxLCFXk/YmVZxl6FSqG/snJURsDHK92wNRorly61AqfslfmaBPkFtGs+Q15gEMAWuJWNv1BM4N5axra0Wi5BN3AujX6gVtg4ii7wlRdL62a/f1ekGI/DxYnS5NKnNVKdY46Gnu6QNQJLeOCKbl0IKzlKMZM9d69PEdyhtQ6c4fR5joM5/unp1EjnHgkqSjlQIfsR0aszUaqAgxA2jqvujmNAghvSQqZfZLjJNbStiod7kFnyB0PzBagFJakmhIlFtGi3j9HlGVEpG9+ZrQuLxAwzd60gRBOEApvQkdi5vv4fV61zCM6qndu2/Wud35IVKpbMzmofRIvXK/7inGFIJu4yCc7JRbgJJosGTklKRODklDM7X5z0MBNi8Uc0UQivYCBvUAkYDCPL9fsU0bOgohBBebTKyakDN3ZusGLENuGJqWTDhWsQdtHabG6fZA4V9gOdGwmtwEgzI9BwBQ6CmGOtUYsYcZp2Kc1AOikWE+/fRTtrq6+jWfz3cEwAwAwSSFJPn9/tf9fv/hLVu2nFtQkCf16/e0RBSaVxJKCOFgMvZjl+cvb32wTMToYnToNg7CyQ65BSgFntU17hpyrwGEhMT1SojaoDZdQxHGTtRdEEVHJQS7s9u9z+NRbMJWKLjWGqVhgDsJIS0nVpzlEEIIx7BzRqX3iOjfUZ3LLUHhrj850av0+UmGJMUm8e2w7WDVvcyK7eIcKlSpRhgmJePzzz9HXl4e3njjDeM333yTYbPZPuJ5vs7n870DYCaALACnVg+IQaDL8r0ej2cHz/MFe/bsuXnRokW63377TfXhh58wLJuMjN4PR/zv0GTsD17w0GKHMr/uFo0FBEQA0CC3lgim2zg4xraR83Iow4U0/4LhEvpw2nO7vTMn2Si3gDMRbFOz/dWCoHNLEvRMZJ4YZ2g06K/VMjs9nqsAfCi3HoUyUafiLD1jmi/TFik0erwcuo2DM1HQx9rHg9M3nIphVdEqXDfp2ojt3g0A4BhY/5otrV23DkVFRSduyocPH8bhw4dN0dHRGDBgwE3p6elXxsfHMwaDQQ9AAsCIoijU1dV5Kioq1Dk5Obq8vDwIp1Sjo5Tivfc+Zu644xbUN2xGbe1vMrzBzsFqHUXLXFUSgvO0dBrJhmR4BW+Vmo38HBq5yD6Uk5eTld0AILIfbK1wuO9Vv3t1sRPCMTenO/d8kc9dT0Xb2d5wtnzu58sUHa8Z1IOTUuq3sGzhYZ+37zBds92zI4JboqONRyoqHiOEfEQpPSvCEoJBq+L+PW1ApiGS87bdfh4+QeAQgvrXEcz+PtY+ij0l2Fm9M5CUbFZDtPvllhMWom8dIJZXV5D169c3++9QV1eHdevWsevWrTMDgdBJlmUZSilEUVQDOONus7a2FitWrMZFF72MzVsuQqT2OYiOHi+tqNimSMMAAFJNqZCoVCi3jrOAnQAmyy1CLuqsmQfKksePDecaatM1I3wNbxwFhL6hmG/t4XxsKQhE/yZZzLh69GCoTunF9duhPOwqLgcAiJKEaocTT824ABKl+GDjDnj8PC4a1A8DUwL5c++v346ZIwbCogtrrRXFJ2gH/WAXgU0HvJFdtna8wQgTw6QCmCa3FqVBCDmHJWTI8J4pkWsZACisqYOG4/bSSK/f2DFyo7RRWi2r3IJVDZ56Ud3LIreMsGC+IA00RsV++eWXTFvPMCilEAQBotj2SKEdO3YgP79MGjL4HYmQ0DmJevT4K8aMXoExo1dgwIBXwDCn2ylpaXMwetQPGD3qB4wZvQKTJx0Bx1mgUkVjxPDPMWb0CsTGXnBi/OBBS6BWt69BlMUylF2a27SxplLoF9VPMqgMm+TWcRZw1oYW8Zyhfs/guy0I5Ze8GQhR6dSma1kAzo7O1ej2Yl1uIe6bej4eunACJEqx+5ghcJxJWRl4YNo4PDBtHC4enIXecTHQa9TYVVyOkT1Tcc+U87DmUOAQ/0B5FVKizOE2DABgXbgX6ChBGwcuSdqw2+OJ6KQSlhDMi08wGBhmMSFEsSejcqBVca9ePDhLF8mJyACQb6vjvbywQm4dCkdw8+7S3pbecutokfU1G1n90LiIM/DUaSZoxyXhs88+g9sd/tvxp59+zgBxtG+f+SHJP9CoE9Aj9UZs2345tmy9CAQMEuKnnzamuPhtbN02HVu3TUde3n9Q37AVgtCIhITpqKj8Btt3zEbPtDkAgNiYyXA4DsDvD75HmF7fCxSgh+oPheKthYXBcYOdKlbVHa8dfs5K44ACdOvIR49Shk3tjPUYLq43pxu3JxRzSRIFL4oQJQm8KMJ8ho397uJyDOsRaNDLMsyJ6wgJeBXWHSnAxH4ZoZDVGus7Y5GO0J4d3o49Hm/EPWz/yFSjEWkqVRIBbpJbi1IghFyuVXEDRqanRrTXAACOVNrcEqXdzfBagYLu7RPVR24ZLfL5oc+hybByYCPoI6tmYLkpS1qzZo1UUtI5xbQC+QcfsUlJs9lTT+s7AiEcGEYLQliwrA4+f8vN9BISpqOq6odjWngwjPaYp0ECISx69PgriorfbpcOq2UUKl2Vig4f7RfdjwUQks1UN2dE8Zu2cHCo359/92mjRnfmmpx21HmETezQCbpFr8XEfr3xzPJf8a8fVkOr4tBSeXW/IOJQpQ2DUwPhQ8PSknG4yoa3127FtAGZ2JhbhBHpqVBzYY8utAPYG+5FOkp7jIP9VQKv80gRXbQIhBA8lZho0BCykBASI7ceuSGERKlY9r1rxww1sBGajH4cXhRRZXfqAWyRW4vSMavNmzOjMhVbsWhvzV4IgiBpekdOaFHMrQPF0ooyunHjxk79ItbX12PZsp8xoP9L0Gp7dGgun78KxcXv4Lyx63D+eZsgCA7U1TW/L2MYLWJixqO6+icAQGXl94iJHoehQ95HfsEipKT8BRWV30KS2hfumpB4mbi+Yptib2omlQkmlYkD0F0nPsxkH8opw1nmPaiNyt5bkThWlgRhtemqUQB3uL3Xu/089pdXYf7Fk/DE9CnwCyJ2FJU2O/ZgeRXSY6Kg1wTCF3VqFf42bjTuu+B8pERZkFNRjcEpifhy2178b+MOFNaEtNn8qWye+/kyxVeAC/qGSCn16Rmm6LDPFw49imKgVodZFqvWwDD/d7Z3TdZw7OvDeybrMuIi304qrWuEmuMKKKUdjomMdAgh+wfFDlJ0mOHO+l3QDY5T/M24LZgvTIdoZZkvv/xSluTZ3bt34+jRImnIkHdoR0qgc5wZsXFTsXHTRKzfMBYsq0diwmXNjo2NnYKGxh043qVZFJ3Ys/dv2Lb9cjgc+xEbOwk220/IynoWgwYuhtk8rM06VKoYWMzD2Pf3v9/u9xJuMqMz4Rbc+QhUmeom/Hwnt4DOwq8y1u4ZfGccCJGlqhshnFZtvk6DwGl60BytqkGMQQejVgOWYTAoNbHFTf3uknIMS0tu9me/HDiKKdl9sKu4HClRFlw9ajBW7AtbmGGX8E6167REAjZHelLycR6Mi9NEs+wEBrhRbi1yQQi5gGPZy6YP6a/czNMQkl9TJwmS+IvcOroI27Ois7QEyrWd3z3wLqMbEMMqWGKbUPeyQDc2AZ988gnxynj//fzzLxhJtEqZmU+02+CKjjoPXk8JeL4OlAqotq2ExTK82bEJCZeeCCn6I73S70Fh4X+RkDAdDvs+HMyZhz4ZD7ZZR0LCJbTGXS1WuJRbhalfVD9wDLdVbh1nEcrNTA8hx/IMCkCYJDl1MGxMOqebdKA911r1WhTVNsAviKCU4mhVDRLMxibjPH4eebY6DEhp2rTT5nDB7vUiIz4GvCiCIQQAgRC+6JifwzVxKGmXceCUpF9+dzrPilNVDcNgUXKKQU3IYkKIcjMvwwQhJE3Fsl9cN2aoXquK7JLxxzlSWePkRelXuXV0ESooqCPdnC63jhbZXLEZIhGpKqXpQ6PLoGVguT6Trv71V6m8vLz18WHm3Xc/ZBMTZjDx8Re1K1bf6yuH2TwUDBM4b4iOGguXu2nUDMsaEWUdDZttVZOf6XTp0GgS0NCwFSyjAwUFQJtUPToTKSl/pl8c/U6xJUwBYGTiSKdBZegSp42RQPahnH0ACuTWEW4OZt241q+xjpRbBwBw2mHnEjY56By/njFRGJyahJd/WYcFK9eCAjindxo25hZhY+7JZuL7yyrRLyEWGq7pHmbFvsO4cGA/AMDQtGRsKyzBa6s3YEK/sGz3cud+vqxLhCu3d7e3fKvH/bZXkqCN8PhzAOin1eKBuDjtKzbbakLIMErpWdGlkhBiVHPsqmn9+xozW0jyORNxPXth/HV/RULvPuDUatht1di1chn2/Pxjk7Gp/Qfh6n8+1+w8P/33ZRz4fTWyx03CuGtuAKfV4sCa1fj9w3cAAAzL4cYFr2P3ymXY9VPzJ4xtRaIUxXX1GnSBOsRKQZCEjUPih8wosCv3ebrVtp0MGdFbaix1dskbVsytg8Si0mKyefNmRehvbGzE0qU/kcsuewEORw48nsKgrrfb96Da9hNGj/oelIpwOA+grOwzpCRfCwAoK/8UABAf9yfU1a2HJHmazJHR+wHk5S8EAFRW/YDBg5egR+qNyC94pU0a9Ppe0GpTmA8OfBCU9s5mdOJoBsAauXWcZSwFcJ/cIsKFLeb/2bvv8Ciq9Q/g3zPbW3ovJAESkkBIQu8l0qugFAUVEZGmoIC9/0Tgqle9CIIULyogIoIQpPfeEwIkEJKQRnrfki0z5/dHlKsSkCS7md1kPs+Tx8dkd+YbkuzOO+ec97RPKPDubFcbkUk147oZy1dcB8yRdXne4HZhGNwu7C+f69E66C//3zkkEJ1Dal8n9XSP/41YauQyvPhIz7qcvq422PLg1lSvNxpKaYmckGun9Tpr57Fbk13dRKOdnX1VDLOHNGSyrYMghDAysXhLO3+fwL5tWtariBy94G0ER3eAtrQEGZcvws0vAAOem4XAtlH3PFZbUoyLv/169yPp0N67XyvPz4NC44RB01+EyViNotvp6DTiUYTE1tz06DRyDCxmExL27qrnd/s/BRVVYAhTSim9f+sUwV84y5z3dfXteu/Vmx359+V/Q9XRmyFSu75JXCunESHUoiHM1q1b7aIw+ENSUhJSUtJodPs1tC536/+QkfElzpwdhLPnhuL69QWg1ITcO5vuFgYAkJe/FVevza31+VevvXS3KDGbS3Dx4jicPTcURUV7a3383/n4jKU3SlM5E2e/G+QFagIhZaQmCIuRG1uTXXdglGiKkto97wtC7OrFkBCRVOo0WQOggu8sNvQD3wEeVr3fbLQc98Peqiq7viCwtje9vGWxCkV7JSE/NOX9DwghRCIS/cdTo+o9vlOUvD5rsRmRCBoPDwDArmWfYufni1GQUfP+5uR577y/8oI8HFm/+u5HUWbNXeiCjFvIvXEdzl4+EEulOPnj94j/YikAwCMwCBp3T3QdMx6H1q0EpQ2fI5hWVAoARxt8oOblaDffbna94De1PBWlhlJW2dHLrltW/p2stTMUXbzJxo0bidEOm0D8/PMvxGJRc23C/s+uf/618fMbT75JWmfXr+OdvDvBxJmOAnCo39sm4ASAEr5DWBsF4c51fisbhLn3TdgOMCLXQLFygP1uONIwZ+Zvjr/Fd4iHVe8XRg7YfkirBfuQO3M2BSJC8KWfvyJYKh2mJGQD4WmFvy0RQhipWLTaXaV49vk+XVRiUf1uLnAsi0u/1UzxGfbiAox8+Q14h7RC4e103Dr3zxt9xgyu2RDp4q6atWEVhfmwmEzoMX4Shs99FQBQnJ2Jfs9MQ+q508hNqdd6pnucz8iuNFosm/75kYI/ua6WqIm30i7fb+76/tYPIk3fAOowC5PlYjhNakP37d9H8/Lsd8HsmjXfiTw9hzLe3qMc5s3AxaUzOIjpoWz7XlrU07+nzlnmfO88TIFNRaQkswA28p3D2q5GTj1mlmpqX/lvJ8Sy9l0ZcWBTvEH3Pd8B6qLexQGlNJ0ABYmGZjV4AAXD4LsWQapIuXyUimF2EkJkfGeyFkKIWCYWbfTSqJ+Y80gPpUrWsNlTty6cRkVhPryCQhDWrSc4jsWt82dg+offmZYdusDNzx/aslLcOFWzR4qhqhL7V38FmVIF75DWuBC/HRzLIigqBme2/ohBL7yEqV9+g8fe/BCuvrW3K/snpTo9Ciq1IgB76nWA5oszssYT3Xy78Z3jgb679h0gZ4istQvfUR6K+4x2bPrtdO78+fN2Xc5UVVVh27ZdJLzNIqJUOkbPhpDgl9j9Wcfs+t8VALr4dAGEkUy+fIUmNGJT6Bl7qcgztg/fOR6GRD22ByC1zh0/+2AGsJnvEHXRoCFVI6WbDmir7HYDJFtRMgzWBAQquyiUfVUMc5gQ4hhXGw9ACFHJxKJf/VycR87s300pl0gadDy5WoPHXv8Azl4++PHdV/HV1AkovJ2BHuOeRPuBQx743A7DavqdJ+77DRz7v824rx87hG9mTcHy5ybi+Mb/Iu7ZF3Bqywa06zcALTt0xq+ffATCMBg8s37ryC5m5rIMQzZTSu13ErKdcpY5/zgoeJBddzCzUAv23tkPTb8Au58C4zy6JTUpOGbbtm12NS/4fq5fv46rV2/Q6PZr6R8diOyVWtUGTs4xok/Of8J3lAcK1ARCLpZbANzkO0tzFJGSfBMO0nbyn1RLXQquRk4NhINMhyZEJJE6PeUCwGY7kTWyPfM3xzvUNLUG/aKYKN26u6rK/ibCNgIpw+A//v6KERqnWDlwjRDSqFuPWxMhpL1ULEqK8PWOm963i7K2dl915ezlDYlcDtZiRn7aTRh1OpTmZgMA3P0DIVUo4eYXACdPr788zyMwCEFR0TCbjEjcf//R9E4jx4C1WHB5Tzw8g1tCV1GOkpwslOZmwyuo7ncvKaU4m5ZlMFnYNXV+sgAAfuvi00UiYRpWVNraR2c+ItJAJ5HI3X4vYGVtXCHr6Ek2btxITCbHqVO3b/+VGI1yLjx8kV0XXyEh89gzeRe5cpN9N53rH9ifshy7A03o7rUD+g/fARqKgrDnOr+ZD8LUveUgjxiRs79EOfgWmsbvv0NNKQIaWBwAuFTJsqZ0O1wo1xhEhOA9Hx+5q1ThwxDRabFIMseRdlImhBCGET3NEOaiu0oZNKlbjFxSzzUGf1eSmw1DVSVEYgnGvbMIQ2a9jPCeNSOauSnXEdqlO579fCVGL3j7L8/7Y9Qg5cQRGKpq3zRR4+6BrmPG4+C6r0E5DqW5OfAMDMKQ2a8gvFc/lObVvn36g+SUVcBgNmsBnKnzkwUAUGhkjWmdvO2ibfZ9ac1anMg7CedBQXa52yyjFMNpYijdvXs3LShwvIZZa9asF3m4D2B8fMba5Ru6UhkCd/feondPvmf3d1CHtxxepZaqf+Q7RzO3G4DDLCKtTVK76cctElU03znqQyRr25kRBzv6tLpMANv4DlFXDXqBpJRSAmz9rarS8s+Pbpo+LiigOrGCzB+zjPF09l8ilygPEkL8+c71TwghnjKJcpub2mvFiyM/E5frjeRUWqbV3tAtRiN+WfI+Mq9chpt/IMK69UR5fh4O/fcb3Dh9vNbnKDROCO/VFwBw8bcd9z1236en4db5M8hNrpmSeG77T8hIvISwLj1QVVKMfauW1Tnvhds5JgvHraG0Ga2wtzKVRLUprkWc3d8peOvUW5BFuDFibyXfUe7hNiOKTU1L5S5fvuwwNxn+TKfTYevWeNKmzQdEpQrlO849Wrd6nT2Tf4Erqi7iO8oDucnd0MqllRSAfa+YbuIiUpIpatYeOKR8r04Xit2j+vKdoyEk6kd7gciu8J2jAT6dvzne4a6RSUOvhQghUU4Mc/ZY61CF1HFumlvFCZ0Ws/OK8MqjXyLQIxQW1ozfLqw3HU76hSUEq0wW40eUUruaZ0YIcRKLpK8RYF6PiGHM6K7T5VKxDNezz2P13rcwO647Alyd+Y7ZqFiOw7vb91cbLZb2lNJUvvM4sKgSQ8npfj/1U/Ed5J8s7bUU/bnuXMnaq3ZzB9llbGtqCVNg+fLlxGx27KVco0aNoBERPjh7bihhWT3fcQAAanUkOnbcjEe2DEWpsZTvOA/0aOtHsaDTgt3OMudhfGdp7pLDI5wA5AJwqC3WDTK3vNPdPpSBEDe+szQU5SrzjBVrpADc+c5SR4UAgudvjne4zj0NfmOklCZR4Or+qipr5HEY5RYL5uUX0zHdX6CBHjV3yMQiCUZ1nSZ974n1io6t+s+QiKSZErH0A0KIhue4IIQoxCLJQolYlhMd3HPeW+PXKcf1fFEuFdc0W4oM7IweESPpuuPnqcHk2BcmdXWzoBgMQbpQGDTYVblYrg91sb87xn/3/un3IWmhJrKW9lEIyyPdII1xJxs2bHD4wgAAduyIJwaDhIsIX2o36w9CQ9/i9mUepvZeGADAsJBhVc4yZ4fZMKkpi0hJrgSwju8cdcERxnK+0xvFTaEwAADCOPlKVMMy4Hh2rtf8AAAgAElEQVTrD75wxMIAsEJxAABVHLd4TWlJs6oOnsy9w4YGdOR6R466Z7jEReWJSf0Wyt8ct0bVrkX3BRKxLEfEiOYTQhp9QRAhxJVhRLOlYllOG//Y914ds0Lz7IC3lR5Ovvc8dlzPF4la6c1tOJPANafZNefSs/UGs2UF3zmaAMoQ5oeRrUba/dWtgTVgU9qPxGVsa47vfQ8YtRhO41vTXbt20aIi+57uUherV/9X5Orah/HzncD7i4mHx0Co1W3Je6fet/vhbYVYgQ7eHWQAhP0N7MdiADq+QzysK1EzT1okyii+c1iTSBreiZG0cqT1B8Vw4Clp1hpS35ltMhmvVjtkgVRn7+fn0wqRinmq/+uiB60/9nT2x7RB7ykXPLrMKSqoxwdikTRHJdecIYQ8TwjxsFU+QogLIeQZlUxzTMxI8iMCOi15acRnbrOGLVH5ugU/8Lkvj14myiypIMdTb9vlgk1rqzZbkJxXKIKD9SC2VwqxYt2Y0DFmxgE65n1y/hOYFRSqzj68Xry6zYhiU27e4BITE+3+wrUuDAYDfvppOwkLe4eo1eG85RCLnRAZsYR+lbiaVLPVvOV4WAODBsJoMZ4CYN/tlJqRiJTkfABf8J3jYdzx6Xau1DXCIfYzqCuJamRvEHkC3zke0tL5m+Md9qa5Vd7BKaUWI6WffVtaah+TS23oUFUVtusMZMbQRUQufbgFjf7urfD84A9U/3pmm/SJPvO7RgX1+LymUHA6RQiZTgjpSAip9zxtQoiCEBJDCHlWJXc6IhZJ8iMCOn01vvfc3kue+UU6a9hidbB3xEMdSyFVY9qgRWR30g0mq6TpvzedTc/ixCLmIKW0mO8sTcRVhjC5v2/eZNcoKF47+zrjPCyEMGp+WrC6jA+lesbE7Ny50yH2M6irW7du4eLFJBrdfi0VifiZst0m7H1LgaGc/fbat7ycv66eCH+iyknmVPeuCgJb+wSAXa0h/DuD3CMnpc3kMDhQ18S6IIQRyZye8gWIvQ+x5sKBRw0AKyxIvnsgQtxkhOQeaNlK7m6FPvn2qMRiwaDMHDqmxyz0iBjeoD8+o9mAa1nncDn9qC67OJUt0xYoxSJpuZiR3DRZqs+bWVMSaoaljL9/UACy3z/cxCJJlEys6GThLOFmi9HNRe2pD3BvycS27KtuF9QdCmnD1oRuO70KZ29sp68O7UeUUvvuXV9fFpbFhzsP6vUmc29K6SW+8zQVLGXn7b+9f9HCYwvtrx1QLVY/8g2NMUbQ4tVJjTrcoYjygGZcK6xatQolJXZ9zdFgs2e/wFJcRVLSjEYtgtzceqFduxUYtv1R5OvyG/PU9RKgCcC2Uduq5GK5BwDH2eSimUgOj5gLOx1B4IjIfLzn0pusWNGW7yy2xppSL5t1O6Nhvdkv1jZz/ub4lXyHaAirFQcAoBaJvn/W1W3iLA+PJlcdUEoxJDOb9fTvjGcHvPPA6UT1wXEsSqrykVeWifyyTJpTckuvNVRYLKwJZtYECkAikkAikkEpU4sCPFqrfF2DiY9rEDyc/CBirP+eu+TnaaxCXIXpfbpY/fu1B2fTs+jOxORTBpO5F99Zmhivakt1Vp/NfWQGi/1PNZQQCU4+fpyr3p9HdKfzGuUXnXGSwmN+DN2xcyeuXr3a9P64/kYul+OVV2bT9IxPkJu7oVG+X5FIie7dD2PV1Y1YnbS6MU7ZYC/FvmSZFDHpG6VEOZvvLIJ7JYdHiAFcAfBwQ/GN6FL03KPlrmEO3ba0Lkza+COc+WY/vnPU4jKALo7YvvTPrFocEELaOzHMmeOtQxWSJnYx+VZeHj3KyfHW+LVEJlHwHadRVJv0eHfDOK5/m2D0j2hlrxV6vXAcxaJdh3QVhuoRlNIjfOdpaiqNlYeWnl/af0fa/fersCddfbrim/6rULjsMixFti9oPF7twCZn3sSvv/7aJKcT1SYkJASTJ4/HxUsTUVV11ebnaxP2fxyr6YwR28c6xGsXQxgcHX9U7yJ36Y6aC1CBHUoOjxgEYC/fOf4sx6/3mZthE7vxnaMxUUo5Y8WqBFB9B76z/IkFNYXBZb6DNJRVXzQppVcocO23ytp3tnVU+6oqsUtfTWYO+7jZFAYAIJcqMX3IEmbf9VTmdnEZ33Gs6kpuHowWSzoAR+p+4DCcZE7/eabtMw6zGOts/lnsyd5L3Z+KoBDZ9saGyxNhVMsZmF27djWbwgAAMjIycO5cAo1uv9rm6w9cnDvB22c089y+mQ5RGABAV9+uEDGiXAiFgV2LSEneB8Bu7nroFV5ZN0Mn2N1Ihq0RQhiZ01OBALGnreT/1RQKA8AG87WqOG7Bp0WFehPXNJrdFFrMeL2wlE7oNY/6ugbzHafRtfaNQlz7ifj2xAXojE1jCizHUexKTNFVmy2vCTsi28zOAHWAob1He75zPLTXTrxGDEoz5zQoyGa9+RWxnpBGuJKNGzcSi8WhR53rZe/evaS83My1a/ulzf6NZTJftG//Df596SsU6O3puuHBnol8RqeSqP7Ndw7BQ5kBO1iczBGx8Xyn13UgxD42bGlkhFF5SlSj8wHYw34qyQA+5DuEtVi9OKCUHjVSemFzRbnDVwccx2FSTh4bFdKL69pmUNOaJ1UHI7tMhYdzC/a7Uxc5rglcS1/KyoXBbE4FsIfvLE0YKxVJl0yNmuowvcEBYOqhaSJ1d1+RLNTF6sdmXKTQPNqSbt++nZaW2v9GXLaydu16kUbTgQQGPGv19wiGUSA25jvuYtFV9odkx9lDLMgpCB29O1KGMN/xnUXwzyJSkvMAvMB3jssxL51lRTKrjBr8cOQTvL7+MSz66bm7n9t2ehX+b/MUfLxlGr7Z+y70Ru1DPxcAtp/5Bh9vmYbvDi25+7lzN/fjcNJWa0QGAIikLaMZacQJqx2wfjgAz83fHG/kOYfV2GTIVctxLy0rLjbqOHso5urvtfx8apQ5M0/0eaVZDf/XZu7IL0X5lQYcSr7l0EWfheWw60qKrtpsmSuMGtiWmBGv7enXk3grvfmO8tBulN3AoouL4T45AhLfhnX8+ju3F6LYK0lXuOvXr1vlRsPo0aOxcOFCzJo16+7nBg4ciDlz5mDmzJmYMGEC5HL5Qz8XAAYMGICZM2dizJgxdz/Xvn17dO3a1RqRAQAmkwkbN25lWrWazzhprDmyRBDVbhmrh5ybeWCOQ71mP9v22WoCsgxAk28H3lREpCRvBbCer/NnBfQ/VeHcymr7GXQLG4zZwxb/5XPhAR3x5ri1eHPcGng5B2Df5Y0P/VyDUYuMgmt4c9wacJRDbkk6TBYjztzYiz6Ro60VGwAgUQ7pA6K6YNWD1s2y+ZvjT/N4fquzSXFAKU2kwO61JaUOO24eX1mB/QYTmTl0MZGKZXzH4Z1UIsfMYZ8yB5PTmLQi3kdT6+1cRjY1s+xlSukxvrM0A5Uc5f47OXKyQ81H++nmT9iSvpV6TGtHRU5SqxzTdXI4V2nWkt27d1vtojUhIQE//PDXu+Pp6elYsWIFvv76a5SUlKBXr9obcdX2XJlMhsDAQHz99dcghMDLywtisRgxMTE4f/68tWIDADIzM3Hq1AVER6+GWGydGREtW77CKTUx5NEd48QW6jhvPa4yVwxvORwysexLvrMI6uxFABmNfVKt0jfjVqvHrLoDcmu/9lDKnf7yuYjATnc7IYZ4R6JcV/t2QLU9lxAGFs4CSinMFiNEjBgHEzejX9QYiETWbWhJCCEyp6daAiTPqgd+OBkA3uLhvDZls8VaOo6b/9+yUnOe2WyrU9hMnsmEd4vK6JN95lNvl0C+49iNYK9wDIydjPUnL6Kq2vFGz4xmC/ZcvWGoNlte5jtLc6GUKD8bHzaeU4gdayH/R+c+IgmVSZzH9CiOyBp2Pa/s5A1xqBOzceNGhmWtN5qamZkJg+GvnZXS0tLA/b7eKycnB05OTrU9tdbnUkohEtV8rxKJBBzHoWfPnjh79uzdY1rTwYMHUVJiYNu1W9bgfxRvrxE0IOAZ5ondU5hKk2M1xHgi/AmLhbNsAeA4CyQEAICIlOQqAE+hEee8s4y4+kLHhSYQommscwLA6ZTdiAzs/NCPl0uViAnpjSVbX4C7kw8UUhUyC2+gfXBPm+QjjNJNoh5TjJqOQY2FA/D8/M3xDjV99mHYrDiglN6mwJdLCgscapiU4zg8mZvPxbTqx3UKjWu26wzuZ1jHp+Hj2ppdf/Iix3GONStn15UUI8vRXZRSPocfm5t0lrKHx7cZ73DT0Z7d96yoUFTCuU+JZMHU76VA5CaHemQwtm3bhvLyxt1xPDY2Frdu3Xrox5tMJiQnJ2PGjBkoKytDdXU1/Pz8cOPGDZtlXLfuO5FaFUVatJhe798PjSYK4RGLybyjryK9It2a8WxOJpLhqcinzGqp+mO+swjqJyIl+SSAJf/4QCu5FPPKeU4ka9NY5wOAPZc2gGFE6Bw6oE7PGxgzEW88/g3Gdp+J+AvfYnjnKTiVvAtr93+IPZesvyZIJAmOEkmjTlr9wPf35vzN8Qcb8XyNxqZt3oyUfnRCp6u+qHec+uCV/HyOKtzIhF5zHWrOamOaM+LfomKdCfuv33SYC76M4lKcv51jMFosM/jO0txopJrXZrSfYXS00QMKitG7xohNniCuj4fW/c4gA7i+0Ja7nHCZTUlJsUHC++vduzc4jsOVK3Xrinny5EmsXLkS+/btQ1xcHA4fPowOHTpg3Lhx6NPHatOb7zKbzfj++5+YliEvMc7OHev8fI2mHWJjv8cXl1fgWI7jzRQcGzqW48CdBtC4vyACa/sAwClbnyQzcODJKqeg3rY+z5+dubEXVzNPY0rcm6jvZqjZxakAAC/nAJy9uR/PDXwXd0ozUFiRY82oAACxckAfEM05qx/4Xt/N3xy/tBHOwwubFgeUUp2B0hffK8jXsQ6w9nNbeTmOGkzMzKGLiURsnbnGTZFULMWsYZ8yR25kMKkFtc9BtCdmlsWGMwk6M8tOo5Q23zYx/EmioPsnR0x2uA4FRtaIkbtGM6IIJ+I6LpRFHd4bXZ+K4MoNldi7d2+j3miIjo5GWFgYfvnll3ofw8fHBwBQUlKC6OhobNmyBV5eXnBzc7NWzLtycnJw/PhZtI9aCYnE9aGf5+zcER1iN2LdtY1Yf423daH1JhfJMTtmttFJ6rSQ7yyCholISTYDeBRAmq3OUaXyT0trOTrGVsevzfWscziQ8CNeGPIRpJLamxs8jPjz32J4pylgORaU1txTJISByWL96ck16w8mhwHE+pXH/5wGMN2Gx+ddY2wQs6nQYrm+rtS+Fydnm0z4sKSMTu7/Gjyd/fiOY/daeIZhWKep+O7URVQaqvmO80D7rqWaDCbzcUqp9fqnCepEI9W8+lzUcya1xLabX9lCaXUpRsaPYhChJu5PRbAPs0maqqsvxCEaZtOmTYwt5uvfT+vWrdGrVy9s2rQJ5gas9/pj1EAkEt29W0gphUQisVbUvzhy5AiKiqrYqHbLOTxEBebq2gMxMf/FDylbuK8SvrJJJlubGD6RZQhzDMAlvrMIGi4iJbkIwFDYYP8DlpHqL3ZYQEGIdVuo/cm3Bz7CZ9tfREFFNt7+YQJOpfyGn04uQ7XZgK92vYrFP0/HpmOfAwDKdcVY8dsbD3zuHxIzTiDIMxwuKg8oZWoEe0di0ZZpICAIcG9lk++FMAoXifrxCgC2WPSaBWBMU2pbWhvSGN0cCSFBckKu/tAiSB15n9Z6fOI4Dv0zc9g2reIwsc/LwnSiOvhix1zOaMzBi3E9GKae87JtKbesAl8dOlVlZrkwSmk+33maM61J+9P3yd8/uiJhhW2uMG1MI9EgfuROTlkkQsm31xhqrv2iX+ypgNuL7bFlyxakpqbaLM9jjz2G4OBgKJVK6HQ6HD58GL1794ZIJLq72DgnJwfx8fHQaDQYNWoUNmzYcN/nXr5cs7FneHg4vL29cfRozebhgwYNQqtWrVBQUNCg0Yh/IhaLsWDBi1zunbW4fXv5fW9cubv3Q7t2y7AicQ1WJ622WR5bUklUOPD4AYNaqu4C4CrfeQTWkxwe0RPAQQBWa3N4rtMbJ7TqgNpbjwnuy6w/dJQ1JvS14iF1AHrO3xyfaMVj2qVGKQ4AgCFksp9EsnJncIhKztjXjvazc3O5FIkbXn1sJSMRCdOJ6sJiMeGdDeO4TsHeGN4+3K5+sCzH4dO9x3RFVbrZlFLHm3fQ9LTSm/VXB/48UO5oHWX+IGWk+HX4NtbL4MoUrU4itPpvM6UYwOP1jtylqwl03759wo2GOvLz88Nzzz2FhMSpKC+/d9qwl+cQGhH5CfngzGJsv7Wdh4TW8VLsS+Ynwp/YppaqJ/CdRWB9yeER4wH8iIcZBvsHGUHDTmSEDBcKg3oyVqw9Q7mKblY4FAXw2PzN8duscCy712gXcxTYUM6yB/9VVGhXQzE/l5fjlNHCzBj6sVAY1INYLMWcEZ8zJ1JvMzfyi/iO8xeHU9IslQbjRQDCrqP2IY2C/vhi7It29RpQFybOhGE7R4hSxZnUa3YMZdR/HQRxmxLJlWrLceDAAaEwqIc7d+7gyJFTiIr6GlKJ+1++5us7joZH/IvMPbLQoQsDD4UHJkdOtqilamGtQRMVkZL8E4DXG3qcSk2L1IzgYXVfqS+4S6qZFAEwWVY41FvNpTAAGrM4oJTqOG7KrxUV2hO62rfgbmyZJhMWlZThmbg34K7x4TuOw/J3b4lRXV7A96cvoUJvH+sPCiqrcDA5zWi0WJ4SdkK2HyqJauHo1qPNoS6hfEepNwqKiXueYE7pzsH75Q6QBta0G1f39APTQtXo6wyamuPHjyM/r4yLivqaAxgQIkF4+Mdcq9Zv4tm9LzhkV6I/W9BpgYFS+g1q5i4LmqiIlOR/AVhe3+dbRDLtxdhXxCDEsdq82RnCyJ2lmnE6AA25KfXW/M3xi//5YU1Ho04DoZSWGSgdv+DOHUOZhd/1yRaOw+TcPK5b+DDWVptyNCf92z+GIK923LoTFziW5wsjluOw4UyCjuO41ymlwhuwfSmWMJLX3+/xvsNvGjPn6ItkXdp6eDwfBc3AFlQ5OBBbtmxBVVUV39Ec3vr1PzAyWSuEhb7Dde70Cyd37o3Bv4wiicWOPdU31isW/QP7G5QS5Tt8ZxE0ihcB/Ls+T7zQYWEiZSQhVs7TLDFi/wiRrOPZejyVApg3f3N8s9uHpNHniFNKD5kpXftmfp6ezxu6M+/kcXK1L8Z2myEM/1vJzGFLmSojh11XUnhtWbkj4bqxRKu/zFK6gs8cgtqJGfHKls4t7wwOHsx3lAb7z+X/YOaRWVD08kFlZSXNzs7mO1KTwLIsDh8+xfj6Ps6k6nT0ka3DmJJqqzeBaVRiIsaiXot0SolyJgChgmwGIlKSaURK8nwAb9fleWkho47rVb7CXUsrkij79iGMa132ouAATJ+/Of5LW2WyZ7wsIDVQuvC83pD/S0UFL9XBxrJSXDSxzIyhixiRSMxHhCZJzIgxd+Qy5kxaluj6nQJeMpxJz+LOZ+QUGS2WkfSPhsoCe8Oqpeqpb3V9S+9oG6PV5lTeKfTd2o8U02I6Z84c+PkJrZAbQiQSYdDgQdwjAx7BZ5eW4Zm9U0UsdbgtMu4xKWIS6ypzTQSwhe8sgsYVkZK8CMAc1NyJfqAKp5AbmS0GdbZ9quZH6vRkFMBkPMRDLQCemr85fo2tM9krXooDSmm1nnKPLiosMCT+3nKvsaQZjfhXaQWeHfA2XNVejXru5sDbNRCPdp+DDWcSUKZr5J9tYQl+vXxdZ2LZRyil5Y16ckFdnZAwkj0zo2ea+A5iDVqzFuN+G8d8n/Y9pkyZgsGDB3O22hOgKQsMDMScOXNo63at6dj4sfgh+Qe+I1mFl9ILs2JmmdRS9bN4iAtEQdMTkZK8HMBTqLnwrJVFJK+8FDNPDkLsr+d7E0CITCPVTDABeNDiSBOAcfM3x29spFh2ibfWk5TSpGpKJ0zPyTZkmRrn+sDCcXj6Tj7bO3IU17ZF10Y5Z3PUp+0otPKN5dadOM9Z2Ma5eV+i1ePbExcMZpYdSym92SgnFTSIWqqePTF8orGte1u+o1jNyisr8Wj8owiICKAvvfQSbdmyJd+RHIJMJsPIkSPZp556CrvyduGRXx4RZVU1neVCb3V9S88Q5ksAwmtTMxaRkrwBwFjc5+L0fMfXrlFGHNS4qZoXRuzbRiTvcv4+XzYAGDV/c7zjtkOzEl770lNK4w0c9+qU7Cx9OWv7YePn7+SxaqcAMqrr83bVj78pmj7kI0ZvZujOxOs2/8FWm81YdfSM3syxr1FKD9j6fAKryZeJZC981vczvZRpOm2Es6uyMezXYaIfM34kEyZOwOOPP84qlUq+Y9mt8PBwzJ07l3q18sKY+DFYen6p/e2m2ACDggahq2/XUrlY/n98ZxHwLyIleSeAgQD+Mvc2tdVjRw1Kr+78pGpeJIpevQnjfvJvn84E0Hv+5vi9fGSyN422CdqDKBnmy5ZS2bQfWrRQymy0Qdp/S0uwrEKPt8avhYvK0ybn+LP2cQGI6OEHNz8VGIbgXHwGzsfXTHUL7eSNdn394eqjhFgmQmWRAYkHs5F8Ku++x3P3V6PXuNbwCnaCVC5GZYkB3791+u7XnTzkeGRKJDwDNSjKqsKB/15HVUnNzYkuI0IQFOWOLUsuNOqAdlFFLhb/PBVPdo1GO3/btIrlOIpvjp3VZ5WW/2g0W56zyUkEtkS0Ju2uralbH/n0wqdNp0L4nafCE1/0/YILdw1nTp06xZ06dYoxNdJIqb0LDAzEkKFDOFc3V7Lq6iqy7to6viNZnafCEzse3WFQS9X9ANy7q5ug2UoOj/BDzfqTHmXOra9fjpnXGoQ0uddAe0WpSWcs/zofYFsB2A/gifmb4x2764EV2cUddAOlL982mw6/mnfHwNmgWEmprsYXZZWYOuDdRikMAMCrhROMejO0ZfeOHga2dYOTpwJZ10uRd6sC7v5qxD0dgeAo91qOVEPjJoPSSYri7Nr3iOgxtjU8AzW4faUYnkEa9BjbGkBN0RAzqAWObbrZ6DNdPZ398XiPudh4NgElWr1NzrHzSrIpu7TiisnCzrDJCQS2RtVS9TPj24w3RHtG853F6ooMRZi0ZxIzZd8UBLcPxiuvvILu3btTsbj5NkLw9vbG008/zU2aPAknKk4wPX/q2SQLAwBY2mepXsyIP4dQGAj+JiIl+Q6AfhaR/N8J0S9phMKgcREiVUk1EzmALAIwRCgM/souRg4AgBCiUDHM6QnOLhELvLys9kdi4jj0vZ3NdW37KEZ1ndboxdDQGVFoGeP5l5EDzxYalORqwbE1//aPvhIL/zBXXDmUjeM/pT7weCHRHhg2s/09IwdPvNcVFUUG/LbiCobPbg8nDwU2fXAWw2a1h6HShMM/pNjum/wH3+x5hysou4KXB/ZixCLrdY49l5HNbb90Ld/EslGU0lKrHVjAh7H5uvzvRm0fpTJYGnche2Pq7d8b73Z5l9WINaLDhw7TxMREYjab+Y7VKLy9vdGvXz+uVatWzP7s/fT90++TatY+Nk20hQltJnDzOsxLUUvVMQCaxw9ZUC/LZxx6HMBqAC58Z2lGigA8M3tl3G6+g9gjuxg5AABKqUHHcQM2lZcVby4vs9o89am5dzhX1yCM6Pys3XyvRVlVdwsDAGBENdG05fXfwK8sT4eAMBcMnBoJ/zBXlN7RISjKHb6tnHF6W1qDMzfEtEEfMCZWQrdftt76g6u5+dh26eofnYmEwsDx/aKWqPe+0eWNpnu1COB47nEM3DZQ9PGlj9GtbzduwcIFGDx4MOvi0jSvCRiGQWRkJKa/MJ2d+txU5CnzSP+t/fH6idebdGEQ5BSEVzq+Uq2WqsdCKAwE/2D2yrifAcQA+Ps8eIFtHAAQLRQG92dXY9uU0mJCSN+lhYUXnBmR0xAnpwYtTFtdUoIUC5i3B/8fGMY+9zqLfiQQvq2cUV6ox9VjufU+zqlfbkHhFImQaE8UZVXh3M50DJ8djTO/piO4vTuiH2kBAEg8mI2U0/df22ALDMNg3qivRB9veYa29nKnMS38GvRzvZSZS7dcuFJlZrk4Sil/QyICq1JL1c8ODh587Xz+ef+d6Tub1KLUv9uRtgM70naIevr1xLzYeZjdaTaysrLYkydPijIyMmAvI7r1pVarERsbS7t3704ssHB7s/eKPjv0GXQWXZP+uQKAlJHii/5f6CSM5A0AN/jOI3AMs1fGZS6fcagPgJkAFgPQ8BypKSoFsGD2yrhv+Q5i7+yqOAAASuktQki/N/PzDms5zulxF5d63fG/Xm3A8vJKzBiyCE5KN2vHtIrOw4PRZWRLVBQZ8Ovnl2Gurv+N9criamz79NL/jj0iBEa9GXmp5ZjwThcc23QDIAT9nwpHfnoFygtsswbgftydfDC+9wKy+fgnCHB1hodGVa/jnE3P4rZfvl5hZrk+lNKrVo4p4FelUqIc9na3t8+klKYoU8sfPMWuKTh55yRO3jkpcpO5YWHnhczYx8dyYkbMXLt2jb1y5YooKyvLYQoFlUqFiIgIxHaI5bw8vZi08jS8fuZ1HM4+bDejto3h/R7vV/uofA5LRJKv+M4icCyzV8ZxAJYvn3HoVwBfARjNc6Sm5EcAc2evjCvkO4gjsLviAAAopQmEkK6LCwtOVHKs61Q39zrlrOY4TL1TyD3SfjzC/GPt742JAH0mhiGqbwCKsqoQ/1Ui9JV/7WDi4l3T+rCyxADOUreLA427HLEDW+DXLy7f7ZZUcLsShBAwDIG7v6rRiwMA6Bo2EFczT9E1x89j/uDeRFLH9QfHbmawu5NulJpZtieltOlfOTZPSTKRbNbyActXjPl1jFJn1vGdp1GUGkvxxok3CADS3bc7prWbRiZETqAEhFy7dgeqbGcAACAASURBVI1LSUlhsrKyYG+djjw8PBASEoLo6GjWx8dHlK/NZ7dlbBOtP7Qe1Wx1kx8l+LvHwx7n4lrE5askqichbHYmqKfZK+NyADy6fMahxwAsA+DLcyRHlglg1uyVcb/xHcSR2M2C5NoQQgKVhJx40tXV92UPTwkhD/deMzE7h9U5BZO5oz5nGMJPbRDR0xe+rV0Q0MYVGjc5irOrUJSjRUZCEbyCndBpaDA4jiLldN7dEYOKIj2SjtRMLZq9Mg4AsPmjcyjO0cLFW4kOQ4KgcZUjINwV5moLbl0uQrXWjFNbb/3l3MNmRsGgNePw9ylw91dj4jtdkJdWAUIAn5bO+PH/zqIkl5+LLo7j8P6miWxLDwUmdol+6OrgwPVUy6HktCITy3anlGbaMqOAfzqz7r9n886Om3t4brPdIICAoE9AH4wLG0fbubSjzkpnpqy0jN66dYump6czWVlZMBrrv06pznkIgYeHB4KDgxEaGsq2aNFCBAKap8vjjuUdE3179VuUVDffhh9RHlFYO3itViFWdIIwnUhgJctnHHIG8CqAuQDqN+TePFUC+AzAZ7NXxjWPu0xWZNfFAQAQQjxVDHN8mMYp+D1vbxnzDwXC8uIi/FdrxtsTvoVGwd8iv7hnIhDR/d5i/1x8BjTu8lq/lnuzDNv/fRnAvcWBX5gLxrzS4Z7n/L1rUVA7dwx4NhIb3juDam3NOrjYQS0QM6BmzUHCgSxc3sfvzqNl2iJ8tPkpOrZDJDoGBzzwB0opxW9JN0wnb93OM1nYHpTSO42VU8Aruc6su/x1wteh66+vt88FQ41MLpJjWMgwDAwaSCOcIzgXpYuourqaFpcUc3l38khBQQFTVFSEsrIyGAwGcFz9dieXSqVQq9Xw9PSEp6cn9fX1Zb29vYmLi4vIbDHTXG0uPVN4hvn11q9IKROW/ACAm9wN20Zv07vJ3SYBaPa7qwqsb/mMQ94A3gYwHYDQ9vT+qlEzJWvJ7JVxzfduRQPZfXEAAIQQZxXDHOipVLX9xM9PIblPgZBoMOCZO/mYNWwJWvu2b+SUgrq4eOswNhxZjHkDe8HLSV3rYyil2Hb5mvHi7ZxMo4XtRSktauSYAn4FGSyGhAVHF7gcyznGdxa7I2Ek6O7bHTFeMQh1DUULZQvOTeYGpUzJiEViWCwWGKoNnEFvoFqdFmaTGSzLEo5ylIBAJBKBYRgolUqqUqkYhUJBZDIZAQCT2UR1Jh1XbCpGemW6KKk4Cfsz96NAX/BPsZodMSPG+iHr9aGuocsVYsWrfOcRNG3LZxwKBvA+gKdgRx0n7YAFwFoA/zd7ZVz9u7sIADhIcQDc3QdhV7Rc3vUr/wCl/G87Kes5Dv1vZ3N9YyZiSIfJwh+MA1h/cBFNyzuDBYP7EKn4rzeHWY7DlgtJ1Uk5eTeNFrYvpbScp5gCfnXVm/WHnt79tPJGmTBT42ExhEGQUxDauLaBt9IbTjInSBkpRIwIIlLzt8aBA6UUerMe+bp8ZFVmIa0irVlPDaorAoJP+35q6OHf47haoh4GwGrtmgWCB1k+41AYgJcAPAOg9jtszUM5gHUAvpq9Mi6D7zBNhcMUBwBACJGoGOZHP7F48NcBgSo/ieTu18ZlZbMm19bkxRGf8rbOQFA3HMfhwx8nsYGuYkzqFnu3Oqg0VOPbkxd0hZW6C0aLZSSltIrPnAJ+cZQbV2GsWD8+frwiX5fPdxyB4K4FnRaYHg97/LpKouoBoOnu3iewW8tnHHIC8CyAOQBa8xynMV1HzWLt74U1BdbnUMUBABBCiJSQV2WEvPeFn7+iu0qFL4oKsVHP4u0J30Itd+Y7oqAOKvWl+GDTk/TR2Ah0Dgkkt4vLsO7EeYOZZT83s9w7lNL6TZwWNClGi3FhkaHo/QnxE5SVpkq+4wgEmBQxiX0x9sVclUTVAYAw3CLg1fIZhwiAIajZJ2Ewmua6hGoAuwB8PXtl3EG+wzRlDlcc/IEQ0l9OyLZRTk6qbdpq8YsjPkFLn7Z8xxLUQ0LGCaw/+CH6hAVzx25m6M0s9wSlNJ7vXAL7ojfrv0qvSH/22T3PKpvy7roC+zcwaCBd1GtRmUKs6ICaVokCgd34vcPRowDGAxgIQPLgZ9g1I4A9AH4CsGP2yjgtz3maBYctDoCaVqcywhx3dvLzf2X0f8RqhTBq4IgMJh2W/DzdojMUF1dbLL0ppbf++VmCZojRmXWbU0pThr2w/wWlkW28Np4CwR86+3TG8keW6xRiRS8ACXznEQgeZPmMQ66o2UxtLIA+ABzhQqkUwBEAv6CmIBCmFjcyhy4OAIAQIpWK5Z9IRNJpzw/6QNnaT+hS5Egyi27gmz3v6KvN+s1Gs2E2pVSYtyt4ELHOrPv5WvG1gTMPzFSaOPvaFEzQtHXx6YJlcct0SolyOICjfOcRCOpi+YxDDIAYAH0B9APQG4Arn5l+VwzgGGoKgqMAkmavjHPsi1MH5/DFwR8IIUMlYtmmvm0fVQzr9IxUKpbxHUnwABbWjP0JP1r2JWyqNluMUymlW/jOJHAYYq1Zuy2pKClu9sHZSjNnbpST5qzOgfaaFqyWBSNnoAhWwHucNxRBCgCAqdiEgp8KoL2mBWfkIHGXwPtxbzh3rv1GXcW5ChRuL4S5xAxKKaQeUrg94gb3R9xrjldoQs7qHBgyDVAEKxDwfACknjXTiAu2FaAqsQqt3m0FwjS7jYh50dWnK/4T9x+dUqIchpoLGYHAof1eLLQF0B5A5J8+WgGwxf4yZgC3ULOY+I+PKwCShWLAvjSZ4gAACCE+colytUyijHs67nVlG/9YviMJapFRcB3rD32s0xoqzleb9VOEHY8F9SDRmrU7EgoT+rx46EWlhbPY/ITpi9MhcZVApBBBm6yFKd8EibsEbT5rA0uVBbfevQVLmQWK1grIA+Qwl5ihjlTDY6hHrccr+q0IumQdpB5SmEvNqEqsGTkPfi0Y6gg1spZloSqpCk4xTqhMqISmvQYt5rSAqdCE1LdTEfJaCJStmu0G0o2qm283fNn/S51SohwK4DjfeQQCW1o+45AUQBiAAACetXy4oqZ4EP/+XxY1+wxYAJQBKKrlIxtA6uyVcY1zN0fQIE2qOPgDIWSkVCz/Njqkl/KxHrMUQgcj+2Aw6fDrmW+qz6XurzZZjDMA/ESb4i+goLFItSZtfEJRQq95h+cpGnMNguG2AWnvpwEEaLu6LQp/LUTRziK49HRBwPMB9Tpm6tupMOYY4T/VH659XJH6ZiqknlIEvRyE2/++DXOxGaEfhyLz80yIncXwn+pv5e9KUJvuft3xZf8v9QqxYgiEwkAgEDQDTbI4AABCiEYmVnzCMMzTE3rPlXdsFUfIfXZWFtjeldunsOHop3oLa9pmNBteopSW8p1J0CRIdWbdTxkVGQNe2P+CytZtTksOlMB4xwjt9ZqRA4+hHvCZ4IO0j9JguGWAqq0KxmwjKEuhbq+G75O+EGvE9z2ePl2PitMVMBWaUJVYBZmfDCFvhkCsFiNrWRa0V7XQxGpQealm5MCllwtyV+cidEnoA48rsI64FnFY0nuJ7vfC4ATfeQQCgaAxNNni4A+EkK4yiWJjoEeo97ieL6r83VvyHalZKazIwdZTK/S37lwpM1oMkymlR/jOJGhyGL1Zv6zYUPzM1L1TVQX6ApudKH1xOvQ39AAAsZsYfpP94NTBCTdfuwlTgQlEQuDczRn6VD1M+SZoYjUImht03+OVHS9D7trcmv8hgPsgd3iP8wYjZu5Zc+A3xQ+Zn2fCY6gHGAmD4r3FAACPwR5w7W0PawqblkkRk9i5HeZWKsSKAQAu8Z1HIBAIGkuTLw6Amp2VGSJ6ScSI32sX1FU0uuvzSg8nP75jNWll2iLEn/+2+lLaEZaCW2phzZ9QSoXm9AJbIUbW+LrOpHt7yt4pyoyKDJudiDNx0F7VImtZFsAAYUvCkLMqB/pberjFucHvaT/o0/VI/zAdREwQuSoSRHT/UUvKUZiKTMhekY3qzGp4jfWC1yivex5XsK0AVQlVCJgegFtv34Lf036glCLv+zyELgqFzE9owmANBAQLOy80jQ0dm6+SqPoCuM13JoFAIGhMDN8BGgOl1Mxyls/MrDEgKfP0Z4t+ek638ehn1eW6Yr6jNTlaQwV+Prnc9OGPzxgupR9ZYWaNLcwW0/8JhYHAxqhMJFvsLHOetXHYRkOMZ4xVD86ZOFCu5kYKI2WgjlKDkTMAW9OlSB4or/V5RELuvsoa7xhhvGMEZ67Z9Js1sDWPYQhk3jIoQn7velRwb3tWU5EJxbuL4feUH4y5RoACipYKKFsqAQpU5wh/XtYgZaT4vP/nhjGtx1xVSVSxEAoDgUDQDDWrSauU0koA7xJC/nPh1qF3z6ceeL5329HM4NgnpSq5E9/xHFq1SY+DiT+ZD175iSWE2WhmjW9TSvP4ziVoXkSMaL1aqi74ZtA3W5aeW6rcmrrVKjdA9Gl65KzKgSpMBZFKBN1NHTgDB5FGBEWQAhJXCUqPlaLseBk4MwfDrZrtOlx6uOCPtU6pb6YCAFp90AqKIAXS3k+D1FMKqacU5rL/dStSt1Pfc/68DXlw7uoMZWslDFk1x77z/R3g94Ffma8watBQrjJXrBiwQhfsHHxYLVGPAyBUXE3MxYsXvcRi8RoA7dBMbo4KHA4H4KrFYpnWsWPHQr5CNItpRfdDCAmQSRSLOI4d3zl0AOLaPy73cb3//GDBvYoq7uDI1V9Mp1N2cwxhdlWb9a9SStP5ziVo9sJ1Zt3evbf3en105iN5Q/dCMOYbkfttLow5RnDVNUWBMlQJr9FekAfUjBpUJVWh4OcCGHONEDuL4dzdGV6jvMBIa65Brk65CuB/xcGd7+6gKrEKlgoLGBkDqbcUbnFucO311/UDVQlVyP4mG2FLwiB2qrmfU7SrCMV7fl9zMMQDnsM9G/T9NXftPNphedxyvVwsX6mUKBei5g1a0MQkJibu8PHxifD09KxkGKb5XvwI7BbHcaSoqMg5Pz//enR09Ci+cjTr4uAPhBA/sUg6h4DMDvRozQyMmahu26IrGMYWe4A4PkopUnIu4kDiZm16/lWAkNVmi/FLYb8CgZ1x0pq0P2VXZfeafXC2qshQxHcegR0a32Y8t6DTAoNCrJgMYDvfeQS2k5iYmB4VFVUmFAYCe8ZxHElKSnKNjo7mrYOOUBz8CSFEBmCcXKp6SyKSBg6InqDoHj6UUcruHeZvjoxmA87e3Ef3J/yoMxi1hdVmw2KAbqSU6vnOJhDcB1NtqX7HyBpfm3NwjiKhKIHvPAI7IRfJ8UGPD6r7Bva9o5KohgK4yXcmgW0lJibejo6OFhYbCuxeYmKiR3R0dDBf5xeKg/sghHSVS1WvWVjTsNa+0eauYYPUUUHdIZc2rx1JTeZqXMs+i7M392tTci5KJCLJYYNJtwTAMWEDM4EDGWawGH5cm7RWsSZpjZilLN95BDwK1ARixSMrdJ5Kz70qieppADq+Mwlsr7kVB1lZWeJZs2a1SExMVEqlUhoQEGBctmxZdvv27e/ZMbK4uFi0Zs0at9dff93mQ6z/+te/PJVKJTdnzpwSW5/LUQnFgZ0jhLgAGKWUaZ4zWaq7hvrGmLu2GaRu16Jbky0UagqCczh3c78uOeeCRCqWXdIbq9YC2E4pbTYvrIImJ0Br0m7JrsqOeuXIK6ocbQ7feQQ8eCz0Me7Vzq9Wixnx61KR9CvcXdYtaOqaU3HAcRw6dOgQ/uSTT5a8+uqrRQBw6tQpRWVlpWjIkCHavz/+xo0b0hEjRoSmpqZes2Uus9kMiURiy1M0CUJx4EAIIa74X6HQJdQ32twuqLs6zC8GPq5BcNQdmCmlKKzIQeqdRFzLOlMzQiCWJeqNVWsAbBMKAkETwphY03wLZ/ng47Mfy39N+9Ux/2gFdeYmd8OiXov0sV6xuSqJagwAm14ECexPcyoOduzYofnwww/9Lly4cOPPn6+oqGCGDBnSuqKiQmSxWMi77757Z/LkyeUjRoxoeeDAAZfg4ODqvn37Vq5atSrnnXfe8d62bZubyWQiw4cPL//888/vAMDChQt9f/75ZzdfX1+Tu7u7JTY2Vv/hhx8WnDp1SjFz5swgg8HABAUFGTdu3Hjb09OT7dKlS5suXbpoz549qx42bFh5VVWVSK1Wsx9++GHBtWvXZDNmzGhRWloqlsvl3Jo1azJjY2Or161b57p48WI/hmGoRqNh//59NHV8FwfNqpVpQ1FKywCsB7CeEOKanHNhREbB9aEU9BEATq1925sjAjtrQn2j4esWDIbYZ6c0SikKyrOQeicR17PPa2/lJYpYjtWLGPFRg0m7C8BOk8UorN4UNEWcVCT9RCqS7n2j6xvbBgYN9Hn75NvKcmM537kENjQ4aDDe6/GeQUREK5US5RsA7t1MQiBoQq5cuaKIjo6+Zz2gUqnkdu3adcvNzY3Ly8sTd+3aNfzJJ58s/+yzz3JGjBihSElJuQ4Av/zyi9OtW7fkV65cSaaUYsCAAa13796tVqlU3M6dO12TkpKum81mEhMTExkbG6sHgClTpoR8/vnnWcOHD9fOmzfP77XXXvNbt25dNgCUl5eLzp8/fwMAXnnllbu70E6bNi3om2++yYyKijIeOnRINXPmzBZnzpy5uWTJEt99+/bdDAkJMRcXFwvdYRqZUBzU0++Fwve/f4AQEngt62zftLykoQDiKOVc/D1aG1t4hCr93EIkPq7B8HFtAaVM06g5DSYdCsqykFeWibzSDHNWcaohpzhVQkG1DGGOGEy63wAcBXBbWEMgaEauqCSqtp19Ov9r99jd0z658Il8W+o2QoUZJk2Kp8IT73R/x9DFp0uxSqIaB+As35kEAj5xHEfmzZsXcObMGTXDMCgsLJTm5OTccy24Z88ep2PHjjlFRkZGAoBer2dSUlLkVVVVzNChQ8vVajUFQAcOHFgOACUlJaKqqirR8OHDtQDw/PPPl4wbN+5ut50nnnii9O/nqKioYC5fvqweN25cqz8+ZzKZCAB06tRJO2nSpODHHnusbNKkSWVW/4cQPJBQHFgJpTQbwA+/f4AQ4p+efzUmPf9qpEKq7kwIaW80G4KlYjnr7RJo9ndvJXNVe8pVcmeo5c7QyF2gVjhDLXeBUq75x1EHjnLQG6ugNVRAV10BbXUFqgzl0FZXoEJXbMwtSavOL8+SGM0GsUyiyAKQpDdWnQNwHUCi0HZUIEC1UqJ8CcC3Czst/H5CmwnBb594W5Vansp3LkEDiYkYkyMnszOjZ5oIIV8pxIr3ABj4ziUQNJaoqCjD9u3bXf/++VWrVrmVlJSIk5KSkmUyGfX3948yGAz3XHBQSjFv3ry8hQsX/mUa1gcffOBVnzwajeaevUNYloVGo7H8MVrxZxs3bsw6dOiQaseOHc4xMTFtExISrvn4+AidJBqJUBzYCKU0F0AugF1/fI4QQgwmbcDtwuTI24XJbRgi8pVJ5AEMI/IFhRdLWXcLa3ZhObNczEgshDAcQxhKSE1PZko5wlGOUMoxFs4sFjHiajEjqWQYUQkBKeQom2eyVGezHJuPmrZ81wFk6aorhQ19BIL7u6yWqqPDXMOmbxy+8ZMfb/woWZGwQmqwCNeSjqizT2d82ONDnbPM+bJSonwOQotSQTM0cuTIqnfeeYd89tlnHvPnzy8GgKNHjyozMzOlHh4eZplMRnfu3Km5c+eOFACcnZ1ZnU53t0gYOnRo5fvvv+83ffr0UmdnZy4jI0MilUppv379tDNnzgzS6/V5ZrOZHDhwwOXpp58ucnd3Z52cnNg9e/aohwwZol27dq179+7d71n4/Gdubm5cQECAad26da5Tp04t4zgOZ8+eVXTv3t1w7do1WVxcnC4uLk63d+9el/T0dKmPj4/wotxIhOKgEf0+bSf794+993scIURsZk0aACLU/IxEAAgACwD2948qs8XUsG1fBQLBH1gxI/5azIh/eTz08eWjWo0a+sn5T5S70ndBmGrkGLyUXnijyxv6Hn499EqJcjpqNjQTfniCZolhGOzYsSNt1qxZgV988YWPTCajAQEBxg8++ODO3LlzW7Rr1y6ibdu2+pCQkGoA8PHxYTt27KgNDQ1tGxcXV7Fq1aqca9euyTt37hwO1KxV2LBhQ0bfvn31Q4YMqYiMjGzr7+9vbN++vc7Z2ZkFgG+//TZj5syZQS+99BLTokUL46ZNm27/U85NmzalP//880FLly71tVgsZMyYMaXdu3c3vPzyywG3b9+WUUpJr169Krt16yYUBo1I6FYkEAgE9+pTZapaXlpdGrz03FL18dzjfOcR3IezzBnToqaZJraZyFHQZQqx4n0AwsaMgns0p25FtlRRUcE4OztzVVVVTPfu3dusXLkys1evXsLf3P+3d/8xUd55HsDf3+d5Zh5mmGFGRNEKFGSAYShgdelpNy2t1U39Qdkttz1q3DXYZnfjedc0NpzXW83txuRsG103XcumXnu5ssWcjW1jkLsq0VAbzqtUAq1C8QcoKCjoyC+HYR6e5/4ANl7PCtvCPIDv1z/MPDx5+HwCIfN+vt/n+51AXK2IiGjq+dRpdWY5rc78N3Lf+P3F7ovRO/9np6O+q97sumhEpCUSG3wbtA0ZGzQDxoEIJeLXGB6VJaJJtH79+gfPnTtnCwaDorCw8AaDwczDkQMiontTdEP/eVALvvHF9S/UP9T+IfLMDS6Rb5YIOQLPe58f+kX2LwYNwzjstDq3Arhgdl009XHkgKYLjhwQEU1tmiSkd20W2/6l85f+cvHcxf904daFiJK6Ek43CqPoiGgUphVq633rQwCqHBbHK+BGZkREE47hgIhofAKKpOxRJGVv5pzM5157/LXfdAe7Y0vqShwVzRXQdM3s+makZHcyNmZsHPhR4o8wZAx9EGmJ3InhldiIiGgScFoREdF3IwCs7An2/EaHnlXWUGb98NyHyrXb18yua9qThIRl85fhxcwX+zJiMnRZyL+zyta9ALhzO31nnFZE0wWnFRERTU8GgCNRatQRANkbMjb8/QsPvfD86eunh/Y37necaDsBzeBowl8iMSoRP/b8OFSQWhCShXzFaXX+C4D9AAbMro2I6H5x7214iYhoPOoiLZEvqIo6d9kDy17a8cMddScKTwS2PrJ1MGN2htm1TWlOixM/Tf0pDuYd7D2Qd6BnXfq6ErfqXuq0OlMB/BsYDGiGee+999xCiCW1tbURZtcSDrIsL/F6vb60tDSfz+dLP3r0aCQAVFdX2xYtWuT1eDwZqampvn379v2/HZ2ns8uXLytr165dGB8f/1BycnJGbm6u5/jx4/bp0DOnFRERTY6UoBbcGNJDPw/pIfcnLZ/In7R8otZer8WQMWR2baaKscUgNy4Xq5JW9S6au8ga1ILHotSovRjeHJLDLTQpvjmtKHHr4SUTef2WnWu+GM95q1evXnjt2jVLbm5u7+7du69OZA1jyfz3zAnt+csNX47Zs91uf/j27du1AHDw4MGonTt3zj916tTX9fX1qhACmZmZwZaWFktOTk56Q0PDmZiYmAn9B7n3V8cmtOe//ePyMXvWdR2LFy/2rlu37kZxcXEnMByG/H6/nJCQEBqrZ04rIiKamc6pivqPKtRXAaQXpBb89eqk1T+ThBR3rPWYcaTliK3mWg36Q/1m1xkWye5kLI9frq9KWtWXEJVgCWrByig1aj+A/1Rl9ZbZ9RGFQ3d3t1RTU+OorKz8Oj8/3xPucGC27u5u2eVyaQCQlZUVHD2emJgYio6O1trb25WJDgdmKC8vdyqKYowGAwB49NFH/88uz1O5Z4YDIqLJZQA4a5Esv7Wolt8CSFyzcM2zj8c9/rxdsWe19rYOnGg7YTvZftJy+vppBLTAWNebFpJcSfhB7A+wdP7S/px5OVBldQDAh3aL/QCAT1VZHTS7RqJwe//9991PPPFEd1ZWVtDtdg999tln9pm+iVgwGJS8Xq8vGAyKrq4uS0VFRdM3zzl+/Lg9FAoJn88XvNs1ppv6+npbdnb2PX+vU7lnhgMiovBqkYW82626dwOISHYn/1WCM2HFT1J+stau2H3NPc0Dn3d8HnG266y18WYjmrubp/yDzS7VhRR3CtJnp2PZ/GW9D8992CKE6B0yhqqirFH/BeBTAOcxHJSI7lsHDhyIfumll64DQEFBwc3S0tLomR4OVFXVGxsbzwJAZWVlZFFRUVJTU9MZSRp+7PXSpUuWoqKihe+8806zLMum1houU71nhgMionESQvwQwFYAjwKIBHAFQAWALYZhfJc74QMAqiyypcolu7YBsKXOSl2W4k7J6RnseUwS0sMRSsTctt62/i+7vrSe6Tpja+1txZW+K7jadxUDQ+F9VjfKGoUFjgVY6FoIb7RXy5yTedvj9ig2xSbf1m6fVyTlc4fFUQngBIDWsBZHNMV1dHTIJ0+ejGpqarJt3rwZQ0NDQghhlJSUtI1+UJ7pVqxY0e/3+5X29nZlwYIF2s2bN6VVq1Z5tm/ffuWpp56aMXMsMzMzAx9//PFdHzaeDj0zHBARjYMQohDAnwDIAOoAnAKQCOBXALYBmIhpMgEAx4QQx1yq67WRY44kV1JWkitp0fL45TkhPZSuSEqCTbHNCWiBUEd/x2Brb6vU1tcWcWvglqVnsAc9gz3oCY58HeyBpmvQDR0GDBiGAQMGdEOHgIDdYkekJRIOiwMOi2P4tdUBt+o2FjgWBB5wPBCaFzlPzLHNiZCEZAxoAx069LNR1qj/loRUB6AewCWrbOWoANE9lJaWznr22WdvlJWVXRo9lpOTk3bkyBHH008/3WdmbeFSW1sboes6YmNjtYGBAbFmzRpPYWHhjY0bN/rNrm0i5eXl9W7btk3s2rUrZsuWLV0AUFVVZe/r65N27NjxwFTvmeGAiGgMQgg7gL0Yx2vmWgAABPBJREFUDgZ/ArDBMAx95HvJACZzWkAfgGoA1Q6r487jktPqnO+0OhNTZqUkAZiv6drsAW1gnqZrcwwYsyUhzZKF7BJCyACEgBi9PSkJIQQAQ9O1gG7ofbqh9wDoEUL4FaHcjFAiOhRJacPw6MgVAC0A/AwBRN/NBx98MLu4uLj9zmP5+fn+0tLS6JkcDkafOQAAwzBQUlLSoigK3n777VmnTp1y+P1+paysLAYA3n333eZvPrg7HUmShEOHDl3YtGlT/J49e+apqmrExcUFc3Jy+qdDz1zKlIhoDEKIlQCOjLz1GobxtZn1ENFfjjsk03Rh9lKm98ckNyKi72fuHa8vfetZRERE0xzDARHR2K7f8fpB06ogIiKaZAwHRERjqwYw+vDYr4X489x9CCEeFEJYzCmLiIhoYjEcEBGNwTCMfgB/B0AHsB7AaSHE20KIcgBNGF7WlIiIaNrjakVERONgGMb7QohWAP8AYBmAdABtAPZhclcrIiIiChuGAyKicTIM41MM7/ZLREQ0I3FaEREREVEYyLK8xOv1+tLS0nw+ny/96NGjf56S+Nhjj6U4nc5FTz75pMfMGifa5cuXlbVr1y6Mj49/KDk5OSM3N9dTX1+vztR+R92t78OHDzsyMjLSvV6vz+PxZLz++utzzK7zbjhyQERERPeff3YtmdjrdX8x1imqquqNjY1nAeDgwYNRr776atzKlSu/BoBXXnmlo7+/X9q3b9+kfWBs8KZPaM/pjQ337FnXdTzzzDOedevW3SgvL78IANXV1barV69awtEvAOz6m7UT2vOW/ygf8/f8bX37/X65pqam0WazGd3d3ZLP58t47rnnbiUmJoYmssbvi+GAiIiIKMy6u7tll8uljb7Pz8/vLS8vd5pZ00QrLy93KopiFBcXd44eu3M34JnW76ix+gaAQCAgdF0Pf3HjwHBAREREFAbBYFDyer2+YDAourq6LBUVFU1m1zSZ6uvrbdnZ2ffdgg336vv8+fOW1atXp7S2tqrbt29vm2qjBgCfOSAiIiIKi9FpRc3NzWc++uijc0VFRUlT9e4xTQ6PxxNqamo629DQ8FVZWVlMa2vrlLtRz3BAREREFGYrVqzo9/v9Snt7+5T7cDhRMjMzA3V1dXaz6wi38fSdmJgYSktLC1RWVk65qVUMB0RERERhVltbG6HrOmJjY7Wxz56e8vLyegcHB8WuXbtiRo9VVVXZDx8+7DCzrsl2r777+voEAHR2dso1NTWOjIyMAfMqvbsZm1aJiIiIppLRZw4AwDAMlJSUtCjK8EexJUuWpF28eDEiEAjIsbGxWW+99VZLQUFBj6kFf0+SJOHQoUMXNm3aFL9nz555qqoacXFxwTfffLN1JvY76tv6zsvLu/Xyyy8nCCFgGAY2b97c8cgjjwTGvmJ4CcMwzK6BiIiIaFLV1dW1ZGdnd5ldB9FY6urqYrKzsxPN+vmcVkRERERERAAYDoiIiIiIaATDARERERERAWA4ICIiovuDruu6MLsIonsZ+Rs1dfMLhgMiIiK6H3zV2dnpYkCgqUrXddHZ2ekC8JWZdXApUyIiIprxNE17saOj4187OjoeAm+O0tSkA/hK07QXzSyCS5kSEREREREAJmciIiIiIhrBcEBERERERAAYDoiIiIiIaATDARERERERAWA4ICIiIiKiEf8Lhp3vHkMmdFUAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = [[30], [20, 15], [45, 35, 25]]\n", "x_flatten = [v for item in x for v in item]\n", "labels = [[\"A\"], [\"B1\", \"B2\"], [\"C1\", \"C2\", \"C3\"]]\n", "labels_flatten = [v for item in labels for v in item]\n", "\n", "\n", "def percentify(percent_num, total=100):\n", " return \"{:.1f}%\".format(percent_num/total*100)\n", "\n", "f, ax = plt.subplots(2, 3, figsize=(14, 8))\n", "ax = ax.ravel()\n", "\n", "ax[0].pie(x_flatten, startangle=90, counterclock=False)\n", "ax[0].set_title(\"Clockwised pie plot\")\n", "\n", "ax[1].pie(x_flatten, labels=labels_flatten, shadow=True,\n", " autopct=lambda k: percentify(k, sum(x_flatten)))\n", "ax[1].set_title(\"Pie plot with labels and shadows\")\n", "\n", "explodes = np.zeros(len(x_flatten))\n", "explodes[3] = 0.1 # 只炸开第4个扇形区\n", "ax[2].pie(x_flatten, labels=labels_flatten,\n", " autopct=lambda k: percentify(k, sum(x_flatten)),\n", " explode=explodes, rotatelabels=True)\n", "ax[2].set_title(\"Pie plot with an exploded pie slice\")\n", "\n", "ax[3].pie(x_flatten, radius=1.2, pctdistance=0.7,\n", " autopct=lambda k: percentify(k, sum(x_flatten)),\n", " textprops=dict(color='w', weight='bold', size=12),\n", " wedgeprops=dict(edgecolor='black', width=0.7))\n", "ax[3].set_title(\"Pie plot with customized props\")\n", "\n", "x_outer = [sum(k) for k in x]\n", "r, width_outer, inner_blank = 1.4, 0.5, 0.2\n", "width_inner = r-width_outer-inner_blank\n", "ax[4].pie(x_outer, radius=r, textprops=dict(size=12, weight='bold'),\n", " wedgeprops=dict(width=width_outer, edgecolor='w'), \n", " autopct=lambda k: percentify(k, sum(x_outer)),\n", " pctdistance=r-1.2*width_outer, labels=list(\"ABC\"))\n", "ax[4].pie(x_flatten, radius=r-width_outer,\n", " textprops=dict(color='w'),\n", " wedgeprops=dict(width=width_inner, ec='w'),\n", " autopct=lambda k: percentify(k, sum(x_flatten)),\n", " pctdistance=inner_blank+.7*width_inner)\n", "\n", "patches, texts, autotexts = \\\n", " ax[5].pie(x_flatten, autopct=lambda k: percentify(k, sum(x_flatten)))\n", "ax[5].legend(patches, labels_flatten, title=\"Categories\", ncol=3,\n", " loc=\"upper center\", bbox_to_anchor=(0.5, 0.1))\n", "ax[5].set_title(\"Pie plot with legend instead of labels\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 箱型图:ax.boxplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "箱型图(也称盒须图)可以认为是五数概括(five number summary,即两个最值与三个四分位值;但最值的定义有所不同,下详)的一种可视化,主要由两部分组成:箱子与离群值(outliers)区。因为这几个概念的理解直接影响箱型图的读图,所以下面先简要谈谈这几个概念:\n", "\n", "- 箱子:箱型图的主体当然是中间的箱子,其顶部一般对应上四分位值(或第三四分位,Q3,the 3rd quartile),即75分位值;底部一般是下四分位值Q1,即25分位值;这两个值之差(即箱子的高)称为四分位距(IQR,Interquartile range)。箱子中心的那根线是中位数(也即Q2)。所有的箱型图一般都遵循以上原则。\n", "- 离群值区:不同箱型图的离群值区域规定可以不同。常见的方法是 Tukey 围栏(Tukey's fences)定义的闭区间:\n", "\n", " \\begin{equation*}\n", " T(w) = [Q_1 - w\\cdot IQR, Q_3 + w\\cdot IQR]\n", " \\end{equation*}\n", " \n", " 其中,$w$ (须,whisker)是一个非负常数,而 $IQR=Q_3-Q_1$ 即是上文提到的四分位距。下面是最朴素、可能也是最常见的离群值规则:\n", " - 当 $w=0$ 时,该围栏表示箱子的主体。\n", " - 当 $w=1.5$ 时,除了箱子主体,该围栏也将适度离群值(mild outliers)包括在内。\n", " - 当 $w=3$,时,除了箱子主体与适度离群值,该围栏也将极限离群值(extreme outliers)包括在内。在箱型图中,有时把此时围栏的上下限称为“最值”(虽然我本人并不太赞同这种称呼);这个最值与数据集的最值是不同的(因为还可能有在 $T(3)$ 围栏外侧的点),注意区分。\n", " - 对于更外侧的情形,这部分数据点有时也被标记为 far out。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "一个简洁的箱型图例子。\n", "\n", "- 箱体中的橙色线是中位数。\n", "- 箱体两侧的须的末端,标明了 $T(w)$ 围栏的两个端点。\n", "- 在 $T(w)$ 围栏外侧的数据被称为异常值点(fliers),会单独以圆圈点的形式绘制出来。\n", "\n", "Matplotlib 中的默认围栏取 $w=1.5$,即它认为极限离群值属于异常值。" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "np.random.seed(0)\n", "x = np.concatenate((np.random.rand(90)*10, np.random.rand(10)*20))\n", "\n", "f, ax = plt.subplots()\n", "ax.boxplot(x)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 箱型图的常用参数\n", "\n", "箱型图的绘制命令:\n", "\n", "`ax.boxplot(x, whis=1.5, vert=True, ...)`\n", "\n", "- `x`:一维或多维的数据。\n", "- `whis`:须(whisker)值,影响绘制时围栏的上下端点。默认是 1.5。\n", "- `vert`:默认 True,即以竖直方式绘图。\n", "- `widths`:箱型图在绘制时的箱体宽度。\n", "- `labels`:每个箱型图的标签。\n", "- `notch`:切口箱型图。切口在中位数处,切口宽度是中位数的 95% 置信区间。\n", " - 当 `notch=True` 时,可配合使用 `bootstrap=True` 来使用 bootstrap 来估计该置信区间。\n", "- 绘图参数:\n", " - 箱子主体:显隐 `showbox`,外观 `boxprops`。注意:箱子的前景色只能在 `patch_artists=True` 时使用。\n", " - 异常值点:显隐 `showfliers`,外观 `filerprops`\n", " - 须:须外观 `whiskerprops`\n", " - 须的末端线的显隐 `showcaps`,须的末端线外观 `capprops`,\n", " - 中位数线:显隐 `showmedians`,外观 `medianprops`\n", " - 均值点/线(默认关闭):显隐 `showmeans`,按线显示 `meanline`,外观 `meanprops`\n", "\n", "下面的例子涵盖了上述所有参数:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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pt4wVaNGjap/32by0hQFmkPatWunXbt2xb1+IsNZ2rZtq507dzYmLCDtdu/erdtvv12zZ8/W5Zdfrtdff12dO3eWdGtG49hw1U7deuutKi4u1ujRozV58mQdd9xxGY1BkrZt26by8nLdd999GWlv6NCh+slPfpL2du644w795S9/oXgBkFMoXhC3+fPna8INEzRy1kiNGzBOFSsqNGH8BElqsIDJR7t27UrbRGXG7SMX7du3T7/85S81Y8YMXXjhhVq9erWKioqyFk+7du00ffp0jR8/XtOnT9cpp5yicePG6dprr1Xbtm0zGkurVq0y1huSqRMkPPnkkxlpBwASQfGCuJVNK9PIWSPVe1BvSVLvQb01ctZIlU0uK8jiBchna+au0Zq5ayRJhw4d0vvvv6/N727W0W2OVtnxZTqi4gitn7leRTOLqrbZumarFl29qMF9j1k2ptry3KFzG9xm+Mzh6ljcsWp50dWLtHXN1qrlfuqnU048RZvu3aTrbr1OXbp20XnXnacB3x3Q4L4BANFB8YK4la8v17gB46o91nNAT5WvL89SRADSZffG3dq0fFO1xzqrs7Q9mOtSm/27939pm3jEs83+3furLW9ds7XW7Vqohbqoi7RRumniTTr7k7P1ve99T4cffnjCcQEAcg/FC+LW66ReqlhRUdXzIkkVKyrU66ReWYwKQKp9/vnneuP9N7S15VYd3vJwFR1fpNatv3zijdieEElq2aalegzpkXB78WzTsk3LetuuzVeGfUV3v3i3ZsyYoR/96Ee64oor1Lx584TjAwDkDooXxG3qDVM1YXww56XngJ6qWFGhx8Y/phnTZmQ7NAAp9J3vfEcbNmzQ9N9N11lnnRX3dh2LO35pSFg8GrPN8JnD41rvAl2gV199VVOmTNGCBQu0ZMmShNsCAOQOihfErXJeS9nkL842NmPaDOa7AHlm48aNuuWWWzR48OBsh5ISZ5xxhmbPnq3zzz8/26EAAJLERSqRkFGjRumtdW/p888/11vr3qJwAVDwWrVqpXfeeUeXXHKJ5syZo82bN2c7pEbbs2ePHn/8cY0dO1YPPPCAjj46Pdf/AoDGongBACAJRUVF2rhxo/7t3/5Ny5YtU79+/XTqqadq4sSJ+sMf/qBPP/002yHWyd21du1a3XzzzRo6dKi6dOmiO++8UyeffLJeeOEFXXHF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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mu_shared, r = 5, [1, 5, 3]\n", "np.random.seed(0)\n", "x = np.random.rand(100, 3) * r + mu_shared\n", "np.random.seed(123)\n", "x = np.concatenate((x, np.random.rand(10, 3) * 3))\n", "\n", "f, ax = plt.subplots(2, 3, sharey='col', figsize=(14, 8))\n", "f.subplots_adjust(hspace=0.3)\n", "ax = ax.ravel()\n", "\n", "colors = {\"line\": 'tab:red', \"face\": 'lightblue'}\n", "g = ax[0].boxplot(x, patch_artist=True, labels=list(\"ABC\"))\n", "for line in ['boxes', 'whiskers', 'means', 'medians', 'caps']:\n", " plt.setp(g[line], color=colors[\"line\"])\n", "## 论外的箱子前景色与异常值点的颜色。\n", "plt.setp(g['fliers'], mec=colors[\"line\"]) # mec=markeredgecolor,参考第一章\n", "plt.setp(g['boxes'], facecolor=colors[\"face\"]) # 前景色需要 patch_artist=True\n", "ax[0].set_title(\"Boxplot with customized colors\")\n", "\n", "ax[1].boxplot(x, whis=3, labels=\"A' B' C'\".split())\n", "ax[1].boxplot(x, positions=np.arange(3)+1.5, labels=list(\"ABC\"))\n", "ax[1].set_title(\"Whikser 1.5 & 3.0 comparison boxplot\")\n", "\n", "ax[2].boxplot(x, vert=False, labels=list(\"ABC\"))\n", "ax[2].set_title(\"Horizontal boxplot\")\n", "\n", "ax[3].boxplot(x, showcaps=False, showfliers=False, showmeans=True,\n", " meanprops=dict(marker='o', mec='black', mfc='lightgreen', ms=6))\n", "ax[3].set_title(\"Boxplot without caps and fliers,\\nbut with mean points\")\n", "\n", "ax[4].boxplot(x, widths=0.7, showmeans=True, meanline=True, notch=True,\n", " meanprops=dict(ls='--', lw=2.5, color='purple'),\n", " flierprops=dict(marker='+'))\n", "ax[4].set_title(\"Notch boxplot with mean lines\")\n", "\n", "ax[5].axis('off')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 箱型图的细节概念\\*\n", "\n", "*本节是针对不太了解箱型图的读者的补充内容。对箱型图概念很熟悉的读者可以跳过。*\n", "\n", "-----\n", "\n", "我们来看一个模拟的例子:用符合正态分布 $N(0,1)$ 的一维数据,模拟一下 Tukey 围栏:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy.stats import norm\n", "\n", "mu, sigma, n = 0, 1, 5000\n", "np.random.seed(1234)\n", "x = np.random.normal(mu, sigma, n)\n", "\n", "q1, q3 = np.percentile(x, 25), np.percentile(x, 75)\n", "w, iqr = 1.5, q3 - q1\n", "bpmin, bpmax = q1 - w*iqr, q3 + w*iqr\n", "\n", "f, ax = plt.subplots(2, 1, sharex=True, gridspec_kw={'height_ratios':[3, 7]})\n", "ax = ax.ravel()\n", "\n", "# 绘制箱型图\n", "ax[0].set_title(\"Boxplot & density plot of Normally choosen data\")\n", "ax[0].boxplot(x, vert=False, labels=\"X\")\n", "## 标出关键值的位置\n", "maxmincolor, boxcolor = 'tab:blue', 'tab:orange'\n", "[ax[0].axvline(lines, color=maxmincolor) for lines in (bpmin, bpmax)]\n", "[ax[0].axvline(lines, color=boxcolor) for lines in (q1, q3)]\n", "\n", "# 绘制 0.01%~99.99% 累计概率范围内的真实正态密度曲线\n", "plt_x = np.linspace(norm.ppf(.0001, mu, sigma),\n", " norm.ppf(.9999, mu, sigma), n)\n", "plt_y = norm.pdf(plt_x)\n", "ax[1].plot(plt_x, plt_y, 'r')\n", "## 显示 Tukey 围栏的数据\n", "ax[1].text(-4, 0.3, f'box | min, max\\n= {q1:.2f}, {q3:.2f}', color=boxcolor)\n", "ax[1].text(-4, 0.2, f'{w} whisker | min, max\\n= {bpmin:.2f}, {bpmax:.2f}', color=maxmincolor)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "上例中:\n", "\n", "- 模拟得到的箱子上下限(Q1, Q3)是:-0.65, 0.69\n", "- 模拟得到的 $w=1.5$ 的 Tukey 围栏上下限是: -2.65, 2.70.\n", "\n", "而理论值(只针对数据服从标准正态分布的情形)是:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Q1 = -0.6745, Q3 = 0.6745, 覆盖了 0.50 概率范围;\n", "T(1.5) = [-2.6980, 2.6980],覆盖了 0.9930 概率范围。\n" ] } ], "source": [ "q1_theory = norm.ppf(.25, mu, sigma)\n", "q3_theory = norm.ppf(.75, mu, sigma)\n", "iqr_theory = q3_theory - q1_theory\n", "bpmin_theory = q1_theory - w * iqr_theory\n", "bpmax_theory = q3_theory + w * iqr_theory\n", "tukey_prob = norm.cdf(bpmax_theory) - norm.cdf(bpmin_theory)\n", "\n", "print(f\"Q1 = {q1_theory:.4f}, Q3 = {q3_theory:.4f}, 覆盖了 0.50 概率范围;\\n\" +\n", " f\"T({w}) = [{bpmin_theory:.4f}, {bpmax_theory:.4f}],覆盖了 {tukey_prob:.4f} 概率范围。\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.5" } }, "nbformat": 4, "nbformat_minor": 2 }