{ "metadata": { "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.8.6-final" }, "orig_nbformat": 2, "kernelspec": { "name": "python3", "display_name": "Python 3", "language": "python" } }, "nbformat": 4, "nbformat_minor": 2, "cells": [ { "source": [ "# Playlist Classifier\n", "\n", "Given a list of playlists, can unknown tracks be correctly classified?" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "playlist_names = [\"RAP\", \"EDM\", \"ROCK\", \"METAL\", \"JAZZ\", \"POP\"] # super-genres\n", "# playlist_names = [\"DNB\", \"HOUSE\", \"TECHNO\", \"GARAGE\", \"DUBSTEP\", \"BASS\"] # EDM playlists\n", "# playlist_names = [\"20s rap\", \"10s rap\", \"00s rap\", \"90s rap\", \"80s rap\"] # rap decades\n", "# playlist_names = [\"UK RAP\", \"US RAP\"] # UK/US split\n", "# playlist_names = [\"uk rap\", \"grime\", \"drill\", \"afro bash\"] # british rap playlists\n", "# playlist_names = [\"20s rap\", \"10s rap\", \"00s rap\", \"90s rap\", \"80s rap\", \"trap\", \"gangsta rap\", \"industrial rap\", \"weird rap\", \"jazz rap\", \"boom bap\", \"trap metal\"] # american rap playlists\n", "# playlist_names = [\"rock\", \"indie\", \"punk\", \"pop rock\", \"bluesy rock\", \"hard rock\", \"chilled rock\", \"emo\", \"pop punk\", \"stoner rock/metal\", \"post-hardcore\", \"melodic hardcore\", \"art rock\", \"post-rock\", \"classic pop punk\", \"90s rock & grunge\", \"90s indie & britpop\", \"psych\"] # rock playlists\n", "# playlist_names = [\"metal\", \"metalcore\", \"mathcore\", \"hardcore\", \"black metal\", \"death metal\", \"doom metal\", \"sludge metal\", \"classic metal\", \"industrial\", \"nu metal\", \"calm metal\", \"thrash metal\"] # metal playlists\n", "\n", "# headers = float_headers + [\"duration_ms\", \"mode\", \"loudness\", \"tempo\"]\n", "headers = float_headers" ] }, { "source": [ "Pull and process playlist information.\n", "\n", "1. Get live playlist track information from spotify\n", "2. Filter listening history for these tracks\n", "\n", "Filter out tracks without features and drop duplicates before taking only the descriptor parameters" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "playlists = [get_playlist(i, spotnet) for i in playlist_names] # 1)\n", "\n", "# filter playlists by join with playlist track/artist names\n", "filtered_playlists = [pd.merge(track_frame(i.tracks), scrobbles, on=['track', 'artist']) for i in playlists] # 2)\n", "\n", "filtered_playlists = [i[pd.notnull(i[\"uri\"])] for i in filtered_playlists]\n", "# distinct on uri\n", "filtered_playlists = [i.drop_duplicates(['uri']) for i in filtered_playlists]\n", "# select only descriptor float columns\n", "filtered_playlists = [i.loc[:, headers] for i in filtered_playlists]" ] }, { "source": [ "Construct the dataset with associated labels before splitting into a train and test set." ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "dataset = pd.concat(filtered_playlists)\n", "labels = [np.full(len(plst), idx) for idx, plst in enumerate(filtered_playlists)]\n", "labels = np.concatenate(labels)\n", "\n", "data_train, data_test, labels_train, labels_test = train_test_split(dataset, labels, test_size=0.33, random_state=70)" ] }, { "source": [ "# SVM\n", "Support Vector Machine" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "73.47% Accurate\n" ] }, { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-04T13:23:58.773655\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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\n" }, "metadata": {} } ], "source": [ "### TRAIN ###\n", "clf = svm.SVC()\n", "clf.fit(data_train, labels_train)\n", "\n", "### TEST ###\n", "pred_test_labels = clf.predict(data_test)\n", "\n", "### EVALUATE ###\n", "correct = [i == pred_test_labels[idx] for idx, i in enumerate(labels_test)]\n", "correct = sum(correct) / len(correct)\n", "print(f'{correct*100:.2f}% Accurate')\n", "\n", "plt.pie([correct, 1 - correct], labels=[\"Correct\", \"Incorrect\"], colors=['g', 'r'], startangle=90)\n", "plt.title(\"Classifier Accuracy\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-04T13:23:59.434830\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjEAAAHRCAYAAACbw+jrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAABJ0AAASdAHeZh94AAC6L0lEQVR4nOzdd3wU1drA8d9J2fReaKH3XlRABZVmAURBVCyA3au+drFcvdZrw36vV0UsiF2xK4gVAaVY6B1CCwmk97bZPe8fs5tksyVl0zY+Xz/7iZyZM3Nmy8wzp43SWiOEEEII4Wv8WroAQgghhBANIUGMEEIIIXySBDFCCCGE8EkSxAghhBDCJ0kQI4QQQgifJEGMEEIIIXySBDFCCCGE8EkSxAghhBDCJ0kQI4QQQgifJEGMEEIIIXySBDFCCCGE8EkSxAghaqWUukgptUEpVaCU0kqp55thnyuUUvJwt0aglDqglDrQ0uUQorFJECN8mlLKXyl1tVLqF6VUtlLKrJRKV0ptVkq9ppSaZlvPTyl1yHYBHlDLNkOVUrlKqXKlVKItbZEtr1ZKPewh79xq661owPF0Vko9oZT6UymVU+14flBK3ayUiqrvNr2llDoReBeIAF4GHgK+be5ytAb2wMr2usLDeg9UW2+Rl/vs1hjbEaItCmjpAgjRUEopf+Br4EwgF/gGSAFMwEDgYqAf8KXW2qqUegN4ALgKuM3Dps8HooAlWuv0GssqgMuVUg9prS0u8l5tW6fevy2l1FXAi0AQsAl4H8gB4oAxwPPAv4D4+m7bS1MABczRWv/WjPudA4Q24/7qowLje/RGzQVKKT/gChr4PWgiE1q6AEI0hdbyAxOiIS7CCGA2AadqrfOqL1RKhQKjqiW9DtwHzFZK3a21Lnez3atsf191sexr4Fzbfr+psb/+wMnAZ8D0+hyIUuoSYCFG0HKe1vobF+ucDPyvPtttJB1tf1Obc6da60PNub96+ho4Vyk1UGu9rcayM4AuNOB70FS01vtaugxCNAVpThK+7CTb30U1AxgArXWx1vrnav8+jNEMEo+bi4tSqh9GrUcy8IOLVd4FSjBqXGqyp71W1wOw7TMC+I/tn7NcBTAAWutfcQzK7PknKKW+tTWnlSmldtuapJyanqo1hwQopf6plNpjy3NYKfWkUspUbd3LbH1SLrcl7a/WRNLNto7bZrNqTXDdaqRPU0r9qJRKs+071dYceL2rsrrYrp9S6h9Kqd+VUoVKqSLb/19nqwWpub62bSteKfVqtf1uU0pdXnP9OrJ/xu6+B8UY3xUnSqmOSqn7lVK/KqWO2potU5VS79Vs6lRKPQjst/2zelOlVkpdZlvnNNu/H1RKjVRKfWP7LlT/nBz6xCilYmxpZUqp42rs008p9bMt/+z6vjFCNCepiRG+LMv2t0898izEaB65CvjQxXJ7LczrWmtXnUpzgY+Bi5VS7bXWRwGUUkEYzR+/ALvrUR6AmUAssFZr/Z2nFbXWZdX/rZS6FqOfSpGtXOnAacBdwNlKqZO11rkuNvUeMBZYBuQDk4E7gUSqgpaNGP1fzgWGAi9gHD/V/taLUuoaYAFwFPgKyLTtc4htvy/VYTNvYzQVHsYIJjRGUPoSRgB6iYs80cCvQDmwBKPJ7nzgDaWUVWv9Vj0PZRewErhUKXWX/XNRSrUHzsYIYJwCa5tTgLuBn4FPgEKgN8b3YJrtM9tkW3eFrew3Y9Q4fl5tOxtrbPdE4B5gNUYzV7zteJ1orXOUUhfZjuFDpdRwrXWBbfEDGN+hRVrrtz28B0K0PK21vOTlky9gOMZJ2opxYZsBdK0ljz9wxJane41lJowgwAy0r7FsEcbFciLGhVID91RbPsuWdgnQy/b/K+p4HK/b1v93PY+/K1CGEYT0q7HsJds2X62RvsKW/icQWy09DNgLWDwcezcXZXB7nK7y2fZbBiS6WD/eVVlrpF1k2+ZfQHiN8v9hW3axizJqjIDHv1r6AIx+K9vr8Z7b379ewKW2/7+o2vK7bWkn274rGiMYqL6NRCDCxbaHYgQ0y2qkd3O1nWrLT6t2jNe6WecAcMBF+p22fO/b/j3O9h3YDoR68/uUl7ya4yXNScJnaa03YFxIjtn+fgIcUEplKaU+U0qd7SKPBeMuVQFX1lh8DpAAfKVtNSxu9rsa2AlcpZRStuSrMfqzfNKAQ+lg+5tSz3yXYgReL2qtd9ZYdi9QgNH/J8hF3ru01tn2f2itizBqD/yA4+tZjvqqwAgUHWitM+uQ1z4i6G6tdWG1vEUYtU9QVZtWXTFwm67WGVtrvR2jdqa/Uiq8jmWvbgnGZ341gO27cBWwQxtNfy5prdN1Va1H9fRNwE/AOKVUYAPKs1FrvaCeeZ7CaGKdpZS6B+M7UAZcqLUubkAZhGhWEsQIn6a1/gijE+UZwCMYHS79MJpAvlRKvVUt0LB7DaMm5nLbCCc7e/+GhXXY9UKgBzBeKdUL4w72ba11aUOPpQFG2P7+VHOB1joH2AAEY4zQqukPF2mHbX9jGqV0rr2LMeJou1LqOaXUuUqphHrkH4Hx2a1wsewXjFqE4S6W7dFa57tIb/Ax2z7rd4DTbN+B8UBP6vD9UUpNUUp9ZeufY7b3c8FoigqiYSPQ1tc3g9ZaYzSDpgKPYQTUt2ittzRg/0I0OwlihM/TWpu11t9pre/XWp+NcQG4EKOfyByMGpbq6x8EvscYdTMZjLk4MKr/DwLL67DbxRh3rFfZXoq6BT+upNn+dqpnPnvH3TQ3y+3p0TUXaNf9ZCpsf/1dLGsUWutngbkY7/NNGCN4jtk6ktalBigKyNYuRpZprSsw+ti4mksn1832vD3mhVTV6l2N8Z1Y7CmDUupmjGD7ZIw+Kc8DD2P0P7L3hXFVe1Ybt7WHnmitM2zlAKOfmfSDET5DghjR5mitLbYamudsSeNdrGYfPm2vfbkS42L0utbaWod9ZFI1hPYKYI3WemsDi7za9re+c3nYO462d7O8Q431moLG/QCBaJcZtF6stR6NMf/NFIw+QacAy+tQK5MHxLpqblFKBWAEsK5qXJqErcZiLcb3ZzrwqdY6y936tjI+iBFwDNRaX6i1nqe1fkBr/SBG02iDi9OQTEqpWRh9ujIxPpP/eM4hROshQYxoy+z9Dmo2JwF8iXEhmayU6owxMsbeX6auFmLcMSfQ8FoYMPpWZAMnKqUmelqxRv+WDba/p7lYLxoYBpQCO7woW21ygM4u9u9v279bWutcrfVSrfXVGJ2AYzGCGU82YJy3XK13CkaNyl+1lrpxLcT4Dpio/XsQjxHc/aa1dqhBs/XLGeEij70fT6PXkNmawV4FMjCa4VZi9PWa1dj7EqIpSBAjfJYynuczyc3cIO2pqmVZWXO5relhEcaF4V2MppylWusj9SjCzxhNVdOBD+pXeoeyFGA0rYAx3PUMV+sppUYDa6olvYPRQfZG28WoukeASOAdXWNYdiNbD3RRSp1eI/0+jNFTDpRS41z0UQJjxA4YHXA9sQeZjytjMkP7dkOBJ2z/fL3WUjeuDzC+A+fguq9OdekYx3hc9c7EtpqlF3DdFyYHo5alS2MUtto+TRhlDwfmaq1TMIauZwELlFI9G3N/QjQFmSdG+LJRGPNnHFVKraZqUrDuGM0UIcAXGDUdrizEGNEy1vZvVzP0umXrFPllPcvsblvvKqVCMB478K1SaiPwG1WPHTgRYwhuZrU8B5RSt2DM4vuXUuojjDvqU23r76RqxE5TeRqjU/UXSqkPMWqUTsL4DFbgXEv0GVColFqLMexXYbz/J2AMv3Y1wWAlrfV7SqlzgAuAbUqpzzEu8Ofa9vmh1trlJHNNxTaK5/M6rmtVSv0HYyj2FqXUFxg1OOMwaqJ+tv1/9TyFSql1wFil1LsY8xBZMB6nsdmLos8HjgOe1Vovs+3riG0Sva8wAuqTXPU/EqK1kJoY4cueAf4Po0/CEOAfwC0Y87isAGYDM2zBhhOtdTLwo+2fKRgTv7UYrfVrGJOezadqzpm7MCZBywFuxRj9Uj3PSxhBxFrgPIxnQiViDJ09sfow6iYq848YAcQ2jH4VczGCk5EYnXdruhv4HaPZ5HqMZrxAjOMcp7V2GnrtwkXADRg1BtdifO45GN+Fixt8MM3nX8DtGDM/X4sxv9EfGO+Zu0ctzMZ4zMWZGJPRPYLrpqc6sU0/cLNtv3dXX6a1/hqjP9lxGN8jIVot5eb8LoQQQgjRqklNjBBCCCF8kgQxQgghhPBJEsQIIYQQwidJECOEEEIInyRBjBBCCCF8kgQxQgghhPBJEsQIIYQQwifJjL2tlFIqCmPm1cOAzJgphBCtjwnj2WG/aK2b8kGrlZRSHYGYRthUjtY6tRG206IkiGm9TsWYMl8IIUTrdg6N9AgST5RSHSPC/Y4UFFobY3MFSql+vh7ISBDTeh0G+PTN9vTqHtjSZWkW/7h2cksXofmlHGvpEjQra1FRSxeh+fk1+sOnWzerpfZ12ohiCtlsPJP1cDPtMqag0Mqnb3bw6rqwd7+ZGZenRWDU6EgQI5pEOUCv7oEM7BvU0mVpFuHBCS1dhObn//dqKbSqv+EpR/3Nghj19wliqHpqT7P+kHt0D6B/34YHMVbazuOGpGOvEEIIIXzS3/C2SAghhPBdVm3FohveL8bqRd7WRoIYIYQQwodY0V41CbWl5iQJYoQQQggfYrX9503+tkL6xAghhBDCJ0lNjBBCCOFDrBos2ovmpLbTmiRBjBBCCOFLpE9MFWlOEkIIIYRPkpoYIYQQwodY0VikJgaQIEYIIYTwKdKcVEWak4QQQgjhkySIEUIIIXyIVWssXrysXoxsUkoFKaWeVEqlKqVKlFLrlFKT6ph3olLqZ6VUplIqVym1Xik1u8GFQYIYIYQQwqdYG+HlhUXAbcC7wM2ABViqlBrjKZNSahrwHWACHgTuBUqAxUqpWxtaGOkTI4QQQvgQi5cdexuaVyk1EpgFzNNaP21LWwxsBeYDJ3nI/n9AGjBea11my7sA2AlcBjzXkDJJTYwQQggh6mImRs3Lq/YErXUp8DpwolKqs4e8kUCOPYCx5a0AMjFqZBpEamKEEEIIH2LM2Otd/gYaDuzWWufXSF9v+zsMOOwm7wrgLqXUI8BbgAYuBo4HLmhogSSIEUIIIXyIt/1aquXtqZSquThDa53uJmsHjCahmuxpHT3s9hGgO0ZfmPtsacXAeVrrLzyX2D0JYoQQQoi/J1fBw0MYHW9dCQHKXKSXVlvuThmwG1gCfAr4A9cA7yilJmmt19alwDVJECOEEEL4ECsKC041KPXKb3MOsK/G4gwPWUuAIBfpwdWWu/MiMBoYobW2AiilPgK2AS8AozyX2jUJYoQQQggfYtXePYm6Wt59Wutt9ciaBnRykd7B9jfVVSallAm4EphvD2AAtNZmpdQy4P+UUiatdXk9ygJIENMmlZcpFj/Vnh8/iaUwz5/u/UuYe2cax51aWGvev1aG8/5/2nFgRwgWi6JTj1LOuSKTiTNzHNY7o+Mwl/mvuCeVC29015zaNAIDLcyevZXxEw4QHm5m//4oFr81mA0b2nvM1ykpnymT99G3Xxa9euVgMlmZO3cq6cfCnNY95ZRDjBqdSt++WXTqVMjmzQncdef4pjqkSoGBVmbffJDx52QQHlnB/l2hLH6+Kxt+i6k1b1xiGdf8cz8jTs7Bzw82rYvi1cd6cDQluHIdU5CF6+9Ppu+QAhI6lOHnp0k7HMx3n7Tj6/c6YKmoGsA46Pg8zrvyCD37FxIVa6YwP4DknWG8/1IXtv8V2STH741Ak5U5844y4bwcwqMs7N8Rwlvz2/PXyoiWLdMdaUyYkU14dIWtTB35a1Xt719c+3L+8UAKI04pQPlpNv8WwSsPJXH0kPON8RmzMpl57THady4nI83E528k8OWbiU7rnTotm/OvO0bX3qUUF/mz9vsoXn+0E/k57i8NA08o5NnPdgNw/uAhHtdtaq3xM24OjVgTU18bgXFKqcganXtHVVvuShxGvOHvYlkgxkhpV8tqJUOs26BnbunCp68mMn56Dtc9fAQ/P/jX7J5sXed8ca5uzfJI/nlRTyrKFZfefpTL7kojKFjz1E1d+fTVBKf1R5ySz53/PejwGnV6zU7rTe+229czfcYufv65KwteGY7Vqnj4kZUMHOipVhT6989i2jl7CAmp4PAhzxeRKVP3Mnr0ETIyQikoMDVm8T267YndTL8slZ+/SmDBoz2wWhQPv7qdgcflecwXHGrhicVbGHxCHh8u6Mzb/+lCz/5FzH9nMxHR5sr1TMFWuvYq5veVMbz5bDdem9+d5J1hXHPPfm5/Yo/DNjt1K8FqhaUfdOB/D/fk0zc6ERNvZv47mzlubE7NIrS4258/zIxrMvjpsxhevr8TVis88nYyA0fWHsw3WZmePciMq4/x0+cxvPxAZ6wWxSOL9zLwBM9lCg61MP+jPQweXcgHL7bj7Wc60HNQMU8v2U1EdIXDupMvyeC2pw9xcHcIL93fmR1/hnHDIylccP1Rh/Wmzs7gny8doDA3gAUPJ/Hte3GcNi2HJz/cQ2CQ626jSmmuf+QwJUWt49LRGj/jNm4JVX1ZAGMGX+ByYJ3W+rAtrYtSql+1fOlALjDdVitjzxsOnA3s1Fo3aJj1364mRil1GfBmtSQLcAz4HrhXa33ERZ7rgf8B67XWLtvtlFLVK/c0cBRjAqDHtNYrGqXwdbBzQygrvojhqn8d4fzrjIv4xJnZXDO+H6/9uyPPf7XHbd4v34wntp2ZJz/ehynIOJwpszO58pT+fPdRLDOucQwKOvUoY8J5LXvx6tMni9NOO8RrC4fyySfGb+aHH7rxyoJvueLKTdx+20S3edeu6cj5q6dTUhLIeeftpGevXLfrPjV/NFlZIWitePmVZY19GC71GVzAaVMzee3JbnzyRhIAP3yeyCtf/8UVdxzg9ouGus079eI0krqXcvPMoezeYtyV/rEqhle++osZlx/hree6AVCYF8itFzpuZ+kHHSguCGDa7DQWPtGdnEzjnLN8SXuWL3Gs3fr6vQ688cMfnDv3CH+uqr12qLn0HVbMuHNzWfhwB5a8YtRA/LAkhld/2sVV96Vx67TeLVCmIsadm8PCRzqxZEE7W5liefXHHVx17xFuPbev27xnz80gqUcZN07py+5Nxs3IHz9HseDH7cy89hhvPmnU8JuCrVx2Vyrrfojk39f2AGDZe/EoP83FNx9l6bvxFOYFEBBorLd5bTh3X9QLbHfm2/8I5+G39nHWxZkua24mX5JJQsdyvn0/julXeb5JaGqt8TNuLhYva2IamldrvU4p9THwuFIqEdgLzAW6YTQX2S0GTsX2xdJaW5RSTwP/BtbaJsjzt+VJAi5t2JH8vWti7gdmA/8AlmG8ib8opYJdrHsJcAAYqZTq5WGb39u2ORd4BRgC/KSUOqsRy+3R6q+j8PPXTL40qzLNFKw586IsdvwZRvqRQLd5iwv9CY+yVAYwAP4BEBVbQVCw6zuzshJFeWnDf0zeGjM2BYtFsWxZz8o0s9mf5cu7M2BAFvHxxW7zFhYGUVLi/v2oLjMzFK2b9zjHnJmJpQKWfVgVOJjL/Vi+pB0DRhQQ397VIAFb3jMy2bU5vDKAAUhJDmXjmmhOOSuz1n0fO2I0UYRFVnhcr6zUn7zsQMIjLLVuszmNmZqLpQKWvhNXmWYu8+Pb92MZcHwxCR3r3fTufZmm5Bhleje+RpniGHB8EQkd3Jdp7JRcdm0MrQxgAA7vC2bD6ghOOTu3Mm3oSQVExVr4arFjzelXixIICbMycoJRg9etbykR0RZ++TIGql3Q1v0YRXGhH6dNc745iYiuYO6dqSx+uiOF+Q2q+W9UrfEzbi5WFFbtxcuLAAiYAzyPca37D0Zz0FSt9UpPmbTWj2JcS83AAxhDrvOBmVrrdxtamL9zELNMa/2O1vo1rfVVwNNAT2Ba9ZWUUt0xplK+DaPX9iUetrnbts23tdYPA5MwzhC3NMUBuLJ3ayhJPcoIi3AMOvoOMy7mydvcj4AbcmIhB3cZbcpH9ptIPWDi3efasXtTKOdf79zP5fuPYjmn1xDO7jGUq0/tx0+fRjfqsdRFz545HEmJoLjYMRjZvSuucrmv6tm/iCMHQigucqww3b05wrbcdZW5UprufYvYszXcadmuLRF07FpKSJhjcBIQaCUyxkx8+zJOmpjJeVcc4VhKEKkHnb8voWEVRMaYSepRzNxbD9C9bzEb10Q19DCbRK9BJaQkB1Fc6Hix3bUxFIAeAxs8QWjDyzSwhJTkYA9lch1wK6Xp3q+E3ZtCnZbt2hhGx25lhIRZbPswtlFz3T1bQrFYjDKA0ZcEoLzU+RJQXupHz0HFOFYuw5w7UslJD2TpO/FOeVpCa/yM/w601qVa63la6w5a62Ct9Uit9fIa65ymXdz1aa3f01qP0lrHaK1DtdajtdafeFOev11zkgergLswApnqLgFygG8w2gMvwRhHXyut9RalVCbGBD/NIjs9gNh2Zqd0e1rWMfc1D5fceoyjh0y8/0I73nveuPsPCrHwr4X7OelMx74uA44v5JRpubTvXE7WsUC+WhTPk//XjaKCw5w9N8vV5ptEbGwJ2dnOlWf2tNg43z2RxSaUk53h3P/Gnhab6PpOMyK6AlOQrjXvkf1VP/+TJ2Vx93O7Kv+9e0s4z/2zN1aL8x3bPS/s5PixuQCYyxXffNCe917qUvcDawaxiRVku/iu29Pi2nmuYWoKsYlmstNdlCndXibn3y1ARLQFU7CuNW9Ksj+x7SqwVEBeluO6FWY/CnKqzg1H9gdjtcKAEwr57qOqmoykHqVExxvvTXiUhYJc4zvSvX8xUy7N5L45vbBaW67mtbrW+Bk3lxbs2NvqSBBTpZvtb81b90uAT7XW5Uqp94HrlFInaK1/r22DSqkYIAaj3dDTeolAzZ6zNYOpOikv9SPQ5Dz2zt5EVObizssu0GQlqWcZY6bmMuasPKxWxdJ34ph/Y1ce/2Af/Y+rulN87kvHQzpjVjb/d2YfFj3RgdMvyCYoxIvxf/UQZLJgNjtXbZeX+1cu91VBwVbM5S7ulMv8Kpe7YrJ1ynSV11xmnLyCanTc3LQuinsuG0R4ZAXDTsyle98igkNcv3dvPt2NT98wk9ChjInnphMYaMU/QGNuRbX3pmAr5nLnE3W5/fjdvHdNyX2Z7J+n69+MvayejsdkW8cUbMVsdn2BKi9TldvKzwlg5VcxTJqZxeE9wfz6bTTx7c1c/8hhzOWKQJMmKMRKQa6R97qHU/j950j+Wtl6RqG1xs+4uRh9YhrekOJNANTa/J2DmCilVDzGJD2jMNroyoCv7SsopY4D+gE32pJWAykYgY2rICbYtk2FUfvyGEbnpY9rKcv1tv17zZsf9ov3JrHzzzD+990u/Gy/j1POzuGacf14+f5O/Ocb952CA02aaZdn8p+7OrNncyiDRhV5dyB1VFbuT2Cg88XWZAteyspbvu2+ocpK/Sqr/auzBynuAlL7RdFV3kB7MFvmmDc3y8TGNUYtzerl8Vx47WEefXMbV51+XGXHXrvknVXNVD99mch/P93I7Y/v5tGb+9f10JqcN8F8U3FfJvvn6frCYi+rp+OxNwuVl/oRGOg6GDIFaYfjfuHuLgQFW7nm/iNcc78xnuGHT2JJOxjEmMm5lSOQTj07mwHHFXHthNbz+ULr/Iybi7b1bfEmf1vRdj/l2v2A0cflMEYzUREwTWudUm2dSzBGLv0MoLXWwIfALKWUq6vjlbZtpgPrgJOBZzE6QXnyEjCoxuuchhxU7VWsrquszeWK5e/HMXJiXmUAAxAQCCeMK2DPplCXwVF19o50BbnNFzhkZ4cQG1vqlG5Py87yNAt265adYSI2wbl6w56Wne56qHdBbgDlZapBee1WL48nNMzC6AmemwYrzH6s/SmWk07PwhTUemq9am9Wbf77t+z0QGITXZQp0XNTb0GuP+Wlqk55s48FGJ3x4xzXDQi0EhHjeG4oLvDnwSt7cunIQdx+Xm9mjxrIUzd3IzbRTG5mAEX5xnt01X1HWPVNNBVmRbukMtollREeaXzWCR3LiW3XMlVwrfEzFs3v7/wp34DxHIco4ArgFKo9E8IWpMzCCGC6V3tI1jrgdmAC8F2NbX6BMbWyBgqAbVrrWqskbA/bcug56+KhXHXSc2AJm34Lp6jAz6Fz784Nnju75ef4Y6lQLvtAVFQorFaFtZZrVNpBY0RLVFzztUUnJ0czdGg6oaFmh869ffsaF999+1rPsN/6St4ZxtBRuYSGVTh07u07tACAfTucO+6CcZd1YHcYvQc5d/ztN6SAtEPBlBR5/unbA5KwOow6Cgq24ucHIWEWystaR83Xvm0hDD2pkNBwi0PHz37Da+/g3mRl2h7C0JMKPJTJueMuGJ/n/p0h9Bnq3PG33/AiUg+YKCkytrfPto0+Q4v5/aeqztZ9hhTj72+UoaaMVBMZqUZQGxZZQa/Bxfy6LLpyeWInM+On5zB+unMn+ZeW72TfthCuP6P5a2la42fcXFpqiHVr9HeuiVmvtf7B1jN6GsacLu/ZJt8BGI8xlfIsYE+110e25a5GKaXYtvmj1np9XQKYxjZ2ai5Wi3IYdlhepvjuwzj6jSgisZNxl5KeEsihPVUzfUbHVxAeVcFvy6IcalxKivxY+10knXuVVvZzyc1yvlAVF/rx2WsJRMVW0HtI83WmXb2qM/7+mrPOqnr8R2CghUmn72fnjlgyM42TekJCEUlJzT8RnzdWfxuPfwCcdWHVJGWBgVYmzTjGzo0RZB41Pr+EDqUk9XC8wK1eHk/fIYX0HlRQmdapezFDR+ey6tuq0SWRMWaMmNvRmecfA3AY4RQV63zHHRZRwcmnZ5GeGkRedvNNAlibVV9H4R+Aw1QDgSYrp1+YzY4/Qysv2s1apm9ijDJdUjXE3ShTFjv+CiUjzShTQsdyOvd0rF1cvTSavsOK6T2k6pSS1KOUYScXsOqbqkB9428R5Of4M3W24xwuU+ZkUlrsx/ofPY8iu+LuVPwDNJ8urJoj5sErezi9Vnxh7HP+zV1Z8FBSPd+JxtEaP+PmYtV+WLx4WXXbufT/nWtiKtkm4rkHo9bl/4AnMIKUdIwam5pmYMw8+I+GzjLYVPqNKGbs2Tm8+XhH8jID6Ni9nO8/iuHYYRO3PXOocr2nbu7K5jXhLE/dCIC/P5z3jwzeerIDt0ztzYTzc7BaYPn7cWSmmbjrxYOVeb96M4Hfvo1i9Ol5JHQqJ/tYIN99EEf6kUDu/O8hl+3UTWXXrjhWruzMZZdvJiq6jLTUcCZM3E+7dkU8/9wJlevdMW8dQ4ZkcNaZF1amhYaWM+0co5/PgAHGhWXa2XsoLAqkqNDEV19VTZY1aFA6gwYbF4aoqDKCgy3Mush45MjWLQls3eo8MZjXx7Y5gpXL4rnstoNExZlJOxjChOnHaNepjOfvrSrbHU/uZsiofM7qO6Yy7ev32nPm+Ud5aMF2PnmjE5YKxfTLUsnJMvHpG1WPPhk/LZ3Js46y5oc4jh4OJiSsguPG5DJiTC5rf4pl09roynUfWbiNzGNB7NoUQW5WIIkdy5g04xixieU8cWv1yTlb3q4NYaz8MorL70kjKr6C1P1BTLogm3ady3n29s4tV6avorn87iNExZtJPRDMpJlZtEsq49k7qj7PeS8cYOiJhZyRNKIy7au3Ejjr4iweeWsfSxa0w2JWzLjmGDmZgXyyoOq7V17qx1tPdeTGxw5z7yvJ/PlLJINGFjLxvGzefKJj5WgjgAtuOEq3viXs3BCGtUJx4hm5HH9aAYue7OAwH82a5dFOx9LTNpT795+iWuyxA63xMxbNT4IYG631CqXUeuAWpdQLGIHKx1rrJTXXVUqlAhdh1OB82Lwlrd2dLxzirU5mfvwklgLbs5MeXpzM4NGeK4YuvvkY7TuX8fnrCbz7bDvMZX50H1DCfQv3M3ZK1TT3A04oZPsfoXz7Xhz5Of4Eh1rpO6yY2549xLAxzT/d99NPjWLO3FAmTDhAeHg5+/dH88ADY2sNLMIjzMydu9Uh7byZxjDjY8dCHYKYocPSufTS6s9JK6vM+847A5skiAF4+s4+zLnlIBOmpRMeVcH+XWE88I8BbP3D8x11SVEAd80ezDX/TOai6w6j/GDLukgWPN6DvJyqZrdtf0bSf3gBp07JICa+HEuFImV/CAse686X73R02OZ3n7Tj1CmZTL/sCGERFgrzA9i5KYInb+/Etj9b1zwxAPNv7sLcI8ZzdSKiLOzfEcz9c7qzdZ3rZrhmKdMt3Zg7L5UJM7KNMu0M4f7LerF1nedn/ZQU+TPv/N5c+0AKF9+UhvKDzWvCWfBQEnnZjn1pvl6cgKVCcd41xxg9KY/MNBOvPJDEZ687DoA8sCOEk8/MZfSkPPz9IXlHCP++trtDzU5r1xo/4+ZgRWH1oiGlLQ2xVkZf1b+Pao8dOEFr/UeNZTMxRhI9aHudq7X+wsU2/DAeK7BWaz3NlqaB/2mt/6+RyjkQ2Lp5RWcG9nX15PO256wzZ7V0EZrffqenXLRp1oKC2ldqa/xaRz+hZlNb57k2pFDnsZbvAQbV82nQDWK/Lry+vCvd+jT8unBgdxlXnnEQmqncTantNIw1jk+BfRjDnUsxHiPgxPYo8W+AM5VSca7WEUIIIUTT+ts1J2mtFwGL3CyzAp6ejVR93csxntxp/3fbqZ8TQgjRatk76HqTv6342wUxQgghhC8z+sTIYwdAghghhBDCp1i9fOxAWwpi2k6dkhBCCCH+VqQmRgghhPAhVi/7xMhkd0IIIYRoEVb8vJwnpu0EMW3nSIQQQgjxtyI1MUIIIYQPsWiweDGrh6UNzXErQYwQQgjhQ6z4eTk6qe00wkgQI4QQQvgQK949ibotBTFt50iEEEII8bciNTFCCCGED5HJ7qpIECOEEEL4EItWXnbsbTtBjDQnCSGEEMInSU2MEEII4UO0l5Pd6TZUfyFBjBBCCOFDLF4+dsCbvK1N2zkSIYQQQvytSE2MEEII4UOseDfCyNp4RWlxEsQIIYQQPkSeYl2l7RyJEEII8TdgsT12wJtXQymlgpRSTyqlUpVSJUqpdUqpSXXId0Appd289jS0PFITI4QQQoi6WgTMBJ4H9gCXAUuVUuO01qs95LsFCK+R1hX4N/BdQwsjQYwQQgjhQ7RWWL2YsE43MK9SaiQwC5intX7alrYY2ArMB05yv0/9uYvt3Wf733cbVCAkiGn1rrvqLMKDE1q6GM3ipaWvtXQRmt0Nw85u6SI0K//IyJYuQrOzlpW1dBGalS6ztHQR2jyLl48dsDS8U/BMwAK8ak/QWpcqpV4HHlNKddZaH67H9i4G9mutf2togSSIEUIIIf6eeirlFNBkaK3T3aw/HNittc6vkb7e9ncYUKcgRik1HOgPPFq3oromQYwQQgjhQ7T282qEka7K+4WLxQ8BD7rJ2gFIc5FuT+tYj2JcYvvb4KYkkCBGCCGE8ClGc5IXD4CsynsOsK/G4gwPWUMAV+2jpdWW10op5YfRt2aD1npHXfK4I0GMEEII4UOsKK9qYqpNlLdPa72tHllLgCAX6cHVltfFqUAn4Ll67NslmSdGCCGEEHWRhtGkVJM9LbWO27kEY+Lg970tkNTECCGEED7E6mVzkhePLNgIjFNKRdbo3Duq2nKPlFJBwHnACq11XYMet6QmRgghhPAhVlvHXm9eDbQE8AeusSfYgpLLgXX24dVKqS5KqX5utjEZiMbLDr12UhMjhBBCiFpprdcppT4GHldKJQJ7gblAN+DKaqsuxuj34qrK5xKMzsGfNEaZJIgRQgghfEgLPwByDvAIMBuIATYDU7XWK2vLqJSKBKYA32it87wphJ0EMUIIIYQPseJVvxasXuxba10KzLO93K1zmpv0fOo4DLuupE+MEEIIIXyS1MQIIYQQPqSFm5NaFQlihBBCCB9i9fIp1t7kbW0kiBFCCCF8iAU/L59i3XZqYtrOkQghhBDib0VqYoQQQggforV3TUJaN2JhWpgEMUIIIYQPseKH1YuGFG/ytjZt50iEEEII8bciNTFCCCGED7GisHgzOsmLifJaGwlihBBCCB8iQ6yrSBAjhBBC+BAjiPFmsru2E8RInxghhBBC+CSpiRFCCCF8iBWFxasHQLadmhgJYtqggEALs+duZfzEg4SHmzmQHMXiRYPY8Fd7j/k6JeUzeeo++vbLplfvHEwmK5ddOoX0Y2FO655y6iFGjk6lb/9sOnUqZPOmBO6+Y1xTHVK9mcsUXz3blXWfJlCcF0Cn/sVMu+MgA8bm1pp3x+oolv23M0d2hWG1KBK7lzDuslRGz8ho+oLXQUCgldk37mf82ccIj6zgwO4wFv+nOxvWxNaaNy6xjGvu2svwk7Lx84NN66NZ+GQvjqa4f7DsgBG5PP32RgBmnXwS+bmmxjoUlwICrcy+6SDjz0k3jm9XGItf6MqG32JqzRuXWMY19yQz/OQc4/jWRbHw8R4Ox2cKsnDdv/bRd0gBCR3K8PPTpB0O4ftP2vH1+x2wVLivoL7p4T2cecFR1q+I5cF/DGyU4w00WZl96xEmTM8kPKqC/TtDeeuZJDasjqr9eNuVc+2/DjFibB5KaTavjWTBI104ejjYYb0plxxj2En59B1aRGKncr5fEs8z83q43ObwMXlcetMReg4qxlyu2PhbJK892oVjR4Ia5XgbU6DJypx5R5lwXg7hURb27wjhrfnt+WtlREsXrUlJn5gq0pzUBt02bz3Tz9vNzz92ZcFLw7BYFQ89uooBAz1fhPsPyGLauXsJDa3g8KFIj+tOPnsfo09KJTM9lIL8pr2oNcRbd/Thh9c6MvLcDC54MBk/P82Llw1g7++ej2vT97H859JBVJj9mHrLIc654yCmYCuLbu3LD691bKbSe3bbYzuZPieFn79ux4InemGxKB56eQsDRuR6zBccWsETb25k0PG5fLSwK+/8rxs9+xfy5KKNRESZXeZRSnPdP/dSUtx8p4rbntjN9MuO8PNXCSx4rAcWKzy0YBsDRuR5zBccauGJxVsYdEIeHy3ozDv/7UrP/kU8+fZmIqKrjs8UbKVrr2L+WBnLome78fr8HuzfGcbV9yRz+xO73W6/96ACJk4/Rllp474Xtz+VzIwrj/LzF3G88nBXrBbFI2/sZuDxBR7zBYdaePL9HQwelc8HL3XkneeT6DmgmKc+2OlwvAAX/CONoSfmc3BPCBVm9xewkeNz+PeiXQSaNG/OT+LT19ozeGQBT3+8nahY19+RlnT784eZcU0GP30Ww8v3d8JqhUfeTmbgyMKWLppoJm26JkYpdRnwpodVTtRar1VKVZ+/0ALkA/uB1cACrfX2GtvtZlsO8C+t9b9d7Ptd4GKgSGsd3uCDqKc+fbM4bdxhXlswhE+X9APgx++78fLC5Vxx9WbuuGWC27xr13Tk1+nnUlISyIyZO+nZK9ftuk8/OYqszBC0Vrz06reNfRhe2b8xnD++TGDGP/dz+rVHABg9I52HTx/Bp491487PNrvNu+KtDkQmlnPr+1sIDDK+FmMvSePB8cexZkk7Jl6V2izH4E6fwfmcNjmd157qwaeLugDw4xftePmL37nitmTuuHSE27xTZ6XSqVsJN184gj1bjWDuj1WxvPz578y47DBvveB8Z37W+anEty9l+ScdOHf2kaY5qGr6DC7gtCkZvDa/O5++kQTAj5+34+Wv/uSKefu546JhbvNOvch2fDOHsWercSf+x8oYXv7qT2ZcfoS3nusGQGFeILfNctzO0g87UFToz7RL01j4RA9yMmsG5ppr793Hj18kMuzE3MY5WKDP0EJOm5bNwsc688nCDgD88Ek8C5Zv4cq7D3PbzAFu806dnU5S9zJuOmcAuzcbp5jfV0SxYPkWzrvqKIue7ly57rxZ/Uk/YgIUn239w+02r7wrhaOHgrjt/P5UmI1gbe2PMbz41VYuuC6NhY92aYSjbhx9hxUz7txcFj7cgSWvJALww5IYXv1pF1fdl8at03q3cAmbjlX7edmxt+3UX7SdI/HsfmC2i9feaut8b0u73Lb+X8BcYJNS6jY32y0FLqqZqJQKA86xLW9WY8amYLEoli3tWZlmNvvz3bfdGTAwi/iEYrd5CwuCKCkJrNN+MjNC0a20SvKvpfH4+WvGXny0Mi0wWHPyhcdI/iuS7FT3NUelhf6ERVVUBjAA/gEQHmvGFGxp0nLXxZjTM7BUwLKPq2qFzOX+fPdJBwYMzye+vfuv3MmnZ7BrS0RlAAOQsj+MjetiGHtmutP64VFmZt+0n3de7E5RfvPc74w5I9M4vg+rmj7N5X5890l7BgwvIL59mdu8J5+Rya7N4ZUBDEDK/lA2ro1m7Jm1NwUeO2I0wYRFVDgtG39OOt16F7P4+W71OJrajT0r2zje9xMr08zlfiz/KIEBxxUS38H98Y49K5tdm8IqAxiAlOQQNv4WySlTsh3WTT8SBLX0gwiPqqBrnxJ++y6mMoAB2L8jlMN7Qzh1alY9j65pjZmai6UClr4TV5lmLvPj2/djGXB8MQkdy1uwdE1LY/RraeirDT114G8TxCzTWr/j4pVZbZ3dtrS3tdYvaq2vBnoCvwPPKKUmu9juUmCAUmpojfRzABNGYNSsevbK5UhKBCXFjsHIrl1Gf4kePXObu0jN7vC2MBK7lxAS4Rh0dBtqVM+nbHdfMdZndB6pu8P48ukupB8IJuNgMN+80JmDmyMqa3VaUs9+hRw5GEpJkWNQsWuLEZj06Oe6Gl0pTfc+hezZ5txXYPeWSDp2KSUk1PHiPefG/eRkmlj2UfM1o/XsX8iRAyHOx2e7UPfo7+H4+hY5BDB2uzdH0LFrKSFhjscXEGglMtpMfPsyTpyYyXmXp3DsSBCphxz7B4WEVXDF7fv5cEFnFzU03uk5sJiU/cEUF/o7pO/aZPRD6znA9U2HUpru/YrZvdm5v9quTeF07FZGSFj9gm6TyQrgsrmsrNSP+PZmYuJbT2DQa1AJKclBzu/dxlAAegwsaYliiWbWppuTvKW1zlJKzQL2AfdiBC3VrQGGYzQbbaqWfgnwLZBNM4uJLSE7O9gpPTvLSIuLa/s/7Px0E1GJzifbSFta7jH3F6LJNx0m83Awy17szNL/GlXnphAL17yyg2GnN/vH6SQmoYzsDOfyZ9surnEJri8yEVFmTEGaHFd5bWmxieUcOWCcErr1KeSs81O5/7ohWK3NV+MWk1Du+vhsaXEuPleAiKiKuh3f/qpT3kmTMrn72V2V/969JZzn7+2D1eJ4vBddf4iyMn8+W9Sp/gdUi9gEM9npLsqcbj9e1/1QIqLtx+tcc5qdbqTFtSsnJdl9h+2acjIDKcjzZ+BxjoFiRLSZLr2M80Zce3OjB3INFZtYQfYxF8d/zH78zjVqbYVFezdjrzd5W5u/SxATpZSKr5Gmtda11o9qrQ8ppX4BximlIrXW+TVWeR+4VCl1t9Za2/ZzOkbT1Jl1KZxSKhFIqJHc09W6tQkKsmA2O99JmcuNuxWTqeWbRJpaeakfAba7yuoCg400s4eOmQEmK+26lzB8cibDz8zCalGsfr89b97Sh5vf2UaPEZ47Wza1oCAr5nIXn2+ZkeauyctkP3YXectteYOq5f3HPXv4Y3UcG36rfcRTYwoKruX4gpw/V6h+fM4n58rjq5F387po/nn5IMIiKxg2Opfu/YoICnF8/zp1K+ac2anMv6OfQxNLYzEFW92UWVUud5cPoNzD5+nuvXJHa8XS9xK58Lo0Lp93mOUfJxAabuHKuw8TEGg0QAS5KU9LqO29a01lbWwa7/rE6DbUCNN2jsSzH4CMGq/6tA1sxXivurlY9h7QBTjZ9u8LMPrCfFmP7V9v20f11xf1yF+prMyfwEAXF3Bb8FJe7u+0rK0xBVupcHUhtAUvgR5Obh/c35PNP8Zy1Yu7OGFaJqOmZ3DLu1uJSjTz0UOuh6Q2p7IyPwJdBWi2C1Z5qevPt9x+7C7y2i92Zba8p5yZTv/h+bw2v0FxtFfKSms5vjLXp6yq43Nu7a88vhp5c7NMbFwTw6/LE/jfQ71ZvyKWR9/Y6tBkcu0/k9mxMZJfv6t5D9Q4ykv93JRZVy53lw+qmoAc83p+rzx5+7lOfPthAjOvTeONnzfz4lfbsFpg+UfGPVZJUeu5ZNT23jX2KLLWxD7E2ptXW9F2P2VHNwCTarzOqkd+e/2qU4O71nobsJmqDr4XA19ord33oHX2EjCoxuuceuSvlJMdQmysc+fO2DgjLSur7tXLvioysZw8F1X0+ba06HaumyQqyhW/ftiOQeOMOUbs/AM1A0/L4eDmcCpc3Pk1p5yMIGJdNBnF2i68WS6aUwAK8gIpL1PEuMprS7M3YVxxxz5WL0/AbFYkdiwhsWMJYZFG1Xx8+zJiE9x3NvVWTobJ9fHZ0rJcfK4ABXkBdT4+d35dHk9omIXRE4wK2qGjcjn+lBy+WNyRxE6llS9/f40pyEJiJ+d+NvWVnRFIrIsmMntaVrrrjvYFufbjdW5uirU1QWV5aDZ1p8Lsx/N3d+eS0cO5/YL+XDl+MPfO7UdYRAUWC6QedG6qbinZ6QHEtnNx/O3sx/93aWj4e/u7fMrrtdbuxxXWzt4T1F1bwnvA7Uqp54CTgMfqs3GtdTrgMDxEqYZdLPfti2bIsHRCQs0OnXv79jNOzMn7ohu0XV/SeUARu9dEU1Lg79C5d/9GIwZNGuC6c2hRTgDWCj+0i4oai1mhrcrWP6Tl+vbv2xnOkJE5hIRVOHR+7TvEaOVM3um607LWigN7wuk90Pkr3HdwPmmHgikpNraX2KGMxKnpjJvqPGLpxU/+ZN/OMG4874TGOBwn+3aGMWRUrvPx2TplJ+/wcHy7w+g9yMXxDS0wjq/I8+nOXoMRFm4EJgkdjWDtXy/ucFo3vn05i378nQWP9eCLxQ3vK5O8PZSho/MJDbc4dFDtO6wIgH3bQ13m01pxYGcofYYUOS3rO6yQ1INBlBQ1vNY1NzOQ3Ezj/OHnpxkyuoBdG8MpLW49Nbn7toUw9KRCp/eu33Dj/jF5W9u9YbOPMvImf1vxd6mJ8dYgjPlj9rtZ/j4QDywEsoDvmqlcTn5dlYS/v+asyfsq0wICLUw64wA7d8SSmWGcFBMSikjqXLN7T9swYnImVoti1XvVhumWKX77uB3dh+cTaxt6mX0kiKN7q050EfFmQiMr2Lg8zqHGpbTIjy0/xtK+Z7HbPgrN5dfvEvAPMOZvsQsItDJp+lF2boog86hxp5zQoZSk7o4XuNXfJdB3cAG9B1Z97p26FTN0VA6rvqvqkvXIjQOdXr8sNZY/fXc/Fj7Zq+mOb3m8cXwXVg2PN47vGDs3RpB5NKja8TlWdq5eHk/fIYUOgUyn7sUMHZXLqm+rmoMio824CkTPON/Yp32E06a1UTxyQ3+nV25WILu3hPPIDf1Z97N3fYZWLYs1jveiqoAx0GTl9JkZ7NgQRmaa7Xg7lpHUo6RG3hj6Di2i9+CqoDypRwnDTsxn1dLG68t03tVpxLUz88lrnmf8bm6rvo7CPwAmX1rVtTHQZOX0C7PZ8WcoGR6mUvB1WnvXpKTb0Bjrv0tNTIMppboApwJrtNYua2JsnX9/BU4DXtZat1i3+F0741j1SxKXXbmF6OgyUlPDmXj6Adq1K+KFZ6runm+/az1DhmYwedIFlWmhoeVMO9eYOmfAQGP0+dnn7KGo0ERhUSBff1E1edSgwRkMGmzMvREVXUZwsIVZFxtzAm7dksDWLTX7KTef7sMLGTElg8/nd6UgK5DEbiWsWdKOrJQg5szfU7nem7f1Yc/aKF45uBoAP3+YeE0KXz7djSfPHcro89KxWowmppy0IC5/fpe7XTabXVsiWfVtApfdsp/oODOph0KYeM5R2nUs5YV/VY30v/2xHQwZmcfkgadVpn3zfkfOnJnKgy9t4dNFnamoUEyfm0JOlolPF1VNjLbmJ+fPzj50+49VsU362IFdmyNZtSyey249QHSsmdRDwUw8N512ncp44b4+Vcf35G7j+PqNrXZ8HTjz/KM8+Mo2Pn0jyTi+y44Yx/dmVW3JuGnpTJ6Vxpof4jiaEkxImIXjxuQw4uRc1v4Uy6Z10QBkpAWTkebcfHLNP5PJzTKx5kfv+8ns2hjOym9iuXxeivF5Hgxm4oxM2iWV89zd3SvXm/dMMkNGF3Bm95GVaV+/046zZmXw8Bu7+WRhByrMihlXHiUnM5BPawQcoybk0KO/EfT5BxjDsy/6P6Nb4NofYti/07i5GX9uJiefmcPW9RGUFPsx/OR8Tp2azbIPEvj12+bt5F2bXRvCWPllFJffk0ZUfAWp+4OYdEE27TqX8+ztnWvfgGgTJIjxQCkVi1HL4g88Wsvq9wHjgA+buly1efrJUcy+zPbspIhy9idH8+C/xtYaWIRHmJlz+VaHtPPON6ZhP3Y01CGIGTrsGJfMqT6RcVll3ncXD2jRIAbg8md38+UzXVn3aSLF+QF06lfEDW9sp/coz7VPk29MIb5zGT+92ZFvnu+CuVyR1L+Ia17ewYjJrWOyr6fv6cfsGw/Ynp1kZv/ucB68YTBb/4z2mK+kOIC7LhvGNXftY9a1B1F+sOX3aF59sif5Oa3nrvXpu/oy++YDjJ92zHiW0K4wHrxuIFv/8PwsoZKiAO6aM4Rr7klm1nWHjONbH8Wrj/dwOL7tf0UyYHg+p03JIDq+HEuFIuVAKK8+3oMv32n+R0s8dVsP5t6ewoTpWZXPTnrgqt5sXe/5ERklRf7ceVF/rv3XQS66IRXlp9m8znh2Ul62Y1+aMWfmMGlm1bRYvQYV02uQEdRkppkqg5iU/cFERFdw8Y1HMAVbSUkO4T//7MbS91v29+zO/Ju7MPeI8eykiCgL+3cEc/+c7mxd12yTpLcImbG3itJtqV6phmqPHbgf101Bv2mtk22PHfgeWIwxrWUkMBQ4H6M/zDyt9fPVttvNtr15WuunPex/ETCzIY8dUEoNBLae3OsawoNb5wmksf1v6estXYRmd8Ows1u6CM3L0vaH+NdkLWu6jtCtkf4bHW+hzmOtMafpINsgjyZlvy5MevsCono0vGYsLzmb72d/BM1U7qb0d6mJedhN+uVAsu3/7aOWrFQ9O+kt4NWaz04SQgghWor2smOvbkMde9t0EKO1XgQsqsN69fpEtdYHqO1BJMZ6lwGX1WfbQgghhKibttMwJoQQQvwNtORkd0qpIKXUk0qpVKVUiVJqnVJqUj3yX6iUWqOUKlJK5SqlflNKjW9oedp0TYwQQgjR1ljBq0DEy4kiFgEzgeeBPRitDUuVUuO01qs9ZVRKPYjRR3WJbTuBGFOYNHiyJQlihBBCCFErpdRIYBbVBrUopRZjPCpnPsZkr+7yjsYIYG7XWj/XWGWS5iQhhBDCh2gvm5Lq2Q20upkYE7++WlUWXQq8DpyolPI0Qc8twFHgBWVolHHwEsQIIYQQPqQR+8T0VEoNrPFK9LDr4cBurXXNCbfW2/4O85B3AvA7cBPGQ5gLlFJpSqn/q/87UEWak4QQQoi/py9cpD0EPOhm/Q5Amot0e5rL2SKVUjEYj+Y5GRhv28chjGlO/quUMmutF9S92FUkiBFCCCF8SCM+APIcYF+NxRkesoYArmYzLK223BV701EcMEtr/SGAUmoJsAVjxnsJYoQQQoi2Tjs2CTUov82+es7YWwIEuUgPrrbcXT4AM8bIJFs5tFUp9SHwkFKqi9b6UD3KAkgQI4QQQvgUb+d68SJvGq6HQ3ew/U11ky8bo7YmV2td89kj9ke4x2A0MdWLdOwVQgghRF1sBPoopWo+nXRUteVOtNZW27IEpVTNp83a+9F4asZyS4IYIYQQwodYtbcjlBq86yWAP3CNPUEpFYTRQXed1vqwLa2LUqpfjbwf2vLOrZY3GLgE2K61dleL45E0JwkhhBA+RONln5gGdgrWWq9TSn0MPG4bir0XIyjpBlxZbdXFwKk4PmNwAXAV8D+lVB+MpqPZQFfg7AYVCAlihBBCCFF3c4BHMAKQGGAzMFVrvdJTJq11ie0ZSfOBK4AwjCamKVrr5Q0tjAQxQgghhA/R3s2662VeXQrMs73crXOam/R0jGctNRoJYoQQQggf0ojzxPg8CWKEEEIIH9KI88T4PBmdJIQQQgifJDUxQgghhA9pyT4xrY0EMUIIIYQPsc8T403+tkKak4QQQgjhk6QmRgghhPAh0pxURYKYVs564DBWld/SxWgWV192U0sXodldvvaLli5Cs3rvjJNbugjNL+1YS5dAtDEtNWNvayTNSUIIIYTwSVITI4QQQvgQrY2XN/nbCglihBBCCB8iM/ZWkSBGCCGE8CHSsbeK9IkRQgghhE+SmhghhBDCh8izk6pIECOEEEL4EOnYW0Wak4QQQgjhk6QmRgghhPAhGu+ahNpQRYwEMUIIIYQvkdFJVSSIEUIIIXyI1cuOvd7kbW2kT4wQQgghfJLUxAghhBC+xMvRSW2pU4wEMUIIIYQPkT4xVaQ5SQghhBA+SWpihBBCCB8iNTFVJIgRQgghfIjGu24tbahLjAQxQgghhC/ReFkTQ9upiZE+MUIIIYTwSVITI4QQQvgSaU+qJEGMEEII4UOMp1h707G3EQvTwqQ5SQghhBB1opQKUko9qZRKVUqVKKXWKaUm1SHfg0op7eJV6k156lUTo5Q6pSE70VqvbEg+4Vmgycrs21OZMCOb8KgK9u8I4a2nO7FhVWSteePalXPtAymMGJuP8tNsXhPBgoc7c/RQkMN6Uy7NYNjJ+fQdVkRiJzPffxzHM7d3c9pebKKZc644Rr9hRfQeUkxouJU7L+jD5rURjXW4bgUGWJg78y8mjtlHRFg5yYdiePPjEfy1tZPHfEkd8jh7wk769cygd7dsTCYLl9w8k2OZjmUe2j+NZ+771u123vhoBO99MbRRjqUuLOWw8YUokr8IozxfEdPXzLBb8uh4cpnHfJ+M70DREdc/+YiuZqZ/dxSAilLF+oejydwcRFGaP9oKEZ0r6HVeEX0vLsQvsNEPyUFAoIXZV+9i3BkphEeaObA3ksWv9mPj7wm15o2LL+Hqm7cxfGQGfn6w+a84Fr4wkKOpYZXrTJx8mFvv2+h2G089OJwV3yVV/nvY8RlcOHcPXXvm4++vOXI4nK+WdOPnbzt7dZx2gSYrs289woTpmcbveGcobz2TxIbVUbXmjWtXzrX/OsSIsXkopdm8NpIFj3Th6OFgh/WmXHKMYSfl03doEYmdyvl+STzPzOvhtL357+9gyOgCl/uqMCum9jmhYQfZRAJNVubMO8qE83IIj7IY58D57flrZdOfd1pUy87YuwiYCTwP7AEuA5YqpcZprVfXIf91QGG1f1u8KUx9m5NWUL/DV7b1/eu5H1EHtz9zgDGTc/j89XYcORDEpJlZPLJoD3fN6su238Pd5gsOtfDkh7sJi7Dwwf/aYzErpl91jKc+2sX1Zw6gILfqa3HBdUcJCbewa2MYsYlmt9tM6lHKhdcfIyU5iAM7QxhwfFGjHqsn865dxSkjD/DptwM5cjSS00/Zw2PzvueOR89i6+52bvMN6J3OuWfs4NCRKA6lRtGrW7bL9Q4eiebxl5zj90lj9nL8kFT+3NKx0Y6lLn69O5aDy0PpP6eAyG4V7PssjB+vSeD0t9Jpd3y523wn/DOXiiLHKujCVH82Ph9Nx5OrboYspYrcvYF0OqWEsE4WlJ8mY0MQvz8eTcZmE6c84/p9aiy33beRk8el8cWHPUhNCWPi5MM89Mw67vm/E9m+Oc5tvuCQCh5/cQ2h4WY+WtwbS4XinAuTeeJ/v3Hj3FMpyDcBsHVjLE8/NNwp/7kXJtO9Vz6b/oivTBs15ij3PfE7O7fG8N7rfdEaxk5I5Y77NxIVVc7nH/b0+nhvfyqZMWfl8Pmb7ThyIJhJ52XyyBu7uevifmz7w/3FODjUwpPv7zB+xy91NH7HVxzlqQ92cv2UgRTkVkWbF/wjjZAwC7s2hXv8Hb//v458+6Hj8uAQKzc9doC/6nBz1Nxuf/4wY6fk8tlrCRxJDuL0C7N55O1k7jy/J9vWuz8H+rqWmidGKTUSmAXM01o/bUtbDGwF5gMn1WEzS7TWmQ0qgAv1DWLGNdaOvaWUugx4s1qSBTgGfA/cq7U+UmN9BVwKXA0MAUzAPuBj4BmttcurrlJqOnANcAIQCWQCq4FXtNY/2dY5DfgZOF9rvaRaXhPwKTAZuEpr/YY3x1xdn6FFnHZODgv/3YlPXm0PwA+fxLHg++1ceU8Kt83o5zbv1DkZJPUo46ap/di92bhD/X1FFAu+38Z51xxj0fyqGox5F/Qh/YgJUHy2Y4Pbbe7ZEsrMwUMpzAtgzOQcBhyf3DgHWou+PTIYf9J+Frx7PB8vHQzAd6t78toTn3P1Rb9z80NT3eZd82cXzl3fjZLSQM6fvMVtEJObH8KPvzpfrGbP2EBKWiS7kmuvIWgsmZtNHPgmjOPuzGXglcYdc89zi/hyanv+ejqasz5Id5u3y8QSp7TNLxkXpu5nF1emBUVbmfyR43b6XlREYISVXe9EcMLduYQkWBvjcJz06Z/DqZNSef2/A/j0feM9/3FZEi+9s4IrbtjBHdeOcZt3yowDdOpSxC1XjmXPjmgA/libyEtv/8L0i/axeEF/AI6mhjnUzACYTBauv2MLm/6KIye7qhZj6sz9ZGcFc8+NJ1JhNu7Fln3RlQXv/8yEySleBzF9hhZy2rRsFj7WmU8WdgDgh0/iWbB8C1fefZjbZg5wm3fq7HSSupdx0zkD2L3ZuGD/viKKBcu3cN5VR1n0dFVN0bxZ/at+x1v/cLtNV7U/4881rjc/feE+gGwJfYcVM+7cXBY+3IElryQC8MOSGF79aRdX3ZfGrdN6t3AJ26SZGNfaV+0JWutSpdTrwGNKqc5a68O1bEMppSKBAq29751Trz4xWutfGvLytpC1uB+YDfwDWIYRqPyilKo8Eyml/IEPgMW2pAeBW4CNwAPAWqWUwy27MryJEYS0A5617eN/QA/gR6WU26hTKRUILMEIYK5uzAAGYOyUHCwVsOy9qguoucyP5R/GMeD4IuI7uL8jHzs5h10bQysDGICUfcFs/DWSU6bmOKybfiQI6jCnQEmRP4V5zd9P/JRRB7BYFN/83LcyzWwO4Ntf+jCwTwYJsYVu8xYUBVFS2rC2kb49MkhqX8CPvzlXyTelg9+GoPw1vS+sOi7/IOg1s4iMDUbzT33s/zqU8KQKEke4/77YhXcyan3L85uuK93J49KwVCiWfdGlMs1c7s93X3Wh/+Ac4hOdA7HqeXdtj64MYABSDkaw8c94xk5I9bjfkWOOERpWwYrlSQ7poaEVFBYEVgYwAFaLH/m5JsrLvH8fxp6VbfyO30+sTDOX+7H8owQGHFdIfAf3TYRjz8pm16awygAGICU5hI2/RXLKFMeAvK6/Y1dOm5ZFSZEfa76PaVD+pjJmai6WClj6TlVwZS7z49v3YxlwfDEJHWv/Tvssrbx/GXoqpQbWeCV62PNwYLfWOr9G+nrb32F1KH0ykAcUKKXeqXntra9GOxsppToopYYqpcJqX7tRLdNav6O1fk1rfRXwNNATmFZtnTuBC4CntdanaK2f11q/qrWeDZwLDMBo56vudoy2vueB47TWj2mt39BaP6q1Ph6YA1S4KpAtgPkImApcq7V+vXEOtUrPgcWk7A+muNDxorVrY1jlctdl03TvV+IQwFTlDaVjtzJCwrxqomxWvbpmk3I0kuISk0P6zn1Gk0DPrk3T9DHh5H0ALmtomlL2DhOR3SowhTvewMQPKbctr3tQlrU9kLx9gXSf6rrpz1IOpdl+FKX5c+j7ELa/EUFYpwoiurr82jeKnn3yOHI4jJJix+PYvT0agB6981zmU0rTvWc+e3c61yTs3h5Nx6RiQkLdl3vcGSmUlvrx2y8dHNK3bIinW48CLr16Jx06FdG+UxGzLttN7355fPJur3oenTO3v+NNtt/xAE+/42LXv+NN4Y32O46KNTNiTD5rvo+hrKR19QroNaiElOQgF+fAUAB6DHQf8Po6jX2EUgNfVZv6AqMpqPrreg+77gCkuUi3p3lqW88BXgSuxajReQ24EFhlq5lpEK9vnZVS5wBPAva6u0nAT0qpeIymnYe01p97u596WAXchRHIoJQKAeYBu4F7aq6stf5KKfUWcLlSarTWeq0tzz3ATuAOV1VeWuu3Xe1cKRWAUetzDnCd1nph4xyWo9hEM9npzhcse1pcO9ft3hHRFkzBmpxa8qYkt64Tljux0cVk5YQ6pWflGmlxMa4vAt7wU1ZOG32AHXvjST3WvP0ESjL8CUlwvjjZ00rS6/657f/KeI+6T3P9Hh36PoRVt1X1D4kbVM5Jj2Xj14QVbjHxZWRnBTul29Ni410PZIiILMcUZCU70zlvTrW8Rw4595MIjyjnuFEZrFnZnpJix4N7/83etOtQzIVz93DR5XsAKC3x57F7j2ftqvb1OzgXYhPMZKebnNLtaXFu+q9ERFdgCtLkZHj6HZeTkhziVflOmZpNQKDmp89bV1MSQGxiBdnHXBz/MfvxN12w3eIab56YczC6VVSX4SFnCOCqerC02nLXu9T6hRpJnyil1gPvYgROT3jYr1te1cQopc7GaG7JBB6iWn2lrePOEeByb/bRAN1sf+3tImOAGOA9rbW7b7W9mcnegWIMEGvLU5/bmQDgfWA6cIPWekFdMimlEmtW6WELwtwxBVsxlzlXD9uruE3Brvss2NPLy+uftzUKMlkwVzh/jc3l/pXLG9vwQWnERpfw42/NWwsDxsghf5Pz2cs/SFcurwtthQPfhBI7oJzonq5/Fu1HlTHxzXROfSGTPrMK8QvUVJQ07XTlQUEWzOWuPk8/23I332tbutnsnNf+vQ4Kcv1dGDM+jUCTlRXfOY9mM5v9OHI4jF9/7sCT94/gqQeHs2dnFLff/xd9B+a42Fr9mIKtmF3+FlXlcnf5AMpdvFeVv2M371V9jJuWRW5mAH/VYaRUc6vtvQvyofNYC9qntd5W4+W+Yx2UAEEu0oOrLa8zrfV7wFFgYn3yVeftPdX9wEqt9TilVBxGX5Pq1mBUHTWlKFutTzAwCqOPSxnwtW25vWfcJg/bsC/rX+PvlnqW5QmgK0YA83I98l2PUe46Ky/1IzDI+WJmP3GVl7qOT+3pJhcXwtrytkZl5f4EBjifrAJtwUtZeePXKE04aR8Wi2LFmu6Nvu3aBARrLC5O3BbbiTsguG63Z8fWB1F8LID+l+W6XSck3kpIvHHT1fXMEra8EsH3lycw/bu0JuvYW1bmT6DJ1edptS138722pQcGOue1f6/Lylx/F047PYX8vED+WOPcFeC627bSb2AON11+SuWIjlU/duTld1dw7S1bue3qsXU4KvfKS/0IdPlb1JXL3eUDMLl4ryp/x1722WnfuZQBxxXyxVuJWC2t71k7tb13ZT50HquvFnyKdRrgau4Kezus585nrh3GqDRoEG8/5UEYfT/cOQZ46iTUGH7AqP46jNGRtgiYprVOsS23j1F0PfmB47LIGn895XGlHUY/mf31zPcSxntZ/XWOpwzZ6YEuh0ra07JcVLMCFOT6U16qiGlA3tYoOzfUZZNRXLSR5qqpyRumwApOPuEQf23tSG6+d1X1DRGSYKEkw/libE8LSaxbzVPyV6EoP033KXUfCt/1jBIqiv04/GPTHXdOZhCxcc5NRvY0V81FAAX5RkdbV81NMR7yJrQrZuDQbFb/1BGLxfF0GBBg5fSzD/H7mkSHk77F4scfaxPp1S+XABcBdH1kZwQSm+jcAdWeluWi2RegIDeA8jJFTIKn37FzM1V9jDsnC4CfP4+vZc2WkZ0eQKyLZnN7WtaxNjwhvW6EV8NsBPq46MMyqtryOrONGu6G5yYsj7wNYooBTx15ewBZXu6jNjdg9MOZCSwF4nFss7MHIp5mP6oZ6OTXSK+rO4FDwBKl1Ml1zaS1Tq9ZpYdzO6WD5G2hJHUvJTTc8aLVd5hxUdq3zfXFW2vFgV0h9BnifPHqO7yI1IMmSop8oz8MwL6DsSS1zyc0xPFC0K9nRuXyxnTScYcICzE3+6gku5h+5eQfCKC80PFOKnOTccGK7e9+DhA7Szkc+i6UdiPLCG1X94twha22p7yg6e5wk/dE0alzESGhjsfRd2Bu5XJXtFYcSI6gVz/njr99B+aQdiTUqb8LwKmTUvHzw2VTUkRUOQEBGj8XhxsQYMXfH/z8vBshmry9lt/xdg+/452hrn/HwwpJPRjk9e/4tGlZpB4IYufG1jnfyr5tIST1KHN67/oNN25gkrc1/03G38ASjHnfrrEnKKWCMLqNrLMPr1ZKdVFKOczzoZRyNRfFdUAC4H420Vp4ezb6GZhr68zqQCnVHmNOlu+83Edt1mutf9Baf4IxImkr8J5Syv7L22H7O8TDNuzLttv+7rT9HVzPsqRhBFR5wDdKqSabxnXV0hj8A+Csi6sC2ECTldMvyGLHX2FkphkXtYSO5ST1LHXK23dYMb2rnQCTepQy7KQCVn3TuoZR1mbl+m74+2umjNtVmRYYYOGMU/ewY28CGdnG1yAxrpDOHXK93t/4k5IpKQ1g9e9dvd5WQ3Q9swRtUez5sOrCYimHvZ+GET+0jLAOxgm9MNWfvH2u70SP/BJCeb6fw9ww1ZVm+7mcDXTPx8b9Stygphu6+uvPHfAP0Jx1zqHKtIBACxOnHGbn1mgy040LU0K7YpK6FtTI25G+A3Lp1S+3Mq1Tl0KGjshi9U+uB02cOukI6UdD2LbJOdjNywmiMD+QE09Jc6hxCQ6pYOTJxzh8IJxyL5srVy2LNX7HF1V1Qwg0WTl9ZgY7NoSRmWZ0P0joWEZSj5IaeWPoO7SI3oOrhtsn9Shh2In5rFrqXfDec0ARXXuX8vOXra9Dr92qr6PwD4DJl1bdJwearJx+YTY7/gwlI9W7mqjWzN6c5M2rYfvV6zDmVntcKTVfKXUN8BNGbcqd1VZdTNW11+6gUupNpdRtSqnrlVLvYYxW2gjUqf+oK97Wt90LrAV+xzgwDZyhlBqP0RdGYXT4bRZaa4tS6h6M4Or/MPqorAZygYuVUo+66ag7x/bX3o9mNUbH4IuUUo/Vp3Ov1jpZKXUG8AuwXCk1Vmu9p2FH5N6ujWGs/DqGy+86QnR8BakHgpg4M4t2SWU8N6/qAjvvuf0MObGQM7scV5n29eIEzrook4ff3Msnr7ajokIx46pj5GQG8umrjkP2R03MpUd/4+TpH2AM67zoRmM03drvo9i/s+pO0Z7etY+x/oQZWQw8wTjBvv9fx6GrjWXnvgR+WduNKy/8k+ioUlKPRjLplL20jy/kmYVVE6Pd9Y9VDB1wlImXVPUzDwsp59wzjLh1YB/jInLO6TsoKjZRWGTii+8dJxqLCCvjhKFHWLW+K6VlLdPkljC0nK5nFvPXs1GUZvkR0dWYsbfwSAAnPVoV0P56VyzH1gczZ5fzvFPJX4XiZ9J0PcN1EJP8ZSi7Pwin88QSIjpXYC7yI3V1MGm/BpM0roQOJ3p+vIE3dm2PYdWPHZh73Q6iYspIOxLGhLMO065DMS88fmLlerf9ayNDRmQx5aSzK9O++bQbZ0w7yINPr+PT93piqfDj3Fn7yMkJ4tP3nWvOuvbIp0fvfD5a3AtXc6hYrYpP3+/BnGt38czCVfy0rDN+/prTpx4ioV0pTz3oPOtvvY93Yzgrv4nl8nkpRMeZST0YzMQZmbRLKue5u6v6XM17Jpkhows4s/vIyrSv32nHWbMyePiN3XyysAMVZsWMK48av+PXHEdOjZqQQ4/+xudd+Tv+P2M+0LU/xDj8jgHGnWtrSmplE9xVt2tDGCu/jOLye9KIiq8gdX8Qky7Ipl3ncp69vXEeCdFqtexTrOcAj2DMzxYDbAam1uHxQu9izOh7HkYf1oMYs/w+qrVu8DBSr4IYrfUupdQY4AWMg1IYw5nBeETBDVrrA97sowFlWmEbtnWLUup5rXWxUupp4N/Ao8Dd1ddXSk3BmA9mudZ6rW0bxUqpJzGCoCeVUvNqDrNWSl2KMenPemrQWm+xbfd74Hul1Mk1ZxBuDE/d2o25t5uYMCOL8EgL+3eG8MDlvdi63nMrWEmRP3de0IdrHzjMRTemofxg89oIFjyURF6248V5zFm5TDq/6k6n1+ASeg02gpTMtECHk9/ceY59us6YVZWvqYIYgCdeGcvlM8OZeLLt2UmHY7jv6Uls2el5CGx4WBmXn+84C/EFU7YBcDQj3CmIOWXUfgIDrPzUQk1JdmPmZ7Hh+SiSvwyjLM+PmL7ljH8lk3Yn1B5clBcqjqwIJum0EkwRrs9kiceVkbEhiAPfhFKS6Y9fgCayewXH35NDv0vdTx7YWJ55ZDizj+5i/JkphEeY2b8vkofmjWTbRs8X1JLiAO6+4SSuuXkbsy7bg1KaLRviWfjCQPJznQdUnHa68ZN01ZRk9+FbfTiaGso5F+zn4it2E2CycGBvJI/+8zh+W9E4j5t46rYezL09hQnTsyqfnfTAVb3Zut7z8P2SIn/uvKg/1/7rIBfdkGo8A22d8ewkp9/xmTlMmlk103uvQcX0GmRcNzLTTA6/Y6U0p07NYs+WUK+HaDe1+Td3Ye4R49lJEVEW9u8I5v453dm6rnU2gTUeRUMnL6zK3zBa61KM6/w8D+uc5iLt6gbv1APVCLP+GhtSKgbohdFElay1bnBHnTru7zKMxw6coLX+o8aymRg1Q9dprV+xzdj7IUYEuBL4BGMo2BiMGX53ABO01seqbcMPYwK82cBfGG2BR4H2GBPkjQRO0lqv8fDYgdOBrzD6t4zVWte5f5BtmPXWEwPOIly1vuGNTaFirKcWv7bp8le+aOkiNKv3zqhzV7E2w5J2rPaV2hBd1nQ1da1Noc5jLd8DDLL1ZWxS9utCh0dvxZTU8Iluy1OOkXbvc9BM5W5KjdZDT2udo7X+XWu9rqkDmDr4FCNwuEMp5W9rDroAo/ORP0at0X+A4zCau0ZVD2AAtNZWrfUcjA7DmcAdGM+LuBFj9NFpWus1ngqhtf4OIwjqCyxTSrXxR6sKIYRoFs0/MqlVaowZexMwZsidTNVEcwcwRgo9VTM4aCxa60U4PyrAvsyKUStUM81tHg/7+QSj5sbTOitwUz+ntf4Iz8PQhRBCiLpr2T4xrYq3M/YOxJgQ7jaMETkf2155trTNSqlB3hZSCCGEEKImb2ti/ofRPDNKa/179QVKqZEYtTH/BcZ5uR8hhBBCgK0mxouOvVITU2kk8ELNAAbANmrnBapm8hNCCCGEl7x6grXt1VZ4G8SkU/X0SldKbesIIYQQQjQqb4OY54HrbLPzOlBKdcSYUvh5L/chhBBCCLuWe3ZSq1OvPjFKqdtcJBcCe5VSnwF7bWm9MeZS2Yt3M/IIIYQQojqtvOwT03Yuy/Xt2Pu0h2WXuEgbYsvzXD33I4QQQggXFKC8qE1pOyFM/YOY7rWvIoQQQgjR9OoVxGitDzZVQYQQQghRBzLZXSWvZ+wVQgghRDOSPjGVGuOxA0Mwnic0AojCecST1lr39HY/QgghhBDVefvYgdOA9cBUIBXoASTb/r8rxsillV6VUAghhBBVZIh1JW/niXkYI2jpi/GEaIDHtNZjgJOAJOThh0IIIUTjkSCmkrdBzAjgda11PmCxpfkDaK3XAQuAR7zchxBCCCHsJIip5G0QUwEU2P4/FzADidWWJwMDvNyHEEIIIYQTb4OYvRiz86K11sBOYHq15VOAo17uQwghhBCVVNUIpYa82tB0d94GMUuBi5RS9lFOzwIzlFJ7lFJ7gGkYTUpCCCGEaARKe/9qK7wdYv0I8AK2/jBa67eUUhbgPFvao1rrRV7uQwghhBDCiVdBjNbaDGTVSHsHeMeb7QohhBDCDZmxt5K3zUlCCCGEEC2iXjUxSqmfGrAPrbWe0IB8QgghhBBu1bc5yY/6V0S1nW7QLUBXVKBVRUsXo1kEZhS3dBGa3YK7zmvpIjSrMZ+tbekiNLs/jwts6SKINsbbzrl/2469WuvTmqgcQgghhKgLeQBkJXmKtRBCCOFLpGNvJenYK4QQQgifJDUxQgghhK9pQ7Up3pCaGCGEEMKHtOSMvUqpIKXUk0qpVKVUiVJqnVJqUgO2871SSiulXmx4aSSIEUIIIUTdLQJuA94FbsaYnX+pUmpMXTeglJoBnNgYhZEgRgghhPAluhFeDaCUGgnMAu7RWs/TWr8KjAcOAvPruI1g4BngyYaVwlGjBDFKqU5KqYuUUjcrpZJsaf5KqVillH9j7EMIIYQQtFgQA8zEqHl5tbIoWpcCrwMnKqU612Ebd2LEHk83uBTVeNWxVymlMCKq/7NtSwNbgBQgHDgA3A88781+hBBCCGFoxMnuehqXcQcZWut0N1mHA7u11vk10tfb/g4DDrvdr1JdgLuBK7TWJS72XW/e1sTMw2gTexqYRLXZebXWecCnGE+0FkIIIUTr8gWwtcbreg/rdwDSXKTb0zrWsr9ngA1a6w/qWU63vB1ifTWwWGv9T6VUnIvlm4GzvNyHEEIIIewab8bec4B9NZZmeMgZApS5SC+tttwlpdQ4jEqNUXUrZN14G8R0Bn7zsLwIiPRyH0IIIYSornHmidmntd5Wj/VLgCAX6cHVljtRSgUA/wHe1lr/Xr8ieuZtEJOOEci4cxxwyMt9CCGEEKLlpQGdXKR3sP1NdZNvDtAXuFYp1a3GsghbWrrWut5PAfa2T8ynwD+UUj2qpWkApdTpwGXAx17uQwghhBB23k501/BanI1AH6VUzRaWUdWWu9IFCAR+BfZXe4ER4OwHTm9IgbwNYh7AiMw2Aosx3pq7lFKrgWUYfWIe83IfQgghhLBruSHWSwB/4Bp7glIqCLgcWKe1PmxL66KU6lct3wfAdBcvgKW2/1/XkAJ51Zyktc5TSo0GbscYP14KnIrRUegh4Cmttcs2MiGEEEL4Dq31OqXUx8DjSqlEYC8wF+gGXFlt1cUYsYCy5dsJ7Ky5PdsQ6/1a688bWiavHwBpC1L+bXsJIYQQogk14jwxDTEHeASYDcRgtLhM1Vqv9GqrDSRPsRZCCCF8iXdNQl7ltc3QO8/2crfOaXXcltez3Xk7Y+8bdVhNa62vrH01IYQQQtSqBYOY1sbbmpjxOL8d/hjDrfwxJs0p8nIfQgghhBBOvO3Y281VulIqELgWuAXjcQRCCCGEaAQKL/vENFpJWl6jPMW6Jq21WWv9IvAd8GJT7EMIIYQQf29N3bF3E0YPZtHKBZqszJl3lAnn5RAeZWH/jhDemt+ev1ZGtHTRahUYaGH2nK2Mn3iA8HAz+/dHsXjRYDb81d5jvk5J+UyZuo++fbPo1TsHk8nK3NlTST8W5rTuKaceYtToVPr2y6JTp0I2b0rgrnnjm+qQPAoMsHDl1D84feReIkLL2Hcklte+Op4/diZ5zHfKsP2MPy6Zfl0ziI0sJj0nnDVbuvDWsuEUljjOJD7+uH2cNPgQA7qlk5SYz4bdHbj5+alNeVgeWcsh9WVF9tdQUQAhvaHTDZrI0XXLn70c0t9VlOwBFQDBPaDjDZrIkcbyzC/h4APu7+m6PWolbrL3xxFosjLnjjQmzMgmPLrC9jvryF+ran86S1z7cv7xQAojTilA+Wk2/xbBKw8lcfSQ8yzwZ8zKZOa1x2jfuZyMNBOfv5HAl28mOq03fEw+F910lG79SvD3hyP7g/jizQR+/MTVo/AMA08o5NnPdgNw/uAh5Oe03PgQXz5vicbRJDUx1UwC6j2NsGh+tz9/mBnXZPDTZzG8fH8nrFZ45O1kBo4sbOmi1eq2O9Yz/bxd/PxTVxa8PByrRfHwv1cycKCn55hB//5ZTDtnDyGhFRw+5PkiMmXqXkafeISMjFAK8k2NWfx6u2f2L1wwYQvf/96L/3x8IlatmH/DtwzuedRjvjsuXkXX9rl8t74XL3x0Euu3JzH91G28PO9LTIEVDuueM3YHY4YcJD0njPwiV49KaV4H7lccewdiJ0PneRrlB3tuVBRuqD1v6iuK/fcoTO0h6XZNxxs0Ib3BnF61TsQI6PZvq9MrtL8G/6pgx1u3P3uQGVcf46fPY3j5gc5YLYpHFu9l4Amef2fBoRbmf7SHwaML+eDFdrz9TAd6Dirm6SW7iYh2/OwmX5LBbU8f4uDuEF66vzM7/gzjhkdSuOB6x+/H6Em5PPbeXgICNe8824FF8ztSVurHnS8cZPpVx1yWQynN9Y8cpqSoqS8ddePL5y2vtNxkd62Ot6OT7nezKBo4BRgBPNHAbV8GvGn751it9eoayxXGc5mSgG+01lNt6Z4+ngUYMwf+XJcyVB/+pZT6CDgfmK+1vstFeU+zbfd8rfWSumy/teg7rJhx5+ay8OEOLHnFuFv7YUkMr/60i6vuS+PWab1buITu9embxWnjDvHaq0P5ZIkxQeQP33fjlVe/5YqrNnH7rRPd5l27tiPnz5hOSUkg583cSc9euW7XfWr+aLIyQ9Ba8fKryxr7MOqsf9d0Jp6wj5c+HcUHPwwBYPm63iy67xOum76O658+x23e+xdOZOOejg5puw7Fc+/cX5h0wl6++a1qgs1H3zqNjNwwtFYsuq9lv85FWyFnuaLTrVbazzHS4qZqtp+vSHle0e8t9z/5ws2Q9iok3aZpd2n1JY55gpKMV3XWUjj0OEScAIHx3h9H32FFjDs3h4WPdGLJgnYA/LAklld/3MFV9x7h1nP7us179twMknqUceOUvuzeZNQU/vFzFAt+3M7Ma4/x5pPG42xMwVYuuyuVdT9E8u9rjafBLHsvHuWnufjmoyx9N57CPOO0P+2yDLLTA7nrwt6Yy42g5Jt34nn9l+2cfkE2n73Wzqkcky/JJKFjOd++H8f0qzzfJDQ1Xz5veauF54lpVbwNpx9085oLWIF/APd6uY9S4GIX6adiBDCuHgv+PUYzVs3XG8AOF+kpGLMJ1kwHwPaciLOBA8BFtgCqzRgzNRdLBSx9p6oK2Vzmx7fvxzLg+GISOpa3YOk8GzM2BYtFsWxpz8o0s9mf5cu7M2BgFvEJ7isCCwuCKCkJrNN+MjNCaYQpDbx26oj9VFgUX66uCjjKKwL4Zk1fBvVIJzHG/R1ozQAGYOXGbgB0a5/rkJ6eE94qjhcg5wcF/pqEGVVpfkEQd46maLOi3EMFVPq7isA4SLwYtAZLPeqFc1eCtUgRd1bjnPHHTMkxfmfvVkVExu8sjgHHF5HQwf3vbOyUXHZtDK0MYAAO7wtmw+oITjk7tzJt6EkFRMVa+GpxgkP+rxYlEBJmZeSEvMq00AgLhbn+lQEMgNWiyMv2p6zU+bOPiK5g7p2pLH66I4X5/vU69qbgy+ctr0lNTCWvghittZ+bV5zWeqTW+lWttbdv11LgfNujvKu7GPgTcHUK2621fsfFa73W+ljNdCAPcJVudx7GkPErMJ7afYqXx9Sq9BpUQkpyEMWFjiemXRtDAegxsPU+OaJnrxyOpERQXOwYjOzeaZzYevbMaYliNZneSVmkpEdRXOrYpLXjgHHR6pWUVa/txUUan21uUXDjFLAJFO+E4C7gH+6YHjbItnyX+7wF6yF0IKS/D5vGKzae7MemSYr0D2rfb/ZShQrWRE9oeNmr6zWwhJTkYA+/M9cRllKa7v1K2L0p1GnZro1hdOxWRkiYxbYPYxs1192zJRSLxSiD3eY1EXTrV8qcO1Lp2K2UDl3LuPjmNPoMKebjl51rYebckUpOeiBL32mEaqlG4MvnLdF4GtycpJQKAR4FftZaf9V4RXLyPsbDoSZhPFQSpZQJ41lN/wZuasJ9210CfK+1/lkptcP271+aYb/NIjaxguxjzjUS9rS4dhVOy1qL2NgSsrOdL8D2tNi4tnUii4sqJivP+WJmT4uPql8XtItP30SFRfHLX90bpXxNwZwJgQnO6fYmHrObVo2KfKjIVRRu0hT8ruhwrcbUXpP1heLwk36oACsJM93kzYP83yB6HPg79/NukNhEM9npLn5n6fbfmdllvohoC6ZgXWvelGR/YttVYKmAvCzHdSvMfhTkBBBbbR/vPt+e9p3LuOimo1xyi3EvWFrsxyPX9GDNd9EO+bv3L2bKpZncN6cXVmvrqKHz5fOW12Syu0oNromxPTPpWsA5ZG9cB4A1wEXV0s4CojD6t7gSrJSKd/Gqd49MpVRHYBxGMIXt78yGbKu1MgVbMZc7n5jKy4y0oGBrcxepzoJMFsxm56rt8nL/yuVtSVBgBeYKF8drew+CAut+4p54/F6mnryLj34cTEpGVKOVsbFZy0C5aPXzC6pa7jKfLZ6z5Cq63q9pPwdiT4de/9UE99Ckveb+YpzzA2izIraRmpLA0+/MOA0HBbvel/335+k3arKtYwq2Yja7Pq7yMuXwWzaX+5GSHMzqb6J57PpuPHFjN3ZvDuXO/xyg3wjHOUqveziF33+O5K+VtY+iai6+fN7ylr1PjDevtsLbPjF/AoMaoyC1eA8411b7A7aaEK11qpv1r8SYLbjma4ab9T25CKPfzRe2f3+A8dCrRhhwaVBKJSqlBlZ/AT1rzdhIykv9CDQ5f6tNQUZaWWnrGIngSlm5P4GBzoGKyRa8lJW3fNt9YyozBxAY4OJ4be9BmblulatDeqZx16UrWbctiYVfntCoZWxsfkGgXVRS2IMXPzeDp+zpKkATU61/t/KDmNM15mOK8jTXebOXKvyjNFEnN7zcNbn/nRkXW1f9UIx04/fn6TdablunvNSPwEDXVyhTkHb4Lf/fvw8zelIej13fnV++jOXnz2K5e1ZvstMDue6hw5XrnXp2NgOOK+LVhz0P4W9uvnzeEo3H20/5FmCWUuoqF31WGtNHQAgwVSkVAUzFCGzc+QKj+anmq06jkmq4BGP0UwGA1noPRvB2SQO25c71wNYary885mhE2emO1cx29rSsY633OaHZ2SHExpY6pdvTsrNCnJb5sqy8UOJcNBnZ0zJdNDXV1LNTFo9f9x3JaTHc/9pELNbWfbIPjHfdZGTOtC130dQE4B8FKkjjHw2qRiwbGGv8rch3zleeBoUbIGai6xqghspODyQ20cXvLNH+O3O9s4Jcf8pLVZ3yZh8LwD8AouIc1w0ItBIRU9X8EhBo5YxZmaz/MdKhA7elQvH7z5H0HlJMQKARXF113xFWfRNNhVnRLqmMdkllhEcaQXNCx3Ji27VMB1pfPm81CunUCzSgT4xS6hRgh9Y6A3gLYxTSAuA/SqkjQM1OCFprPdSbQmqtM5RSP2B05g3F6GTradxnitb6B2/2CaCU6g8MBxYrpXpVW7QCuEEpFam1dnEarLeXgI9rpPWkmQKZfdtCGHpSIaHhFodOcv2GGxfG5G2tNxBI3hfN0KHphIaaHTr39u1ndHDdty+mpYrWJPamxDG8TyqhweUOnXsHdEuvXO5Jx/h8nv6/ZeQUhHDn/86kpKwRr9JNJLQvHPsDLIWOnXuLtlYtd0X5QWgfKNoOVjP4VTtUc4Zx4Q5w8fXI/hbQitjJjdscsW97CENPKvDwO3MdgGqt2L8zhD5DnYPXfsOLSD1goqTI2N4+2zb6DC3m95+qmgj7DCnG398oA0BkjIWAQPBzUVEZEKDx97ctM0NiJzPjp+cwfrpzJ/mXlu9k37YQrj+jf93ehEbky+ctb8kQ6yoNuQX7GbBXzmYBu4CVwDqMocpZNV7Z3hcTMGpezsIYtr1Ma53bSNv1xD6zxHPAnmqv24FgjFFLXtNap2utt1V/AfsaY9t1serrKPwDYPKlVSNbAk1WTr8wmx1/hpKR2nq7/6xe1Rl/f81Zk6versBAC5PO2M/OHbFkZhgn9YSEIpI6N0a82bJWbOhOgL9m2pidlWmBARYmn7ibbfsTSc8xrvKJMYV0aZfrkDc2sphnblyKVSvu+O9Z5BX6xkk+ZqIGiyLj06o0azlkfaEIG6wx2SZmLk+D0v018p5h5M2qNvTAWgZZyyC4h8bkPIkt2csUpvaa8OGNexyrvokxfmeXZFamGb+zLHb8FUpGmvE7S+hYTueejrWLq5dG03dYMb2HVPVVSepRyrCTC1j1TVUktvG3CPJz/Jk627HqasqcTEqL/Vj/oxHY5GYGUJDrz0ln5lbWuIAxqd7oSXkc2hNU2UT14JU9nF4rvjD2Of/mrix4qGWamXz5vCUaT0Pq25Tthdb6tEYtjWefYdT4jAYubOqd2eaCuRgjaHvJxSr/wmhSetPFMp+ya0MYK7+M4vJ70oiKryB1fxCTLsimXedynr29c0sXz6NdO+NY+UtnLrtiM1HRZaSlhjNh0n7atSvi+Wer+nrccec6hgzN4KzTq746oaHlTDt3DwADBhoXlmnT9lBYFEhRoYmvvqyaLGvQ4HQGDTYuDFFRZQQHW5h18TYAtm5JYOsWF1fDJrDjQCI//dmda85ZT3RECUfSIzlz9B7axxXw5DtVI//vnbuC4X3SOOX6qyvTnrphGZ0SCnjvuyEM7nWUwdVmJ8jJD3F4bMHQXmkM7WV0GIkOLyXEZGbOmX8BsGlvBzbt7dDUh1opbDDETNIc+a+iIhuCOmuyvlKUpUHXB6puKff/S1H4p+K4DVUX5YTzIPMzzeHHFWUHMUYnfWP0hen1vPPtaMleKNmjaH+5prFng9q1IYyVX0Vz+d1HiIo3k3ogmEkzs2iXVMazd1R91+a9cIChJxZyRtKIyrSv3krgrIuzeOStfSxZ0A6LWTHjmmPkZAbyyYKq7155qR9vPdWRGx87zL2vJPPnL5EMGlnIxPOyefOJjhTkGqd8q1XxyYJELrsrjee/3MWPS+Lw89ecMSuLhI5mnrixW+U21yyPdjqWnrah3L//FNVijx3w5fOW12R0UiWfaTTUWhcqpa4DugFNOaTb7mTbvu53NQOvUqoP8IhSqqOHDsY+Y/7NXZh7xHgGSUSUhf07grl/Tne2rguvPXMLe3r+KOZcFsqECQcIjyhnf3I0D/xrbK2BRXiEmbmXbXVIO+98Y9KRY0dDHYKYocPSuXT2tmprllXmfeftgc0WxAA89tZpHMv+kzNG7iE8tJzkI7Hc9dIZtQYWvTsblaIXn77ZadmG3R0cgpgRfVO5fMpfDutcNe1PAN78ZkSzBjEA3R7RmF5SZH0DlnxFSG/o9YIm4jjP+fyCoc+rmiPPKzK/AGuJIrQv9PqPJuok5/WzlxqRS2OOSqpu/i3dmDsvlQkzso3f2c4Q7r+sF1vXeX7WT0mRP/PO7821D6Rw8U1pKD/YvCacBQ8lkZft2CT49eIELBWK8645xuhJeWSmmXjlgSQ+e92x89D7/+3A0cNBnHtlOpfcmkZgkJX9O0J45JrurF7qG82wvnze8ooEMZVUfeeiU0pZgUu01u/XurIXqj124ASt9R8e1jsAbK3x2IHvgcUuVj+mtf7exTa2ApnVa5aUUi8DVwOJWmunJjGl1CBgC3C71vrZao8d+ADYVnN94C2t9WEX6e6OayCwdTSTCFetd/hrY/Ib1K/2ldqYol6tZ8hqcxjzwNqWLkKz+/O41t/vqFFZ29a0Bp4U6jzW8j3AIFs3gCZlvy70uPJOghM8P+DWk9KMoyS/Ph+aqdxNqaE1Me8opd6pfTXA6Njb3DU+9tFINf2CEeB4pJQKxHhO0m+uAhgArfVWpdR+jH4zz1ZbNMvNZlcAdQ5ihBBCCOFZQ4OLH4DdjVmQmrTWi4BFdVivW41/17slW2s9qMa/zUCtc2trrXtU+/8V2PoKCSGEEE1GmpMqNTSIeUtr7WmeFiGEEEI0lTYUiHijdc9yJYQQQgjhhs+MThJCCCGETHZXnQQxQgghhC+RPjGV6h3EaK2lCUoIIYRoIVITU0UCEiGEEEL4JGlOEkIIIXyJNCdVkiBGCCGE8CUSxFSS5iQhhBBC+CQJYoQQQggfohrh1eB9KxWklHpSKZWqlCpRSq1TSrl6zE/NfNOVUstt+cqUUilKqSW25xA2mAQxQgghhK/RXry8swi4DXgXuBmwAEuVUmNqyTcYyAFeAK4HXgaGA+uVUkMbWhjpEyOEEEKIWimlRmI85Hie1vppW9piYCswHzjJXV6t9cMutvcakAJcB/yjIWWSmhghhBDCh9jnifHm1UAzMWpeXrUnaK1LgdeBE5VSneu5vXSgGIhuaIGkJkYIIYTwJY03OqmnUk49ZDK01ulucg4Hdmut82ukr7f9HQYc9rRrpVQ0EAi0B24BIoEfay+0axLECCGEEL6k8YKYL1wsfQh40E3ODkCai3R7Wsc67H0t0Nf2/4XAvzFqchpEghghhBDi7+kcYF+NtAwP64cAZS7SS6str83lGLUvPWz/HwL4A9Y65HUiQYwQQgjhQxrx2Un7tNbb6pG1BAhykR5cbblHWus1leVQ6gNgh+2fd9SjHJWkY68QQgjhS7wZXu1dU1QaRpNSTfa01PpsTGudA/wEXNLQAkkQI4QQQoi62Aj0UUpF1kgfVW15fYUAUQ0tkAQxQgghhI9pgeHVAEsw+q9cU1kOpYIw+ras01oftqV1UUr1cyivUolOx6BUN2AC8EdDCyR9YoQQQghf0kIPgNRar1NKfQw8bgtK9gJzgW7AldVWXQyciuMTDrYopX7EqK3JAXrb8gQCdzesRBLECCGEED6lETv2NsQc4BFgNhADbAamaq1X1pLvZWAKcCYQgTHR3XfAY1rrLQ0tjAQxrZx/UkcCTPEtXYxmkd+7wc2iPity7cGWLkKz2nBiaEsXodnFrarLqNO2I+vknJYugmhCthl659le7tY5zUXag7iff6bBJIgRQgghfEkLNSe1RhLECCGEEL5EgphKMjpJCCGEED5JamKEEEIIH9LCHXtbFQlihBBCCF/ThgIRb0gQI4QQQvgQpTVKNzyK8SZvayN9YoQQQgjhk6QmRgghhPAlMjqpkgQxQgghhA+Rjr1VpDlJCCGEED5JamKEEEIIXyLNSZUkiBFCCCF8iDQnVZHmJCGEEEL4JKmJEUIIIXxNG6pN8YYEMUIIIYQv8bI5qS0FQBLECCGEEL5EOvZWkj4xQgghhPBJUhMjhBBC+BAZnVRFghghhBDCl2htvLzJ30ZIc5IQQgghfJLUxAghhBA+ROFlc1KjlaTlSRAjhBBC+BIZnVRJghgfFhBoYfZVuxh35mHCI8wc2BvJ4oX92Ph7Yq154+JLuPqmbQwfmY6fH2z+K56F/xnI0dQwh/VCw8xcOHc3J55ylPjEEvJygtj4ewLvvdmHjGOhlet16lLI5HMP0HdADj375GEKsnL5eRNJPxpac9eNLjDAwpVT/uCMkXuICC1jX2osC786gT92JnnMd8rQ/Yw/bh/9u2YQG1lMek44v23twlvLRlBYEuSw7vgR+zh58EH6d0unc2I+G3Z34KYXzm7KwwIgINDK7H/sYdyUNNtnHMHil3qxcV18rXnjEkq5+vadDB+dhZ/SbP4jloXP9uPoEefPJDq2jEv/sZcTxmYQGWUmJ8vEpvVxvPDIoMp1OnUtYvJ5h+k7KI+e/fKNz3jqKaSnhTTqMbsSaLIy+9YUxp+bSXhUBft3hrL42c5sWB1Va964duVcc99BRozNw09pNq2N5NV/d+Xo4eDKdeI7lHH6+RmMHJdLx26lWC2Kg7tDeP9/ndj4a+37aGy6XFP8Wgll35ajCzQBvfwJuToE08jAOuUv+6Gc0o9KqdhnQQUo/Lv5EXpNCIHHGfl1mabo2WIqtlVgTbeireDfyZ+gKSaCZwShAnzjXj3QZGXOvKNMOC+H8CgL+3eE8Nb89vy1MqKli9aklNV4eZO/rZA+MT7stns3cu6sfaz4LolXnx+E1ap46Ol1DBiS5TFfcEgFj//3NwYNz+Sjxb159/W+9OidxxMv/kpEZHnlekpp/v38GqZMP8Cale155bnB/PJ9J8aMT+XpV1YTElpRuW7/QdmcPTOZkNAKDh8Mb7JjduWfs1dw4YTNfP9HL15YchIWqx9PXb+MwT2Pesw37+KVdGufy3fre/PCxyezbntnZpyyjZfv+AJTYIXDuueO3c6YIQdJzwknvyjIzRYb320PbuHcSw+yYlkHXn26H1aL4qH//MWAYTke8wWHVPD4gt8ZNCKHj97owbsLetGjXwFPvPo7EVHlDuvGtyvhubfXctzJmSz7pDMvPdGf5Z8nERXjuF7/IbmcPesgIWEVHN7vGOw2tdueSmb6FUf5+Yt4FjzcDatF8fDruxh4fIHHfMGhFp54bweDR+Xz4UsdefuFJHoOLGb++zuIiDZXrnfixBzOvzaN1IPBLH42ifdf7ERImIXH397JpJkZTX14TgofLaL0gzKCTjcRdkso+EHBHYWYN1XUmrf49RIKHyzCr50fYTeGEnJ1MP49/bFmVF25dJnGkmwh8MRAQv8RQtgNofj38qf4PyUU/ruoKQ+tUd3+/GFmXJPBT5/F8PL9nbBa4ZG3kxk4srCliyaaSZusiVFKXQa8CZygtf6jxrL1wAnA9Vrrl13krUtF20Na6weVUouAubWse1Br3a0u5a6PPv1zOHXSEV5/cQCfvt8LgB+/7cxLb//MFddv545/jHWbd8r0/XTqUsQtV45lz84YAP5Yk8hLb69g+kX7WLygPwD9BubQd0AuLz0zmG8+7V6ZP+VQOLfeu5Fhx2ewZmUHANauas+vKyZTUhzAjIv20rPP9sY+ZJf6d01n4vH7+N+no/jgx6EALF/Xm7fuW8J1567j+mfOcZv3X69NYuOejg5puw7Fc9/cFZx+wl6+/q1fZfq/3xpHRl4YWiveuvfjpjmYGvoMzOXUM4/y+vN9+PRt4/3/8ZuOvPTRr1xx027uuGKU27xTzj9Mp67F3DJ7NHu2GzUJf/wWz0sf/sb0Sw+w+H99Ktf9v39ux1qhuGXOaAryTG63ufaXBH79cYLxGc/eT89+ngOIxtJnSCGnnZ3Fa4914ZPXjO/bD5/G88q3m7nirkPcfv5At3mnXnqMpO6l3HzuQHZvNoLrP1ZE88q3m5lx1VHeerozAJvWRjJ3zDDyc6pqOpa+l8iLX29h9i0pfL8koQmP0JF5ewXlP5gJvSGEkIuN2qKgM03kzs6n+KViohZEus+7tYKSN0sJ/b8QQmYFu13PL9KPqIWO2wmeHkRRmKL0kzKsN1rxi2vd97h9hxUz7txcFj7cgSWvGLXPPyyJ4dWfdnHVfWncOq13C5ewCUlzUqXW/S1tZEqp3hgBzAHgEjerzfbw2mdbZ53t7wIP6y6yrbO2EQ+h0snjUrFUKJZ90bUyzVzuz3dfd6X/4BziE0s85E1j1/boygAGIOVQBBv/jGfs+COVaaFhxl1fbrZjzUNOlnFyLC/zr0wrLDBRUtz8MfFpw5OpsCi+/LV/ZVp5RQDf/NaXwT2OkRjt/o6sZgADsHJTNwC6tnes6UjPDUfr5q1iP3nCMeMz/rRzZZq53J/vvkii/9Bc4tt5+IwnHGXX1sjKAAYg5UA4G3+PZeykqhqqpG6FnDAmk0/e7kZBnolAkwX/ANd1zYX5LfMZjzkrG0sFLPugKpAwl/ux/OMEBhxXSHyHMo95d20KqwxgAFKSQ9j4WxSnTK6qsTy0J9QhgLHv4/cV0SR0LCckzNKIR+RZ+c/l4A9B51T97lSQIniqiYqtFizH3LcFlH5UiopVBF8QhNYaXVy/q5VfB+OSoAtb/1VuzNRcLBWw9J24yjRzmR/fvh/LgOOLSehY7iG3b7PPE+PNq61okzUxHlwKpAO3A0uUUt201geqr6C1fsdVRqXUVUBP4L9a62W2ddcAa1ys2wF4FjgIXNeYB2DXs08eRw6HUVLseOLdvT0agB6988hMd+6roJSme898vv+mi9Oy3TtiOG5UBiGhFZQUB7BnZxQlxf7MvnonBfmBHDkUToekIi6/fhu7tkez4Y/a+2U0td5JWaSkR1Fc6liDsOOgcWfWKymL9Ny6N2/FRRqBQV6h+7vY5tKzbwFHDoVSUuT4M9291QhMevQpIPOYm8+4dyHff9nJadnubVEcd2JW5Wc8bKRxIc/NCuLRl39n2MhsLBWKDevi+N/jA5qlv0tteg4s4sj+YIoLa7wPm4zPtWf/YjLTnJv4lNJ071fMdx8716Ls2hTGcafkERJmoaTI32m5XWyCmdJiP8pKmu9+z7Lbgn9nP/zCHIPmgAHG8Vv2VODfznWNmfnPCgIGBVD6cRklb5Wi8zQqThEyJ5iQmc7faW3W6CKNLoOKnRWUvF+KX3s//Dq1/vvbXoNKSEkOorjQ8fPbtdHo89VjYAkZqe5rFkXb0Pq/qY3rYmAJ8DWQZ/t3rZRSA4H/ABuAebWs6we8C8QAF2utPXdeaKCYuDKys5xPSva02PhSl/kiIssxBVnJznI+6edkBjnkzc8L4sn7jyc03Mzj/13D4i++58n//UZ2ZjD/vOkkrJaW//rERRWTle/cUTUrz0iLj65f+/4lkzZSYVGs2NCjUcrnjZj4MrIznT8ne1psgusaiIgos/EZu8ibUyNvxy7FAPzffduoMPvx+N1DWfRibwYMy+HRl38nKLj5aiDciU0wk53hfDHKTjcC+Nh2ru+4I6IrMAVpstNd5LVtLzbR/d16h66lnHRGNqu/jcVqbb5aOGuWFeWiKceeZs10fRttzbeiczUVWyooXlhCyKXBhD8cRkBvf4qfK6H0c+fvS/kvZnKm5JE7I4/Cfxbhl+BHxPxwn+jYG5tYQfYx547O9rS4drX3H/JdumrCu4a82lB70t+mJkYpNQroBVyutS5XSn2K0aT0WC35QoGPAAswS2vtvu7a8C9gHHCv1vq3OpYtEah5u9jTU56gIAtms/OJzlzuV7ncFVOQ1WG96srL/Z3y5uWaSN4dxdefxHIoOYLuvfOZeclebv3nBh7/1wmeitgsggIrKK9wvpMuM9uOJbDuF+GJx+9l6sm7ePe7oaRkNP+IlJqCgi0uP6faP2OLw3rVlZc55g0JMf7mZAbx4M0jKpvMMo8Fc9fjmzn1zDS++9zzKK+mFhRsxVzufFGtPJZg180rpmD7d905r7lMecwbFGzh3hf3UF7qx5vzO7tcp6noMvBzMQhJmezLXV+AtK11Uedpwh8KI2iikcE0LpC82fmUvFVC8LmOgW3giAAing9HF2rMf5ix7LWgS3zjAmdy+73w/Nm2BfLYgSotfyvdfC4FDgO/2v79ATBAKTWslnz/BQYAN2itd3taUSl1KkYQ8yPwRD3Kdj2wtcbrC08Zysr8CQx0/pEGmqyVy12xn/jt61VnMlkc8rbvWMTj//2N777pwkeL+7B2dQfef7MvLz0zmDHj0zhu9LG6HV0TKjMHYApwvpjbgxd7MFObIT3TuPuSX1i3PYmFX7V8cAZQVurv8nOq/TP2d1ivOnsQa89bZvs+rP6hnUOfn9U/tKeiQtF/SG7DD6CRlJX6EWhyPutWHkup69NYean9u+6cNzBIu83r56e5+z976dKrhEdv6O2yJqcpqSDQZud0XW5f7rqWRNnjkwAjcKlM91OYJpiwpmssRx2/E36xfphOCCRonInweWEEnhRI/i0FWLNafwBQ7vZ74f6zFd5TSgUppZ5USqUqpUqUUuuUUpPqkG+GUupDpVSyUqpYKbVLKfWMUiram/L8LT5lpVQAcCHwodaVD434CaN/jLsOviilLgauAN7WWi+uZR/xwHtAFnCp1ro+Z4GXgEE1Xu6H1QA5WUHExjk3GdnTsjNd9+koyDdRXuZHbJxzhVJMfJlD3omTDxNosrD+13YO661b3R6AAYOzPRWxWWTlhRIXWeyUHhdlpGXm1j4UuGenLJ74x3KS02L512uTsFhbx88iJzOI2Hjnz8melp3heqh3QV6g8Rm7yBtTI292hvFZ59RoXrRaFQW5gYRHuriaNrPsjEBiE5ybfWITjbJlH3MdZBTkBlBeplw2Gdm35ypAufnx/Ywcn8szd/Zg05rmr5Hzi/NDuwgi7Gl+8W6CmEgFJlBRCuXvuI5fjK3DboHn01LQOBOUQPmqlv/ca5OdHkBsO+dy2tOyjrXhhgbdCK+GWwTchtFt4maMVoqlSqkxteR7FegPvAPcBHwL/B+wRinV4M53reNs3fROx2iuWa+U6qWU6gV0B34GLrL1Y3FgG8n0CrAbo6bELaWUAhYDHYA5WmvPE5TUoLVO11pvq/6iaiSUS8l7oujUuYiQUMcfcd+BOZXLXe9LcSA5kl79cp2W9R2QQ9qR0MoRKNExZSgF/n6O33h/f+3wtyXtPRJHUmIeocGOF6oB3dKN5SlxrrJV6hifzzM3LCWnIIQ7XzqTkrK6TSbWHJJ3R9CpSzEhYY5t+30H5VUud0VrxYG94fTqn+e0rO+gPNJSQio/4707jWG28YmOAXFAgJXIaDP5OS3fMTJ5exidupcSGl7jfRhmjDzbt8P1hIpaKw7sCqX3YOd+Uf2GFZJ2MMipU++Vdx/i9PMzePXfXfnlq5bpuO7f2x/LYSvWIsffl3lbhW2564uz8lME9PZH52q02TGvNdMWAEV7PuXbm6p0Ucv/tmuzb1sIST3KCA13rIntN9y4gUne9v/t3XeYVNX5wPHvu42lLG3pCIJIV4pRUMGIWEEsKKiIPdHEFo3GGBN/1iQmauwm0ZhEjbGXqBRRBBQRQQWlSO91WZa2vb6/P87d3dnZmdlhZ3dmZ3k/z3Of2Tn3nHvPmTs7c+a0G/tB6fUm0plJtby8IjIMuAS4S1XvUNXngdG4SSwP15B8gqoOUtV7VPUFVb0FuBboR4jGhJocKpWY8hfoTWCNz3Yx0BU42TeyiDQB3gBScONgalo56VfAGOBRVZ1Rh/kOat7sLiQmKWPO21QRlpRcymljt7ByeZuKmUntO+ZxWPdsv7Sd6TtgX5WKTNfuOQw+ZjdfzKqcdrxtS3MSEuCkU7dXSX/y6W4a9rogFaVomrP4CJISlXNHrKgIS04qZczxq1i+oUPFzKQObXLo3nFflbRtW+bx2E1TKVPh9mfGsi+nYX3ozfu0o7vGF2ypCEtKLuO0c7excmmriplJ7Tvlc1iPnGpp+x51oEpFpuvhuQw+dg9fzOxUEbbkm7bszUph1JgdJKdUfhmcds42EpOUxQtCVwKj4YvpbUlMgjGXVC46l5xSxukTMlm5uHnFzKT2XQo57Ij8amn7Ds6l99GVr0/XnvkMPuEAc6e3rRL3wmu3M+G6Hbz+bBfef7ETsZJySgqUQuH7lS1pWqQUTisiaUAiiR3dx3bpzjJKN1X9Ak851Us7vbJSr4VK4cdFJPZIIKG9Nzh4Xxka4E7GhR+6dEn9wuuGjaW5U1qRmARjL6ucKp+cUsYZF+9hxbfNGvfMpEgG9UZ2B+wJuJaX5yuzogXAP4ETRCToADJVnRMg+D3vsX+AfWFpxO1tjog0x3XNvIGbmeTvKVwlZ7ZP2KPAUOAWVV1cw/GHA3/ArR3zu7rIczhW/dCGuZ924cqfr6BVm0J2bG3OqWO20LFzHk8+NKQi3m13L2bQMVmcPeLcirCp7/XkzHM3cd8jX/Hua0dSWiKcf/F69u5twruvV44nnjmtOxdMWsdNdyzhiN772bwhjV5993PmuM1sXJ/G/M86V8Rt1ryYcyZsACq7mc65cAM5Ocnk5iQz5Z3KxfLq0g8bOzBr0RH87LyFtEnLZ2tmK8YMX03n9Gz+/N/KuundV8xmaJ8dnHTjdRVhj944na7ts/nvx4MZ1Gsng3xW+N2T3bTKbQsGH7mDwUfuAKB1iwJSU0q44qxFAHy/tjPfr618LerKqmWtmftJR668aQ2t2hSxY0szTh23nY5d8nnygcoF3m67fymDjt3L2T86syJs6lvdOXP8Vu57chHv/qeHu8aXbWLvnhTe/U+PinglxQn868k+3P7AMv78j4XMntaF9p0KOHfSJpYtasOXsyq7Epu1KOacizcDMGDwPgDOuXgzOdlJ5GYnMeXNw+v8NQBY9X0LPp/alqvu2EKr9GJ2bErl1Asy6di1iCfurJxF9qtH1zHo+GzGHFG5COCUVzpy1sW7uP+fq3jnH50pLRHG/2Qne3cn8+4LldfsxDP28NO7trB1Qyqb1zbllPN2V8nD4nmt2Lc7Oq10yQOTSBmdTN7f8ynbW0biYYkUTi+kbEcZLe6qXC4g5/e5lCwuIX1e5XpPqec3ofDDQnL/kkfp5lISOiZQOKOIsowy0v5cmbZwRhEF/ysk5cfJJHZJRPOU4gXFFH9dQvKI5IrbEzRkqxY35/MPWnH1XTto1a6E7RuacPpFe+jYrYjHbo/uYOw41st1JFSRqaq7gsQfCqxW1QN+4Qu9xyG4safhKv+1sDtkrBAafSUGGA80B55V1bn+O0XkDGCiiNyoqoUiMh7XT/eBqj4V6sDegKTXgTxgkmqg4Xj15y+/H8rlGU0ZfeZWWqQVs2FdS+6/YzjLvw/96zk/L4nf3DSC636xjEuuXI0kKEu9eycd2Fc5NiL7QAq3/uTHXPbTVQwfkcHY8zdx4EAyn0ztzkvP9aOkpLIhr0VaMVdct7LKeS641PWIZexoWm+VGIA/vDSKjHNacOawNbRoVsS6bW25829n1Vix6H2Y+wU3+Yzvq+1bvLpzlUrMMX22cc3Zi6rEufYctxj0v6YeUy+VGIC/3HM0l1+/ltFnb6dFWgkb1rTg/luPYfnitiHT5ecl8ZvrhnHd7Su55KfrEVGWftuWf/ylLwf2Vf2FOmtqV0qKE5h41QauuWU1udlJfPRON156tneVqcUt0kq44oa1VdJecPlGADK2p9ZbJQbg0dt7ccVtWzl1fOW9k+79aR+WfR189VqA/NxE7ry0P9fdvZlJN213r8OCljz3+8PZv6fyi7pnf9cFcVjPAn79ePWe3F9P6h+1SgxAi7ubk9cxn8IZ7t5Jib0SSXukBclDQudBmggtn04j79l8CqcWoQXuvktpj7QgZXhl2uRBSZQsK6Hok2LK9hZCIiR2T6TZzU1JnRC922pE6uFbunPlNnfvpLRWpWxYkco9V/Rk2YLo3vok2upwdlKgCST3A/cFSdoZ2BEgvDys+gqiod2Ja9kJ1MAQFgnUpBjvfG87ADzoPXZU1WrTWERkHPAhcCFu4brlQEvcwKVgI1fXqep8EXkdb8Awbu2ZgIItoFdDGQYCy0YcdiVpKbFfVC4aDgyJXRN+rLT8alPNkRqRsr37Yp2FqGvzacPqpqxvWSPqZWmsBilH9/MVnwAc5Y1lrFfl3wvHjLqN5mm1/7zMzd7JojmPgeul8K+1B22JEZF1wCpVHesXfoR3nF+q6hPh5MGbOPNf4GFVvfPgSlCpsbbElP98TAROA14LVIHxfIprSbkMV2kpb5t9MsTxX8JVeI73nl/sbcEcdCXGGGOMqWfrDrLylQ8EaqpL9dlfIxE5CTeOZgYRDsNorJWY8mkbu1U1ZPurqubjupvKhb1UZX3c2NEYY4wJJYaL3e3ATYbxV96fvj3AvqrnFhkMfIBbD22Cqka0tHJjnZ10HJCLm/ZljDHGNB5lGvlWO98BfUTEfzDacJ/9QYlIL9z6MLuAsWHM/K1Ro6rEiMiFIvI0brbRq5HW8IwxxpgGJ3aL3b2NG6ZRMc3TW5LkamCBqm7xwrqLSD/fhCLSCfgYKAPOVNVM6kBj6056FNeV9E/glzHOizHGGNNoqOoCEXkLeMi7599a4EqgB/ATn6gv49Zf8x2e8RFwBG5RvJF+K/xmqOontclTo6rEqGr9zeM1xhhjGoAY3wDyCtys38txE2GWAONU9fMa0g32Hn8dYN9ngFVijDHGmENCjJZH8VbovcPbgsUZFSAs7EkzB6NRjYkxxhhjzKHDWmKMMcaYOBLj7qQGxSoxxhhjTDyJbIZRZGkbGOtOMsYYY0xcspYYY4wxJo6IKhLBwN5I0jY0Vokxxhhj4kmZt0WSvpGwSowxxhgTVyJriWlMg2JsTIwxxhhj4pK1xBhjjDHxxGYnVbBKjDHGGBNPVCNbsbcRDey17iRjjDHGxCVriTHGGGPiiK3YW8kqMcYYY0w8se6kClaJMcYYY+KIKEgEa700ppYYGxNjjDHGmLhkLTHGGGNMPLHupApWiWngMkd2JDu9U6yzERVFrWOdg+hLzu4a6yxEVfLMnbHOQtTtvHdgrLMQVcl8G+ssNH62TkwF604yxhhjTFyylhhjjDEmjrgp1pHcxboOMxNjVokxxhhj4omNialg3UnGGGOMiUvWEmOMMcbEEwUiWCemMQ3stUqMMcYYE0dENcIxMY2nFmOVGGOMMSae2JiYCjYmxhhjjDFxyVpijDHGmHhiLTEVrBJjjDHGxJMyIhvYG0naBsa6k4wxxhgTl6wlxhhjjIkjQoSzkxrRHGtriTHGGGPiiVI5LqZWW+1PLSJNROTPIrJdRPJFZIGInB5Gur4i8riIfCkiBSKiItKj9jlxrBJjjDHGxJOIKjARDgqGF4HbgP8CtwClwDQRGVlDuhOAXwBpwIpIMuDLKjHGGGOMqZGIDAMuAe5S1TtU9XlgNLAJeLiG5B8ArVX1aFwFqE5YJcYYY4yJJ7FriZmAa3l5vjIrWgD8EzhBRLoFz7LuUdXs2p44GBvYa4wxxsSTupti3UtE/PdmququICmHAqtV9YBf+ELvcQiwJYKcHTSrxBhjjDGHpvcDhN0P3BckfmdgR4Dw8rAudZCng2KVGGOMMSauRDbF2md60nnAOr+dmSESNgUKA4QX+OyPKqvEGGOMMfGk7m47sE5Vlx9EynygSYDwVJ/9UWUDe40xxhgTjh24LiV/5WHbo5gXwCoxxhhjTHwp08i32vkO6CMiLf3Ch/vsjyrrTmqEkhNLuf7khYw7ejVpqYWs2ZXOs3OGsWBD0NlvAIzuu54zBqxlYJddpLfIJ+NAc+au6cHzc39ETmHVFsSmycXcOGoBp/VfT5tm+Wzd15LXFx7NW4uOqs+iBZScUMrNwxdyTr/VtGxSyOrd6Ty1YBjzt4Qu76lHrOfio36gd3oWrVML2JPflCU7O/LswmNZuye9StyPr3iFri2rzw58Y9kAHphzcp2WpybJSaVcdcEiTh+xlrTmRazf0oZ/vf0jvl3eNWS6bp32c87olfTvlUnvw7NISSll0m0TydidVv0cySVMOHM5p49YR6d22eTkNmH52g689N5QNm5rU19Fq1PJKWVcccdOTr1wLy1albJhRVNeergTiz6vXt6Gxq5xeOL5GkekfMXeSNLXztvAr4DrgEfBreALXA0sUNUtXlh3oJmqrqx9JsNjLTGN0APnzuKy4UuYtqw3j3w8krIy4elLpjGkW6BB5ZXuPvszerbby7RlfXhkxgi+XNedi49dyktXv0uTpJKKeAlSxl8vncLEHy3nkx968ejHI9iU1Zrfjp3LNSO+re/iVfPH02ZxxZAlTFnVmz/NHUmpCn8bN41jOocub5/0PewvaMIr3w/iwTk/5o2lA+nXfjevT3yXvum7q8VfkdmOOz8+tcr23g/96qtYQd157edMPGsZn87vxTOvDKesLIGHbv+Yo/rsDJluwJG7GH/GDzRNLWbTjlYh4/7u559x9QWL+H5lJ5555Xg+nN2Xo/vu5Ol7ptAxPacui1Nvbn9iCxdcl8ms99rwt3u6UlYGD/5nPQOHNfz82zUOTzxf44jEaJ0YVV0AvAU8JCIPi8h1wCygB/Brn6gv47cqr4i0EpG7ReRu4FQv+CYv7KZaZYhDrCVGRK4C/u0TVAhsBj4GHlTVDJ+43YHfAmfh+vv2A18Cj6jqPL/jjgJm+wSV4ObKfwHcp6rr67goQQ3sksFZA9fy2MwT+M9XQwCYsqQPb/3sDW4dPZ+rXrogaNo73jmDbzdV/aW3Ykd7HjxvFmOPWs173w0AYHS/DQzptpP7PhzF+9/3B+CtRUfxyIUzuHbkt7y3uD9785rVTwH9HN0hg7F91vLIvBN4cfEQAN5f2Yf3J73BbSfO57J3gpf3b18fWy3snR/68+lV/+Hio5dXa2HJyG3OlNV96jT/B6vfEZmMPmEDf3/tON6cfjQAH887kn/98T1+dvE33PzguKBpv1zcnXN/fhn5BclcNGYpvQ/fEzBeuza5/Pi4Tbwx7Siee31YRfjS1Z147K7pnHTsRt6eEf0Wt4PRd0gep5y/j3880Jm3/94BgJlvt+H5Wav46d07+OW5vWOcw+DsGocnnq9xnLsCeBC4HGgDLAHGqernNaRr46Xzdbv3uAl4pjaZOVRbYu7BXYCbcBWT64H5ItIMQERGAEuBScA7wA3Ak8BAYK6I3BzkuE95x70OmApcDHwtIlGbO39av/WUlAnvLhpQEVZUmsT73/VncLcMOrYM/gvFvwIDMGtVTwB6tttXEXaM16IzY/mRVeLOWH4kqcmljOq7MYISHJwzjnTlfWtZ1fK+s6I/Qztn0KnFwf0iy8pvSkFJEmkpRQH3JyeU0jSpOKI8R+LHx22ktFSYMrtvRVhxcRLTPuvDwN67aN82eHmzc5uQX5Bc4zmaprry7d1fdbZk1j73vLCo4f/2GTluH6UlMO2Vym7B4sIEPnqtLQOOzaN9l8DXtyGwaxyeeL7GkYu0Fab2/UmqWuDdcqCzqqaq6jBVneEXZ5Sqil/YRlWVIFuP2uan4b9T68d0Vf3G+/sFEcnC3dDqPBH5CNfvlw+MUNWKOfQi8hgwA3hCRL5V1S/9jjtXVd/2/v63iKzGVWyuBB6qx/JU6NdpN5uzWpNblFIlfNl290ulb8fdZBxoEfbx2jXPA2BfXmpFWHJSKSVlQnFpYpW4BcXu7TSgUybv1Sr3B69fu91s2tea3OKq5V2a0aFi/86c0OVNSykkKaGMds3zuHzwEtKaFLFga/UK3fCu2/jm5/8gKUHZdiCNl78bxCtLBtVdYcJw5OFZbNnZiryCquVdub692999D5l7wr++gWzf1ZJdWc2ZOGYZW3a0Ys2mdNq1yeO6i79m+64WzFrQM6LjR8ORR+WzdX0T8nKqvkdXfedaCI8YmE/m9pRASWPOrnF44vkaRyyywbmRpW1gDtVKjL9ZuEpMT+BnQCfgCt8KDICq5ovIlcAaXGvOWWEcF++4UdGuRS6ZOdW7cnZ7Ye3Tcg/qeFeduJiSMmHmiiMqwjZltSYpQTn6sAy+21I5225o9x21Okck2jfPJTM3QHm9sPbNa87LqxPf5Yg2+wDILUrm71//iHd+6F8lzuqstiza3pkN+1rTOrWA8/ut4q4fz6ND81wem39C5AUJU3rrPPbsq76eVHlYepu8iM9RWprAfU+P5nfXz+EPt82sCF+1IZ2bHxxHbl6gZSIalrYdStiTUb1FojwsvWNJtX0NhV3j8MTzNTZ1xyoxTi/vMQvX31cAvBkooqpuEJEvgNEi0lRVQy3u43vcoESkA9A+SNqD0iS5tFoLCUBhibvUvgN0a3LWwNWMH7qSf385hM17W1eET1/Wm+tO+ob7xs3moY9OYvOeVpxwxFYm/sitmZSaHL0PjyZJpRQFKm+pK29qGOW9+9NTaJFSxGEtDzC+/yqaJJWQmFBGSVnlcW+aOrZKmvdW9OO5c6ZyxZAl/HfJ0WTkRvbLOFxNkkspLqle3qJiF9YkpbROzpOdm8LaTel8trAnP6xrT9cOB7j0nCXce9Ns7nj4TIqLG/ZHR0pqGcVF1e4JQ1GhC2uSGsmNZ+qXXePwxPM1jpiWuS2S9I1Ew36X1p9WItIOt8rgCFyrSj4wBfgTsEpVAy2tXO574GTgSNzYmXJp3nGTcTfKehLX+fhODfm5Abi3FuWoprA4keTE6h9y5ZWX8spMTYZ228694+Ywb103np09vMq+rNxm3PrmGH5/3qf8ffIUALILUnh4xkgePG8WeUU198nXlcKSRFIClTfRlbcgjPJ+v7NTxd/T1/Tmw0tfA+DReSeGSCW8/P0gRh6+heO6bo/agN/C4kSSk6qXNyXZhRUWVf/yO1jNmxbx5O+m8ca0o3jro6MrwldtaMcTv5vOmJPW8MGs/iGOEHtFBQkkp1RvMk9p4sIKCxrucEC7xuGJ52scsdhNsW5wDtVKzEy/55uAyaq6TUTSgJpuF16+33/Bn3/5Pc8ErvQZfxPMX3HT1nz1IvDNuULandOcDgG6c9q1cE3QmdnNazxGnw67eeKi6azLbMsdb59JqVb/MFi0uQvjnpnMkR320DS5mNUZ7Sq6kTZltT7YbNdaZm5zOrYIUF5vLE9mbs3l9XWgsAkLtnVlXJ81NVRiYGe2a31plVoQMl5dytrXjHYBuhPatnYNgll7I58VdtJxG2nbOp8vF3evEr5kVWdy8pIZ2HtXg/+C27MrifRO1Qdgt+3owrIyGu5Hn13j8MTzNY6YRjgmJqL7LjUsjfgqh3QjsBo3FToD1/JS3r6WDdS0UlL5fv/KzgPAXKAU2A2sUNUa+zO8255XufV5gNujh2VVRjrH9thG85SiKoN7j+qa4e1vFzL9YW3288ykqezJa8rNr59NfnHwVpUyTWC1z/GG99wKwIKNh9Uq77Wxcnc6ww7bRvPkoiqDewd1zPD2hy5vIE0SS2kRZHaSr8NaubvR782P3j3P1m1uy9D+O2iWWlRl4Gf/Xu6ebWs3t434HG1aui/LhAT/DzolMUFJTGz4TdHrljdl8Ik5NGtRWmXgZ7+hrnKwfnnU71MXNrvG4Ynna2zqTiNubwtpoarOVNU5qrrCpwIDboGevt4qhMEMAopxA3x9LfWOO1tVl4ZTgalrM1f0IilBueCYHyrCkhNLOW/wKpZs7VAxM6lTy2x6pO+tkja9eR5/vXQKqsINr45jb174HwJtmuVz9YmLWZ2RzoL10avEfLzOlXfiUT7lTShlfP9VfL+zQ8XMpM4tsunZump52zat/mu3S9oBju+2leW7KocotWpSQIJU/VBPSijlp8cspqg0gYXbQq+iWpc+W9iDxERl3CmrKsKSk0o566Q1/LC2fcWslQ7pOXTrvK9W59i60y2SNvr4qssbnXjMZpqmlrB2U3qgZA3K3CmtSEyCsZdVDkdLTinjjIv3sOLbZg161opd4/DE8zWOWIwWu2uIDtWWmFCmACcAE4FX/HeKSA/gJGBmDYN6Y2LZ9o58/EMvbj5lAW2b5bNlbyvOGbSKzq2yuX/KqIp4D543i2MP387Q319fEfbspCl0a3OAf385hKHddjK0W+XqoFm5TavctuCFy//Hkq2d2LK3Jekt8rlg6A80SynmF6+PRaldK1JtLM3oyEdrenHr8QtIb5rP5v2tOK/fKrqkZfN/s0ZVxPvj6bMY1nU7A5+pLO97k95kwdaurMxsx4HCJhzeej8XDFhBUkIZj88/viLeKT038rNjv+Xjdb3YeiCNVqmFnN1nDX3S9/D4/OHsjtLCfgAr13dgzoIe/HTiN7RuWcC2jDTOHLmWTu2yefSfIyvi/ea6zxnSfyejr7imIqx50yLGn+4qewN7u5aq8aetICcvhZy8FP430621M39xNzZsbc3l531Hx/RcN+iz4wHOP20Fu/c2ZdpnsV3wLxyrFjfn8w9acfVdO2jVroTtG5pw+kV76NitiMduD307ilizaxyeeL7GEau7u1jHPavEVPcccAvwiIh86bvaroik4lb8FVzXUYP0f++P5oZRCzn76NW0bFrImox0bnljDIs2h15zr28n94vm6hO/q7bvm01dqlRiVuxoz2kD1tEhLZfcwmS+2tCNv84ZxrZ9/sOE6t9dM0e7eyf19e6dlJXOjVPH8O320OV9Y9lATj58EyO7b6FZcjF78pvy5eZuPP/tMazJqvwlujornXV72zCu72raNs2nuDSRlbvT+eX0M/h4Xa0mkUXkoed/zDUXevfVaebuq/Pbx09nyapOIdO1aF7INRMWVQm7aOwyAHZmtqj4gispTeSW35/N5ed/x/GDtzD6+PXkFSQz79vuvPDWsRzISa127Ibo4Vu6c+U2d1+dtFalbFiRyj1X9GTZgujMJIuEXePwxPM1NnVDtBHVyGric9uB40INthWRk3Ar7pYBLwA/4NaOuQo3I+kWVX3aJ/4o3G0HJvosdhdpXgcCy/pc8mtS00N/cDUWRa1jnYPo67gw1CS4xid5ZvTvrRVrxaf9KNZZiKpD6Rrn6H6+4hOAo1R1eX2fr/x7YUT7SaQl177LL7s4i3mZr0GU8l2frCUmAFWdKyKDcPdOmkjVeyddo6pfxDJ/xhhjDmFlCmURDL62FXvjk6q+CLwYZtyNuHsghRN3DkRxIIgxxhhjDq1KjDHGGBP/Ip1hZC0xxhhjjIkFm51UwSoxxhhjTDyxu1hXOFQXuzPGGGNMnLOWGGOMMSaeaBlqd7EGrBJjjDHGxBclwhtA1llOYs66k4wxxhgTl6wlxhhjjIknNjupglVijDHGmHhSVgYSyYq9NibGGGOMMbFgLTEVbEyMMcYYY+KStcQYY4wxcURV0Qi6hLQRtcRYJcYYY4yJJ9adVMG6k4wxxhgTl6wlxhhjjIknZUpEK9Y1onsnWSXGGGOMiSdaFtmtAxrRbQesO8kYY4wxYRGRJiLyZxHZLiL5IrJARE4PM21XEXlTRPaJyAEReV9EjogkP9YSY4wxxsQRVdAIuoQiHNf7IjABeAJYA1wFTBORU1T1i2CJRKQFMBtoBfwRKAZ+CXwmIkNUNas2mbFKjDHGGBNPtAyIfneSiAwDLgHuUNVHvbCXgWXAw8CJIZLfAPQGhqnq117a6V7a24Hf1iZP1p1kjDHGxBEt04i3WpoAlALPV+RFtQD4J3CCiHSrIe3X5RUYL+1K4FPgotpmyCoxxhhjjAnHUGC1qh7wC1/oPQ4JlEhEEoBBwDcBdi8EeolIWm0yZN1JDVcKQOH+3bHOR9QUF8c6B9GXm1MU6yxEVZLuj3UWoq4kJyPWWYiqQ+ka55FT/mdKVM+r2RHNMMojt/zPXiLivztTVXcFSdoZ2BEgvDysS5B0bYEmYaRdFSR9UFaJabi6AWya/q9Y58PUow2xzoCpf/M/iXUOTP3rBiyOwnn2AtlL+LJWrRZ+ioD3A4TfD9wXJE1ToDBAeIHP/mDpqGXakKwS03B9BpwHbMG92aKlF+6NfR6wLornjZVDrbxw6JX5UCsvHHpljlV5U3AVmM+icTJV3S4i/YA2dXC4BAKPDs4MkSYf16LiL9Vnf7B01DJtSFaJaaBUdT/wQbTP69O0uE5Vl0f7/NF2qJUXDr0yH2rlhUOvzDEubzRaYCqo6nZgezTP6WMH0DVAeGfvMVi+9uBaYToH2FdT2pBsYK8xxhhjwvEd0EdEWvqFD/fZX42qlgFLgWMD7B4OrFfV7NpkyCoxxhhjjAnH20AicF15gIg0Aa4GFqjqFi+su9ft5Z/2OBE51idtX2A08FZtM2TdScYYY4ypkaouEJG3gIdEpAOwFrgS6AH8xCfqy8DJgO/Up78C1wJTReRR3Iq9twEZwF9qmyerxBh/mbjR6aEGdzUmh1p54dAr86FWXjj0ynyolTeWrgAeBC7HDTBeAoxT1c9DJVLVbBEZBTwO3I3rCZoD/FJVa33dRCO8iYIxxhhjTCzYmBhjjDHGxCWrxBhjjDEmLlklxhhjjDFxySoxxhhjjIlLVokxxhhjTFyySkwjJSJXiYj6bCUisk1EXhSRQMtGIyI3eHEXhDiu7zHLRGS7iHzsTZ2LugDl9N+OD5DvEhHZIyLfisiTIjIgwHF7+MS/O8i5/+vtzwm0v57KF/I6inO5iHwuIvtEJE9ElorIPSLSPMR5xovIdBHZLSJF3nV9U0RG+8QZ5eVhgl/aFBGZ4r0fromwjCODlGmLt3+KT3io6/53n/zWuPmd700v/M9B8hvwdagLPq9FtZVNRWSht+/6IGnDKet9XtwXw4i7sa7LV5MA7/cCEVktIs+ISEe/uN2967xRRApFZJeI/E9ERgQ4rv97oVhE1ovIyyJyRPRKaOqarRPT+N2Du1lyKnA8cBUwUkSOUtUCv7iTgY3AMBE5UlXXBjnmJ7jFjAToCdwAzBKRs1V1et0XISzl5fTnWwbffLcCBuMWarpBRO5U1ccCpC8AJgG/9w30KgTnUXkH1vpW43UUkUTgVeAiYC7uTrR5wEnAvcBEETlNVTN8yiHAv7zjLQYeA3bi7mcyHvhUREao6peBMiUiybiVOMcC16pqJLddLwAuBb7wCz8ZOIzAd8Atv6b+VgObcGtZ+HoIyAH+ECgD4pZTPwf3fzBJRH6jDWAdChHpDRyHy9dk4G8BovmX1dd9uJsklv9AeQ6YGSTuqbj3w1cHn9M64/t+HwlcD4z13u95XkVlmhf3BeAHoBMu33NF5BZVfTrAcZ8CvgaSgWNwK8+eLSJHe/ckMvFGVW1rhBvun1mBY/3C/+SFX+QX3tMLHw/sAu4NclwFnvELO9oLn9FQyhlOvr3wdOBLb/9Yn/AeXtg73uNgv3SX4u4u/gGQ0xCuI3CXF/ZIgOOcA5QC0/3Cf+WleRxv3Si//ZcDw7y/R3lxJ3jPk4H3cHfCvbYOyvgObrGyJL/9zwPf4L7Ap9R0TWs41zJgToj9V3vX9RTv+CcHiFPldYjS9b4ft7LpBd7r3eMgjvlT75hPhRG3s/f/vxFoU1/v61qU/y9e+CTcAms7cJXtXn7xmgKfe+/1E2u6ZsDNXvhd0S6rbXWzWXfSoWeu99jLL3wysBeYivtlPTncA6rqUmA3riIUV1Q1C7gEKAF+FyDKfNwvwkv9wicDH+HuzhoLVa6jiDQF7sC1QNzlH1lVPwReAs6Syi62pl7clcCv1PtU90v3H1Vd6B8uIknA67jWqOtV9R91UKbXcJXK033OkwJMwLUwRcNk4BNVnQ2s4CD+D+rZpbj/yynAfqq/HwMSkYG41ofFuPdHqLgJwH9xlYRLVXVvJBmuY7O8x57Az3CtLneo6jrfSKqaj2tdVVxrzsEc18Qhq8Qcenp4j/4fUJOBd1W1CPdl0ltEjgvngCLSBvfBl1VXmayFViLSzm9LDyehqm4GPgOOl+p3ZwX3elzidb0gIu2AM4jeF2sgPbzH8us4EncNXlXVkiBpyrtdxvmkaeulKT2IcyfhXpPxwI2q+txBpA1lI67SOMknbAyu6+/1IGlSA1z3dl7l56CISBdcC8xrXtBrwITaHKsuichw4EjgNe//813CqFyJSDPgTVyrxCWqGqg7ztf/4cp/rwbpPoyh8h9dWbhWxQJc2apR1Q24LsnRXkU93OOaOGSVmMav/Mv9MBG5EDc2ohD3iw4AEfkR0I/KL4ovgK0E/6As/+JoLyLDcHcgTSSCO5HWgZm4rgjfbdtBpF+G+3/oEWDfq0B3oHzA4EW4D9EPapnX2qjpOpYPTv4+xDHK9/X3e1x6kHn5E6515CZVDTQ2IxKvAuf7fPlMBj7T4OMVfkL1656J63Y5WJNwr+n73vPXcRXDsbU4Vl26DNgCzPOevw4MEJEhNaR7Gve+uFFVV4eKKCIn4yoxn+Kub6z5vt8vxrWq5OPe7wOAVTVUyr7HdXce6Ree5h23s4iMBZ6ksivTxCEb2Nv4+Q/e2whcpqpbfcIm4/rbZwOoqorIG8BlInJ7gF/pP6HqHUsLcANCn6jDfB+sG3FdKb4OpnWhfIZRmv8OVV0uIktwX3Jf4Jry31c3wLA2ea2Nmq5jeb6zQxyjfF9Lv8dQaQLpiOt+CzSQOlJv4t5H40TkI1yr0S9CxH8feCZA+MFWzMD9H0xV1WwAVV0jIt964f+rxfEi5nXbXQy85NPdNws3bmUy8F2QdJcC1wD/UdVAA59947bDVR6zcO+psrrJfUT83++bgMmquk1E0qj5Pev/Xi/nP/A8E7hSVb+pXTZNrFklpvEr/3JvhftQ+zE+szy8GS2X4CowPX2+lBcAt+NmKnzsd8zyLw7FfVgsV9Xc+itCWBZG+EHUwnsM9uH4KnC7iDwOnAj8MYJz1UbI60hlvqtVwnz4V3QOhJEmkF8DtwJvi8gZqjqvhvhhU9VMEZmJqyg2w7XwvR0iyVZVDTbLJmwi0h8YCrwsIr6/3ucAN4pIS1U9EDBx/ToDaA8s9MvXbNzsqTv9Kx3eTKa/494vN4Q6uNdF+jJuQO8YVd1Zl5mPQPn7vQT3A2uVTzmzqfk9G6xS/wBuPFkpbhzfihDdryYOWCWm8av4cheR/+FaEl4Vkb6qmgOMxn2AXeJt/iZTvRJTJ18cDcxRuA+2YK0Lr+Gm5/4D94vV/zWpbzVdxxVevEEEbzUY5D3+4D2u9B6PDpEmkB24wbdfAFNF5GRVDdWNdbBexb3OnXCzqfbV4bGDucx7fNzb/F0I/DsK+fBX3qUbcPwHbvr57PInItIEeANIwY2DqWkNo1/hxh09oqozIsxrXQr1o2QFMFREmoToUhoEFANr/MKXNsLPrkOajYk5hHjdQncBXYCbvODJuKbpiQG214DxYQyOi2si0h33ZTC/vCvBnzf4dx5uquZbsfz1FuQ6fgHsAy71WtcCucJ7LB9H8wVuYPCkEGmC5WE9cCZuuu8M79d/XSmftn08URg87bVGXIqrDAT6P1hCDGYp+axF9EaQfO0IkK9HcS1Kv1bVxTUcfzhuvZwFBJ6Z11BNwa0fMzHQThHpgVsbaZY3W8k0YtYSc4hR1TkishC4VUSexA2AfEtVqzXZi8h23DiQc3EfpI2OiLTFVdYSCbIAmo+7cbM3Yv5a+F3HJ7zxOY/iFuX7A/Ab3/gicjZuDY4ZqvqVd4w8cavS/gn4s4jc4T/NWkQuA1YHmmatqku9434CfOItincwg6mDlS1H3Kq0PYAPIz1eGEZ457onyP9BH+BBEekSYoBxfRgPNAeeVdW5/jtF5AzcAoY3qmqhiIzHVWo/UNWnQh1YRFrjBgjnAZNUtbjOc19/ngNuAR4RkS+9CjUAIpKKazETXNeRaeSsEnNoegQ3k+jXuL7jYLNsvsINfJtMA/jirsEYEekXINz3Q66P96UsuAF/g3G/5loAt6nqR6FOoKqf4aZiNxTl1/Eq3BiIP+F+hd8pIifgZlzk46ZSX4Zrhr8ywDEG4sY/nSIib+MWEesEnA8Mw40BCkhV54vIBbjKxicicpK39k5EVPWlMKOWX1N/Gar6SZjHmIzrSpwaZP8HuIrhJbgB7OUuDPKee0lVt4R57prylYVbjDFYvq7FrTg7H/gnrhyfBnlNANap6nzc+6UH7v96hARYqh9AVV+pffbrh6pmibvlw1RgkYj4r9h7JHBLA5wmbupDfa6kZ1vsNkKsZIvrRlyLa7LPB5qFOM6/cSuYpnvPD3qV1CiVM9h2lU++y7dSXDfKItxMmAEBjtvDi/urGs7/IjFYsdfvOq4FEn3CrsJ1Fe33ru8y3BTV5iHOcyEwA/elWQxsx/1SP9knziiCrFSLm3ZeCiwE0uqqjH7xNlJ9xd5g25wgx6iyYi9uGu5u4PMazr0eWOT3OgTbRkZwva/2jjHcuw4vh4jbFMjFrRtTU57Ktxd9Xssa49fX+zrS94IXtwduNedNuM+oTNykg2qvf6j3rm3xvYl3gY0xxsSYiPwCt3bJkeq3Gq0xpjob2GuMMQ3HcbjWlU2xzogx8cDGxBhjTIx5qzCPwo2DeUFt7RJjwmLdScYYE2MisgE3yP494FaN/eKRxsQFq8QYY4wxJi7ZmBhjjDHGxCWrxBhjjDEmLlklxhhjjDFxySoxxhhjjIlLVokxxhhjTFyySowxxhhj4pJVYow5hInIRhF50ef5KBFRERkVs0z58c9jiHgqIvfV4vhXeWmPrU3+ghzzPhGx9SuMqWdWiTEmRny+PMu3AhFZLSLPiEjHWOfvYIjI2NpUIIwxJhJ22wFjYu8eYAOQCowErgfGishRqpoX5bx8jrs7ctFBphsL3AjcV9cZMsaYYKwSY0zsTVfVb7y/XxCRLOA24DzgtUAJRKR5fSxNr6plQEFdH9cYY+qDdScZ0/DM8h57AojIiyKSIyK9RGSaiGQD//X2JYjIrSKy3OuOyhCR50Skje8BxblbRLaKSJ6IzBaRgf4nDjYmRkSGe+feKyK5IrJERG4pzx+uFaZ8XIr6jgep6zyGS0QOF5G/isgqEckXkSwReUtEegRJ0szLV5aIHBCRl/3z6B13jIjM9V6HbBGZGkk+jTG1Zy0xxjQ8vbzHLJ+wJGAG8AXwK6C8m+k54Crg38BTuIrPTcBQERmhqsVevAeAu4Fp3nYM8DGQUlNmROR0YAqwA3gS2An0B8Z5z58DugCnA5cHOES95zGI44ATgdeBrUAPXFfdHBEZEKCr7hlgH65LrK8X93ARGaXeTeZE5HLgJdy1uBNo5sX7QkSGqurGWubVGFMbqmqbbbbFYMN9sStwKtAOOAy4GNiNq6R09eK96MV7yC/9SC/8Ur/wM33DgfZAIa4iIj7x/uDFe9EnbJQXNsp7ngisBzYCrf3O43usZ9zHSbUy1nkeQ7yeCtzn87xpgDjHe/EuD3AdvgGSfcLv8MLP9Z63APYCz/sdsyOu8vO8T9h9gV4P22yzrW43604yJvZmApnAFlyrQQ4wXlW3+cX7m9/zicB+4BMRaVe+Ad96xzjFi3carjXjaVX1nfb7RBh5G4prOXlCVff57vA7VjDRyGNAqppf/reIJItIOrAWV+E4JkCS57WyVQjc612CG7QMrqWpNfCaX1lKgQU+ZTHGRIl1JxkTezcCq3FfmBnAKnUDbH2V4LpEfPUGWgG7ghy3g/d4uPe4xnenqmaKyN4a8lbetbWshnjBRCOPAYlIU+Au4GqgKyA+u1sFSOJ/7hwR2YHrhgJXFqgcs+TvQG3yaYypPavEGBN7C7VydlIwhQEqNgm4ysHkIGkyI85Z5GKZx6dxFZgngPm4FiHFtXbVphW6PM3luHFB/kpqcUxjTASsEmNM/FqH64aZ59t1EsAm77E3bnwLACLSHqg2+ybAOQCOwnV7BROsaykaeQxmAvCSqt7uc7xUXJdQIL2B2T5xWwCdcYOMofK12KWqoV4LY0yU2JgYY+LXm7iBt//nv0NEkkSktfd0JlAM3Cwivl0qt4ZxjkW4hfhu9Tle+Tl8j5XrhVWJE6U8BlNK1S4kgJu9/ARynYgk+zy/HvdDb7r3fAauy+i3fvGAigqXMSaKrCXGmDilqp+JyHPAXSIyBDcduRjXojARuAV42xtX8ihufMgUEZmGG7A7BjcTKtQ5ykTkeuBD4DsR+TduqnU/YCBulhG4gboAT4nIDKBUVV+PRh5DmAJcLiL7gR+AE3CtQllB4qcAn4rIm7gp1jfgprR/4L0WB7zX4j/AIhF5Hdcd1h04G5iHmzpujIkSq8QYE8dU9eci8i3wM+CPuHEZG4FXcF+q5e7GrcT7c9wsmgXAGcDUMM4xQ0ROAe4Fbse14K4D/uET7V3cGJRLgMtwLSCvRyuPQdyCa42ZjLulwzxcJWZGkPg3eXEfAJJxqyX/wne2lKq+KiLbgd/gpmA3AbYBc3Hr4BhjokjCmyVpjDHGGNOw2JgYY4wxxsQlq8QYY4wxJi5ZJcYYY4wxcckqMcYYY4yJS1aJMcYYY0xcskqMMcYYY+KSVWKMMcYYE5esEmOMMcaYuGSVGGOMMcbEJavEGGOMMSYuWSXGGGOMMXHJKjHGGGOMiUtWiTHGGGNMXLJKjDHGGGPi0v8DYp9Cukihcj4AAAAASUVORK5CYII=\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "plot_confusion_matrix(clf, data_test, labels_test, display_labels=playlist_names, normalize='true')\n", "plt.title('SVM Confusion Matrix')\n", "plt.show()" ] }, { "source": [ "From the above it is clear that the Pop playlists was not effective for classifying similar tracks. This is likely because of the overlap with other genres such as Rap and EDM where much of the confusion occured. Also not helping is that one of the sub-playlists is shared across EDM and Pop, electropop. as EDM is already such a larger playlist it is unsurpising that this performance was poor. Additionally the overlap with Rock is understandable as Pop contains an Indie Pop sub-playlist which could have cause some confusion. Quite surprising was the confusion for Jazz as I wouldn't have thought there would be much overlap here.\n", "\n", "The other major confusion was with Rock and Metal, specifically classing Metal tracks as Rock. This could be expected due to the similarity in tone." ], "cell_type": "markdown", "metadata": {} }, { "source": [ "## Other Tests\n", "\n", "Take a handful of other tracks which I don't listen to and aren't in any playlists to see if they can also be classified" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Top Of The World (Five Finger Death Punch) could be ROCK ✓\nAston Martin Music (Rick Ross) could be RAP ✓\nOn The Sunny Side Of The Street (Dizzy Gillespie) could be JAZZ ✓\nVibez (ZAYN) could be EDM ✗\nShot In The Dark (AC/DC) could be ROCK ✓\nTo Hell and Back (Sabaton) could be ROCK ✗\nWithstand The Fall Of Time (Immortal) could be METAL ✓\nAlone Together - Rudy Van Gelder Remaster (Kenny Dorham) could be JAZZ ✓\nFeel No Ways (Drake) could be RAP ✓\nBO$$ (Fifth Harmony) could be EDM ✗\n\n70.00% Accurate\n" ] } ], "source": [ "### PREPARE ###\n", "test_uris = [\"spotify:track:53yqxU2EKKzbuQZEUEVtxc\",\n", " \"spotify:track:5W7xC99N2Zzfh69r7I7zWK\",\n", " \"spotify:track:38R2EViAkYOFG8ZkG3GLtW\",\n", " \"spotify:track:6T6D9CIrHkALcHPafDFA6L\",\n", " \"spotify:track:0sfdiwck2xr4PteGOdyOfz\",\n", " \"spotify:track:1BrgjqSg9du0lj3TUMLluL\",\n", " \"spotify:track:5nCnSnLtotQ8eB4E189U91\",\n", " \"spotify:track:3GOZbK2epuHzCt5YvvVFHO\",\n", " \"spotify:track:3cjF2OFRmip8spwZYQRKxP\",\n", " \"spotify:track:1COvXs6jaykXC73h9OSBVM\"]\n", "# inferring what playlists these would go in\n", "test_labels = [\"ROCK\", \"RAP\", \"JAZZ\", \"POP\", \"ROCK\", \"METAL\", \"METAL\", \"JAZZ\", \"RAP\", \"POP\"] \n", "\n", "test_tracks = spotnet.tracks(uris=test_uris)\n", "spotnet.populate_track_audio_features(tracks=test_tracks)\n", "\n", "test_features = [ {j: k for j, k in i.audio_features.to_dict().items() \n", " if j in headers} \n", " for i in test_tracks] # filter down to descriptor columns\n", "\n", "### PREDICT ###\n", "predictable_frame = pd.DataFrame(test_features)\n", "\n", "predicted_labels = clf.predict(predictable_frame)\n", "labels_correct = [i == playlist_names[predicted_labels[idx]] for idx, i in enumerate(test_labels)]\n", "\n", "### EVALUATE ###\n", "for track, label, correct in zip(test_tracks, predicted_labels, labels_correct):\n", " print(f'{track.name} ({track.artists[0].name}) could be {playlist_names[label]} {\"✓\" if correct else \"✗\"}')\n", "\n", "correct = sum(labels_correct) / len(labels_correct)\n", "print(f'\\n{correct*100:.2f}% Accurate')" ] }, { "source": [ "# Imports & Setup" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "from datetime import datetime\n", "\n", "from google.cloud import bigquery\n", "import matplotlib.pyplot as plt\n", "import matplotlib as mpl\n", "mpl.rcParams['figure.dpi'] = 120\n", "\n", "from analysis.net import get_spotnet, get_playlist, track_frame\n", "from analysis.query import *\n", "from analysis import spotify_descriptor_headers, float_headers, days_since\n", "\n", "import numpy as np\n", "import pandas as pd\n", "\n", "from sklearn import svm\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import plot_confusion_matrix\n", "\n", "client = bigquery.Client()\n", "spotnet = get_spotnet()\n", "cache = 'query.csv'\n", "first_day = datetime(year=2017, month=11, day=3)" ] }, { "source": [ "## Read Scrobble Frame" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "scrobbles = get_query(cache=cache)" ] }, { "source": [ "## Write Scrobble Frame" ], "cell_type": "markdown", "metadata": {} }, { "source": [ "scrobbles.reset_index().to_csv(cache, sep='\\t')" ], "cell_type": "code", "metadata": {}, "execution_count": 6, "outputs": [] } ] }