{ "cells": [ { "cell_type": "code", "execution_count": 9, "id": "3c950b0c-3413-4a82-8e2b-8972702b7acd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 114 species files in ./speciesrepo\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Species files: 100%|██████████| 114/114 [00:22<00:00, 5.00it/s]\n" ] }, { "data": { "image/png": "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BBgYGODOnTsoV64cKlSoUOBg4uLiYGZmhuXLl2PAgAE5tuc20m1qaor4+Hjo6uoWeL9EP7Nz56soOgQqZlo05wIpREQ/o4SEBOjp6RX6794pKSmIjIyEhYUF1NXVC63f4mDbtm0YO3YsXr58CVVVVbnaenp6Ii4uDocOHfrmOBITE1GhQgX4+PhIrbJOeZPnupV7pPvvv/9Gy5Ytoaenh6ioKAwaNAgGBgbw9/dHdHQ0tm7dWuDA9fX1YW1tjadPn+a6XU1NDWpqagXun4iIiIiISNGSk5MRExODhQsXYsiQIXIn3IUlKysLb9++xbJly6Cvr48OHTooJI6STu6x/3HjxsHT0xPh4eFSGX2bNm1w8eLFbwomMTERERER4vQMIiIiIiKikmbx4sWoWrUqjI2NMWXKFIXFER0djXLlymHnzp3466+/uChaEZH7rAYHB2Pjxo05yitUqCAuICCr8ePHo3379jAzM8PLly8xc+ZMKCsro2fPnvKGRUREREREVCx4e3sX6N7rL2U/buxbmJubowB3G5Oc5E661dTUcl01/MmTJzA0NJSrr3/++Qc9e/bEu3fvYGhoiMaNG+P69ety90NERERERET0I5I76e7QoQNmz56NvXv3Avj8HLro6GhMmjQJXbp0kauv3bt3y7t7IiIiIiIiomJD7nu6ly1bhsTERBgZGeHTp09o1qwZLC0toaOjg3nz5hVFjERERERERETFktwj3Xp6ejhz5gyuXLmC0NBQJCYmwsnJCS1btuT9AERERERERERfkDvpXrJkCSZMmIBGjRqhUaNGYnlmZiZ69+6NXbt2FWqARERERERERMWV3NPLlyxZgj///FOqLDMzEz169EBISEhhxUVERERERERU7MmddB87dgzjx4/H/v37AQAZGRno2rUrHjx4gAsXLhR6gERERERERMVRVFQUJBJJgQYnnZ2dMWbMmEKPib4/uaeX16lTBwcOHIC7uztUVVXx559/4unTp7hw4QLKlStXFDESEREREdFP5n9Dz3/X/Y3Y0FzuNp6envDz8xNfGxgYoE6dOli8eDHs7e1hamqKmJgYlC1btjBDpWJG7pFuAGjevDm2bt2KLl26IDIyEkFBQUy4iYiIiIjop+Pm5oaYmBjExMTg3LlzUFFRQbt27QAAysrKMDY2hopK7mOdgiAgIyPje4ZLCiDTSHfnzp1zLTc0NIS+vj4GDx4slvn7+xdOZERERERERD84NTU1GBsbAwCMjY0xefJkNGnSBG/evEFSUhIsLCxw9+5dODo6IjAwEC4uLjh+/DimTZuGe/fu4fTp06hTpw6GDRsGf39/6OjoYPz48Qo+KipMMiXdenp6uZa7uroWajBERERERETFVWJiIrZv3w5LS0uUKVMGSUlJudabPHkyli5disqVK6N06dKYMGECgoKCcPjwYRgZGWHq1Km4c+cOHB0dv+8BUJGQKen28fEp6jiIiIiIiIiKnYCAAGhrawMAkpKSYGJigoCAACgp5X0n7+zZs9GqVSsAnxP1P//8E9u3b0eLFi0AAH5+fqhYsWLRB0/fhdwLqWV78+YNHj9+DACwsbGBoaFhoQVFRERERERUHLi4uGD9+vUAgA8fPmDdunVo3bo1bt68mWeb2rVri99HREQgLS0N9erVE8sMDAxgY2NTdEHTdyX3QmpJSUno378/TExM0LRpUzRt2hTly5fHgAEDkJycXBQxEhERERER/ZC0tLRgaWkJS0tL1KlTB1u2bEFSUhI2b96cbxv6eciddI8bNw5BQUE4evQo4uLiEBcXh8OHDyMoKAi///57UcRIRERERERULEgkEigpKeHTp08y1a9SpQpKlSqFGzduiGUfPnzAkydPiipE+s7knl5+4MAB7N+/H87OzmJZmzZtoKGhgW7duolTK4iIiIiIiEq61NRUvHr1CsDnZHnt2rVITExE+/btZWqvra2NAQMGYMKECShTpgyMjIzwxx9/5HtPOBUvcifdycnJuT6T28jIiNPLiYiIiIjop3Ly5EmYmJgAAHR0dFC1alXs27cPzs7OiIqKkqmPJUuWiIm6jo4Ofv/9d8THxxdh1PQ9SQRBEORp0KJFC5QpUwZbt26Furo6AODTp0/o27cv3r9/j7NnzxZJoLlJSEiAnp4e4uPjoaur+932S1SSnDtfRdEhUDHTonmEokMgIiIFKKrfvVNSUhAZGQkLCwsxvyD60clz3co90r1y5Uq4ubmhYsWKcHBwAACEhoZCXV0dp06dKljERERERERERCWQ3Em3nZ0dwsPDsWPHDjx69AgA0LNnT/Tq1QsaGhqFHiARERERERFRcSV30n3x4kU0bNgQgwYNkirPyMjAxYsX0bRp00ILjoiIiIiIiKg4k3tJPBcXF7x//z5H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jz6qoKAghYSEaNKkSQ7b7NmzR4mJifLz81OTJk00dOhQHThwQJJ05MgReXp6avPmzZKk6upqBQUF6fe//719+7feekvh4eGS/jejbtGiRerbt68aN26sqKgobdy4sS5/NADggNANp/n4+OjkyZM12svLy3XTTTdp9erV2rp1qxISEnTLLbdoz549DuvNmDFD3bp109atW/Xggw8qNTXVHoCKiookSatWrdJ3332nRYsWWX9CcHtvv/22rr76akVGRuruu+/Wm2++qV9+G+KECRM0Y8YMbd68WQ0aNNC999573n3+61//0r59+7Ru3Trl5OQoOztbN998s5o2bapPPvlEI0eO1AMPPKBvvvnGvo2/v7/y8vK0Y8cO/eUvf9Hrr7+uF154wZJzRv1Vm/58RmFhoUaOHKkxY8aouLhYAwYM0JQpUxzWqc21OS0tTRs3btTChQu1fft23X777UpISNDu3bstPVe4vzVr1qi0tFRr1qzR3LlzlZeXd84Pip577jmNGzdOK1asUP/+/e3tc+fOla+vrz755BM999xzevLJJ7Vy5UpJp0N0YmKifvzxR61du1YrV67Ul19+qaSkJElSQECAoqOj7R8SffbZZ7LZbNq6davKy8slSWvXrlVMTIxDLRMmTFBmZqaKi4vVvn173XnnnZbdOgcAMsB5pKSkmMTERGOMMdXV1WblypXG29vbZGZmmjlz5piAgIDzbt+pUyfz0ksv2ZcjIiLM3XffbV+urq42wcHBZubMmcYYY8rKyowks3Xr1ro+FdRjvXr1Mrm5ucYYY06dOmWaN29u1qxZY4wxZs2aNUaSWbVqlX39pUuXGknmp59+MsYYk52dbaKiouzvp6SkmIiICFNVVWVvi4yMNH369LEvV1ZWGl9fX7NgwYJz1vX888+brl272pd/eRzgbGrTnw8dOmSMMSYpKckMGjTIYfvk5GSnrs1ff/218fT0NN9++63DOv379zfjx4+/9BOCW4qJiTFjxoyp0f7z3/1nrpWVlZX292+//XaTlJRkX46IiDAvvPCCefTRR01oaKj597//XeM4N9xwg0Nb9+7dTVZWljHGmBUrVhhPT0+zZ88e+/v/+c9/jCRTVFRkjDEmIyPD/v8gNzfXJCUlmaioKPPBBx8YY4xp27atee2114wx//s744033qixv5KSEqd+RgBQW4x044Le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jTfeKOn0feNbtmw564Pjfq5Dhw569913ZYyxj3YXFhbK399fV155paTTHx5899139m2OHj161hH4jz/+2OHn/fHHH6tLly4XdU4AAKD+YXo5ANQjo0eP1uzZszV37lzt3r1bTz/9tLZv3+4wjbouJCcnq3nz5kpMTNT69etVVlamgoICpaenO4zGJycna8uWLZoyZYpuu+02eXt729/LysrSRx99pLS0NBUXF2v37t1asmSJUw9SGz16tKZNm6YlS5Zo165dGjNmjA4dOnTB833wwQe1d+9ejR49Wjt37tSSJUuUnZ2tjIwMeXic/tXYr18/zZs3T+vXr9dnn32mlJQUhyn5Z7zzzjt688039fnnnys7O1tFRUVOnQMAAKjfGOkGgHokOTlZX375pTIzM3XixAkNHTpUw4cPV1FRUZ0ep3Hjxlq3bp2ysrL0pz/9SceOHVPLli3Vv39/h5Hvtm3bqkePHioqKqrx9VudO3fW2rVrNWHCBPXp00fGGF111VVKSkqqdR1ZWVnav3+/hg0bJk9PT91///2Kj48/azj+uZYtW2rZsmV65JFHFBUVpaCgII0YMUKPP/64fZ3x48errKxMN998swICAvTUU0+ddaR78uTJWrhwoR588EGFhoZqwYIF6tixY63PAQAA1G8288sb1gAA9cqAAQMUEhKiefPmuboUy1VXV6tDhw4aOnSonnrqKcuPZ7PZtHjxYofvBQcAAPg5RroBoB7573//q1mzZtlHexcsWKBVq1Zp5cqVri7NEl9//bVWrFihmJgYVVRU6OWXX1ZZWZnuuusuV5cGAAAgidANAPWKzWbTsmXLNGXKFJ04cUKRkZF69913FRcX5+rSLOHh4aG8vDxlZmbKGKNrrrlGq1atUocOHVxdGgAAgCSmlwMAAAAAYBmeXg4AAAAAgEUI3QAAAAAAWITQDQAAAACARQjdAAAAAABYhNANAAAAAIBFCN0AAAAAAFiE0A0AAAAAgEUI3QAAAAAAWITQDQAAAACARf4PbfgpP5q+j0QAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "Virus dirs: 100%|██████████| 3/3 [00:00<00:00, 4432.16it/s]\n", "Virus files: 100%|██████████| 3/3 [00:02<00:00, 1.03it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Found 1 natural-language files in ./pubmedAbstracts\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "PubMed files: 100%|██████████| 1/1 [00:00<00:00, 8.64it/s]\n" ] }, { "data": { "image/png": "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fGb27dtnSDIWLFhgLnv99dcNSUZ8fLzF/jm9fm529epVw2QyWXyPDcMwLly4YEgyXn/99dvuf6vPUmpqqvnzkik+Pt5wdna2+Nx+8MEHhiRjzpw5WdrIyMgw75cZy9WrV42nnnrKcHV1NTZu3Giue+zYMcPR0dF47bXXLNrYv3+/UaBAAXP5lStXjKJFixrVq1c30tLSzPXeeecdQ1K2x7J8+XJDkrFr167bnotbGT16tCHJOHjwoLksMTHRcHFxMbp3725RV5IxceJE8/vMnxM31zOM69dldvHefB0OGzbM8PLyMq5du5ar+LNr393d3TAMw4iKijIkGatWrbI4hsyf9YZhGNeuXbM414Zx/foqVqyY0bdvX3PZmTNnshx/ppwea+a14uXlZZw+fdqibk7jyDyG7OK4UWZfd/pZtmLFiiw/WzO/rzf326lTJ6Nw4cLm93v37jUkGcOHD7eoFx4eniXG7H7+3NjXjbKLMywszChdurT5/alTp4wCBQoYHTt2tKg3adIkQ5LRu3dvc9nUqVMNd3d349ChQxZ1x44dazg6OhoJCQlZ+gOA/Irh5bjn1q1bJ0dHRw0dOtSi/MUXX5RhGFq/fr1FuWEYGjJkiObPn69ly5apd+/e5m2bNm3SxYsX1b17d509e9b8cnR01COPPJLtEMBBgwZZvG/QoIH++OOPuzqehx9+2Dx8U5I8PDw0cOBAHTt2TAcOHLhjG66uruavU1JSdPbsWdWrV0+GYejnn3++5X6Zd+G++OKL2w7H27p1a47vdK1fv17nzp1T9+7dzWXdu3fXvn37sgzZl67P1px55166fge1fPnyOTqnHh4eFjNfly9fXj4+PqpQoYIeeeQRc3nm1ze2eeM5u3r1qs6dO6cyZcrIx8dHP/300y37zLyTvXHjxixDMu8kIyNDGzZsyPEdo99//11+fn7y8/NThQoVtGDBArVp00YffPDBbfe78dguXLigxMRENWjQINvjat68ucWd3apVq8rLyytH5z+n18/Nzp8/L8MwVKhQoSxxOzk5aevWrbpw4UKO28vk7OwsB4frv5bS09N17tw585D3G4/9888/V5EiRfTCCy9kaePmu4JXrlwxjxJYt26dxQiFVatWKSMjQ127drX4+eHv76+yZcuaf378+OOPOn36tAYNGmTxjG94ePgtR0ZknpuzZ89afR6k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mjRpknn7008/raeeespin6tXr6pIkSJaunSpJCkjI0PTp09XSEiIXF1dVa1aNX322Wfm+lu3bpXJZNL69etVq1YtOTs7a9myZZo8ebL27dsnk8kkk8mkyMhISdLFixfVv39/+fn5ycvLS02bNtW+ffuyxP72228rMDBQbm5u6tq1qxITE83bwsPD1bFjR7322msqXry4ypcvL0n68MMPVbt2bXl6esrf319PP/20Tp8+LUk6duyYmjRpIkkqVKiQTCaTwsPDc3SMDyKSbgAAAADIA1FRUXJ3d9euXbs0a9YsTZkyRZs2bZIk9ejRQ1999ZWSk5PN9Tdu3KjLly+rU6dOkqTp06dr6dKlWrJkiX777TeNGDFCPXv21LZt2yz6GTt2rGbMmKG4uDi1aNFCL774oipVqqSTJ0/q5MmT5uS+S5cuOn36tNavX6+9e/eqZs2aatasmc6fP29u68iRI/rkk0/01VdfacOGDfr555/1/PPPW/QXExOjgwcPatOmTYqOjpZ0/R8GU6dO1b59+7RmzRodO3bMnFgHBgbq888/lyQdPHhQJ0+e1Pz58606xgcJz3QDAAAAQB6oWrWqJk6cKEkqW7asFi5cqJiYGLVo0UJhYWFyd3fX6tWr9cwzz0iSli9frvbt28vT01NpaWmaNm2aNm/erLp160qSSpcure+++05vv/22GjVqZO5nypQpatGihfm9h4eHChQoIH9/f3PZd999p927d+v06dNydnaWJL3xxhtas2aNPvvsMw0cOFCSlJqaqqVLl6pEiRKSpAULFqhNmzaaPXu2uT13d3e99957cnJyMrfft29f89elS5fWm2++qTp16ig5OVkeHh7y9fWVJBUtWtT8TLc1x/ggseud7kmTJpmHQGS+HnroIXuGBAAAAAC5UrVqVYv3AQEB5iHXBQoUUNeuXfXRRx9JklJSUvTFF1+oR48ekq7fcb58+bJatGghDw8P82vp0qU6evSoRbu1a9e+Yyz79u1TcnKyChcubNFefHy8RXulSpUyJ9ySVLduXWVkZOjgwYPmsipVqlgk3JK0d+9etWvXTqVKlZKnp6c5YU5ISLhlTNYc44PE7ne6K1WqpM2bN5vfFyhg95AAAAAAwGoFCxa0eG8ymZSRkWF+36NHDzVq1EinT5/Wpk2b5OrqqpYtW0qSedj52rVrLZJgSeY71Znc3d3vGEtycrICAgK0devWLNusnU385v5SUlIUFhamsLAwffTRR/Lz81NCQoLCwsJuO9GaNcf4ILF7hnvzMAgAAAAAeBDVq1dPgYGB+vjjj7V+/Xp16dLFnKhXrFhRzs7OSkhIsHqYtZOTk9LT0y3KatasqVOnTqlAgQIKDg6+5b4JCQn6+++/Vbx4cUnSDz/8IAcHB/OEadn5/fffde7cOc2YMUOBgYGSpB9//DFLTJIs4rqbY8zP7J50Hz58WMWLF5eLi4vq1q2r6dOnq1SpUtnWTUtLU1pamvl9UlLSvQoTAAAAAO7a008/rSVLlujQoUPasmWLudzT01OjRo3SiBEjlJGRoccee0yJiYnasWOHvLy81Lt371u2GRwcrPj4eMXGxqpkyZLy9PRU8+bNVbduXXXs2FGzZs1SuXLl9Pfff2vt2rXq1KmTeYi6i4uLevfurTfeeENJSUkaOnSounbtetsbo6VKlZKTk5MWLFigQYMG6ddff9XUqVMt6gQFBclkMik6OlqtW7eWq6vrXR1jfmbXZ7ofeeQRRUZGasOGDVq8eLHi4+PVoEEDXbp0Kdv606dPl7e3t/mV+V8VAAAAAMgPevTooQMHDqhEiRKqX7++xbapU6dq/Pjxmj59uipUqKCWLVtq7dq1CgkJuW2bnTt3VsuWLdWkSRP5+flpxYoVMplMWrdunRo2bKg+ffqoXLly6tatm44fP65ixYqZ9y1TpoyeeOIJtW7dWo8//riqVq2qRYsW3bY/Pz8/RUZG6tNPP1XFihU1Y8YMvfHGGxZ1SpQoocmTJ2vs2LEqVqyYhgwZclfHmJ+ZDMMw7B1EposXLyooKEhz5sxRv379smzP7k53YGCgEhMT5eXldS9DzeKtQd/YtX/kL4OXNLV3CAAAAFZJSkqSt7d3nv/tnZqaqvj4eIWEhMjFxSXP2gVsyZrr1u7Dy2/k4+OjcuXK6ciRI9lud3Z2fqAfsAcAAAAAPFjsOrz8ZsnJyTp69KgCAgLsHQoAAAAAAHfNrkn3qFGjtG3bNh07dkw7d+5Up06d5OjoqO7du9szLAAAAAAA8oRdh5f/+eef6t69u86dOyc/Pz899thj+uGHH+Tn52fPsAAAAAAAyBN2TbpXrlxpz+4BAAAAALCp++qZbgAAAAAAHiQk3QAAAAAA2AhJNwAAAAAANkLSDQAAAACAjZB0AwAAAEAeaty4sYYPH57ndZE/2XX2cgAAAADIzluDvrmn/Q1e0tTqfcLDwxUVFZWlfNeuXapQoUJehIUHAEk3AAAAAORSy5YtFRERYVHm5+cnR0dHO0WE+w3DywEAAAAgl5ydneXv72/xatasmcWQ8UWLFqls2bJycXFRsWLF9OSTT1q0kZGRoTFjxsjX11f+/v6aNGnSvT0I2BRJNwAAAADYyI8//qihQ4dqypQpOnjwoDZs2KCGDRta1ImKipK7u7t27dqlWbNmacqUKdq0aZOdIkZeY3g5AAAAAORSdHS0PDw8zO9btWplsT0hIUHu7u5q27atPD09FRQUpBo1aljUqVq1qiZOnChJKlu2rBYuXKiYmBi1aNHC9gcAmyPpBgAAAIBcatKkiRYvXmx+7+7uru7du5vft2jRQkFBQSpdurRatmypli1bqlOnTnJzczPXqVq1qkWbAQEBOn36tO2Dxz3B8HIAAAAAyCV3d3eVKVPG/AoICLDY7unpqZ9++kkrVqxQQECAJkyYoGrVqunixYvmOgULFrTYx2QyKSMj416Ej3uApBsAAAAAbKhAgQJq3ry5Zs2apV9++UXHjh3TN9/c2yXRYD8MLwcAAAAAG4mOjtYff/yhhg0bqlChQlq3bp0yMjJUvnx5e4eGe4SkGwAAAABsxMfHR6tWrdKkSZOUmpqqsmXLasWKFapUqZK9Q8M9YjIMw7B3ELmVlJQkb29vJSYmysvLy66xvDWI4SHIucFLmto7BAAAAKvY6m/v1NRUxcfHKyQkRC4uLnnWLmBL1ly3PNMNAAAAAICNkHQDAAAAAGAjJN0AAAAAANgISTcAAAAAADZC0g0AAAAAgI2QdAMAAAAAYCMk3QAAAAAA2AhJNwAAAAAANkLSDQAAAACAjZB0AwAAAMB9YuvWrTKZTLp48aIkKTIyUj4+PnaNCXengL0DAAAAAICbzX6q7T3t78WPo63eJzw8XFFRUVnKw8LCtGHDhrwIS0899ZRat26dJ21J15P44cOHm5N62B5JNwAAAADkUsuWLRUREWFR5uzsnGftu7q6ytXVNc/aw73H8HIAAAAAyCVnZ2f5+/tbvAoVKqRjx47JZDIpNjbWXPfixYsymUzaunWruWzdunUqV66cXF1d1aRJEx07dsyi/eyGl3/11VeqU6eOXFxcVKRIEXXq1Mm87cKFC+rVq5cKFSokNzc3tWrVSocPH5Z0feh6nz59lJiYKJPJJJPJpEmTJuXxGcHNSLoBAAAAwA5OnDihJ554Qu3atVNsbKz69++vsWPH3naftWvXqlOnTmrdurV+/vlnxcTE6OGHHzZvDw8P148//qgvv/xS33//vQzDUOvWrXX16lXVq1dP8+bNk5eXl06ePKmTJ09q1KhRtj7M/zyGlwMAAABALkVHR8vDw8Oi7H//+5+efvrpO+67ePFihYaGavbs2ZKk8uXLa//+/Zo5c+Yt93nttdfUrVs3TZ482VxWrVo1SdLhw4f15ZdfaseOHapXr54k6aOPPlJgYKDWrFmjLl26yNvbWyaTSf7+/lYfK3KHpBsAAAAAcqlJkyZavHixRZmvr6+SkpLuuG9cXJweeeQRi7K6devedp/Y2FgNGDDglu0VKFDAos3ChQurfPnyiouLu2M8sA2SbgAAAADIJXd3d5UpUyZLeXJysiTJMAxz2dWrV++6PyZVy394phsAAAAA8pifn58k6eTJk+ayGydVk6QKFSpo9+7dFmU//PDDbdutWrWqYmJist1WoUIFXbt2Tbt27TKXnTt3TgcPHlTFihUlSU5OTkpPT8/xceDukXQDAAAAQC6lpaXp1KlTFq+zZ8/K1dVVjz76qGbMmKG4uDht27ZNr7zyisW+gwYN0uHDhzV69GgdPHhQy5cvV2Rk5G37mzhxolasWKGJEycqLi7O4hnwsmXLqkOHDhowYIC+++477du3Tz179lSJEiXUoUMHSVJwcLCSk5MVExOjs2fP6vLlyzY5L/g/JN0AAAAAkEsbNmxQQECAxeuxxx6TJH3wwQe6du2aatWqpeHDh+vVV1+12LdUqVL6/PPPtWbNGlWrVk1LlizRtGnTbttf48aN9emnn+rLL79U9erV1bRpU4u75REREapVq5batm2runXryjAMrVu3TgULFpQk1atXT4MGDdJTTz0lPz8/zZo1K4/PCG5mMm58yCCfSUpKkre3txITE+Xl5WXXWN4a9I1d+0f+MnhJU3uHAAAAYBVb/e2dmpqq+Ph4hYSEyMXFJc/aBWzJmuuWO90AAAAAANgISTcAAAAAADZC0g0AAAAAgI2QdAMAAAAAYCMk3QAAAAAA2AhJNwAAAAAANkLSDQAAAACAjZB0AwAAAABgIwXsHQAA+4r5JtTeISCfadb0qL1DAAAAyDe40w0AAAAAuRAeHi6TyaRBgwZl2TZ48GCZTCaFh4ff+8DuQnBwsObNm2fvMB4o3OkGAAAAcN/5c+z2e9pfyRkNcrVfYGCgVq5cqblz58rV1VWSlJqaquXLl6tUqVJ5GSLyqbu+052UlKQ1a9YoLi7urtqZMWOGTCaThg8ffrchAQAAAMA9UbNmTQUGBmrVqlXmslWrVqlUqVKqUaOGuSwtLU1Dhw5V0aJF5eLioscee0x79uwxb9+6datMJpNiYmJUu3Ztubm5qV69ejp48KBFf4sXL1ZoaKicnJxUvnx5ffjhhxbbL168qGeffVbFihWTi4uLKleurOjoaPP2zz//XJUqVZKzs7OCg4M1e/Zs87bGjRvr+PHjGjFihEwmk0wmU56dp/8yq+90d+3aVQ0bNtSQIUP077//qnbt2jp27JgMw9DKlSvVuXNnq4PYs2eP3n77bVWtWtXqfe8XTbcOtncIyFfu7p9UAAAAuH/07dtXERER6tGjhyTpgw8+UJ8+fbR161ZznTFjxujzzz9XVFSUgoKCNGvWLIWFhenIkSPy9fU113v55Zc1e/Zs+fn5adCgQerbt6927NghSVq9erWGDRumefPmqXnz5oqOjlafPn1UsmRJNWnSRBkZGWrVqpUuXbqkZcuWKTQ0VAcOHJCjo6Mkae/everatasmTZqkp556Sjt37tTzzz+vwoULKzw8XKtWrVK1atU0cOBADRgw4N6dwAec1Xe6v/32WzVocH3oxerVq2UYhi5evKg333xTr776qtUBJCcnq0ePHnr33XdVqFAhq/cHAAAAAHvq2bOnvvvuOx0/flzHjx/Xjh071LNnT/P2lJQULV68WK+//rpatWqlihUr6t1335Wrq6vef/99i7Zee+01NWrUSBUrVtTYsWO1c+dOpaamSpLeeOMNhYeH6/nnn1e5cuU0cuRIPfHEE3rjjTckSZs3b9bu3bu1atUqtWjRQqVLl1bbtm3VqlUrSdKcOXPUrFkzjR8/XuXKlVN4eLiGDBmi119/XZLk6+srR0dHeXp6yt/fX/7+/vfi9D3wrL7TnZiYaP5PzIYNG9S5c2e5ubmpTZs2Gj16tNUBDB48WG3atFHz5s1zlbQDuDvbv33G3iEgn2nW1N4RAABwf/Hz81ObNm0UGRkpwzDUpk0bFSlSxLz96NGjunr1qurXr28uK1iwoB5++OEsj+neOPo3ICBAknT69GmVKlVKcXFxGjhwoEX9+vXra/78+ZKk2NhYlSxZUuXKlcs2zri4OHXo0CHL/vPmzVN6err5jjjyltVJd2BgoL7//nv5+vpqw4YNWrlypSTpwoULcnFxsaqtlStX6qeffrJ4luF20tLSlJaWZn6flJRkVX8AAAAAYAt9+/bVkCFDJElvvfVWrtspWLCg+evMZ6ozMjJytG/mRG64v1iddA8fPlw9evSQh4eHgoKC1LhxY0nXh51XqVIlx+2cOHFCw4YN06ZNm3KcrE+fPl2TJ0+2NmQAt9E/tZm9QwAAAMj3WrZsqStXrshkMiksLMxiW+bEZzt27FBQUJAk6erVq9qzZ49VE0lXqFBBO3bsUO/evc1lO3bsUMWKFSVdv0v+559/6tChQ9ne7c7c/0Y7duxQuXLlzHe5nZyclJ6enuOYcGdWJ93PP/+8Hn74YZ04cUItWrSQg8P1x8JLly5t1fDwvXv36vTp06pZs6a5LD09Xd9++60WLlyotLS0LMMbxo0bp5EjR5rfJyUlKTAw0NpDAAAAAIA85ejoaB4qfnMe4+7urueee06jR4+Wr6+vSpUqpVmzZuny5cvq169fjvsYPXq0unbtqho1aqh58+b66quvtGrVKm3evFmS1KhRIzVs2FCdO3fWnDlzVKZMGf3+++8ymUxq2bKlXnzxRdWpU0dTp07VU089pe+//14LFy7UokWLzH0EBwfr22+/Vbdu3eTs7GwxTB65k6t1umvXrq3atWtblLVp08aqNpo1a6b9+/dblPXp00cPPfSQXnrppWyfJ3B2dpazs7P1AQMAAACAjXl5ed1y24wZM5SRkaFnnnlGly5dUu3atbVx40arJpPu2LGj5s+frzfeeEPDhg1TSEiIIiIizKOPpetLgo0aNUrdu3dXSkqKypQpoxkzZki6vrzZJ598ogkTJmjq1KkKCAjQlClTFB4ebt5/ypQpevbZZxUaGqq0tDQZhmH1eYAlk2HlWUxPT1dkZKRiYmJ0+vTpLM8XfPPNN7kOpnHjxqpevbrmzZuXo/pJSUny9vZWYmLibS/weyHuoQp27R/5S4Xf758lw/4cu93eISCfKTmjgb1DAADYga3+9k5NTVV8fLxCQkKsniMKsBdrrlur73QPGzZMkZGRatOmjSpXrsyC6QAAAAAA3ILVSffKlSv1ySefqHXr1nkezI2LxwMAAAAAkN9ZnXQ7OTmpTJkytoglX+s6LlePx+M/av+dqwAAAAB4ADhYu8OLL76o+fPn80A9AAAAAAB3YPXt2e+++05btmzR+vXrValSJYvF2yVp1apVeRYcAAAAAAD5mdVJt4+Pjzp16mSLWAAAAAAAeKBYnXRHRETYIg4AAAAAAB44Vj/TLUnXrl3T5s2b9fbbb+vSpUuSpL///lvJycl5GhwAAAAAAPmZ1Xe6jx8/rpYtWyohIUFpaWlq0aKFPD09NXPmTKWlpWnJkiW2iBMAAAAAgHzH6jvdw4YNU+3atXXhwgW5urqayzt16qSYmJg8DQ4AAAAAcGuNGzfW8OHD7R2Gtm7dKpPJpIsXL9o7lPuO1Un39u3b9corr8jJycmiPDg4WH/99VeeBQYAAAAA96vw8HCZTCbzq3DhwmrZsqV++eUXe4dmF/Xq1dPJkyfl7e1t71DuO1YPL8/IyFB6enqW8j///FOenp55EhQAAACA/7ZJkybd9/21bNnSPNH0qVOn9Morr6ht27ZKSEjI4+juf05OTvL397d3GLeVnp4uk8kkB4dcTW2Wa1b39vjjj2vevHnm9yaTScnJyZo4caJat26dl7EBAAAAwH3L2dlZ/v7+8vf3V/Xq1TV27FidOHFCZ86cMdd56aWXVK5cObm5ual06dIaP368rl69at6+b98+NWnSRJ6envLy8lKtWrX0448/SpLOnTun7t27q0SJEnJzc1OVKlW0YsUKq2I8evSoOnTooGLFisnDw0N16tTR5s2bLeoEBwdr2rRp6tu3rzw9PVWqVCm98847FnV27typ6tWry8XFRbVr19aaNWtkMpkUGxsrKfvh5Z9//rkqVaokZ2dnBQcHa/bs2RZtLlq0SGXLlpWLi4uKFSumJ5980rytcePGGjJkiIYMGSJvb28VKVJE48ePl2EY5jppaWkaNWqUSpQoIXd3dz3yyCPaunWreXtkZKR8fHz05ZdfqmLFinJ2dlZCQoKCg4P16quvqlevXvLw8FBQUJC+/PJLnTlzRh06dJCHh4eqVq1q/j7cLauT7tmzZ2vHjh2qWLGiUlNT9fTTT5uHls+cOTNPggIAAACA/CQ5OVnLli1TmTJlVLhwYXO5p6enIiMjdeDAAc2fP1/vvvuu5s6da97eo0cPlSxZUnv27NHevXs1duxYFSxYUJKUmpqqWrVqae3atfr11181cOBAPfPMM9q9e7dVcbVu3VoxMTH6+eef1bJlS7Vr1y7L3fjZs2erdu3a+vnnn/X888/rueee08GDByVJSUlJateunapUqaKffvpJU6dO1UsvvXTbfvfu3auuXbuqW7du2r9/vyZNmqTx48crMjJSkvTjjz9q6NChmjJlig4ePKgNGzaoYcOGFm1ERUWpQIEC2r17t+bPn685c+bovffeM28fMmSIvv/+e61cuVK//PKLunTpopYtW+rw4cPmOpcvX9bMmTP13nvv6bffflPRokUlSXPnzlX9+vX1888/q02bNnrmmWfUq1cv9ezZUz/99JNCQ0PVq1cviyQ/t6weXl6yZEnt27dPH3/8sfbt26fk5GT169dPPXr0sJhYDQAAAAAeZNHR0fLw8JAkpaSkKCAgQNHR0RbDl1955RXz18HBwRo1apRWrlypMWPGSJISEhI0evRoPfTQQ5KksmXLmuuXKFFCo0aNMr9/4YUXtHHjRn3yySd6+OGHcxRjtWrVVK1aNfP7qVOnavXq1fryyy81ZMgQc3nr1q31/PPPS7p+d37u3LnasmWLypcvr+XLl8tkMundd9+Vi4uLKlasqL/++ksDBgy4Zb9z5sxRs2bNNH78eElSuXLldODAAb3++usKDw9XQkKC3N3d1bZtW3l6eiooKEg1atSwaCMwMFBz586VyWRS+fLltX//fs2dO1cDBgxQQkKCIiIilJCQoOLFi0uSRo0apQ0bNigiIkLTpk2TJF29elWLFi2yOAeZx/vss89KkiZMmKDFixerTp066tKli/kc1K1bV//8889dD5u3+k73ihUrVKBAAfXo0UOzZs3SokWL1L9/f7m6umr06NF3FQwAAAAA5BdNmjRRbGysYmNjtXv3boWFhalVq1Y6fvy4uc7HH3+s+vXry9/fXx4eHnrllVcs7jKPHDlS/fv3V/PmzTVjxgwdPXrUvC09PV1Tp05VlSpV5OvrKw8PD23cuNGqZ8aTk5M1atQoVahQQT4+PvLw8FBcXFyWNqpWrWr+2mQyyd/fX6dPn5YkHTx4UFWrVpWLi4u5zp2S/ri4ONWvX9+irH79+jp8+LDS09PVokULBQUFqXTp0nrmmWf00Ucf6fLlyxb1H330UZlMJvP7unXrmvffv3+/0tPTVa5cOXl4eJhf27ZtsziHTk5OFseW3fEWK1ZMklSlSpUsZZnn4G5YnXQ/99xzWr9+fZbyESNGaNmyZXcdEAAAAADkB+7u7ipTpozKlCmjOnXq6L333lNKSoreffddSdL333+vHj16qHXr1oqOjtbPP/+sl19+WVeuXDG3MWnSJP32229q06aNvvnmG1WsWFGrV6+WJL3++uuaP3++XnrpJW3ZskWxsbEKCwuz2P9ORo0apdWrV2vatGnavn27YmNjVaVKlSxtZA5pz2QymZSRkZHbU3NHnp6e+umnn7RixQoFBARowoQJqlatWo6XHEtOTpajo6P27t1r/sdHbGys4uLiNH/+fHM9V1dXi8Q9043Hm7k9u7K8OAdWDy//6KOP1L17d0VHR+uxxx6TdH2Yw6pVq7Rly5a7DggAAAAA8qPMmbH//fdfSdcnHwsKCtLLL79srnPjXfBM5cqVU7ly5TRixAh1795dERER6tSpk3bs2KEOHTqoZ8+ekq4ngIcOHVLFihVzHNOOHTsUHh6uTp06SbqerB47dsyq4ypfvryWLVumtLQ0OTs7S5L27Nlz230qVKigHTt2ZImlXLlycnR0lCQVKFBAzZs3V/PmzTVx4kT5+Pjom2++0RNPPCFJ2rVrl8X+P/zwg8qWLStHR0fVqFFD6enpOn36tBo0aGDV8dxrVt/pbtOmjRYtWqT27dtr7969ev75580Jd+ZzCAAAAADwoEtLS9OpU6d06tQpxcXF6YUXXlBycrLatWsn6frz2QkJCVq5cqWOHj2qN99803wXW5L+/fdfDRkyRFu3btXx48e1Y8cO7dmzRxUqVDDvv2nTJu3cuVNxcXF69tln9c8//1gVY9myZbVq1SrFxsZq3759evrpp62+e5u5z8CBAxUXF6eNGzfqjTfekKRs7yJL0osvvqiYmBhNnTpVhw4dUlRUlBYuXGh+Rj06OlpvvvmmYmNjdfz4cS1dulQZGRkqX768uY2EhASNHDlSBw8e1IoVK7RgwQINGzZM0vV/VPTo0UO9evXSqlWrFB8fr927d2v69Olau3atVcdna1bf6Zaun/SLFy+qfv368vPz07Zt21SmTJm8jg0AAAAA7lsbNmxQQECApOvDpR966CF9+umnaty4sSSpffv2GjFihIYMGaK0tDS1adNG48ePN68J7ujoqHPnzqlXr176559/VKRIET3xxBOaPHmypOuTsP3xxx8KCwuTm5ubBg4cqI4dOyoxMTHHMc6ZM0d9+/ZVvXr1VKRIEb300ktKSkqy6ji9vLz01Vdf6bnnnlP16tVVpUoVTZgwQU8//bTFc943qlmzpj755BNNmDBBU6dOVUBAgKZMmaLw8HBJko+Pj1atWqVJkyYpNTVVZcuW1YoVK1SpUiVzG7169dK///6rhx9+WI6Ojho2bJgGDhxo3h4REaFXX31VL774ov766y8VKVJEjz76qNq2bWvV8dmaycjBHOgjR47MtvzTTz9VzZo1FRoaai6bM2dO3kV3B0lJSfL29lZiYqK8vLzuWb/ZqRJV5c6VgP9vf+/99g7B7M+x2+0dAvKZkjPu7yFcAADbsNXf3qmpqYqPj1dISMgtEzjcfz766CP16dNHiYmJNlnFqnHjxqpevbrmzZuX523nBWuu2xzd6f7555+zLS9TpoySkpLM2281tAAAAAAAkH8tXbpUpUuXVokSJbRv3z699NJL6tq1K8tG50COkm4mSAMAAACA/65Tp05pwoQJOnXqlAICAtSlSxe99tpr9g4rX8jVM92Z/vzzT0lSyZIl8ySY/Gx/fM7XygMAAACA/GTMmDEaM2bMPetv69at96wvW7N69vKMjAxNmTJF3t7eCgoKUlBQkHx8fDR16lSbruMGAAAAAEB+Y/Wd7pdfflnvv/++ZsyYofr160uSvvvuO/OscwwxAAAAAADgOquT7qioKL333ntq3769uaxq1aoqUaKEnn/+eZJuAAAAAAD+P6uHl58/f14PPfRQlvKHHnpI58+fz5OgAAAAAAB4EFiddFerVk0LFy7MUr5w4UJVq1YtT4ICAAAAAOBBYPXw8lmzZqlNmzbavHmz6tatK0n6/vvvdeLECa1bty7PAwQAAAAAIL+y+k53o0aNdOjQIXXq1EkXL17UxYsX9cQTT+jgwYNq0KCBLWIEAAAAAFipcePGGj58uL3D+M+z+k53QkKCAgMDs50wLSEhQaVKlcqTwAAAAADgfhYeHq6oqCjze19fX9WpU0ezZs1S1apV7RhZ3mncuLGqV6+uefPm2TuUfMvqpDskJEQnT55U0aJFLcrPnTunkJAQpaen51lwAAAAAP6bYr4Jvaf9NWt6NFf7tWzZUhEREZKkU6dO6ZVXXlHbtm2VkJCQbf2rV6+qYMGCuY4T+Y/Vw8sNw5DJZMpSnpycLBcXlzwJCgAAAADyA2dnZ/n7+8vf31/Vq1fX2LFjdeLECZ05c0bHjh2TyWTSxx9/rEaNGsnFxUXvvPOOvLy89Nlnn1m0s2bNGrm7u+vSpUuSpP3796tp06ZydXVV4cKFNXDgQCUnJ5vrh4eHq2PHjpo8ebL8/Pzk5eWlQYMG6cqVKxbtZmRkaMyYMfL19ZW/v78mTZpk3ta3b1+1bdvWov7Vq1dVtGhRvf/++woPD9e2bds0f/58mUwmmUwmHTt2TJL066+/qlWrVvLw8FCxYsX0zDPP6OzZs3l4Zh8cOb7TPXLkSEmSyWTS+PHj5ebmZt6Wnp6uXbt2qXr16nkeIAAAAADkB8nJyVq2bJnKlCmjwoULKyUlRZI0duxYzZ49WzVq1JCLi4v27duniIgIPfnkk+Z9M997enoqJSVFYWFhqlu3rvbs2aPTp0+rf//+GjJkiCIjI837xMTEyMXFRVu3btWxY8fUp08fFS5c2OJR4KioKI0cOVK7du3S999/r/DwcNWvX18tWrRQ//791bBhQ508eVIBAQGSpOjoaF2+fFlPPfWUnnzySR06dEiVK1fWlClTJEl+fn66ePGimjZtqv79+2vu3Ln6999/9dJLL6lr16765ptv7sGZzl9ynHT//PPPkq7f6d6/f7+cnJzM25ycnFStWjWNGjUq7yMEAAAAgPtUdHS0PDw8JEkpKSkKCAhQdHS0HBz+b1Dx8OHD9cQTT5jf9+/fX/Xq1TMnu6dPn9a6deu0efNmSdLy5cuVmpqqpUuXyt3dXdL1JZrbtWunmTNnqlixYpKu52EffPCB3NzcVKlSJU2ZMkWjR4/W1KlTzf1XrVpVEydOlCSVLVtWCxcuVExMjFq0aKF69eqpfPny+vDDDzVmzBhJ15P/Ll26mI/JyclJbm5u8vf3N8e/cOFC1ahRQ9OmTTOXffDBBwoMDNShQ4dUrly5vD3J+VyOk+4tW7ZIkvr06aP58+fLy8vLZkEBAAAAQH7QpEkTLV68WJJ04cIFLVq0SK1atdLu3bvNdWrXrm2xz8MPP6xKlSopKipKY8eO1bJlyxQUFKSGDRtKkuLi4lStWjVzwi1J9evXV0ZGhg4ePGhOuqtVq2YxArlu3bpKTk7WiRMnFBQUJElZJnTLTPIz9e/fX++8847GjBmjf/75R+vXr7/j3ep9+/Zpy5Yt5sT8RkePHiXpvonVz3RHRESQcAMAAACAJHd3d5UpU0ZlypRRnTp19N577yklJUXvvvuuRZ2b9e/f3zxUPCIiQn369Ml27qy7dfOkbSaTSRkZGeb3vXr10h9//KHvv/9ey5YtU0hIyB2Xgk5OTla7du0UGxtr8Tp8+LD5Hwf4P1Yn3QAAAACA7JlMJjk4OOjff/+9bb2ePXvq+PHjevPNN3XgwAH17t3bvK1ChQrat2+f+ZlwSdqxY4ccHBxUvnx5c9m+ffss+vnhhx/k4eGhwMDAHMdbuHBhdezYUREREYqMjFSfPn0stjs5OWVZoapmzZr67bffFBwcbP6HQ+Yru38w/NeRdAMAAABALqWlpenUqVM6deqU4uLi9MILL5jvBN9OoUKF9MQTT2j06NF6/PHHVbJkSfO2Hj16yMXFRb1799avv/6qLVu26IUXXtAzzzxjHlouSVeuXFG/fv104MABrVu3ThMnTtSQIUMsnifPif79+ysqKkpxcXEWyb8kBQcHa9euXTp27JjOnj2rjIwMDR48WOfPn1f37t21Z88eHT16VBs3blSfPn1YQjobJN0AAAAAkEsbNmxQQECAAgIC9Mgjj2jPnj369NNP1bhx4zvu269fP125ckV9+/a1KHdzc9PGjRt1/vx51alTR08++aSaNWumhQsXWtRr1qyZypYtq4YNG+qpp55S+/btLZYEy6nmzZsrICBAYWFhKl68uMW2UaNGydHRURUrVpSfn58SEhJUvHhx7dixQ+np6Xr88cdVpUoVDR8+XD4+PlYn/P8FJsMwDHsHkVtJSUny9vZWYmKi/Z8zn+Rt3/6Rv0xKtHcEZn+O3W7vEJDPlJxx++e8AAAPJlv97Z2amqr4+HiFhITIxcUlz9rNDz788EONGDFCf//9t8XqUDkRHh6uixcvas2aNXcdR3JyskqUKKGIiAiLWdZxa9ZctzmavfzLL7/Mceft27fPcV0AAAAA+K+5fPmyTp48qRkzZujZZ5+1OuHOKxkZGTp79qxmz54tHx8fcjkbyVHS3bFjxxw1ZjKZGMMPAAAAALcxa9Ysvfbaa2rYsKHGjRtntzgSEhIUEhKikiVLKjIyUgUK5HhFaVghR2f1xinlAQAAAAC5N2nSpFw9e32jzOXG7kZwcLDy8dPG+QZPuQMAAAAAYCO5Gj+QkpKibdu2KSEhQVeuXLHYNnTo0DwJDAAAAACA/M7qpPvnn39W69atdfnyZaWkpMjX11dnz56Vm5ubihYtStINAAAAAMD/Z/Xw8hEjRqhdu3a6cOGCXF1d9cMPP+j48eOqVauW3njjDVvECAAAAABAvmR10h0bG6sXX3xRDg4OcnR0VFpamgIDAzVr1iz973//s0WMAAAAAADkS1Yn3QULFpSDw/XdihYtqoSEBEmSt7e3Tpw4kbfRAQAAAACQj1mddNeoUUN79uyRJDVq1EgTJkzQRx99pOHDh6ty5cpWtbV48WJVrVpVXl5e8vLyUt26dbV+/XprQwIAAACA+8qkSZNUvXp1e4eB+4DVSfe0adMUEBAgSXrttddUqFAhPffcczpz5ozefvttq9oqWbKkZsyYob179+rHH39U06ZN1aFDB/3222/WhgUAAAAA90S7du3UsmXLbLdt375dJpNJTzzxhGJiYu5xZLgfWT17ee3atc1fFy1aVBs2bMh15+3atbN4/9prr2nx4sX64YcfVKlSpVy3CwAAACB/898Se0/7O9Wkeo7r9uvXT507d9aff/6pkiVLWmyLiIhQ7dq1VbVq1du2ceXKFTk5OeUmVOQzVt/pbtq0qS5evJilPCkpSU2bNs11IOnp6Vq5cqVSUlJUt27dbOukpaUpKSnJ4gUAAAAA91Lbtm3l5+enyMhIi/Lk5GR9+umn6tevX5bh5eHh4erYsaNee+01FS9eXOXLl5ckmUwmrVmzxqIdHx8fc9tXrlzRkCFDFBAQIBcXFwUFBWn69Ok2PDrkNauT7q1bt+rKlStZylNTU7V9+3arA9i/f788PDzk7OysQYMGafXq1apYsWK2dadPny5vb2/zKzAw0Or+AAAAAOBuFChQQL169VJkZKQMwzCXf/rpp0pPT1f37t2z3S8mJkYHDx7Upk2bFB0dnaO+3nzzTX355Zf65JNPdPDgQX300UcKDg7Oi8PAPZLj4eW//PKL+esDBw7o1KlT5vfp6enasGGDSpQoYXUA5cuXV2xsrBITE/XZZ5+pd+/e2rZtW7aJ97hx4zRy5Ejz+6SkJBJvAAAAAPdc37599frrr2vbtm1q3LixpOtDyzt37ixvb+9s93F3d9d7771n1bDyhIQElS1bVo899phMJpOCgoLyInzcQzlOuqtXry6TySSTyZTtMHJXV1ctWLDA6gCcnJxUpkwZSVKtWrW0Z88ezZ8/P9tJ2ZydneXs7Gx1HwAAAACQlx566CHVq1dPH3zwgRo3bqwjR45o+/btmjJlyi33qVKlitXPcYeHh6tFixYqX768WrZsqbZt2+rxxx+/2/BxD+V4eHl8fLyOHj0qwzC0e/duxcfHm19//fWXkpKS1Ldv37sOKCMjQ2lpaXfdDgAAAADYUr9+/fT555/r0qVLioiIUGhoqBo1anTL+u7u7lnKTCaTxRB1Sbp69ar565o1ayo+Pl5Tp07Vv//+q65du+rJJ5/Mu4OAzeX4TnfmMIaMjIw863zcuHFq1aqVSpUqpUuXLmn58uXaunWrNm7cmGd9AAAAAIAtdO3aVcOGDdPy5cu1dOlSPffcczKZTFa14efnp5MnT5rfHz58WJcvX7ao4+XlpaeeekpPPfWUnnzySbVs2VLnz5+Xr69vnhwHbMvqJcMk6ejRo5o3b57i4uIkSRUrVtSwYcMUGhpqVTunT59Wr169dPLkSXl7e6tq1arauHGjWrRokZuwAAAAAOCe8fDw0FNPPaVx48YpKSlJ4eHhVrfRtGlTLVy4UHXr1lV6erpeeuklFSxY0Lx9zpw5CggIUI0aNeTg4KBPP/1U/v7+8vHxybsDgU1ZnXRv3LhR7du3V/Xq1VW/fn1J0o4dO1SpUiV99dVXViXM77//vrXdAwAAAMB9o1+/fnr//ffVunVrFS9e3Or9Z8+erT59+qhBgwYqXry45s+fr71795q3e3p6atasWTp8+LAcHR1Vp04drVu3Tg4OVi9EBTsxGTc/QHAHNWrUUFhYmGbMmGFRPnbsWH399df66aef8jTA20lKSpK3t7cSExPl5eV1z/rN1qTsZygEsjUp0d4RmP051vql/vDfVnJGA3uHAACwA1v97Z2amqr4+HiFhITIxcUlz9oFbMma69bqf4/ExcWpX79+Wcr79u2rAwcOWNscAAAAAAAPLKuTbj8/P8XGxmYpj42NVdGiRfMiJgAAAAAAHgg5fqZ7ypQpGjVqlAYMGKCBAwfqjz/+UL169SRdf6Z75syZGjlypM0CBQAAAAAgv8lx0j158mQNGjRI48ePl6enp2bPnq1x48ZJkooXL65JkyZp6NChNgsUAAAAAID8JsdJd+Z8ayaTSSNGjNCIESN06dIlSddn1AMAAAAAAJasWjLs5oXeSbYBAAAAALg1q5LucuXKZUm8b3b+/Pm7CggAAAAAgAeFVUn35MmT5e3NetQAAAAAAOSEVUl3t27dWBYMAAAAAIAcyvE63XcaVg4AAAAAuP8dO3ZMJpNJsbGxt6wTHBysefPm3bOYHmQ5TrozZy8HAAAAgP+68PBwmUwmzZgxw6J8zZo1Vt+wbNy4sYYPH56H0eF+kuPh5RkZGbaMAwAAAADMgseuvaf9HZvRxup9XFxcNHPmTD377LMqVKiQDaKyzpUrV+Tk5GTvMHCTHN/pBgAAAAD8n+bNm8vf31/Tp0+/ZZ1z586pe/fuKlGihNzc3FSlShWtWLHCvD08PFzbtm3T/PnzZTKZZDKZdOzYMUVGRsrHx8eirZvvok+aNEnVq1fXe++9p5CQELm4uEiSNmzYoMcee0w+Pj4qXLiw2rZtq6NHj97Vsc6ZM0dVqlSRu7u7AgMD9fzzzys5Odm8PTPejRs3qkKFCvLw8FDLli118uRJc51r165p6NCh5rheeukl9e7dWx07djTXyW5Ye/Xq1TVp0qQcxyJJ7777rgIDA+Xm5qZOnTppzpw5Wc7nF198oZo1a8rFxUWlS5fW5MmTde3atbs6T9kh6QYAAACAXHB0dNS0adO0YMEC/fnnn9nWSU1NVa1atbR27Vr9+uuvGjhwoJ555hnt3r1bkjR//nzVrVtXAwYM0MmTJ3Xy5EkFBgbmOIYjR47o888/16pVq8zPaKekpGjkyJH68ccfFRMTIwcHB3Xq1OmuRi87ODjozTff1G+//aaoqCh98803GjNmjEWdy5cv64033tCHH36ob7/9VgkJCRo1apR5+8yZM/XRRx8pIiJCO3bsUFJSktasWZPnsezYsUODBg3SsGHDFBsbqxYtWui1116zaGP79u3q1auXhg0bpgMHDujtt99WZGRklnp5warZywEAAAAA/6dTp06qXr26Jk6cqPfffz/L9hIlSlgkni+88II2btyoTz75RA8//LC8vb3l5OQkNzc3+fv7W93/lStXtHTpUvn5+ZnLOnfubFHngw8+kJ+fnw4cOKDKlStb3Ycki2fOg4OD9eqrr2rQoEFatGiRufzq1atasmSJQkNDJUlDhgzRlClTzNsXLFigcePGqVOnTpKkhQsXat26dXkey4IFC9SqVSvzeS9Xrpx27typ6Oho836TJ0/W2LFj1bt3b0lS6dKlNXXqVI0ZM0YTJ060Oqbb4U43AAAAANyFmTNnKioqSnFxcVm2paena+rUqapSpYp8fX3l4eGhjRs3KiEhIU/6DgoKski4Jenw4cPq3r27SpcuLS8vLwUHB0vSXfW5efNmNWvWTCVKlJCnp6eeeeYZnTt3TpcvXzbXcXNzMyfckhQQEKDTp09LkhITE/XPP//o4YcfNm93dHRUrVq18jyWgwcPWvQjKcv7ffv2acqUKfLw8DC/Mkcb3HhMeYGkGwAAAADuQsOGDRUWFqZx48Zl2fb6669r/vz5eumll7RlyxbFxsYqLCxMV65cuW2bDg4OWVaQunr1apZ67u7uWcratWun8+fP691339WuXbu0a9cuSbpjn7dy7NgxtW3bVlWrVtXnn3+uvXv36q233srSZsGCBS32M5lMVq+Cdafjzmksd5KcnKzJkycrNjbW/Nq/f78OHz5sfjY+rzC8HAAAAADu0owZM1S9enWVL1/eonzHjh3q0KGDevbsKen6qlCHDh1SxYoVzXWcnJyUnp5usZ+fn58uXbqklJQUc2J9u3W1M507d04HDx7Uu+++qwYNGkiSvvvuu7s5NO3du1cZGRmaPXu2HByu37f95JNPrGrD29tbxYoV0549e9SwYUNJ10cB/PTTT6pevbq5np+fn8Xka0lJSYqPj7cqlvLly2vPnj0WZTe/r1mzpg4ePKgyZcpYdRy5QdINAAAAAHepSpUq6tGjh958802L8rJly+qzzz7Tzp07VahQIc2ZM0f//POPRdIdHBysXbt26dixY/Lw8JCvr68eeeQRubm56X//+5+GDh2qXbt2KTIy8o5xFCpUSIULF9Y777yjgIAAJSQkaOzYsXd1bGXKlNHVq1e1YMECtWvXTjt27NCSJUusbueFF17Q9OnTVaZMGT300ENasGCBLly4YDEje9OmTRUZGal27drJx8dHEyZMkKOjo1WxvPDCC2rYsKHmzJmjdu3a6ZtvvtH69est+pkwYYLatm2rUqVK6cknn5SDg4P27dunX3/9Va+++mouztKtMbwcAAAAAPLAlClTsswQ/sorr6hmzZoKCwtT48aN5e/vb7FEliSNGjVKjo6Oqlixovz8/JSQkCBfX18tW7ZM69atMy8zduOyWbfi4OCglStXau/evapcubJGjBih119//a6Oq1q1apozZ45mzpypypUr66OPPrrtMmm38tJL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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Top 10 subgroups by tokens (speciesrepo):\n", "Mammal 2,912,047,665\n", "Fish 2,744,427,140\n", "Eudicot 2,112,995,911\n", "Monocot 1,893,827,012\n", "Bird 634,783,048\n", "Reptile 350,550,319\n", "Green algae 181,920,423\n", "Invertebrate 160,031,737\n", "Bryophyte 93,043,191\n", "Unknown 28,933,124\n", "\n", "Virus tokens (letters): 1,060,270,536\n", "Natural language tokens (words): 20,840\n" ] } ], "source": [ "# JUPYTER CELL — Fast token counts + stacked histograms (Virus/NL included)\n", "\n", "import os, re\n", "from collections import defaultdict, OrderedDict\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from tqdm.auto import tqdm\n", "\n", "# -------------------------------\n", "# 0) Helpers\n", "# -------------------------------\n", "def list_files(root, allow_all=False):\n", " \"\"\"\n", " Recursively list files under `root`.\n", " - If allow_all=False: only *.txt\n", " - If allow_all=True: include all files except *.ipynb\n", " \"\"\"\n", " paths = []\n", " if not os.path.isdir(root):\n", " return paths\n", " for dirpath, _, files in os.walk(root):\n", " for f in files:\n", " if f.lower().endswith(\".ipynb\"):\n", " continue\n", " if not allow_all and not f.lower().endswith(\".txt\"):\n", " continue\n", " paths.append(os.path.join(dirpath, f))\n", " return sorted(paths)\n", "\n", "def base_taxon_key(path):\n", " \"\"\"Drop extension; drop anything after first dot (e.g., Homo_sapiens.GRCh38 -> Homo_sapiens).\"\"\"\n", " name = os.path.basename(path)\n", " base, _ = os.path.splitext(name)\n", " return base.split(\".\")[0]\n", "\n", "# FAST counting:\n", "# * Sequences (species + virus): tokens == sum(len(line.strip()))\n", "# * Natural language: tokens == sum(len(line.split()))\n", "def count_sequence_tokens_fast(path):\n", " total = 0\n", " with open(path, \"r\", encoding=\"utf-8\", errors=\"ignore\") as fh:\n", " for line in fh:\n", " total += len(line.strip())\n", " return total\n", "\n", "def count_natlang_tokens_fast(path):\n", " total = 0\n", " with open(path, \"r\", encoding=\"utf-8\", errors=\"ignore\") as fh:\n", " for line in fh:\n", " total += len(line.split())\n", " return total\n", "\n", "# -------------------------------\n", "# 1) Taxon subgroup classification\n", "# -------------------------------\n", "PLANT_EUDICOT = {\n", " \"Actinidia_chinensis\",\"Arabidopsis_thaliana\",\"Arabis_alpina\",\"Arachis_hypogaea\",\n", " \"Beta_vulgaris\",\"Brassica_juncea\",\"Brassica_napus\",\"Cajanus_cajan\",\"Capsicum_annuum\",\n", " \"Coffea_canephora\",\"Corchorus_capsularis\",\"Corylus_avellana\",\"Corymbia_citriodora\",\n", " \"Cucumis_melo\",\"Cynara_cardunculus\",\"Daucus_carota\",\"Eucalyptus_grandis\",\n", " \"Eutrema_salsugineum\",\"Ficus_carica\",\"Fraxinus_excelsior\",\"Glycine_max\",\n", " \"Helianthus_annuus\",\"Ipomoea_triloba\",\"Nicotiana_attenuata\",\"Citrus_clementina\",\n", " \"Citrullus_lanatus\",\"Gossypium_raimondii\",\"Solanum_lycopersicum\",\n", " \"Vicia_faba\",\"Vigna_angularis\",\"Vigna_radiata\",\"Vigna_unguiculata\",\"Vitis_vinifera\",\n", "}\n", "PLANT_MONOCOT = {\n", " \"Aegilops_tauschii\",\"Ananas_comosus\",\"Asparagus_officinalis\",\"Brachypodium_distachyon\",\n", " \"Digitaria_exilis\",\"Eragrostis_curvula\",\"Echinochloa_crusgalli\",\"Hordeum_vulgare\",\n", " \"Oryza_sativa\",\"Triticum_aestivum\",\"Triticum_dicoccoides\",\"Triticum_spelta\",\n", " \"Triticum_timopheevii\",\"Triticum_turgidum\",\"Triticum_urartu\",\"Zea_mays\",\"Dioscorea_rotundata\",\n", "}\n", "PLANT_BASAL = {\"Amborella_trichopoda\"}\n", "PLANT_BRYOPHYTE = {\"Physcomitrium_patens\"}\n", "ALGAE_GREEN = {\"Chlamydomonas_reinhardtii\",\"Chara_braunii\"}\n", "ALGAE_RED = {\"Chondrus_crispus\",\"Cyanidioschyzon_merolae\",\"Galdieria_sulphuraria\"}\n", "ANIMAL_MAMMAL = {\n", " \"Balaenoptera_musculus\",\"Bison_bison_bison\",\"Camelus_dromedarius\",\"Canis_lupus_familiaris\",\n", " \"Castor_canadensis\",\"Cavia_aperea\",\"Colobus_angolensis_palliatus\",\"Delphinapterus_leucas\",\n", " \"Dasypus_novemcinctus\",\"Homo_sapiens\",\"Lynx_canadensis\",\"Marmota_marmota_marmota\",\n", " \"Mus_spretus\",\"Mus_musculus\",\"Neovison_vison\",\"Otolemur_garnettii\",\"Pan_paniscus\",\n", " \"Rattus_norvegicus\",\"Rhinopithecus_bieti\",\"Saimiri_boliviensis_boliviensis\",\n", " \"Sus_scrofa\",\"Urocitellus_parryii\",\"Ursus_americanus\",\"Ursus_thibetanus_thibetanus\",\n", " \"Vicugna_pacos\",\"Zalophus_californianus\",\n", "}\n", "ANIMAL_BIRD = {\"Athene_cunicularia\",\"Cyanistes_caeruleus\",\"Gallus_gallus\",\n", " \"Lepidothrix_coronata\",\"Lonchura_striata_domestica\",\n", " \"Melopsittacus_undulatus\",\"Struthio_camelus_australis\"}\n", "ANIMAL_REPTILE = {\"Chelonoidis_abingdonii\",\"Crocodylus_porosus\",\"Gopherus_agassizii\",\n", " \"Laticauda_laticaudata\",\"Salvator_merianae\"}\n", "ANIMAL_FISH = {\"Clupea_harengus\",\"Gadus_morhua\",\"Gouania_willdenowi\",\"Haplochromis_burtoni\",\n", " \"Labrus_bergylta\",\"Lates_calcarifer\",\"Oreochromis_aureus\",\"Poecilia_formosa\",\n", " \"Salmo_salar\",\"Salmo_trutta\",\"Scleropages_formosus\",\"Sinocyclocheilus_anshuiensis\",\n", " \"Stegastes_partitus\",\"Danio_rerio\",\"Tetra_sp\"}\n", "ANIMAL_INVERT = {\"Drosophila_melanogaster\",\"Ciona_intestinalis\",\"Ciona_savignyi\"}\n", "\n", "SUBGROUP_TO_TOP = {\n", " \"Eudicot\":\"Plant\",\"Monocot\":\"Plant\",\"Basal angiosperm\":\"Plant\",\"Bryophyte\":\"Plant\",\n", " \"Green algae\":\"Algae\",\"Red algae\":\"Algae\",\n", " \"Mammal\":\"Animal\",\"Bird\":\"Animal\",\"Reptile\":\"Animal\",\"Fish\":\"Animal\",\"Invertebrate\":\"Animal\",\n", " \"Unknown\":\"Unknown\",\n", "}\n", "\n", "def classify_subgroup(taxon_key: str) -> str:\n", " if taxon_key == \"mus\": taxon_key = \"Mus_musculus\"\n", " if taxon_key == \"danio\": taxon_key = \"Danio_rerio\"\n", " if taxon_key == \"tetra\": taxon_key = \"Tetra_sp\"\n", " if taxon_key.startswith(\"Homo_sapiens\"): taxon_key = \"Homo_sapiens\"\n", " if taxon_key == \"schi\": return \"Unknown\"\n", "\n", " if taxon_key in PLANT_EUDICOT: return \"Eudicot\"\n", " if taxon_key in PLANT_MONOCOT: return \"Monocot\"\n", " if taxon_key in PLANT_BASAL: return \"Basal angiosperm\"\n", " if taxon_key in PLANT_BRYOPHYTE: return \"Bryophyte\"\n", " if taxon_key in ALGAE_GREEN: return \"Green algae\"\n", " if taxon_key in ALGAE_RED: return \"Red algae\"\n", " if taxon_key in ANIMAL_MAMMAL: return \"Mammal\"\n", " if taxon_key in ANIMAL_BIRD: return \"Bird\"\n", " if taxon_key in ANIMAL_REPTILE: return \"Reptile\"\n", " if taxon_key in ANIMAL_FISH: return \"Fish\"\n", " if taxon_key in ANIMAL_INVERT: return \"Invertebrate\"\n", " return \"Unknown\"\n", "\n", "# -------------------------------\n", "# 2) Scan speciesrepo (FAST; .txt only)\n", "# -------------------------------\n", "species_dir = \"./speciesrepo\"\n", "species_files = list_files(species_dir, allow_all=False)\n", "\n", "subgroup_tokens = defaultdict(int) # subgroup -> total tokens (letters)\n", "file_to_subgroup = {}\n", "\n", "print(f\"Found {len(species_files)} species files in {species_dir}\")\n", "for fp in tqdm(species_files, desc=\"Species files\"):\n", " subgroup = classify_subgroup(base_taxon_key(fp))\n", " n = count_sequence_tokens_fast(fp) # FAST\n", " subgroup_tokens[subgroup] += n\n", " file_to_subgroup[os.path.basename(fp)] = subgroup\n", "\n", "# Summarize by top-level group for Plot 1\n", "top_to_subgroups = defaultdict(lambda: defaultdict(int)) # top -> subgroup -> tokens\n", "for sg, total in subgroup_tokens.items():\n", " top = SUBGROUP_TO_TOP.get(sg, \"Unknown\")\n", " top_to_subgroups[top][sg] += total\n", "\n", "# -------------------------------\n", "# 3) General stacked-bar helper (now supports custom bar order)\n", "# -------------------------------\n", "def stacked_bar_from_nested(nested, title, xlabel, ylabel, bar_order=None):\n", " \"\"\"\n", " nested: dict[top_category] -> dict[subgroup] -> value\n", " bar_order: list of category names (including any new ones like \"Virus\", \"Natural language\")\n", " \"\"\"\n", " if bar_order is None:\n", " # Use insertion order of dict as default\n", " bar_order = list(nested.keys())\n", " # Ensure all requested bars exist (use empty dict if missing)\n", " effective = {g: nested.get(g, {}) for g in bar_order}\n", "\n", " # Collect all subgroups across the effective categories\n", " all_subgroups = []\n", " for g in bar_order:\n", " for sg in effective[g]:\n", " if sg not in all_subgroups:\n", " all_subgroups.append(sg)\n", "\n", " # Build stacked matrix\n", " M = np.zeros((len(bar_order), len(all_subgroups)), dtype=float)\n", " for i, g in enumerate(bar_order):\n", " row = effective[g]\n", " for j, sg in enumerate(all_subgroups):\n", " M[i, j] = row.get(sg, 0.0)\n", "\n", " # Plot\n", " x = np.arange(len(bar_order))\n", " bottom = None\n", " plt.figure(figsize=(10, 5))\n", " for j, sg in enumerate(all_subgroups):\n", " vals = M[:, j]\n", " if bottom is None:\n", " plt.bar(x, vals, label=sg)\n", " bottom = vals\n", " else:\n", " plt.bar(x, vals, bottom=bottom, label=sg)\n", " bottom = bottom + vals\n", " plt.xticks(x, bar_order)\n", " plt.title(title)\n", " plt.xlabel(xlabel)\n", " plt.ylabel(ylabel)\n", " plt.legend(title=\"Subgroup\", bbox_to_anchor=(1.02, 1), loc=\"upper left\")\n", " plt.tight_layout()\n", " plt.show()\n", "\n", "# -------------------------------\n", "# 4) Plot #1 — Plant/Animal/Algae/Unknown from speciesrepo\n", "# -------------------------------\n", "stacked_bar_from_nested(\n", " top_to_subgroups,\n", " title=\"Total letters per group (speciesrepo), stacked by subgroup\",\n", " xlabel=\"High-level group\",\n", " ylabel=\"Total letters (1 letter = 1 token)\",\n", " bar_order=[\"Plant\",\"Animal\",\"Algae\",\"Unknown\"],\n", ")\n", "\n", "# -------------------------------\n", "# 5) Virus + Natural language (allow ALL file types)\n", "# -------------------------------\n", "virus_dirs = [\"./3utrvirus\", \"./stabilitySeqPrediction\", \"./virus\"]\n", "virus_files = []\n", "for d in tqdm(virus_dirs, desc=\"Virus dirs\"):\n", " virus_files.extend(list_files(d, allow_all=True)) # permit all file types\n", "virus_tokens = 0\n", "for fp in tqdm(virus_files, desc=\"Virus files\"):\n", " virus_tokens += count_sequence_tokens_fast(fp) # letters by string length\n", "\n", "nl_dir = \"./pubmedAbstracts\"\n", "nl_files = list_files(nl_dir, allow_all=True) # permit all file types\n", "nl_tokens = 0\n", "print(f\"Found {len(nl_files)} natural-language files in {nl_dir}\")\n", "for fp in tqdm(nl_files, desc=\"PubMed files\"):\n", " nl_tokens += count_natlang_tokens_fast(fp) # words by whitespace\n", "\n", "# -------------------------------\n", "# 6) Plot #2 — 4 bars: Animals, Plants, Virus, Natural language\n", "# (Animals/Plants stacked by subgroups; Virus/NL single blocks)\n", "# -------------------------------\n", "four_bin_nested = OrderedDict()\n", "# Copy stacked subgroups for Animal/Plant from speciesrepo\n", "for top in [\"Animal\", \"Plant\"]:\n", " if top in top_to_subgroups:\n", " four_bin_nested[top] = dict(top_to_subgroups[top])\n", "# Single segments for Virus / Natural language\n", "four_bin_nested[\"Virus\"] = {\"Virus\": virus_tokens}\n", "four_bin_nested[\"Natural language\"] = {\"Natural language\": nl_tokens}\n", "\n", "stacked_bar_from_nested(\n", " four_bin_nested,\n", " title=\"Token totals: Animals / Plants (stacked), Virus, Natural language\",\n", " xlabel=\"Corpus\",\n", " ylabel=\"Total tokens\",\n", " bar_order=[\"Animal\",\"Plant\",\"Virus\",\"Natural language\"], # <- ensures Virus/NL appear\n", ")\n", "\n", "# -------------------------------\n", "# 7) Quick summary prints\n", "# -------------------------------\n", "print(\"\\nTop 10 subgroups by tokens (speciesrepo):\")\n", "for sg, total in sorted(subgroup_tokens.items(), key=lambda x: x[1], reverse=True)[:10]:\n", " print(f\"{sg:20s} {total:,}\")\n", "\n", "print(f\"\\nVirus tokens (letters): {virus_tokens:,}\")\n", "print(f\"Natural language tokens (words): {nl_tokens:,}\")\n" ] }, { "cell_type": "code", "execution_count": null, "id": "85eaf22d-9e31-4312-98bb-dfafa84e87c3", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.3" } }, "nbformat": 4, "nbformat_minor": 5 }