{ "cells": [ { "cell_type": "markdown", "id": "acb28ecd", "metadata": {}, "source": [ "\n", "Contents:\n", "- [Sentence embeddings](#Sentence-embeddings)\n", "- [RAG with Langchain](#RAG-with-Langchain)" ] }, { "cell_type": "markdown", "id": "f175572d-0fc6-4e9d-bc31-041a5b9fb1b6", "metadata": {}, "source": [ "# Sentence embeddings" ] }, { "cell_type": "markdown", "id": "8b865adb-3380-4c7c-8902-6f8b3272efa5", "metadata": {}, "source": [ "Sentence embeddings are numerical representations of sentences in a high-dimensional space. The goal is to capture the semantic meaning of a sentence in a dense vector. Sentences with similar meanings should have embeddings that are close to each other in this vector space.\n", "Why are they useful?\n", "- Semantic Similarity: Calculating how similar two sentences are in meaning.\n", "- Clustering: Grouping similar sentences together.\n", "- Classification: Using embeddings as features for text classification tasks.\n", "- Information Retrieval: Finding sentences relevant to a query.\n", "\n", "To visualize sentence embeddings we first need to install the library which provides easy access to many pre-trained models for generating sentence and text embeddings.\n", "`pip install sentence-transformers`" ] }, { "cell_type": "code", "execution_count": 4, "id": "66c07166-a6c3-4128-8b50-1f257360030b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\ProgramData\\anaconda3\\envs\\ml2025\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n" ] } ], "source": [ "import numpy as np\n", "from sentence_transformers import SentenceTransformer\n", "from sklearn.metrics.pairwise import cosine_similarity\n", "from sklearn.manifold import TSNE\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import pandas as pd\n", "from adjustText import adjust_text" ] }, { "cell_type": "markdown", "id": "53dbb1cc-ffbe-40be-ba47-a753e727c21a", "metadata": {}, "source": [ "For this example, we'll use the `all-MiniLM-L6-v2` model. It's a good general-purpose model that maps sentences to a 384-dimensional dense vector space and is known for its speed and quality.\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "753f9fd1-14ef-486f-8f16-389420ed98ef", "metadata": {}, "outputs": [], "source": [ "model_name = 'all-MiniLM-L6-v2'\n", "model = SentenceTransformer(model_name)" ] }, { "cell_type": "markdown", "id": "40d5d6c5-7c16-4467-84d7-399396e12d68", "metadata": {}, "source": [ "Let's define a list of sentences for which we want to generate embeddings." ] }, { "cell_type": "code", "execution_count": 8, "id": "a57079f9-558d-4790-9cfc-366bab9aa03e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "20" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sentences = [\n", " \"The weather is sunny and warm today.\",\n", " \"It's a beautiful day with clear skies.\",\n", " \"Artificial intelligence is rapidly evolving.\", # 0\n", " \"Machine learning models require large datasets.\", # 1\n", " \"Neural networks are inspired by the human brain.\", # 2\n", " \"The future of tech seems to be in AI.\", # 3\n", " \"The Amazon rainforest is vital for global climate.\", # 4\n", " \"Protecting endangered species is a moral imperative.\", # 5\n", " \"Climate change poses a significant threat to our planet.\", # 6\n", " \"Sustainable practices can help mitigate environmental damage.\", # 7\n", " \"I love trying new recipes on the weekend.\", # 8\n", " \"Fresh ingredients make a big difference in taste.\", # 9\n", " \"Baking bread at home is a rewarding experience.\", # 10\n", " \"What's your favorite type of cuisine?\", # 11\n", " \"Exploring new cultures broadens the mind.\", # 12\n", " \"Mountain hiking offers breathtaking views.\", # 13\n", " \"The beaches in Thailand are stunning.\", # 14\n", " \"I dream of a trip around the world.\", # 15\n", " \"What is the capital of Portugal?\",\n", " \"Lisbon is a famous city in Europe.\"\n", "]\n", "len(sentences)" ] }, { "cell_type": "markdown", "id": "85e516ed-ddc3-4969-b4e7-ddbbb83f2732", "metadata": {}, "source": [ "Now, we can use the loaded model to encode these sentences into embeddings." ] }, { "cell_type": "code", "execution_count": 10, "id": "a6f06ab5-70e5-4d3e-b311-78c57055dd18", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(20, 384)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "embeddings = model.encode(sentences)\n", "embeddings.shape" ] }, { "cell_type": "markdown", "id": "280d1eeb-7309-4d8b-8a9a-6298cfd1082d", "metadata": {}, "source": [ "We see that each of the 20 sentences is represented as 384-dimensional vector. Let's just check the first few entries of one vector, to confirm it is indeed a dense, and not sparse:" ] }, { "cell_type": "code", "execution_count": 12, "id": "8d71586b-8f58-474d-9bd8-2eaad87b8dee", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0.00390334, 0.11435276, 0.11960613, 0.08374904, 0.05256062,\n", " -0.03919066, 0.09141209, -0.10512736, -0.05804419, 0.01511966,\n", " 0.00562378, -0.04090554, -0.00174462, 0.04727564, 0.0993953 ,\n", " 0.02159922, -0.03099075, -0.00087909, -0.03121787, 0.02741316],\n", " dtype=float32)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "embeddings[0][:20]" ] }, { "cell_type": "markdown", "id": "e84581d3-aefe-486e-8cde-b5ca8e3a60d7", "metadata": {}, "source": [ "We can use cosine similarity to measure how similar two sentence embeddings are. A cosine equals to 1 means that the sentences are the same.\n", "Let's calculate similarity between the first two sentences which are semantically similar, and the first and the last, which are less similar:" ] }, { "cell_type": "code", "execution_count": 14, "id": "5d688130-6880-4fba-a856-cc47addc8872", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.5918906]], dtype=float32)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cosine_similarity(\n", " embeddings[0].reshape(1, -1),\n", " embeddings[1].reshape(1, -1)\n", " )" ] }, { "cell_type": "code", "execution_count": 15, "id": "7a316359-9589-4a9e-aa47-519e7ce57d5f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.02293513]], dtype=float32)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cosine_similarity(\n", " embeddings[0].reshape(1, -1),\n", " embeddings[-1].reshape(1, -1)\n", " )" ] }, { "cell_type": "markdown", "id": "91388acb-8e6f-44f1-8b11-561e78d13272", "metadata": {}, "source": [ "We can see that the cosine similarity is close to 0 for the sentences \"The weather is sunny and warm today.\" and \"Lisbon is a famous city in Europe.\", and it is higher for \"The weather is sunny and warm today.\" and \"It's a beautiful day with clear skies.\"\n", "\n", "Now, let's reduce the embeddings to 2 dimensions using t-SNE for visualization purpose." ] }, { "cell_type": "code", "execution_count": 17, "id": "68365eff-83aa-44a6-bbb6-be862e1d2528", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9wAAAPdCAYAAAB4DGC4AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3QmcjeX///ELwxjGPtaE7FIh2UlFlBZtEi1EKy1aJKVUiiRRfUtpoRRtlqJki4gsWUqyZt+XbKMxDPf/8br63+d3nzPnzJwZc8wM7+fjcWrOdt/Xfd3XOc7nuj7XdedwHMcxIiIiIiIiIpKhcmbs5kREREREREQECrhFREREREREIkABt4iIiIiIiEgEKOAWERERERERiQAF3CIiIiIiIiIRoIBbREREREREJAIUcIuIiIiIiIhEgAJuERERERERkQhQwC0iIiIiIiISAQq4RSTLWrJkienSpYupXLmyiYmJMfny5TPly5c3TZo0MU8++aSZNm1asvdUqFDB5MiRw96++eabkNtu2bKlfc3IkSP9Hue++/6UbuwnNYcPHzaxsbH29T/++GNYx1y7dm37+tdee83ef+GFF+x9/p+duOdh48aNfo937tw5aL1nFbNmzbLlu+yyy8yZaNu2bebOO+80ZcqUMVFRUfZYOSfhSExMNG+99Za59NJLTdGiRU3u3LlNXFycqVGjhrn11lvNm2++afbs2RPxY5C04TMYzndasM9rJGS17wA+65SHz35GHEd2/c4WkciJiuC2ReQsRbC1adMms2HDhrAC02Defvtt06NHD3Py5ElzzjnnmMsvv9wUKVLE/qAnEJ83b579gXTllVeG3Mazzz5rbrjhBhtYpFX+/PnNLbfcEvJ5Ao3UFChQwLRr187+IPv444/NVVddleLrFy9ebH7//Xdb3rvuuivNZZbU8UMYjuOYsw3HfNNNN5mFCxea888/336mCJqbNm2a6nt37dplP2vLly83uXLlMvXr1zfnnnuu/XyuWbPGjB071nz99demUqVK5tprrzWZhSDok08+MSNGjAi7I+FscvPNN9tOwFBSek5ERNJHAbeIZDl//PGHL9geMmSIefjhh+2PfBeP//LLL/YWCqPhBAIffviheeCBB9JcBgLqjBiB6dq1q93Od999Z/755x87MhgKQTmuueYaU6pUKfv3Qw89ZG677bawAvzsYMCAAebpp582pUuXNlkRgeTKlStt+znT0AlGsF2uXDlfx064aIcE2zVr1jTff/+9zTTx2r17txkzZowpWbJkBEouGeX1119PdyeohOdM+84WkVOnlHIRyXIYKSOobtSokQ28vcE2cubMadNan3nmmZDbePTRR+3/X3rpJfPvv/+azMLoYbVq1Ww67ueffx7ydTxPwALS6F38aKtevfoZ8+ONQJvjKVSokMmKCLQpH0HpmWbz5s32/+edd16agu2jR4+ab7/91v79xhtvJAu2UaJECfuZq1evXgaWWCT7OdO+s0Xk1CngFpEM485/ZiTN/WHvnR8Y7hw50lfdH/Hp1aZNG9O8eXOzY8cOO0qemRjl9o5gBzN+/Hizf/9+O7JN2cOZD0jHBHPRixUrZlOD+T+pwvfee6/NEghnTnVq8xFJ4WfeLmXifDKXvmDBguaSSy4xAwcOtMFYWgTbjztvOrWbt/3Qxtj/FVdcYYPj6OhoU7hwYdvB8f7779sOGy+3Hl2h5q6mNod71apV5u6777ZBJ/skY6FFixbmq6++Cvp67/mjLrt3725TsfPkyWP/T/bGgQMHTHowWs3caeZjsz0+L9ddd12ytQ3cObx8HvDzzz+nad4umRnHjx8/pc8k0yVuv/1237mi3lq3bm1++OGHoK/3tteZM2eaVq1a2SkltL+LL77YfPrpp0GPkXRycI68xxj4+UlISDCDBw82DRs2tO0mb968tmPsqaeeMvv27Qv53Ub7PXLkiOndu7ddW4Jj4TPbqVMnOz8+FJ7r2bOnufDCC+1UE6asVK1a1W6P6TGB0lq+SPB+FugQfPHFF22ZKQvnsVevXr7P/8GDB+26GhUrVrTPc/6o86SkpBT3QaYF0xyKFy9uz+1FF11k1wI4ceJEhrUlbNmyxXZk0uFH+apUqWKnHFHPqbV9On3dzzv7ZASbx0MJ9Z19qm2ITq9mzZrZ9kOHJZ9nsk3cth8sc4G6at++vSlbtqz9juC7m3PE1AK3E01EIk8p5SKSYfjxwI8GFivjB0XgfEE3TTo17ujijBkzzJ9//mkuuOCCdJWHgIwfrCxARlo5AWlmYD42o/HLli0zS5cuNXXq1En2GjcYp/7CGX1k5L5v3772tY0bN7bz3PnRyyjmRx99ZFN/+fF6qqZMmWJHLtk+55f6JHBcsGCBTQ3nRxsBET8a08v9sRkMxzRhwgT7tzfTYdSoUea5556znQAEASykR+fKr7/+aubOnWumTp1q26EbZLMYHftwA7LA/YUzd5Uft8zrJ8gg+CFQIJWaAPann36ydUXdh/rBT6BI4EpZ2Qbl/N///mfrkr/pNAnXBx98YNs0HQu0J4IiOiEmTZpkb/zYp324x8bx7ty505aRtG/vegKpHTsjdYz8kynC2grsmyyTcBFAPf7447asnIcGDRrYshDQcZ4I5J5//vmg7+Vz8fLLL9u6o8wEF/Pnz7fH4wZD3mNkmsnff/9t65j26mK/ru3bt9ttkSJPsMaoPEEMa0MMGjTIdmRRtmAj+bRHPm98zgh++G6izdEBQDsggAzM3uB7jHZDxwodFnTQEPxwLKNHj7avYZsZUb5IOHbsmA1o+e6indH258yZY79X//rrL/uZovycDzKPCGZnz55tzyudp8OGDQvZYfTggw/azz91Qocjx8U55TzSieXtJEtvW6KTjOCUzyoB9/XXX2//faIjlu+uUCg753jt2rW2s4e1CdgvmUosgsl3bHqkpw1R13RwgGMmaF63bp0tE50wwdDurr76avudU6tWLZsxRkcGQT3fZfzdtm3bdB2DiKSRIyKSwcqXL8+KVM6GDRvS9f7Nmzc7BQoUsNuIiopy2rRp4wwcONCZNm2ac+DAgbD2PWfOHHv/pptusvcfe+wxv9e1aNHCPj5ixAi/x7nP42wnI91www12uw8//HDQ482ZM6d9fvXq1X7P9e3b1z7O/11Hjx51YmJinNjYWGfVqlXJtrdx40Zn5cqVaTonnTp1Cloff/31l/Prr78me/0///zjtGrVyr7ntddeS/Z8qP2F2k8wiYmJzuWXX25ff+uttzonT570Pbdw4UJn+fLlyd6zbds2p1atWvY9X331VbLneTylf/pmzpxpn2/evLnf4zt37nQKFSpkn3v55Zf9yrJo0SKnSJEi9rnhw4cHPX/cOnfubM+d97yfc8459rnRo0c74frjjz/s5yJHjhzOp59+6vfcDz/84OTJk8duc+rUqWEdWzgeffRR33FUqFDBtuNRo0Y5K1as8KuLQD/++KMtZ1xcnPPzzz8nO46yZcvabc6aNSto+8mdO7czceLEoJ9Rzse///6bpvZFWZs0aWJf07VrV+fQoUO+544fP+488cQT9jnaXbB9cmvdurVz8OBB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vh+pX7Z99dVX2/PM51pETo8c/Cezg34REREREUkbsra4MgXTsMjsEJGsR3O4RURERESyKKYLeRfBdJHSzuW9mEbUqVOnTCmbiKROc7hFRERERLIo1o9gsUbWjWBdAhbfY70KbmDNBuZ6i0jWpIBbRERERCSL4vJyjHLPnz/fruTO9bRZuI2F5Fg8M6XLKIpI5tMcbhEREREREZEI0BxuERERERERkQhQSrkH1xHlGoVcl5UFKERERERERES8SBI/fPiwKVOmjMmZM+UxbAXcHgTbLEYhIiIiIiIikpItW7aYsmXLpvgaBdwejGy7FVewYMHMLo6IiIiIiIhkMYcOHbIDtW78mBIF3B5uGjnBtgJuERERERERCSWcachaNE1EREREREQkAhRwi4iIiIiIiESAAm4RERERERGRCFDALSIiIiIiIhIBCrhFREREREREIkABt4iIiIiIiEgEKOAWERERERERiQAF3CIiIiIiIiIRoIBbREREREREJAIUcIuIiIiIiIhEgAJuERERERERkQhQwC0iIiIiIiISAQq4RURERERERCJAAbeIiIiIiIhIBCjgFhEREREREYkABdwiIiIiIiIiEaCAW0RERERERCQCsm3A/eqrr5ocOXKYHj16+B47evSo6d69uylWrJiJjY01N998s9m1a1emllNERERERETOTtky4F60aJF5//33zUUXXeT3+GOPPWYmTpxovv76a/Pzzz+b7du3m5tuuinTyikiIiIiIiJnr2wXcMfHx5vbb7/dfPDBB6ZIkSK+xw8ePGg++ugj88Ybb5grrrjC1K1b14wYMcLMmzfPzJ8/P1PLLCIiIiIiImefbBdwkzJ+zTXXmJYtW/o9vnjxYnP8+HG/x6tXr27KlStnfv3116DbSkxMNIcOHfK7iYiIiIiIiJx1AfcXX3xhlixZYgYMGJDsuZ07d5o8efKYwoUL+z1esmRJ+1wwbKdQoUK+27nnnhuxsouIyJmDNUQmTJiQ4a/NSC+88IKpXbv2ad3nqlWrTMOGDU3evHlP+74zW+fOnc0NN9yQbbYrIiKnR7YJuLds2WIeffRR8/nnn9t/yDNC7969bSq6e2MfIiIiqQU5O3bsMFdffbXJyp588kkzY8aM07rPvn37mvz585vVq1ef9n1ntjfffNOMHDnSd/+yyy7zW9g1o7ab3s4XOn4Cb2QCiohIZEWZbIKU8d27d5uLL77Y99iJEyfM7Nmzzf/+9z8zZcoUc+zYMXPgwAG/UW5WKS9VqlTQbUZHR9ubiIhIWoT6dyUr4Wod3E6nv//+2077Kl++vDnbkCmXlbdbs2ZNM336dL/HoqJO7WcgU/ly5859iiUTETmzZZsR7hYtWpjly5ebZcuW+W6XXHKJXUDN/ZsvfW+POj3smzdvNo0aNcrUsouIyJnFmyZOZ+9DDz1kSpcubTOwCDYDpz65I+IxMTGmYsWK5ptvvvF7nn/fWPCT57m05X333WcXCQ0ccX/99dftfngNa5oQ8ISbUj5r1ixTv359OwJNx3STJk3Mpk2bQr6/V69epmrVqiZfvny2zM8991yK+6NO6Bx/6aWX7N/sP5ztuOX8+OOP7bordBJ069bNdqq/9tprtnOjRIkS5pVXXvHbH/++t23b1r6+YMGC5tZbb/W7FGiwLAVGnBl5dnEeLrzwQl+9sw7MkSNHQh7jihUrzLXXXmv3V6BAAdOsWTPbyRC4P/7maimMTrujyRs2bDCVK1e259CL3zA8v27duqD7DDwOyv/II4+Yp556yhQtWtTWj1vXKSG45rXeW1xcXIpTH2gn7uj6xo0b7Wu+/PJL07x5c9vWyTo8efKkPedly5a1gxicyx9//NG3Dfd9TAts3Lixfd8FF1xg68frzz//tJ8RzifTAe+8806zd+/eVI9LRCSryzYBN/+w8QXtvfGjgX8g+Zse4K5du5rHH3/czJw50/6jf/fdd9tgm/lkIiIikfDWW2+Z7777znz11Ve2o5cgpEKFCn6vIci8+eabze+//247im+77TazcuVK+xwBXuvWre2VN7jsJZe2ZCSSIN6Lf9sI7vj/J598YgOhcFONk5KSbNBGoPTHH3/YxUQJ6gmEUvp3l+3/9ddfNnDk6iBDhgwJ+Xo6FRhFfeKJJ+zfpLSHux2Oa/LkyTZQGzNmjL3qCCPlW7dutYHZwIEDTZ8+fcyCBQvs6wnyCLb/+ecf+/y0adPM+vXrTfv27cOqD7e8HTp0MF26dLHngg4JLiXqOE7Q12/bts1ceumlNqj86aef7O8M3kvdBuI4+f1x77332v1wozOB13MFFS/us12C8XBx/vkNRH3QKUHASx2cDk8//bSd4ked0W451sGDB9uOBNoWj11//fVm7dq1fu/r2bOnbRtLly61dXPdddeZffv22efITqTDqU6dOua3336z7YDOEzpRRESyPScba968ufPoo4/67ickJDjdunVzihQp4uTLl8+58cYbnR07doS9vYMHD/KvrP2/iIicvTp16uS0bds25PP8WzF+/Hj798MPP+xcccUVzsmTJ0O+9oEHHvB7rEGDBs6DDz5o/x4+fLj9dys+Pt73/Pfff+/kzJnT2blzp6885cuXd5KSknyvadeundO+ffuQZezbt69Tq1Yt+/e+fftsOWbNmuWk16BBg5y6deum+Br2x37Tsh1ez7/Zhw4d8j3WunVrp0KFCs6JEyd8j1WrVs0ZMGCA/Xvq1KlOrly5nM2bN/ueX7FihT3GhQsXhjyH/GbgtwMWL15sX79x48awjr93797Oeeed5xw7dizo84H7C/yNgm3bttlyL1iwwN5nW3Fxcc7IkSND7jfYdps2ber3mnr16jm9evUKuQ3qmPaUP39+v9v9998ftE27ChUq5IwYMcL+vWHDBvuaoUOH+r2mTJkyziuvvJKsPPwe877v1Vdf9T1//Phxp2zZss7AgQPt/X79+jmtWrXy28aWLVvs+1avXh3yuEREMkta4sZsM4c7GHqjvUhTeuedd+xNRETkdCDl98orrzTVqlUzV111lU05btWqld9rAqc2cZ9UYjBSWKtWLTti6SLdm1FcRsxJrwWjx7ly5fK9htRyUtHDQeox5WT0kbKSOs3oIdsIhdRhRu8ZfSa9nZFcUqnTKpztkBHASLiLY+ZYc+bM6fcYa7m4dcaVRbxXFzn//PNtCjTP1atXL9VyUedMVyOlnHrhnN1yyy020yAYzhcp5KcyZ7lMmTJ25J70edL7J06caC9R2q5duzRt56KLLvK7z3l06yYU2ieZGF7pOZ9M4XNxOdXt27fb9urFfbI5Qn0GSG9nO26WB68lcyPYmgO0G6YkiIhkV9kmpVxERCQrYjFP5uf269fPJCQk2ECWwC2jBQZ6pIMTlIeL1GVSyZlHSxBMEDN//vygr+V1pL63adPGTJo0yaYBP/vss3a+elqEu51gx3aqx0uwHpge7p07TkBPGjap7ATrb7/9tg1KOZfBMM87I9xzzz12PjNthXNCGjzz29MiPXXDpVNJW/femBvv3UZK9eXydgxlFDpiSDH3rtPDjbR00u1FRLIzBdwiIiKniJFCAifmJxPMjh071s4vdgUGttyvUaOG/Zv/M8LnXaxr7ty5NmAkAMxIzJHlkpjz5s2z65+MHj066Ot4nsXfCI4ZiaxSpUqKC6yFklHbCUSdcSlP7+U8mSPOXGCCZxQvXtzOnfZyswq8QSajsS+++KLtDCAoHT9+fMhR5Tlz5qS4cJwX22Lht0B0PhC0Dhs2zM5VZl53VhBYXwS7//77b6rtnlF72qsX993zEOwzQJYDc+DdzwCdVixIR6ZDYKdAJAJ8EZHTSQG3iIhIEAcPHkw24uYN8FxvvPGGXehr1apVZs2aNXbRM1aA9l6iksdII+Z5rlW9cOFC36JojAAzJapTp052pWZSax9++GG7SrObTn6qGLUl0GbEmYB36tSpNqByA55ABMasAs5ILCm9pISHCkRTklHbCURKPKng1N2SJUtsfd511112UTg35ZlFuFiA69NPP7XHSr1Tvy4WHOvfv799DWUcN26c2bNnT8g64XyRQs2Cd7yHbY4aNcqm/QdD8Mg+WKWb1bbdEWhG1knv53xQP6frSioEuTt37vS7eVd1p764zCodDxzfAw88EFb6PIuhsagdHU3UBYuq8VlhYTUvpvtx7vmcsML+/v37fZ0N3KeDikXsWDiQtsLlXln81u20oGxMARARyW4UcIuISLaTcCzJ7Dmc6LtxPxLrhDAi7L0xEhqIucesFE2gx9xhAqwffvjBb/4x7yPoZJSUAJAA3R0BJJ2Y4IKAg/eTjk5gQYCRUdgHgQ4rpZNKzgrlBDn3339/0NezyvRjjz1mg0wu88RINSutp1VGbScQI9PffvutnW9NyjEBOJccI+hzMS+bfXH5LOr18OHDNij3js7Onj3bjjhTJ6yCzmrbXJoqGK6KwurkpD8T2NetW9dmNIQKSlmlneCa88zoMUG9i6uqkFZPQHm6MILMXG/vzXu9dI6dOfHMU+/YsaMtfzip7lyijCvEsAI5nSCM2jNXnM4Er1dffdXemDv/yy+/2Ne4lyVzR8kJrplLz3a4hBudVu7niE4L9xJsIiLZSQ5WTsvsQmQV9FxzeTFGNdKzkIiIiETWoYTjZsfBBDNn7V6zdle8OZZ0wuSJymWqlIw1zarEmdKFYkzBmPQvaiVyOpCaTqcKGRMZlcWQVdEBdd5559mRc+914UVEzpa4MVuvUi4iImePfUcSzcRl283cdXvNSb+u4iSzNz7RLFi/zzSpHGeur13GFM0fnXkFFQmBFclJW3/hhRfsyuRnerAtIiJKKRcRkWwysk2wzci2f7D9f3ic5yf+vt2+XiSrYSoBadws7sY0BBEROfMppdxDKeUiIlnTqp2HzOApq0MG2145cxjzZOtqplopfY+LiIhI5saNGuEWEZEsjQXR5qwJPbIdaqQ7EgupiYiIiKSFAm4REcnS4hNPmHW749P0Hl7P+0REREQykwJuERHJ8liNPC0S7es1Y0pEREQylwJuERHJ8rj0V1pE29fniFh5RERERMKhgFtERLK02Oj/rrOdFpVLxNr3iYiIiGQmBdwiIpKlxeSJMk2rxNnVx8PB65pVibPvExEREclMCrhFRCTLK1MoxjSpHBfWa5tWKW5KF4qJeJlEREREUqPufxERyfIKxuQ219cuY3LkMOaXtcEvEcbINiPh19UqbV8vIiIiktkUcIuISLZQNH+0ubFOWdOwYjF7nW0u/cVq5CyQxpxt0sgZ2VawLSIiIlmFAm4REck2CKa5lSua7/9fZ5uh7hx2gTTN2RYREZGsRr9OREQk2yG4VoAtIiIiWZ0WTRMRERERERGJAAXcIiIiIiIiIhGggFtEREREREQkAhRwi4iIiIiIiESAAm4RERERERGRCFDALSIiIiIiIhIBCrhFREREREREIkABt4iIiIiIiEgEKOAWERERERERiQAF3CIiIiIiIiIRoIBbREREREREJAIUcIuIiIiIiIhEgAJuEZGzRI4cOcyECRNOy74uu+wy06NHjwzdZoUKFczQoUNNdrNx40Zb98uWLcsS26ENVK5c2eTKlSvDz1FWllH1JyIikhYKuEVEspH33nvPFChQwCQlJfkei4+PN7lz57ZBrtesWbNsgPH3339n2P47d+5sbrjhhlRfN27cONOvX7907WPkyJGmcOHC5kxx7rnnmh07dpgLLrjA77wcOHAgU8pz//33m1tuucVs2bIl5Dmic4MycsufP7+5+OKLzddff31GdZr88ccf5sYbbzQlSpSw7Y062bt3b2YXS0REzjAKuEVEspHLL7/cBti//fab77E5c+aYUqVKmQULFpijR4/6Hp85c6YpV66cqVSp0mkvZ9GiRW3HgBg7ksz5iYqKyuyi2Laze/du07p1a1OmTJkUz9FLL71kOwqWLl1q6tWrZ9q3b2/mzZuXrv0eO3bMZDV8bpo0aWI/J1OmTDHLly83PXv2zOxiiYjIGUYBt4hINlKtWjVTunRpO0rq4u+2bdua8847z8yfP9/vcQJ0L0bwGNXLly+fqVKlivnuu+98z504ccJ07drVbicmJsbu68033/Q9/8ILL5hPPvnEfPvtt77RT285Ukopf/fdd+3+8ubNa0qWLGlHE4Nhe3fffbc5ePCgbx/s1/Xvv/+aLl262ECRzoThw4f7vZ9R21tvvdWOWBL0Uy+kEqdkxYoV5tprrzUFCxa0223WrJkvK2DRokXmyiuvNHFxcaZQoUKmefPmZsmSJX7vp4zDhg0zV199ta23ihUrmm+++SZoKjN/u+ekSJEi9nGyBvDjjz+apk2b2rIXK1bMlimt2Qn79+83d911l90255gyrV271le3boB9xRVXpHj+wGvpKKhatap555137LFNnDjRPkdwyjZ4jLLed999NpgPzIR45ZVXbGBPW6JNbNq0yTz22GO+cwvOb+3atf32zSg4o+EuMjoeeeQRX9306tXLdOrUyS/bIq311717d/Pkk0+amjVrmgYNGthOCNqPiIhIRlLALSKSzRCwMSrn4m+CGYJB9/GEhAQ74h0YcL/44os2ICWdtk2bNub22283//zzj33u5MmTpmzZsjZ1+K+//jLPP/+8eeaZZ8xXX31lnyc44b1XXXWVHfnk1rhx41TLy2g8wRIjpqtXr7aB0aWXXhr0tWyPYIvg190H+3UNHjzYXHLJJXbUtVu3bubBBx+028Tx48dt0ESgyOjl3LlzTWxsrC1vqBHWbdu22bJER0ebn376ySxevNgG9G7K/uHDh21g98svv9jODDoNqDce93ruuefMzTffbH7//Xdbp7fddptZuXJl0PTysWPH2r8pN8fndmocOXLEPP7447a+ZsyYYXLmzGk7Rzgv4SLQ5f10pPz666/GcRxbXuqGunXrijKEe/7A6DzTFqhHykk9E9TTIUF7mT59unnooYf83sMxsL9p06aZSZMm2WkGtC935JxbuAYOHGg+//xzM2LECHteDx06lGw9glOpP87bp59+as+9iIhIhnLE5+DBgw5Vwv9FRLKqDz74wMmfP79z/Phx59ChQ05UVJSze/duZ/To0c6ll15qXzNjxgz7fbZp0ybf+7jfp08f3/34+Hj72OTJk0Puq3v37s7NN9/su9+pUyenbdu2qZaxefPmzqOP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OXMp4BYRyQCsRp4Wifb1SkUWEREROZMp4BYRyQBc+istou3rc0SsPCIiIiKS+RRwi4icotjo/66znRaVS8Ta94mIiIjImUsBt4jIKYrJE2WaVokzOcMcsOZ1zarE2feJiIiIyJlLAbeISAYoUyjGNKkcF9Zrm1YpbkoXiol4mUREREQkc2l4RUQkA3BN7etrlzE5cvx3ne1glwhjZJuR8OtqldY1uEVERETOAgq4RUQySNH80ebGOmVNw4rF7HW2ufQXq5GzQBpztkkjZ2RbwbaIiIjI2UEBt4hIBiKY5lauaL7/f51thrpz2AXSNGdbRERE5OyiX38iIhFAcK0AW0REROTspkXTRERERERERCJAAbeIiIiIiIhIBCjgFhEREREREYkABdwiIiIiIiIiEaCAW0RERERERCQCFHCLiIiIiIiIRIACbhEREREREZEIUMAtIiIiIiIiEgEKuEVEREREREQiQAG3iIiIiIiISAQo4BYRERERERGJAAXcIiIiIiIiIhGggFtEREREREQkAhRwi4iIiIiIiESAAm4RERERERGRCFDALSIiIiIiIhIBCrhFREREREREIkABt4iIiIiIiEgEKOAWERERERERiQAF3CIiIiIiIiIRoIBbREREREREJAIUcIuIiIiIiIhEgAJuEREREZEU5MiRw0yYMCGzi5HlrVq1yjRs2NDkzZvX1K5dO7OLo/P2/zmOY+677z5TtGhRWyfLli3L9PrOcRadGwXcIiIiInLGe++990yBAgVMUlKS77H4+HiTO3duc9lll/m9dtasWTYg+PvvvzNs/507dzY33HBDssfZz8aNG82ZoG/fviZ//vxm9erVZsaMGZldHLNjxw5z9dVX27+p44wKNmkvPXr0MNnFjz/+aEaOHGkmTZpk6+SCCy6IeH1n5GvDcfToUdO7d29TuXJlky9fPlOrVi0zbdo0kxUo4BYRERGRM97ll19uA+zffvvN99icOXNMqVKlzIIFC+wPdtfMmTNNuXLlTKVKlTKptFl7tNTbaeFFB0XTpk1N+fLlTbFixUxmOXbsmP0/5zY6Otqc7TgvpUuXNo0bN7Z1EhUVFZH9pKW+S2Xwudm9e7fZsmWL+fjjj83y5ctNo0aNzI033miOHDliMpsCbhERERE541WrVs0GHYxeu/i7bdu25rzzzjPz58/3e5wA3Wvv3r32BzyjZ1WqVDHfffed77kTJ06Yrl272u3ExMTYfb355pu+51944QXzySefmG+//daOsnLzlsO1f/9+c/vtt5vixYvb7bCfESNGBD2eTz/91Aa1iYmJfo8zin7nnXf67g8bNsx2HOTJk8eWa9SoUb7ngo36HjhwwK987mj/5MmTTd26dW2Q9MsvvyQrD69ZvHixeemll+zfHDN69eplqlatauutYsWK5rnnnjPHjx+3z61Zs8a+llR0ryFDhvh1dvz888+mfv36dt+cw6efftov6GfE+aGHHrKjznFxcaZ169bJ0pY5N6hTp4593JvV8OGHH5oaNWrYVPjq1aubd99916SUqUB5OL/uudywYYMdWX399df9Xku98vy6det85eF8MLLL+aU+vvnmG7/3EDTeeuutpnDhwjYFnPaZWgZESvVDeR9++GGzefNmu/8KFSqE3M7cuXNtvXCuihQpYuuRNgneN3ToUL/XM23APc+B9U2nB+ekdOnStl7phBkwYEDQ17rtcNy4cfZz545Q//rrr377o901a9bM1t25555rHnnkEV9ATQfZZ599Zi699FLbdkih5zm3/JnKEZ+DBw86VAn/FxEREZEzS8eOHZ1WrVr57terV8/5+uuvnQceeMB5/vnn7WP//vuvEx0d7YwcOdL3On4fli1b1hk9erSzdu1a55FHHnFiY2Odffv22eePHTtm379o0SJn/fr1zmeffebky5fP+fLLL+3zhw8fdm699Vbnqquucnbs2GFviYmJvm1v2LDB/t29e3endu3adjs8Nm3aNOe7774LeiyUs1ChQs5XX33le2zXrl1OVFSU89NPP9n748aNc3Lnzu288847zurVq53Bgwc7uXLl8j3PPtj/0qVLfdvYv3+/fWzmzJn2Pv/n/kUXXeRMnTrVWbdune+4vTimmjVrOk888YT9m2NGv379nLlz59p9cSwlS5Z0Bg4c6HvfJZdc4vTp08dvW3Xr1vU9tnXrVluX3bp1c1auXOmMHz/eiYuLc/r27et7ffPmze356Nmzp7Nq1Sp7c+uW12PhwoX2/vTp02353GPgXJUuXdoZO3asPXf8v2jRon7n3+vAgQNOo0aNnHvvvdd3LpOSkpxXXnnFOf/88/1eSzu59NJL/dpRsWLFnA8++MCeD46R8/HXX3/52lGNGjWcLl26OH/88Yd9nDZbrVo1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FhERERERkUxRNH+0ubFOWdOwYjF7nW0u/cVq5CyQxpxt0sgZ2c6OwTYUcIuIiIiIiEimKRiT297KFc1nr7P936W/ctgF0rLbnO1A2bv0IiIiIiIickaIyROV7QPsQFo0TURERERERCQCFHCLiIiIiIiIRIACbhEREREREZEIUMAtIiIiIiIiEgEKuEVEREREREQiQAG3iIiIiIiISAQo4BYRERERERGJAAXcIiIiIiIiIhGggFtEREREREQkAhRwi4iIiIiIiESAAm4RERERERGRCFDALSIiIiIiIhIBCrhFREREREREIkABt4iIiIiIiEgEKOAWEREROQt17tzZ3HDDDWl6zwsvvGBq165tsrIcOXKYCRMm2L83btxo7y9btsycLSpUqGCGDh2aqWUYOXKkKVy4cKa0pcB9B9sPj5UsWdKvrQR77EySFdrF2UoBt4iIiEgWCYD5sR94W7dunckqnnzySTNjxgyTXZx77rlmx44d5oILLsjQ7Z6pQdmZ2JYC97Ny5Urz4osvmvfff9+2jauvvjroY2eaRYsWmfvuuy/LBe2d09Hxl91EZXYBREREROQ/V111lRkxYoTfY8WLF0/2umPHjpk8efKY0y02NtbeIu348eMmd+7cp7ydXLlymVKlSmVImSR7tqXA/fz999/2/23btrUdJ6Eey8x2GwnBvkfk9NAIt4iIiEgWER0dbQNE742g8bLLLjMPPfSQ6dGjh4mLizOtW7e2r//zzz/taBwBBemwd955p9m7d69ve99884258MILTUxMjClWrJhp2bKlOXLkiN8+X3/9dVO6dGn7fPfu3W3QEEpgeq47OpXSNhgxvOaaa2wZzjvvPDN69OhkI2UEOcOGDTPXX3+9yZ8/v3nllVfs499++625+OKLTd68eU3FihXtKGRSUpLvfWvXrjWXXnqpff78888306ZN8ytvsJTy1OqMun7kkUfMU089ZYoWLWrPAcftouy48cYb7bbd+7///ru5/PLLTYECBUzBggVN3bp1zW+//RayLnkvI6rXXnutyZcvn6lRo4b59ddfbUYDZaAeGjdu7AsGwd8EhZSb8terV89Mnz7dpOTDDz+0KdbuKG9qxx9o3759pkOHDuacc86x5aQ9jRkzxoSDLIAqVarY80Ob3bJlS8i2xHml3ikr7ahXr16mU6dOqY5+kkJerlw5WzbOCeX18u6Hv6+77jr7d86cOe05CPaYt+44L5S/evXq5t13303Wtr788kvTvHlz+5rPP/887PeNGzfOthfKXatWLXvuvebOnWvbAc8XKVLE1t/+/fvtcydPnjQDBgywnyc+V7yfz3pKgn3mKCd1xj44T999913I91OWTZs2mccee8yXfRNu+/gmxPcQdf/JJ5/Yz7m7zVmzZtn30FZuvfVW2x74HNLuqbtsyRGfgwcPOlQJ/xcRERE5nTp16uS0bds26HPNmzd3YmNjnZ49ezqrVq2yt/379zvFixd3evfu7axcudJZsmSJc+WVVzqXX365fc/27dudqKgo54033nA2bNjg/PHHH84777zjHD582Le/ggULOg888IB9/8SJE518+fI5w4cPD1nGvn37OrVq1fIrc2rbaNmypVO7dm1n/vz5zuLFi+2xxMTEOEOGDPG9ht9fJUqUcD7++GPn77//djZt2uTMnj3bbnvkyJH2salTpzoVKlRwXnjhBfueEydOOBdccIHTokULZ9myZc7PP//s1KlTx25r/Pjx9jUcN/eXLl1q76dWZ25ds1/2s2bNGueTTz5xcuTIYfeP3bt3222OGDHC2bFjh72PmjVrOnfccYfdLu/76quvbLlCYRvnnHOO8+WXXzqrV692brjhBnt8V1xxhfPjjz86f/31l9OwYUPnqquu8r2H7b333nvO8uXL7T769Onj5M2b19aXq3z58r66HThwoFOsWDFnwYIFYR9/oK1btzqDBg2ydch5eOutt5xcuXL5thkMdZM7d27nkksucebNm+f89ttvTv369Z3GjRuHbEsvv/yyU7RoUWfcuHG2bLQpzkOozwRoUzlz5rTHSR2++eabTuHChZ1ChQoF3Q9tn7JR95w7bsEew2effeaULl3aGTt2rLN+/Xr7f8pHe/S2Lc6Z+xo+c+G+r3r16s6kSZNsuW+55RZ73o4fP25fQ11HR0c7Dz74oD3nf/75p/P22287e/bs8dUV76edcE4oP6+fNWtWyLrytgtQhrJlyzqjR4921q5d6zzyyCP2O2bfvn1B38/jvP6ll17yq6fU2sf2FL6HuN166622jbvbTExMdI4dO+bUqFHD6dKli309n4WOHTs61apVs89nt7hRAbeHAm4RERHJLASv/FDNnz+/78YPcTcIJJj06tevn9OqVSu/x7Zs2WJ/y/Aj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29QHHRFuVkK/fv3Mc889ZwN7AlcyGTjPadlHerz00ks2o4K1CdzU7tTaR8FUvof4PiAThrnwbJP2SdvhPVzujSklHCPz4pnD7Y54M++fID07yMHKaZldiKyCBSlIaeEEngnpCyIiIiJZDSNUBKpcP5rFlESCYeSeQIvOCwJM16GE42bHwQQzZ+1es3ZXvDmWdMLkicplqpSMNc2qxJnShWJMwRj/uckimRk3ag63iIiIiETMTz/9ZOcaM9rHfOunnnrKppG6c3VFQCo+o7qMCJO18M4779hUYkbIXfuOJJqJy7abuev2mpN+Q4ZJZm98olmwfp9pUjnOXF+7jCmaP20LiIlEigJuEREREYkY5mQ+88wzdiEpUslJh2b14cAVkuXsRko7qdfMT2Z0m4XwmJPPpbaYy50rb6wNthnZDoUgnOeZ9n1jnbIa6ZYsQSnlHkopFxERERHJGpizyyg3K9tv373PrDtoTELeOHM0b1Hj5AwdTOfMYcyTrauZaqX0e14yP27UomkiIiIiIpLlsGAa87hbtr7a5KjczBwqUMHkOpFgChxKfim0YCPdLKwmktmUUi4iIiIiIllWfOIJ8/eeIyYpd34Tnzt/WO9Ztzvevi8mj8IdyVwa4RYRERERkSyN1cjTItG+XjNnJfMp4BYRERERkSyNS3+lRbR9fY6IlUckXAq4RUREREQky4qN/u8622lRuUSsfZ9IZlPALSIiIiIiWRbzsJtWibOrj4eD1zWrEqf525IlKOAWEREREZEsrUyhGNOkclxYr21apbgpXSgm4mUSCYe6fUREREREJEsrGJPbXF+7jMmRw5hf1u61l/4KNrLNSPh1tUrb14tkBQq4RUREREQkyyuaP9rcWKesaVixmL3ONpf+YjVyFkhjzjZp5IxsK9iWrEQBt4iIiIiIZAsE09zKFc1nr7P936W/ctgF0jRnW7IitUoREREREclWCK4VYEt2oEXTRERERERERCJAAbeIiIiIiIhIBCjgFhEREREREYkABdwiIiIiIiIiEaCAW0RERERERCQCFHCLiIiIiIiIRIACbhEREREREZEIUMAtIiIiIiIiEgEKuEVEREREREQiQAG3iIiIiIiISAQo4BYRERERERGJAAXcIiIiIiIiIhGggFtEREREREQkAhRwi4iIiIiIiESAAm4RERERERGRCFDALSIiIiIiIhIBCrhFREREREREIkABt4iIiIiIiEgEKOAWERERERERiQAF3CIiIiIiIiIRoIBbREREREREJAIUcIuIiIiIiIhEgAJuERERERERkQhQwC0iIiIiIiISAQq4RURERERERCJAAbeIiIiIiIhIBCjgFhEREREREYkABdwiIiIiIiIiEaCAW0RERERERCQCFHCLiIiIiIiIRIACbhEREREREZGzOeAeMGCAqVevnilQoIApUaKEueGGG8zq1av9XnP06FHTvXt3U6xYMRMbG2tuvvlms2vXrkwrs4iIiIiIiJy9sk3A/fPPP9tgev78+WbatGnm+PHjplWrVubIkSO+1zz22GNm4sSJ5uuvv7av3759u7npppsytdwiIiIiIiJydsrhOI5jsqE9e/bYkW4C60svvdQcPHjQFC9e3IwePdrccsst9jWrVq0yNWrUML/++qtp2LBhsm0kJibam+vQoUPm3HPPtdsqWLDgaT0eERERERERyfqIGwsVKhRW3JhtRrgDcXAoWrSo/f/ixYvtqHfLli19r6levbopV66cDbhDpalTUe6NYFtEREREREQkI2TLgPvkyZOmR48epkmTJuaCCy6wj+3cudPkyZPHFC5c2O+1JUuWtM8F07t3bxu4u7ctW7aclvKLiIiIiIjImS/KZEPM5f7zzz/NL7/8ckrbiY6OtjcRERERERERc7aPcD/00ENm0qRJZubMmaZs2bK+x0uVKmWOHTtmDhw44Pd6VinnOREREREREZHTKdsE3KztRrA9fvx489NPP5nzzjvP7/m6deua3LlzmxkzZvge47JhmzdvNo0aNcqEEouIiIiIiMjZLCo7pZGzAvm3335rr8XtzstmsbOYmBj7/65du5rHH3/cLqTGanEPP/ywDbaDrVAuIiIiIiIiEknZ5rJgOXLkCPr4iBEjTOfOne3fR48eNU888YQZM2aMvdxX69atzbvvvht2SnlalncXERERERGRs8+hNMSN2SbgPh0UcIuIiIiIiIg526/DLSIiIiIiIpKVKeAWERERERERiQAF3CIiIiIiIiIRoIBbREREREREJAIUcIuIiIiIiIhEgAJuERERERERkQhQwC0iIiIiIiISAQq4RURERERERCJAAbeIiIiIiIhIBCjgFhEREREREYkABdwiIiIiIiIiEaCAW0RERERERCQCFHCLiIiIiIiIRIACbhEREREREZEIUMAtIiIiIiIiEgEKuEVEREREREQiQAG3iIiIiIiISAQo4BYRERERERGJAAXcIiIiIiIiIhGggFtEREREREQkAhRwi4iIiIiIiESAAm4RERERERGRCFDALSIiIiIiIhIBCrhFREREREREIkABt4iIiIiIiEgEKOAWERERERERiQAF3CIiIiIiIiIRoIBbREREREREJAIUcIuIiIiIiIhEgAJuERERERERkQiIisRGRURERERERMKVcCzJxCee8N2Pjc5lYvJk/3A1+x+BiIiIiIiIZEuHEo6bHQcTzJy1e83aXfHmWNIJkycql6lSMtY0qxJnSheKMQVjcpvsSgG3iIiIiIiInHb7jiSaicu2m7nr9pqTjveZJLM3PtEsWL/PNKkcZ66vXcYUzR9tsiPN4RYREREREZHTPrI9cdl2O7LtH2z/Hx7n+Ym/b7evz44UcIuIiIiIiMhptf1ggh3ZDscva/fatPPsSAG3iIiIiIiInNYF0uasCT2yHWqkm/dlN5rDLSIiIiIiIhkmKSnJJCQk+G5Hjx71u//PoXizecNuU/z4cUPMfTJnbvNPXK0Ut7lud7xdxTy7rVyevUorIiIiIiIiEec4jjl+/LhfoBzsRjB94sT/Xc4LUVFRJm/evCYmJsbvVrhwYfv/f0/kNHP/3WgOJTrG5MgRVnkSk9hHmEPiWYgCbhERERERkTM4cA4cYQ426sx9XuuVJ0+eZEFzbGysKV68uN9juXLlSlOZ9hxONHnyRBtzLDHs90RHsY/wgvOsRAG3iIiIiIjIGWLOnDlm69atvvs5cuSwo82BI85FihQxZcqU8d2Pjo42OXOeniW+YqP/u842l/4KV+USsfZ92Y0CbhERERERkTNEs2bNTFYXkyfKNK0SZ6+zHc7CaTlzGNOsSly2m78NrVIuIiIiIkGNHDnSzrk8k5yJx3S6VahQwQwdOtScLRghnjBhgsnuMuM4Nm7caPe7bNmyZM+VKRRjmlSOC2s7TasUN6ULxZjsSAG3iIiIyFmqc+fO5oYbbjBnU4DXvn17s2bNmgzZ1tlq0aJF5r777jNnmhdeeMHUrl07s4tx1igYk9tcX7uMubRqnB3BDobHef66WqXt67Oj7DcmLyIiIiISgFWSGUlLbQ6qO1/1bHTs2DG7CNapYsEskYxQNH+0ubFOWdOwYjF7nW0u/cVq5CyQxpxt0sgZ2c6uwTY0wi0iIiIiYRs2bJipVKmSDdyqVatmRo0a5XuuY8eOdgTZi8sKxcXFmU8//dTeP3nypBkwYIA577zzbOBbq1Yt880334Tc32WXXWY2bdpkHnvsMRtQc/Omhn/33Xfm/PPPtws+/fLLLyZ37txm586dftvo0aOHb15rYEq5O6rJcTCSXqhQIXPbbbeZw4cP+17D37fffrvJnz+/KV26tBkyZIgtF9sNJZztplYXl1xyiXn99dd998lG4Pji4+PtfRbGoj7WrVuXYhk+/PBDuw8WzcKBAwfMPffcYwPnggULmiuuuML8/vvvfu+dOHGiqVevnn0P5+/GG28MmXFAGWgXV199tT2OihUrJjunW7ZsMbfeequt+6JFi5q2bdvadGPXrFmzTP369W0d85omTZrY8x7K8uXLbbnZX7FixeyIu1sv3uwN6o9zxmu6d+9u22MwtIsXX3zR1oPbznjMtXfvXlsH+fLlM1WqVLHtzuvPP/+0x88K3iVLljR33nmnfU8wrARO3XvriPNEOV20Zdr0v//+G/Y5+/bbb83FF19szxnngOPhetih9O3b1+7zjz/+8O2Tzwl1eu6555pHHnnEHDlyxO+89+/f33Tp0sUUKFDAlCtXzgwfPtxvmwsXLjR16tSxZaD9Ll261KSGYLpaqYLm9gblzBOtqpln2tSw/+c+j2fnYBsKuEVEREQkLOPHjzePPvqoeeKJJ2yAcf/995u7777bzJw50z5PUEqg5g18pkyZYoMGN2AjwCT4fu+998yKFStsIH3HHXeYn3/+Oeg+x40bZ8qWLWteeukls2PHDntzsd2BAwfagJJt8QOfQMPbCUCA9fnnn9sgIZS///7bzm2dNGmSvVGWV1991ff8448/bubOnWuDrGnTptlVoJcsWZJqfaW23dTqonnz5jYQdYM09kswSmAEXnfOOeeYypUrhywDwfjYsWNtPbrzaNu1a2d2795tJk+ebBYvXmyDtBYtWph//vnHPv/999/b89WmTRsbMM2YMcMGwyl57rnnzM0332yDQNoBnQsrV670nYPWrVvbII1joC4JTK+66io76k5QSHDM8RL8/frrrzaAdjtXAhEEsj1W2Sa9/euvvzbTp083Dz30kN/raJecA/7/ySef2ADaG0R70VFEu65Zs6avnXk7jwhe6TCg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9cR6BNQp7ZK6HjJkiF8AzKgmzxFoMYr41FNPhQywUtsex8u5pCyMnpNaTp0znzg1HAuBIME/x0vHCEEgQWow119/vQ2+6JTgfBLUclmwSKBTiPn0TzzxhD23dEhwmUAC6pTQjmmn1BuX1GJNAS7plVleffVVe+NzRto3x0CH36m0fbbF55MOCeaRMz2GTjgvPrcPPPCAvewX332vvfZayO3dfvvt5q+//rJp44Hz5vv162fPMdvnu5J0c1LMvd83dIhwCbLsJAcrp2V2IbIKFgFgfggnMZwFGURERESyK0bYCeIJmjJi0basiODAvUZwWuczZzY6NgiISCEXSQnTLwhKyVzxXtNbskbcqDncIiIiImcBUp1J+2Rki5XAGekkFdSd83kmYBSfFbQZPSM1ndFhRo6zW7AtImcOBdwiIiIiZwHmYT7zzDN2Hiap5KSBMgIczurS2QXz3Ekj5/+svMyiTN5LXImInG5KKfdQSrmIiIiIiIhkVNyoRdNEREREREREIkABt4iIiIiIiEgEKOAWERERERERiQAF3CIiIiIiIiIRoIBbREREREREJAIUcIuIiIiIiIhEgAJuERERERERkQhQwC0iIiIiIiISAQq4RURERERERCJAAbeIiIiIiIhIBCjgFhEREREREYkABdwiIiIiIiIiEaCAW0RERERERCQCFHCLiIiIiIiIRIACbhEREREREZEIUMAtIiIiIiIiEgEKuEVEREREREQiQAG3iIiIiIiISARERWKjIiIpSTiWZOITT/jux0bnMjF59HUkIiIiImcW/cIVkdPmUMJxs+Nggpmzdq9ZuyveHEs6YfJE5TJVSsaaZlXiTOlCMaZgTO7MLqaIiIiISIZQwC0ip8W+I4lm4rLtZu66veak430myeyNTzQL1u8zTSrHmetrlzFF80dnXkFFRERERDKI5nCLyGkZ2SbYZmTbP9j+PzzO8xN/325fLyIiIiKS3SngFpGI234wwY5sh+OXtXtt2rmIiIiISHangFtEIr5A2pw1oUe2Q4108z4RERERkexMc7hFJKJYjXzd7vgUXxN1/IiJSvrXnMyRyzg5o8zfW46b3VUKm9JFY03u3LlNjhw5Tlt5RUREREQyigJuEYk4ViMPtGPVYjN54IPm9ndmmNxRjg24c5xMMjmdE8YcPWkWzN1lcpmT5vjx/+ZzO07yIXKC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R7ZDjXTzvjOZAm4RERGRbOaFF14wtWvXDvn8yJEjTeHChTO9HJl1XfgJEyZEfD+zZs2y+zpw4IDJDjp37mxuuOGGzC5GlnbZZZeZHj16+O5XqFDBDB061JwtHMcxx48fN//++685ePCg2bt3rz3+QoUKmb///tusWrXKLF++3CxZssQsWLDA/PLLL2bmzJlm6tSp5vvvvzfffvut2bx4him++zd7K3hgbar7XLc73m8V8zORFk0TEREROY1BzyeffOK7X7RoUVOvXj3z2muvmYsuuijD9tO+fXvTpk2bDNve2WTjxo3mvPPOM0uXLs1ynQmn4s0337QBlYRv0aJFJn/+/CYrOHnypElKSrIBsfd27NixZI+ldGM7KYmKijJ58uSx/8+dO7epXr26+eyzz2zwzX1u+fLls69x77u3g0dPmgXT15lDiSfp+QrruBKTCLbP7HapgFtERETkNLrqqqvMiBEj7N87d+40ffr0Mddee63ZvHlzhu0jJibG3rIiAgR+rMvpxShlZiLYP3HihA3ksks5ihcvHtY22V5agt7AYNkNpFPqECGbIjDADXbjc5/S87ly5Qq7rigT7wlXYo7E/z7bxxLDfk90FOUJLzjPrpRSLiIiInIaRUdHm1KlStkbI6hPP/202bJli9mzZ4/vNb169TJVq1a1I0kVK1Y0zz33nP3xGwrpnrzuoYcesj/aA1PK3dTvUaNG2TRZgq/bbrvNHD582Pca/r799tvtiF7p0qXNkCFDkqXYhvL++++bc88915b31ltvtemoganMr7zyiilTpoypVq2afZxj5rWUk5H+tm3b2tFl7+jilVdeaeLi4mx5mzdvblNZvdauXWsuvfRSkzdvXnP++eebadOmpVrWH3/80TRt2tTut1ixYrazg/pzMbqNOnXq2CCHOkjJ4sWLzSWXXGKPvXHjxmb16tV+zw8bNsxUqlTJBiIcO+fAi31Qf5SDbdSoUcP8+uuvZt26dXbfnA+26y0jSN+9+OKL7bFz7l988UUbuIWbUv7NN9+YCy+80AZo1EPLli3NkSNHQgaUXbt2tXXD6zkORszDSbmfPHmyqVu3rm33pCAzwjpgwADftmrVqmXL4qIuX3/9dd99ykzQFx8fb+9v3brVbpf6AfXJewoUKGA/Ux07djS7d++2z/FZmDFjhn392LFj7b4oB3+TGk2bo85pY4888ohtt7RLN0W6RIkStt7GjBljb2znvvvus1kp7uf4ySeftNvjODnmt956yx4v5/yWW24xo0ePNhdccIFJTEw0RYoUMeecc46pUqWKLQvnlXpv1qyZbbuU4f777zcffPCBbc8dOnSwzz/22GNm/fr15uabbzbXX3+9/TyQwcL5ZhuUlXJSvy1atDA1a9Y0jz/+uG0bfLaoG/6mo4/2xd+MXL/77ru+euazx/F9+eWX9rPGaz7//POg01NCtb3Y6P+us/3x3fXN6p8nmOlv9zSf3N/MfNPrZrN56Wy/bezf9reZNvQx8+ZdTUzFMnG2Drxt/MMPPwxZ1mzHEZ+DBw/SrWT/LyIiIpLROnXq5LRt29Z3//Dhw87999/vVK5c2Tlx4oTv8X79+jlz5851NmzY4Hz33XdOyZIlnYEDB/qe79u3r1OrVi379++//+6UKlXKefbZZ33PjxgxwilUqJDf62NjY52bbrrJWb58uTN79mz7nmeeecb3mnvuuccpX768M336dPuaG2+80SlQoIDz6KOPhjwetps/f37niiuucJYuXer8/PPP9lg6duzod8zs+84773T+/PNPezt27JhTo0YNp0uXLs4ff/zh/PXXX/Y91apVcxITE+37ZsyY4YwaNcpZuXKlfb5r1662Hg4dOmSfp74uuOACp0WLFs6yZcvsvuvUqWN/y40fPz5kmb/55htn7Nixztq1a22Zr7vuOufCCy/01f/ChQvtNqiHHTt2OPv27Qu6nZkzZ9rXNWjQwJk1a5azYsUKp1mzZk7jxo19rxk3bpyTO3du55133nFWr17tDB482MmVK5fz008/+V7DNs455xznyy+/tK+54YYbnAoVKtg6/fHHH+2xN2zY0Lnqqqt87+H8FSxY0Bk5cqTz999/O1OnTrXveeGFF8Jqe9u3b3eioqKcN954w7YxzgFlpD0Gw/l6/vnnnUWLFjnr1693PvvsMydfvny2zKG49XPRRRfZ8q1bt87W5csvv+xUr17dmTx5sj237733nhMdHe1MmDDB2bZtm22Hl112mT1uzivtuHDhws5rr71mz0nPnj2dYsWK2bpl//fdd5/z1FNPOUOGDHFefPFFp0qVKvazMXr0aHujjVIO6qd///62TX3//ff2s8BnYPjw4c63337rXH755badsv89e/Y4Bw4ccMqVK+e8/vrrzsmT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o903ERERERERkYITcN98882x2RMRERERERGRgnxbMBERERERERGJTAG3iIiIiIiISAwo4BYRERERERGJAQXcIiIiIiIiIjGggFtEREREREQkBhRwi4iIiIiIiMSAAm4RERERERGRGFDALSIiIiIiIhIDCrhFREREREREYkABt4iIiIiIiEgMKOAWERERERERiQEF3CIiIiIiIiIxoIBbREREREREJAYUcIuIiIiIiIjEgAJuERERERERkRhQwC0iIiIiIiISAwq4RURERERERGJAAbeIiIiIiIhIDCjgFhEREREREYkBBdwiIiIiIiIiMaCAW0RERERERCQGFHCLiIiIiIiIxIACbhEREREREZEYUMAtIiIiIiIiEgMKuEVERERERERiQAG3iIiI5CtxcXFm0qRJ9u/169fb5wsXLjT5QX47noLo1ltvNVdffXXM68WcOXPMaaedZooWLWq39+2339pldu/ebfLitSzHlr5rso8CbhEREckz/vrrL3PPPfeYGjVqmPj4eHPCCSeYNm3amK+//jro8ry/ZcsWc+qpp8Z0v/TjVKL14osvmrfffjtb1xmsnt9///2mYcOGZt26dXZ75513nl0mKSnJHCts97jjjou43GOPPWb3NS82jFxwwQWmd+/ex2SfCoK3o6wzeUmRnN4BERERkWiD2qZNm9ofY8OGDbO9dwcPHjRTp041PXv2NCtWrDjiM4ULFzaVKlXKkf0VCSYWAW+wev7777+bu+66y1StWtX3Wn6/FhzHMYcOHTJFiijEcfEdSZaD5Bz1cIuIiEie0KNHD9uLPG/ePHPdddeZOnXqmFNOOcX25P30009R9Ty7abUE6WeccYZJSEgwF110kdm2bZuZMmWKqVevnildurTp2LGj+eeff3zr+eqrr0yzZs1ssF+uXDlz5ZVX2oDGddJJJ9l/WSfrp9fLNWrUKLve4sWLm5NPPtm8+uqrYY/z8OHDZujQoaZWrVq2F79atWpm0KBBfsusXbvWXHjhhaZEiRKmQYMG5scff/S9t3PnTtOhQwdz/PHH2/dpmBg7dqzf59m/e++91zz44IOmbNmyNhCjl9GLBgyOmf2uX7++mTFjxhEpvhs3bjQ33HCDLRfW07ZtW1vmobjl/8UXX5jTTz/drvvcc881S5cu9VtuwoQJ9txy/CeeeKJ57rnn/N6nDGvXrm0/X7FiRXP99df7ld+QIUPsOeH8Uj4ff/yx7/1du3aZm266yZQvX96+z3pGjx4dcp8jnftg2B7lzvr5zMUXX2z2798ftOd03759dn9KlixpKleubIYPH35EryllMHjwYNOlSxdTqlQpWyfeeOONoPXc/Zt6wPL8Ta9hsJRy0s7ZFvWkTJkyplWrVrZ8ojludzuffPJJ0LrI9m677TazZ88euxyPwDoG9u3xxx83ixYt8i3nzQDYsWOHueaaa+z6OVefffaZ7z33mLh2zzrrLFtfZs+eHbEOEJR37drV937dunVt5oGL/XznnXfMp59+6tsnthWIc/ndd9/Zz7rLufWf18855xy7T5zXhx56yGRkZIStN5HqfbAUe86PW17uORk3bpxp0aKFvT7ef//9oNtiuZEjR5rLL7/clgFZQ94yChSpzLx1+9lnn7XHTL3p2bOnDfpdaWlp5oEHHrDfT9T5xo0b+8o22jqT5zjis2fPHoci4V8RERHJPXbu3OnExcU5gwcPjrgs/y+fOHGi/XvdunX2+YIFC+zzmTNn2ufnnnuuM3v2bOfXX391atWq5bRo0cK59NJL7fPvv//eKVeunPP000/71vnxxx87EyZMcFavXm3X1aZNG+e0005zDh06ZN+fN2+eXe+MGTOcLVu22P3Fe++951SuXNl+du3atfbfsmXLOm+//XbI/X/wwQedMmXK2GXWrFnjzJo1y3nzzTf9jufkk092Pv/8c2flypXO9ddf71SvXt05ePCgXebPP/90hg0bZvfz999/d1566SWncOHCzty5c33b4HhLly7tPPbYY86qVaucd955x5bvtGnT7PsZGRlO3bp1nUsuucRZuHCh3YdzzjnHr2zT09OdevXqOV26dHEWL17s/Pbbb07Hjh3t59LS0oIem1v+fI5t8bkrr7zSOfHEE+368PPPPzuFChVynnjiCXt8o0ePdhISEuy/mD9/vj2eDz74wFm/fr09Zy+++KJvG0899ZQtn6+++soeP5+Lj493vv32W/t+z549nYYNG9r1UJ7Tp093Pvvss5DnI9K5D7R582anSJEizvPPP2/XzzG+8sorzr59++z7nTt3dtq2betb/vbbb7fnj7qzZMkS55prrnFKlSrl9OrVy7cM71NvWA/7MWTIEFtGK1as8KsX7B/njjrI+X3hhRfs3//884+v7Hft2mU/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FhEREREREYkBBdwiIiIiIiIiMaCAW0RERERERCQGFHCLiIiIiIiIxIACbhEREREREZEYUMAtIiIiIiIiEgMKuEVERERERERiQAG3iIiIiIiISAwo4BYRERERERGJAQXcIiIiIiIiIjGggFtEREREREQkBhRwi4iIiIiIiMSAAm4RERERERGRGFDALSIiIiIiIhIDCrhFREREREREYkABt4iIiIiIiEgMKOAWERERERERiQEF3CIiIiIiIiIxoIBbREREREREJAYUcIuIiIiIiIjEgAJuERERERERkRhQwC0iIiIiIiISAwq4RURERERERGJAAbeIiIiIiIhIDCjgFhEREREREYkBBdwiIiIiIiIiMaCAW0RERERERCQGFHCLiIiIiIiIxIACbhEREREREZEYUMAtIiIiIiIiEgMKuEVERERERERiQAG3iIiIiIiISAwo4BYRERERERGJAQXcIiIiIiIiIjGggFtEREREREQkBhRwi4iIiIiIiMSAAm4RERERERGRGFDALSIiIiIiIhIDCrhFREREREREYkABt4iIiIiIiEgMKOAWERERERERiQEF3CIiIiIiIiIxoIBbREREREREJAYUcIuIiIiIiIjEgAJuERERERERkRhQwC0iIiIiIiISAwq4RURERERERGJAAbeIiIiIiIhIDCjgFhEREREREYkBBdwiIiIiIiIiMaCAW0RERERERCQGFHCLiIiIiIiIxIACbhEREREREZGCGnCvX7/edO3a1Zx00kkmISHB1KxZ0wwcONCkp6f7Lbd48WLTvHlzU7x4cXPCCSeYoUOH5tg+i4iIiIiISMFWxOQBK1asMIcPHzavv/66qVWrllm6dKm54447zP79+82zzz5rl9m7d6+59NJLzcUXX2xee+01s2TJEtOlSxdz3HHHmW7duuX0IYiIiIiIiEgBE+c4jmPyoGHDhpmRI0eatWvX2uf8/fDDD5u//vrLFCtWzL720EMPmUmTJtmAPRoE7UlJSWbPnj2mdOnSMd1/ERERERERyXsyEzfmiZTyYDi4smXL+p7/+OOP5vzzz/cF22jVqpVZuXKl2bVrV9B1pKWl2cLyPkRERERERESyQ54MuNesWWNGjBhh7rzzTt9r9GxXrFjRbzn3Oe8FM2TIENsy4T4Y9y0iIiIiIiKS5wNuUr7j4uLCPgLTwTdt2mQuu+wy065dOzuO+2j079/f9pS7j40bNx7lEYmIiIiIiIjkgknT+vTpY2699dawy9SoUcP39+bNm82FF15ozjvvPPPGG2/4LVepUiWzdetWv9fc57wXTHx8vH2IiIiIiIiI5KuAu3z58vYRDXq2CbbPOussM3r0aFOokH/nfJMmTeykaQcPHjRFixa1r02fPt3UrVvXlClTJib7LyIiIiIiIpKnx3ATbF9wwQWmWrVq9jZg27dvt+OyvWOzO3bsaCdM437dy5YtM+PGjTMvvviiuf/++3N030VERERERKRgyhP34aanmonSeFStWtXvPfeuZkx6Nm3aNNOzZ0/bC56cnGweffRR3YNbRI6J1PQMk5J2yPc8Mb6wSSiWJ75iRURERCRG8ux9uGNB9+EWkczam3rQbNmTamat3mFWb00x6RmHTLEihU3tiommee1kUzkpwZRO+HeYi4iIiIgUrLhR3S8iIlm0c3+ambxws5mzZoc57Nd0mWF2pKSZuWt3mqa1ks1VDauYsiU1QaOIiIhIQZMnxnCLiOTGnm2CbXq2/YPt/+F13p+8aLNdPrd5++23zXHHHWfyG+5iccIJJ9jJNV944YUc2YcTTzwxx7adk7jzyNVXX12gyiuaY2Yemt69ex+zfRIRkdxDAbeISBZs3pNqe7ajMXv1Dpt2nhsDnfyY4nX33Xebfv362Qk3s2sej/Xr15u4uDizcOHCqJafP3++5hApQI08IiIioSjgFhHJwgRps1aF7tkO1dPN5/KS9PR0k9f88ccf9vaQrVu3NpUrVzYlSpTIkTLjlpfHetvg2OXYOHTokDl8+HBO74aIiORyCrhFRDKJ2cjXbEsJu0zhjFRT/J9tpnjqdhOfusOsXbferF67wfz5559my5YtZuvWrfYWhzt37jS7du2yk27s27fP7N+/36Smppq0tDQbPPGjPrvmtqR3kdsrEghec801dttejz32mGnYsKEZNWqUOemkk0zx4sXt67t37za33367DSKZGOSiiy4yixYt8n3u999/N23btjUVK1Y0iYmJplGjRmbGjBlHpAw/9dRT5pZbbrHLVK9e3Xz22We2DPgsr51++unm559/jhhQu8uzLzfccIMtS/f4TjvtNPt3jRo1bI80PdPB0ANep04dWxYs+8gjj4QNVikPnHHGGXa9pAh7MwsGDRpkqlSpYurWrRs0RZrP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EgMKuEVERERERERiQAG3iIiIiIiISAwo4BYRERERERGJAQXcIiIiIiIiIjGggFtEREREREQkBhRwi4iIiIiIiMSAAm4RERERERGRGFDALSIiIiIiIhIDCrhFREREREREYkABt4iIiIiIiEgMKOAWERERERERiQEF3CIiIiIiIiIxoIBbREREREREJAYUcIuIiIiIiIjEgAJuERERERERkRhQwC0iIiIiIiISA0VisVKRvCQ1PcOkpB3yPU+ML2wSiunSEBERERGRo6OoQgqsvakHzZY9qWbW6h1m9dYUk55xyBQrUtjUrphomtdONpWTEkzphKI5vZsiIiIiIpJHKeCWAmnn/jQzeeFmM2fNDnPY8b6TYXakpJm5a3eaprWSzVUNq5iyJeNzbkdFRERERCTP0hhuKZA92wTb9Gz7B9v/w+u8P3nRZru8HL1bb73VXH311TFfx4knnmheeOEF3/O4uDgzadKkqJfPSW+88YY54YQTTKFChXz7FOy1Y+GCCy4wvXv3NrlJLPcpUj3ILeWRHdeRiIiIHDsKuKXA2bwn1fZsR2P26h027TynflgTLN51111HvNezZ0/7Hssca1kNPF588UXz9ttvm1ibP3++6datW8yWj5W9e/eau+++2/Tr189s2rTJ7lOw1wqCb7/91tbv3bt3Z/qzkRpYsuqTTz4xTz75pMlpx+o6EhERkeyhgFsK3ARps1aF7tkO1dPN53ICPZsffvihSU39X9B/4MAB88EHH5hq1aqZvCQpKckcd9xxMd9O+fLlTYkSJWK2fKz88ccf5uDBg6Z169amcuXKdp+CvZYVrONYSE9PN/lV2bJlTalSpQrMdSQiIiLZQwG3FCjMRr5mW0rYZYocTDGl9qw1pfauM4l715t1yxebufN/Nr/++qtZsGCBWbRokVmyZIlZunSp+e2338yKFSvMypUrzerVq82aNWvM2rVrzfr1682GDRvMxo0bbc/k5s2bzV9//WW2bdtmtm/fbnbu3Gl27dple/Doxdy3b58NpAOdeeaZNuimd83F3wTbZ5xxht+yaWlp5t577zUVKlQwxYsXN82aNbO9ty56xQJ/qNMTSI+g67HHHjMNGzY0Y8aMsSm2/Li/8cYb7f6BHvXvvvvO9rLxOR4c66FDh0zXrl3NSSedZBISEkzdunXtMuFSYekpZ38ffPBBG8xUqlTJ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9cRFPeGcMglhqHRyt0eaRgGyFsh+4bqmflG2PHfRq832CaZPPvlk32sE9d5AnfJ+6aWXbDmRDUE94xhoPMDLL78cdhI5EREROZICbimQypaMN9ecUdU80KquaVKznClfKt6UTihi/+U5r/M+y+UWpODyCIUeQ2aGZuwlvYwEVvzI5tZKoFeLHjeCCYI/Aqhob8PlxQ98gn561+gxJSgjCKUHjNRXAnt6ML293bkFs4sTiFBG3lutZQa3XyJg5/OM0WW2b3eWcrcnMxABFkEn54J0XgJwxskyg3dmkeFAYETqPmPJGWc9fPhwX2ZDKAS5/fv3t/vMPnAOCerCoVGAXlZ6frn9GsG2e+uvUFg/qcs0RtCLzu3rCParVKli36fO0EBBMEkdot4G9rIzzp6Al5nCuTWVd4bzSBiHzazl9J67t85jdnXKnmCaTAfKkGskFG6pR5o2jRgEr1nBtTp58mQbvDJunjpCOcCb+h+qnnIN0WDmvQVYMDRW0MDFbOU0oNA7z75TT12cBwJnb3BNwE0mgDt+G/RmU68vuugiuy5mPud7wh3PTgNbbspcERERyQvimDktp3cit+A2Ltxvds+ePWEDG8lfUtMz7P25jeFSiLMTpOX0mG3JW0jNJTghZVwkFHqUybDg/zHcM1tERETyf9yoqEIKPIJrBdiSGa+++qrtXS5XrpwdHzxs2LBM9cJKwUBKNpkM9NiTyk66Pfd3V7AtIiJScCjKEBHJJMYlP/XUU+bvv/+2Y5L79Olj07VFvBhHTho5/zI5Wbt27Ww2hIiIiBQcSin3UEq5iIiIiIiIZFfcqEnTRERERERERGJAAbeIiIiIiIhIDCjgFhEREREREYkBBdwiIiIiIiIiMaCAW0RERERERCQGFHCLiIiIiIiIxIACbhEREREREZEYUMAtIiIiIiIiEgMKuEVERERERERiQAG3iIiIiIiISAwo4BYRERERERGJAQXcIiIiIiIiIjGggFtEREREREQkBhRwi4iIiIiIiMSAAm4RERERERGRGFDALSIiIiIiIhIDCrhFREREREREYkABt4iIiIiIiEgMKOAWERERERERiQEF3CIiIiIiIiIxoIBbREREREREJAYUcIuIiIiIiIjEgAJuERERERERkRhQwC0iIiIiIiISAwq4RURERERERGJAAbeIiIiIiIhIDCjgFhEREREREYkBBdwiIiIiIiIiMaCAW0RERERERCQGFHCLiIiIiIiIxIACbhEREREREZEYUMAtIiIiIiIiEgMKuEVERERERERiQAG3iIiIiIiISAwo4BYRERERERGJAQXcIiIiIiIiIjGggFtEREREREQkBhRwi4iIiIiIiMSAAm4RERERERGRGFDALSIiIiIiIhIDCrhFREREREREYkABt4iIiIiIiEgMKOAWERERERERiQEF3CIiIiIiIiIxUCQWKxURERERyc9S0zNMStoh3/PE+MImoZh+WouIP30riIiIiIhEaW/qQbNlT6qZtXqHWb01xaRnHDLFihQ2tSsmmua1k03lpARTOqFoTu+miOQSCrhFRERERKKwc3+ambxws5mzZoc57HjfyTA7UtLM3LU7TdNayeaqhlVM2ZLxObejIpJraAy3iIiIiEgUPdsE2/Rs+wfb/8PrvD950Wa7vIiIAm4RERERkQg270m1PdvRmL16h007FxFRwC0iIiIiEmGCtFmrQvdsh+rp5nMiUrAp4BYRERERCYPZyNdsSwm/kOP8+/h/LO+dxVxECiZNmiYiIiIiEgGzkYdT5GCKKbN7JZG3OVgk0Rw+WNbs2VXeJCdWMnFxccdsP0Ukd1HALSIiIiISAbf+YjbyUDKKlTLbK5xte7mLZOw3yXH7zeIFv5h5s/fagLt8+fLm+OOPN1WqVDGlS5dWEC5SQCjgFhEREREJIzH+3/tsc+uviOLiTEbRRHNSzerm8sbVTEKxIubQoUNm+/btZvPmzWbWrFlm7969pnDhwubKK680JUuWPBaHICI5RAG3iIiIiEgYBM3Naifb+2xHM3FaoThjmtdOtp8DwXWlSpXs48wzz7SvEYTzuojkb5o0TURERKSAu+CCC0zv3r1NfrV+/Xqbwr1w4cIsr6NKUoJpWis5qmWb1S5vKiclhF0m2mD7scceMw0bNjTH0oknnmheeOGFmKyb8zBp0qRcURdjsa3sqGu5zdtvv22OO+64mKx7fT4sr0AKuEVERERi5NZbb7U/Jp9++mm/1wk4CtoY3m+//dYe8+7du01eVDqhqLmqYRVzfp1k24MdDK/zfpsGle3y2eGBBx4wX3/9tTmW5s+fb7p162byi7xe9/KzE044wWzZssWceuqpJr9SSrmIiIhIDBUvXtw888wz5s477zRlypQ5pts+ePCgKVo0ewK/vCo9PT3b1lW2ZLy55oyq5twa5ex9trn1V1rGIRNfpLCpVSHRppHTsx0s2GY/ihUrlultJiYm2sexxARv4aheSSTR1vfC/z/cIj9TD7eIiIhIDF188cX2B+WQIUPCLjd79mzTvHlzk5CQYHt97r33XrN///6wqbikeZLu6U3NHDdunGnRooUN9N9//32zc+dO06FDBztDdokSJcxpp51mxo4dm6ljcNOax4wZY9ONk5KSzI033mj27dvnW+bw4cP2GE866SR7DA0aNDAff/yxb98uvPBC+zeNDuwnvf+ff/65PQbGM4O0Ut576KGHfOu9/fbbTadOnXzPJ0yYYE455RQTHx9v9+W5557z21dee/LJJ80tt9xiZwMP1lPL9rp06WJOPvlk88cffxjHcewxVqtWza6XmcQp/2AIpovs324mDe1t/tv9EvNG1+Zm6qAupnLKalO3UmlfsB1qPyKd51Bl76Lcrr76avPss8+aypUrm3LlypmePXvaINj16quvmtq1a9s6ULFiRXP99df7pVHffffd9sF5TE5ONo888ogtg1Ap5ZyTkSNHmquuuspO8jZo0CD7+qeffmrHpLOdGjVqmMcff9xkZPxvJvfVq1eb888/375fv359M336dBMN1hFq/5544omgvaGUEcsFClX3vPX2wQcfNGXLlrXXKeXtRa84dZBGCM7jRRddZBYtWhTxGNauXWu3yzXHtfDjjz+GHSZAeVPuged58ODB9hxynXDslE3fvn3t/latWtWMHj3abz39+vUzderUsdvlnFAm3roRzbUcCt8/br1q1aqV2bhx4xHrHTVqlP0OYBl89dVXplmzZnb/qatMFPj777+HTCl3sxHI6jj77LPtcZx33nlm5UpuuZc3KeAWERERiSF6cPjRPGLECPPnn38GXYYfoJdddpm57rrrzOLFi23QTGBG0JFZBKu9evUyy5cvtz+KDxw4YM466yzzxRdfmKVLl9rA7+abbzbz5s3L1HrZR35wEyTz+O677/xS5Qm23333XfPaa6+ZZcuWmfvuu88GyixHYEmgDH44k0L64osv2sCTH/oLFiyw77EsARY/ul28RpCIX375xdxwww02QFiyZIn9kU9A4TY6uAhGCXJYb2AQlpaWZtq1a2d/4DNjOEE2+zZ8+HDz+uuv2yCR46RhIpSUlBTT5srWZuY3X5uF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IiIiIiIiIjGggFtEREREREQkBhRwi4iIiIiIiMSAAm4RERERERGRGFDALSIiIiIiIhIDRWKxUhEREQktNT3DpKQd8j1PjC9sEorpf8kiIiL5jf7vLiIicozsTT1otuxJNbNW7zCrt6aY9IxDpliRwqZ2xUTTvHayqZyUYEonFM3p3RQREZFsooBbRETkGNi5P81MXrjZzFmzwxx2vO9kmB0paWbu2p2maa1kc1XDKqZsyfic21ERERHJNhrDLSIicgx6tgm26dn2D7b/h9d5f/KizXb5/OzEE080L7zwwlGv54ILLjC9e/fOln3K7x577DHTsGFDU9DqSHZ5++23zXHHHWdym2+//dbExcWZ3bt35/SumPXr19t9WbhwYYGqqyKRKOAWERGJsc17Um3PdjRmr95h085zwq233mp/MAc+LrvsMpMbffLJJ+bJJ5/M6d3IkzjXV199dU7vhuSjBqYTTjjBbNmyxZx66qk5vSsiuYpSykVERGI8QdqsVaF7thF36KAp5BwyTlwcz8x3v20yFUsWNiWLF7MBb6FChXzBb6wRXI8ePdrvtfj43JXinp6ebooVK2bKli2b07tS4B06dMhXR3PawYMHTdGimgMhpxQuXNhUqlQpp3dDJNfJ+W9HERGRfIzZyNdsSwm7TMl/NpnSe1ab43avMsftWmE2LvnRfPnll+bTTz81EydONOPHjzfjxo0zH374oX2MHTvWPty/3de973nfD/X45ZdfjtgXgmt+NHsfZcqU8aWvEujOmjXLt/zQoUNNhQoVzNatW329cHfffbd9JCUlmeTkZPPII48Yxwnd4vDHH3+Ytm3bmsTERFO6dGlzww03+NbnTTEdNWqUOemkk0zx4sWD9viRhjx48GDTpUsXU6pUKVOtWjXzxhtv+G3rhx9+sOtiHWeffbaZNGlSxDTYaNa7ceNGu9+kHdMQwPGQYoulS5fagHT79u32+d9//22f33jjjb7PP/XUU6ZZs2Yh9yEtLc3069fP9iJyjmrVqmX++9//hkx3do8rGMrznXfesfXLbcjh3AZLT6ZceM09Fndbn332malfv77dF84f+/fAAw+Y448/3pQsWdI0btzYrs+1YcMG06ZNG1uXeP+UU06xdTycffv2mQ4dOtjlWe8rr7zi9z77NXLkSHPVVVfZZQYNGmRf57WaNWvaulq3bl0zZswYv889//zz5rTTTrOfoTx79OhhUlL8r1GOk/NcokQJc80115idO3cesX+U35lnnmnrUo0aNczjjz9uMjIy/PaPOsvnWU/t2rVtubl27dplbrrpJlO+fHmTkJBg3w9s7PJmJHz33XfmxRdf9J0z95yAa5n6zHbOO+88s3Llykzta6gMCOp9xYoV7Tl/4okn7Gf69u1r63jVqlX99jcwpdytT19//XXYfXv66aftNri2unbtag4cOBByv0TyJEd89uzZw68B+6+IiEh22Lb3gNN77K9Ol9Hzon70/vBXZ9ve1GO+r507d3batm0bdpm+ffs61atXd3bv3u38+uuvTrFixZxPP/3U936LFi2cxMREp1evXs6KFSuc9957zylRooTzxhtv+Jbh88OHD7d/Hzp0yGnYsKHTrFkz5+eff3Z++ukn56yzzrLrcQ0cONApWbKkc9lll9ltLlq0yLcttuNdb9myZZ1XXnnFWb16tTNkyBCnUKFCdj/A/995v1OnTs6yZcucL7/80qlTp479f/+CBQtCHnOk9aanpzv16tVzunTp4ixevNj57bffnI4dOzp169Z10tLSnMOHDzvJycnO+PHj7fKTJk2yzytVquTbxsUXX+w8/PDDIffhhhtucE444QTnk08+cX7//XdnxowZzocffmjfGz16tJOUlOS3/MSJE+1xecuwQYMG9u99+/bZ9VGeW7ZssQ/2c+bMmfYzu3bt8n2OcuG1devW+bZVtGhR57zzznPmzJljy2D//v3O7bffbl/7/vvvnTVr1jjDhg1z4uPjnVWrVtnPtW7d2rnkkkts+bD/kydPdr777ruwZV6qVClb1itXrnReeuklp3Dhws60adN8y7BfFSpUcN566y27zg0bNtjyYf84V3zuueees5/75ptvfJ+j7vGcY/r666/teerevbvvfeog5/eZZ56x63jxxRed4447zq+MOc7SpUs7b7/9tt02+3XiiSc6jz32mN/+Va1a1fnggw9svbn33nvttbFz5077fs+ePW3dnz9/vt2X6dOnO5999lnQ8uB6a9KkiXPHHXf4zllGRobvnDVu3Nj59ttvbb1u3ry5PReZ2ddg3wWUP/vIOf7vf/9rt9OqVStn0KBB9rw++eSTtqw3btxoP8MxeK+laPZt3Lhxtp6MGjXKbodrgO26dVUkP8SNCrg9FHCLiEgsAu4H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REQkW9166632B/Bdd911xHs9e/a077HMsfTJJ5+YJ5980hQkpN5efvnlOb0bkkUFsc7m9cavcI0ZpROKmqsaVjHn10m2PdjB8Drvt2lQ2S4v+YPyFERERCTbnXDCCebDDz80w4cPt6mfYKzlBx98YKpVq3bM94dxm/klpZYJnqIZc1qpUqVjsk8FBeVOEBdpgqxjVWcZt0zvbk5NSEYat2RO2ZLx5pozqppza5Sz99nm1l/MRs4EaYzZJo2cnm0F2/mLerhFREQk25155pk26KaXzsXfBNtnnHGG37JfffWVadasmTnuuONMuXLlzJVXXml+//13v2X+/PNP06FDBxuElCxZ0px99tlm7ty5fsuMGTPGnHjiiSYpKcnceOONZt++fSHTc1lu8ODBpkuXLqZUqVJ2v9544w2/9W3cuNHccMMNdr/Ybtu2bW1ac2bMnj3bNG/e3DY6UB733nuv2b9/v98+cyzsAwFyx44dzbZt247oqZsyZYo566yz7IzIrJPjYV0PPvig3Tc+S+9aqJRyNx2bc3DhhReaEiVKmAYNGpgff/zR7zNvvvmm3U/ev+aaa8zzzz9vjz8Ud70fffSR7zgbNWpkVq1aZebPn2+PjTG39LRv377d97nDhw+bJ554wlStWtUeE72C1AOvefPm2brCGF3Ws2DBgiO2v3TpUrtutlGxYkVz8803mx07doTc31dffdXUrl3brpPlr7/++pDLvv322/bYP/vsM1O/fn27n3/88Ye9FdQDDzxg05upi40bN7bnKfCz1Cm3HJ977jm/ciTD4+qrr/b7DPWT8xquztLjfcstt9hU6m7dukVVxyLhPF1yySV2XDTXTosWLcyvv/7qtwzneOTIkeaqq66yxzxo0CD7+lNPPWVTu6m/t99+u3nooYeO6OEdNWqUqVevni3zk08+2Z6DcNh3jpFzWrlyZVt2gcJdN9RJ6jjKlCnjl1ET6buGRoy7777bbpf9JXV9yJAhvvfpMec4y5cvb8/BRRddZBYtWuQ7548//rh9zjZ58BqNZFyb1Afq0Mk1q5tXBg8wNzWuZvpcWtf854p69l+e161UWsF2PqSAW0RERGKCYHb06NG+52+99Za57bbbgv7Avv/++83PP/9svv76a9uDSJBCUIaUlBQbBGzatMkGP/ygJdB03wc/mgkuP//8c/v47rvvzNNPPx12//gh7wZyPXr0MN27dzcrV6709eC1atXK/qCfNWuWmTNnjg0ALrvssqAzIgfDPrH8ddddZxYvXmzGjRtngyN+0LvYDkEUx8T+EywES7cnkOF4li9fbk4//XT72jvvvGODHxoehg4dagPY6dOnh92nhx9+2AaLjIOuU6eObcTIyMiw73GMDAPo1auXfZ8gzA2sIhk4cKAZMGCADdTofScA4hy9+OKLtvzWrFljHn30Ud/yvE75P/vss7ZsKGuCudWrV/vOOcEQge4vv/xiAxb224vgh4CHoJy6QzC1detW20gSDMsQjFJOnGeWP//888Me1z///GOeeeYZGzQuW7bMBpecPxoqyOBg39u1a2fPs7vvnI+uXbva5ShHgj8C0+xAedFQQp195JFHoqpjkdAw1blzZ/u5n376yTZIXHHFFX4NVuAccF0uWbLEXtvvv/++rR+UD+eIgJKg3ItlOO8sR92lkYv9pu6G0rdvX3v9fvrpp2batGm2MSOwASDcdUOjw4QJE+zfnGeGVlDfovmueemll+x3DA1IfJb9p6HDxbkmsKcBjGOmYbFly5bm77//Nu3btzd9+vQxp5xyit0mD15jX8j0ef31120dYX9PO+00OyFa+VLxpnyp4vZfTZCWjznis2fPHuYNtP+KiIhI1nTu3Nlp27ats23bNic+Pt5Zv369fRQvXtzZvn27fY9lQmEZ/n+8ZMkS+/z11193SpUq5ezcuTPo8gMHDnRKlCjh7N271/da3759ncaNG/uet2jRwunVq5fvefXq1Z1OnTr5nh8+fNipUKGCM3LkSPt8zJgxTt26de3rrrS0NCchIcGZOnVq0P2YOXOm3e9du3bZ5127dnW6devmt8ysWbOcQoUKOampqUHXMX/+fLuOffv2+a1z0qRJfstxPM2aNfN7rVGjRk6/fv18z/ncxIkT7d/r1q2zz0eNGuV7f9myZfa15cuX2+ft27d3Wrdu7bfOm266yUlKSgq6r6HWO3bsWPva119/7XttyJAhtjxdVapUcQYNGnTE/vfo0cN3zsuVK+dXTpwb1rtgwQL7/Mknn3QuvfRSv3Vs3LjRLrNy5cojzvuECROc0qVL+9WTcEaPHm3XtXDhQt9rGzZscAoXLuxs2rTJb9mWLVs6/fv3t3936NDBueKKK/zep2y95eheI17sJ/sbrs5effXVfp/JSh3j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ZUjTjsatt95qrr766qi3711/laQE07RW8hHLfPRAW7Ns2li/15rVLm8qJyWYoxEYbH/77bd2X+gRx9tvv22OO+443/uPPfaYLZP8eN5zi8AyDybwPGS2zuWUE0880bzwwgtRL3/BBReY3r17m4JAPdwiIiIikmv8+OOPplmzZuayyy4zX3zxRVSfIUghwAoMnLds2WLHNrsGDhxoJxxbuXKlTbUm+GGZ5OQjA+FgXnzxRTt2OitKJxQ1VzWsYpjrjPtsuz3dbR592xSNT/D1bNMT3qZBZbt8MATOF154oR3XHSl4y4wHHnjA3HPPPSY/CDzvuUX79u3NFVdckdO7kSt88sknNkOjIFDALSIiIiK5xn//+18b+PHv5s2bTZUqVUIuS/B76FDo2b8rVark9/z333+345qrV68ecplwkpKSzNEoWzLeXHNGVXNujXL2Ptvc+istobyJL1LYjtkmjZye7VDBdizRAJFfxntn5pxGkp6ebooVK5Yt60pISLAPMXaCv4JCKeUiIiIikiukpKSYcePGme7du9vAmBTcYGnRU6ZMMWeddZaJj4837733nnn88cfNokWL7Hs83M95U4v5+5dffjFPPPGE/Zte8WAp5cuWLTNXXnmlne27VKlSpnnz5jZQD5be+9VXX9neeHqay5UrZz/nLhsKwXTdSqXNTY2rmT6X1jUTHrzaJK6eZp/zelKJYmbUqFHmmmuuMSVKlDC1a9c2n332mf0s+0vvNujBZd/ZJ3fM9pAhQ8xJJ51kg7oGDRqYjz/+OOqyD0xlzsjIMPfee6/v2Pr162c6d+7sd/yRtumer6+//tqcffbZ9njOO+88m2HgNXnyZNOoUSOb6k+2AcfuSktLs73vxx9/vM1OaNy4sV1vON7zTsB8991320nnWD+NLexzKO45HjRokG3sqVu3rn19zJgx9hioEwT0HTt2NNu2bTviWMnKOP300+22GL6wdOnSsCnlTz/9tKlYsaJdb9euXc2BAwdC7tu7775rzwVl4sX+3nzzzSE/t3HjRnPDDTfYbRPotm3b1tYlTJs2ze6rO9TA1atXL3PRRRf5nk+YMMGccsop9pojffy5554LuT3Kht78wAn+kpOT7TEESylnnYMHDzZdunSxZVGtWjXzxhtv+K3jhx9+sHWU/eVccI4zMyQkpyjgFhEREZFc4aOPPjInn3yy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tv2D7f/hdd6fvGizXT6nffvttyYuLs7s3r0729f92GOPmYoVK9r1T5o0yeQXjuOYbt26mbJly9pjW7hw4THb9gUXXGB69+59zLaX36xfvz4m5+ztt982xx13XLauUyJTwC0iIiJSgGzek2p7tqMxe/UOm3YeSwQW4R4ExLGyfPly8/jjj5vXX3/dbNmyxVx++eVRfe7EE080L7zwgsnNvvrqKxtgff755/bYTj311COWUQCWvairDRs2NLlV+/btzapVq7JtfSeffLKJj483f/311xHvqdHlfxRwi4iIiBSgCdJmrQrds205h0zc4YMm7vAhc/jwIfP9qm3mn7TY9XITDLoPgtjSpUv7vfbAAw/EbNu///67/bdt27amUqVKNng4ltLT02N6bJUrVzbnnXeePbYiRTSStKBLSEgwFSpUyJZ1zZ4926Smpprrr7/evPPOO9myzvxKAbeIiIhIAcFs5Gu2pYRdJjHlT1P272Wm7M7FJnnHIrPx52/M+I8+MmPHjjUffvih/fdoH4sXL/Ztj2DQfSQlJdlebe9riYmJvmV/+eUXc/bZZ5sSJUrYQHLlypV++/7pp5+aM8880xQvXtzUqFHD9l5nZGSE7I1s06aN/btQoUJ2u6F65q6++mpz6623+t7fsGGDue+++3y98KF6N2lAoDfcxTpY16BBg0yVKlVM3bp17esbN240N9xwg+1tJgWcBgDSisP57rvvzDnnnGMbCQisH3roId+xsp177rnH/PHHH3b/vPvgTdO/7bbbzJ49e47IJkhLS7MNHccff7wpWbKkady4sV3ea86cObYsOBdlypQxrVq1Mrt27fK9f/jwYfPggw/a4+E8RspUYP0cD9ujHJo2bWrLOdpzy3CD22+/3ZQvX9422lx00UVm0aJFvvfd8/PWW2+ZatWq2XrVo0cPc+jQITN06FC7jwSjnBtvWj6fY3nKmXN27733Bt1/sgXYJ7bplievgfPAOWWb7BvneuvWrSaSFStW2HrOMZOhwDn3Wrp0qc3KYL0Mi7j55pvNjh2hs1cCMxrcMhkzZoytI1x/N954o9m3b1/Effvvf/9rOnbsaLdJmUpoauoSERERKUCYjTyclFLV7cNVOqGIueKKeqZ8qeImpz388MPmueees0HVXXfdZbp06WIDP8yaNcvccsst5qWXXjLNmze3PbyMYcbAgQOP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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tsne = TSNE(n_components=2, random_state=42, perplexity=9)\n", "embeddings_tsne = tsne.fit_transform(embeddings)\n", "df_viz = pd.DataFrame(embeddings_tsne, columns=['x', 'y'])\n", "df_viz['word'] = sentences\n", "plt.figure(figsize=(10, 10))\n", "sns.scatterplot(data=df_viz, x='x', y='y', s=100, alpha=0.7) \n", "texts = []\n", "for i, point in df_viz.iterrows():\n", " texts.append(plt.text(point['x'] , point['y'] + 0.05, point['word'])) \n", "adjust_text(texts, arrowprops=dict(arrowstyle=\"-\", color='gray', lw=0.5))\n", "\n", "plt.title('t-SNE Visualization of Sentence Embeddings', fontsize=16)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "245db596-3f64-4614-bcae-8f045fcc9ccb", "metadata": {}, "source": [ "Sentences that are close together in the plot are semantically more similar according to the model. However, it's important to note when we reduce data from a high-dimensional space (like the 384 dimensions of the sentence embeddings) to a very low-dimensional space (like 2D for a plot), we are losing some information in the process. While t-SNE is good at showing which points are near each other (forming clusters), the relative distances between these clusters in the 2D plot might not accurately reflect their separation in the original 384-dimensional space. Two clusters that appear far apart in the 2D t-SNE plot might not be \"as far\" apart in the original high-dimensional space as two other clusters that also appear far apart." ] }, { "cell_type": "markdown", "id": "879199b2-95b4-44c0-94b4-0a958abf738a", "metadata": {}, "source": [ "# RAG with Langchain" ] }, { "cell_type": "markdown", "id": "cac3f2eb-e105-420a-9913-164019d5bb71", "metadata": {}, "source": [ "Retrieval Augmented Generation (RAG) is a technique for improving the responses of Large Language Models (LLMs) by providing them with external knowledge. Instead of relying solely on the information learned during its training, an LLM can access and use relevant information from a custom dataset or knowledge base at inference time.\n", "\n", "How RAG works\n", "- 1. User Query: The user asks a question.\n", "- 2. Retrieval: The system searches a knowledge base (e.g., a collection of documents) for information relevant to the query. This often involves using vector embeddings to find semantically similar text chunks.\n", "- 3. Augmentation: The retrieved information (context) is added to the user's original query.\n", "- 4. Generation: The augmented prompt (query + context) is fed to an LLM, which then generates an answer based on both the original query and the provided context.\n", "\n", "Benefits of RAG:\n", "- Reduces hallucinations by grounding the LLM in factual data.\n", "- Allows LLMs to use up-to-date information not present in their training data.\n", "- Enables LLMs to answer questions about specific domains or private data.\n", "- Provides a degree of explainability, as the retrieved context can be shown to the user.\n", "\n", "We will need to install an open-source PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files, and a library for Chroma vector store, which is an embedding data base. \n", "`pip install pypdf chromadb`" ] }, { "cell_type": "code", "execution_count": 21, "id": "6bcb4440-8cf6-46b7-b95a-a18d39cb2317", "metadata": {}, "outputs": [], "source": [ "import os\n", "import requests\n", "from dotenv import load_dotenv\n", "from langchain.text_splitter import RecursiveCharacterTextSplitter\n", "from langchain_community.document_loaders import PyPDFLoader\n", "from langchain_community.vectorstores import Chroma\n", "from langchain_huggingface import HuggingFaceEmbeddings\n", "from langchain.chains import RetrievalQA\n", "from langchain.prompts import PromptTemplate\n", "from langchain_community.llms import HuggingFaceHub" ] }, { "cell_type": "code", "execution_count": 22, "id": "05285325-e216-4c69-bba2-7e94d0f2eb9c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "load_dotenv()" ] }, { "cell_type": "markdown", "id": "7a3a496c-0da8-459d-b878-69a4d6545989", "metadata": {}, "source": [ "As noted in the Notebook 10, to use the models from [Hugging Face](https://huggingface.co/), you should create an account, and then create a [User Access Tokens](https://huggingface.co/settings/tokens), and copy paste to .env file as:\n", "`HF_API_TOKEN=your-token`" ] }, { "cell_type": "markdown", "id": "086efcaf-414f-4162-aca0-a3b42df6c9b8", "metadata": {}, "source": [ "For a RAG system, we need a knowledge base. This can be a collection of text files, PDFs, web pages, etc. Now let's download a 250 page pdf on Global Economic Prospects published in 2025:" ] }, { "cell_type": "code", "execution_count": 39, "id": "186703f5-99e6-4a68-a5ba-5e0784a105de", "metadata": {}, "outputs": [], "source": [ "pdf_url = \"https://openknowledge.worldbank.org/server/api/core/bitstreams/f983c12d-d43c-4e41-997e-252ec6b87dbd/content\"\n", "pdf_filename = \"GEP-Jan-2025.pdf\"\n", "response = requests.get(pdf_url, stream=True)\n", "with open(pdf_filename, \"wb\") as f:\n", " for chunk in response.iter_content(chunk_size=8192):\n", " f.write(chunk)" ] }, { "cell_type": "code", "execution_count": 40, "id": "10c590e4-ff13-431a-829e-8b738ba2a6b7", "metadata": {}, "outputs": [], "source": [ "loader = PyPDFLoader(pdf_filename)\n", "documents = loader.load() " ] }, { "cell_type": "markdown", "id": "127e8602-93fb-4bb8-a2a2-7b1b1040eedf", "metadata": {}, "source": [ "LLMs have a context window limit. If we feed an LLM a document longer than its context window, it will either truncate the input or throw an error. PDF pages can also be long, so we split them into smaller chunks. `RecursiveCharacterTextSplitter` is a common choice. Its key idea is to try and split the text along natural semantic boundaries first (like paragraphs or lines) before resorting to more arbitrary splits (like splitting mid-sentence or by character). This helps to keep semantically related information together within the same chunk as much as possible. Its parameters are:\n", "- chunk_size: This defines the maximum desired size usually in characters, though some splitters can work with tokens for each chunk. We will set it to 1000 characters. The splitter will try to make chunks no larger than this.\n", "- chunk_overlap: This specifies how many characters should overlap between adjacent chunks. We will set it to 10% of the chunk size, i.e., 100. Overlapping helps to maintain context continuity. If a sentence or an important piece of information happens to fall right at the boundary where a split occurs, without overlap, that information might be cut in half, with one part in one chunk and the other in the next. The overlap ensures that a bit of text from the end of one chunk is repeated at the beginning of the next, reducing the chance of losing context at the split points. This can be very important for the retriever to find relevant information and for the LLM to understand the context properly." ] }, { "cell_type": "code", "execution_count": 42, "id": "29e0b12d-c23a-468f-9a69-6a85f0a7fecb", "metadata": {}, "outputs": [], "source": [ "text_splitter = RecursiveCharacterTextSplitter(\n", " chunk_size=1000,\n", " chunk_overlap=100 \n", " )\n", "split_docs = text_splitter.split_documents(documents)" ] }, { "cell_type": "markdown", "id": "e6e0101f-390f-4d7f-83fe-13b4be4b96c8", "metadata": {}, "source": [ "To perform semantic search, we need to convert our text chunks into numerical vectors (embeddings). We'll use a model from Hugging Face via `sentence-transformers`, `all-MiniLM-L6-v2` the same one we used in the first notebook section. This model runs locally and doesn't require an API key. It will download the model files the first time it's run. A vector store takes care of storing embedded data and performing vector search. There are many vector store opti5ons, and Chroma is one of them, it is free, open-source, and can run entirely on the local machine. Now, let's create an index which contains all the information. Given that the report is 250 pages, this takes a while." ] }, { "cell_type": "code", "execution_count": 44, "id": "085824f5-866d-4399-a79b-34f0b93f0c79", "metadata": {}, "outputs": [], "source": [ "embedding_model_name = \"sentence-transformers/all-MiniLM-L6-v2\"\n", "embeddings = HuggingFaceEmbeddings(model_name=embedding_model_name)" ] }, { "cell_type": "markdown", "id": "5a32d786-1307-40a7-8f3d-a4654679d2b8", "metadata": {}, "source": [ "Vector store can run in-memory, but it also supports persistent storage to disk, making it easier to save and reload data across sessions. Note that if we run thos code below multiple times with the same persist directory, we will have duplicate vectors." ] }, { "cell_type": "code", "execution_count": 46, "id": "550bb9a4-3e5c-4f07-8255-8a1cc6b0413c", "metadata": {}, "outputs": [], "source": [ "vector_store = Chroma.from_documents(documents=split_docs, embedding=embeddings, collection_metadata={\"hnsw:space\": \"cosine\"}, persist_directory='./rag')" ] }, { "cell_type": "markdown", "id": "1e492829-829d-40b0-a166-fb106e2f82ec", "metadata": {}, "source": [ "To load the vector store for querying without re-adding documents, we should uncomment the following code:" ] }, { "cell_type": "code", "execution_count": 48, "id": "6c4c7284-b9c9-431a-bcc4-20201864a304", "metadata": {}, "outputs": [], "source": [ "# vector_store = Chroma( persist_directory='./rag', embedding_function=embeddings )" ] }, { "cell_type": "markdown", "id": "8bd3a0ff-91fd-4c05-904f-3463684d5ac7", "metadata": {}, "source": [ "We can check the number of embedding vectors stored and compare it to the number of chunks we have (split_docs variable):" ] }, { "cell_type": "code", "execution_count": 50, "id": "b9c0e976-2710-4d9b-9763-7cb519c60e1e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1176" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vector_store._collection.count()" ] }, { "cell_type": "code", "execution_count": 51, "id": "8010c78b-af48-4975-920f-025d1e073d8e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1176" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(split_docs)" ] }, { "cell_type": "markdown", "id": "21859ffc-a941-41e7-89f8-a0bd1912eb8e", "metadata": {}, "source": [ "The retriever is responsible for fetching relevant documents from the vector store based on a query. Let's see top 3 chunk that match a sample query:" ] }, { "cell_type": "code", "execution_count": 53, "id": "64c9db75-dd33-478f-bb0b-83cecd3cb20c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "--- Retrieved Document 1 (Cosine Distance: 0.3180, Source Page: 243) ---\n", "Globalization of trade and financial flows \n", "High trade costs: causes and remedies June 2021, chapter 3 \n", "The impact of COVID-19 on global value chains June 2020, box SF1 \n", "Poverty impact of food price shocks and policies January 2019, chapter 4 \n", "Arm’s-length trade: A source of post-crisis trade weakn...\n", "\n", "--- Retrieved Document 2 (Cosine Distance: 0.3283, Source Page: 58) ---\n", "sizable investment needs with fiscal sustainability . \n", "More generally, structural reforms are needed to \n", "foster potential growth and put a wide range of \n", "development goals on track. These include \n", "measures to lessen conflict risks, boost human \n", "capital, bolster labor force inclusion, and address \n", "fo...\n", "\n", "--- Retrieved Document 3 (Cosine Distance: 0.3497, Source Page: 148) ---\n", "Despite EMDEs’ significant progress in \n", "integrating into the global economy over the past \n", "25 years, the global economic cooperation that \n", "characterized the years around the turn of the \n", "century has wound down since the global financial \n", "crisis and, more recently, has gone into reverse. \n", "The frequen...\n" ] } ], "source": [ "retriever = vector_store.as_retriever(search_kwargs={\"k\": 3})\n", "sample_query = \"What are the main challenges for global trade?\"\n", "retrieved_docs_with_scores = vector_store.similarity_search_with_score(sample_query, k=3)\n", "for i, (doc, score) in enumerate(retrieved_docs_with_scores):\n", " print(f\"\\n--- Retrieved Document {i+1} (Cosine Distance: {score:.4f}, Source Page: {doc.metadata.get('page', 'N/A')}) ---\")\n", " print(doc.page_content[:300] + \"...\")" ] }, { "cell_type": "markdown", "id": "0d9f102a-55cb-4b43-bbeb-17279e7d070a", "metadata": {}, "source": [ "Next, we integrate an LLM. We will use Mistral-7B-Instruct, which is a popular, efficient (~7B parameter), open-weight LLM from Mistral AI, hosted on Hugging Face." ] }, { "cell_type": "code", "execution_count": 55, "id": "9226f795-38a3-4ae0-8ca3-aedf29d870f4", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\sabina\\AppData\\Local\\Temp\\ipykernel_19644\\735099795.py:1: LangChainDeprecationWarning: The class `HuggingFaceHub` was deprecated in LangChain 0.0.21 and will be removed in 1.0. An updated version of the class exists in the :class:`~langchain-huggingface package and should be used instead. To use it run `pip install -U :class:`~langchain-huggingface` and import as `from :class:`~langchain_huggingface import HuggingFaceEndpoint``.\n", " llm = HuggingFaceHub(\n" ] } ], "source": [ "llm = HuggingFaceHub(\n", " repo_id='mistralai/Mistral-7B-Instruct-v0.3',\n", " model_kwargs={\"temperature\": 0.1, \"max_new_tokens\": 300},\n", " huggingfacehub_api_token= os.getenv(\"HF_API_TOKEN\")\n", " )" ] }, { "cell_type": "markdown", "id": "7a4f7231-5775-4098-878f-73e41a9fd7dc", "metadata": {}, "source": [ "Langchain's `RetrievalQA` chain is a common way to set up a RAG pipeline. It takes an LLM and a retriever. We can also customize the prompt template." ] }, { "cell_type": "code", "execution_count": 57, "id": "81b942f1-7e2a-4ead-8296-8e8083abdf8c", "metadata": {}, "outputs": [], "source": [ "prompt_template = \"\"\"Use the following pieces of context to answer the question at the end.\n", "If you don't know the answer from the context, just say that you don't know, don't try to make up an answer.\n", "Use three sentences maximum and keep the answer concise. If the context is empty or irrelevant, state that you cannot answer based on the provided information.\n", "\n", "Context: {context}\n", "\n", "Question: {question}\n", "\n", "Helpful Answer:\"\"\"\n", "QA_PROMPT = PromptTemplate(\n", " template=prompt_template, input_variables=[\"context\", \"question\"]\n", " )\n", "\n", "rag_chain = RetrievalQA.from_chain_type(\n", " llm=llm,\n", " chain_type=\"stuff\",\n", " retriever=retriever,\n", " return_source_documents=True,\n", " chain_type_kwargs={\"prompt\": QA_PROMPT})" ] }, { "cell_type": "markdown", "id": "061ba993-1aca-4303-8ef6-2d5f36c87ba9", "metadata": {}, "source": [ "Now we can ask questions! The RAG chain will retrieve relevant documents, augment the prompt, and get the LLM to generate an answer.\n" ] }, { "cell_type": "code", "execution_count": 59, "id": "4719cbcb-f7f3-4307-90fc-2138e91f0fcd", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\ProgramData\\anaconda3\\envs\\ml2025\\Lib\\site-packages\\huggingface_hub\\utils\\_deprecation.py:131: FutureWarning: 'post' (from 'huggingface_hub.inference._client') is deprecated and will be removed from version '0.31.0'. Making direct POST requests to the inference server is not supported anymore. Please use task methods instead (e.g. `InferenceClient.chat_completion`). If your use case is not supported, please open an issue in https://github.com/huggingface/huggingface_hub.\n", " warnings.warn(warning_message, FutureWarning)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Use the following pieces of context to answer the question at the end.\n", "If you don't know the answer from the context, just say that you don't know, don't try to make up an answer.\n", "Use three sentences maximum and keep the answer concise. If the context is empty or irrelevant, state that you cannot answer based on the provided information.\n", "\n", "Context: C H A P T ER 1 G L O B A L E C ON O M I C P R O S P EC T S | J A N U A R Y 20 2 5 12 \n", " experienced a pickup in the pace of core price \n", "gains in the middle of last year due to accelerated \n", "services inflation. In some of these economies, \n", "wage growth and demand for services has boosted \n", "core prices, prompting some central banks to \n", "begin reassessing the pace of monetary easing. \n", "More recently, global core inflation began to cool \n", "again, partly as a result of slowing wage gains and \n", "weakening demand for services. Meanwhile, goods \n", "inflation stabilized at subdued levels, no longer \n", "supporting the decline in overall inflation. \n", "Going forward, global headline inflation is forecast \n", "to decline to an average of 2.7 percent in 2025-26, \n", "broadly consistent with target levels in many \n", "advanced economies and EMDEs (figure 1.5.D). \n", "That said, the range of plausible paths for global \n", "inflation over the forecast horizon is wide, in par t \n", "reflecting substantial policy uncertainty amid the\n", "\n", "gradually less restrictive over the course of 2025, \n", "with real policy rates expected to align with \n", "median neutral-rate estimates by the end of the \n", "year (figure 1.6.B). Even so, U.S. government \n", "bond yields picked up substantially over the final \n", "quarter of last year, reflecting in part the \n", "continued resilience of economic activity. In the \n", "euro area, real policy rates are likely to become \n", "somewhat accommodative by the end of 2025, \n", "reflecting a more subdued economic outlook. \n", "FIGURE 1.5 Global inflation \n", "Global inflation continued to recede last year amid easing energy and food \n", "prices, healing supply chains, and the lagged effects of tight monetary \n", "policy stances. As a result, the share of economies with above-target \n", "inflation is set to fall in 2025 to its lowest level since the peak in 2022. Core \n", "inflation remained elevated last year, moderating the disinflationary impact \n", "of a sharp decline in energy and food inflation. Inflation is expected to\n", "\n", "international significance, such as “cyber runs”—\n", "runs on financial institutions prompted by \n", "cyberattacks—or the sabotage of key energy or \n", "transport networks. \n", "Higher-than-expected inflation \n", "The decline in global headline inflation over the \n", "past year has not been smooth, with bouts of re-\n", "emerging inflationary pressures interrupting \n", "progress. Whereas food and energy prices generally \n", "stabilized or declined last year, core inflation \n", "remained elevated, largely due to services prices. \n", "While trade policy shifts leading to higher global \n", "tariffs, as well as heightened conflict, could add to \n", "price pressures, inflation could also be higher on \n", "account of resilient activity in the services secto r. \n", "Additionally, the robust wage growth observed in \n", "recent years globally could endure as real wages \n", "continue to recover, feeding inflationary pressures \n", "with a lag, even as labor markets begin to cool \n", "(Michelis et al. 2024). \n", "Furthermore, while the baseline envisions broadly\n", "\n", "Question: What is the projected global inflation\n", "\n", "Helpful Answer: The projected global inflation is 2.7 percent in 2025-26, according to the provided context.\n" ] } ], "source": [ "query = \"What is the projected global inflation\"\n", "result = rag_chain.invoke({\"query\": query})\n", "print(result[\"result\"])" ] }, { "cell_type": "code", "execution_count": 60, "id": "7336bc55-2f4c-47e9-97a2-71e9aa9fdedd", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\ProgramData\\anaconda3\\envs\\ml2025\\Lib\\site-packages\\huggingface_hub\\utils\\_deprecation.py:131: FutureWarning: 'post' (from 'huggingface_hub.inference._client') is deprecated and will be removed from version '0.31.0'. Making direct POST requests to the inference server is not supported anymore. Please use task methods instead (e.g. `InferenceClient.chat_completion`). If your use case is not supported, please open an issue in https://github.com/huggingface/huggingface_hub.\n", " warnings.warn(warning_message, FutureWarning)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Use the following pieces of context to answer the question at the end.\n", "If you don't know the answer from the context, just say that you don't know, don't try to make up an answer.\n", "Use three sentences maximum and keep the answer concise. If the context is empty or irrelevant, state that you cannot answer based on the provided information.\n", "\n", "Context: uncertainty and adverse trade policy shifts in major trading partners, as well as higher commodity prices. Other \n", "downside risks include heightened domestic violence and social unrest, a slower pace of monetary easing and \n", "larger debt-service burdens, more frequent extreme weather events, and slower-than-projected growth in major \n", "global economies. An upside risk is stronger-than-expected growth in major economies, which would increase \n", "global demand and economic activity in the region. \n", "Note: This section was prepared by Naotaka Sugawara.\n", "\n", "percent in 2024 to 3.4 percent in 2025 and 4.1 percent in 2026. DT_he outlook for this year has deteriorated \n", "since June, primarily due to extended oil production cuts by major oil producers. DT_he major downside risks to \n", "the outlook are the intensification of armed conflict s in the region, heightened policy uncertainty, and \n", "unexpected adverse global policy shifts. Delays in o il production hikes by major oil exporters could al so slow \n", "regional growth. Other downside risks include persis tent global inflation and a resulting tightening of global \n", "financial conditions, heightened domestic violence an d social tensions, and more frequent extreme weather \n", "events. Upside risks to the outlook include the poss ibility of stronger growth in major economies and e asier \n", "global financial conditions due to faster-than-expected disinflation. \n", "Note: This section was prepared by Naotaka Sugawara.\n", "\n", "or even tighten policy if necessary—keeping policy \n", "rates higher for longer. This, in turn, would weigh \n", "on consumption and investment spending, and \n", "lead to higher interest payments on government \n", "debt. Rapid changes in policy rate expectations, \n", "particularly if driven by inflation concerns, could \n", "lead to sharp asset repricing and weaker risk \n", "appetite. This could further weigh on growth in \n", "both advanced economies and EMDEs, and \n", "trigger capital outflows from more vulnerable \n", "EMDEs. \n", "Weaker-than-expected growth in major \n", "economies \n", "The outlook for major economies, notably the \n", "United States and China, is subject to additional \n", "downside risks beyond those that might arise from \n", "escalating trade tensions. The realization of \n", "downside risks in either economy could have a \n", "range of global repercussions. In the United States, \n", "recent labor market indicators suggest that the \n", "expansion of the labor supply has begun to \n", "weaken, while consumer spending is showing signs\n", "\n", "Question: What are some risks to the economic outlook mentioned in the document\n", "\n", "Helpful Answer: The document mentions downside risks such as intensification of armed conflict in the region, policy uncertainty, unexpected adverse global policy shifts, delays in oil production hikes by major oil exporters, persistent global inflation, tightening of global financial conditions, heightened domestic violence and social tensions, more frequent extreme weather events, and weaker-than-expected growth in major economies.\n" ] } ], "source": [ "query = \"What are some risks to the economic outlook mentioned in the document\"\n", "result = rag_chain.invoke({\"query\": query})\n", "print(result[\"result\"])" ] } ], "metadata": { "kernelspec": { "display_name": "ml2025", "language": "python", "name": "ml2025" }, "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.12.8" }, "vscode": { "interpreter": { "hash": "365536dcbde60510dc9073d6b991cd35db2d9bac356a11f5b64279a5e6708b97" } } }, "nbformat": 4, "nbformat_minor": 5 }