{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Minerva: AI Guardian for Scam Protection"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook implements a multi-agent system for analyzing images (screenshots) to identify scam attempts, and provide personalized scam prevention. It uses [AutoGen](https://github.com/microsoft/autogen/) to orchestrate various specialized agents that work together.\n",
    "\n",
    "Benefits:\n",
    "- Automates the process of identifying suspicious scam patterns.\n",
    "- Prevents Financial Loss\n",
    "- Saves Time: Early scam detection reduces the number of claims filed by end-users."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Install Dependencies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "%pip install -q autogen-agentchat==0.4.0.dev11 autogen-ext[openai]==0.4.0.dev11 pillow pytesseract pyyaml "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Model Initialization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "from dotenv import load_dotenv, find_dotenv\n",
    "from autogen_ext.models.openai import OpenAIChatCompletionClient\n",
    "\n",
    "load_dotenv(find_dotenv())\n",
    "\n",
    "model = OpenAIChatCompletionClient(\n",
    "    model=\"gpt-4o\",\n",
    "    api_key=os.getenv(\"OPENAI_API_KEY\")\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Tools Creation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from autogen_core.tools import FunctionTool\n",
    "from tools import Tools\n",
    "\n",
    "tools = Tools()\n",
    "\n",
    "ocr_tool = FunctionTool(\n",
    "    tools.ocr, description=\"Extracts text from an image\"\n",
    ")\n",
    "\n",
    "url_checker_tool = FunctionTool(\n",
    "    tools.is_url_safe, description=\"Checks if a URL is safe\"\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Agents Creation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import yaml\n",
    "\n",
    "with open('config/agents.yaml', 'r') as file:\n",
    "    config = yaml.safe_load(file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from autogen_agentchat.agents import AssistantAgent\n",
    "from autogen_agentchat.teams import RoundRobinGroupChat\n",
    "\n",
    "ocr_agent = AssistantAgent(\n",
    "    name=\"OCR_Specialist\",\n",
    "    description=\"Extracts text from an image\",\n",
    "    system_message=config['ocr_agent']['assignment'],\n",
    "    model_client=model,\n",
    "    #tools=[ocr_tool]\n",
    ")\n",
    "\n",
    "url_checker_agent = AssistantAgent(\n",
    "    name=\"URL_Checker\",\n",
    "    description=\"Checks if a URL is safe\",\n",
    "    system_message=config['url_checker_agent']['assignment'],\n",
    "    model_client=model,\n",
    "    tools=[url_checker_tool]\n",
    ")\n",
    "\n",
    "content_agent = AssistantAgent(\n",
    "    name=\"Content_Analyst\",\n",
    "    description=\"Analyzes the text for scam patterns\",\n",
    "    system_message=config['content_agent']['assignment'],\n",
    "    model_client=model,\n",
    "    #tools=[url_checker_tool]\n",
    ")\n",
    "\n",
    "decision_agent = AssistantAgent(\n",
    "    name=\"Decision_Maker\",\n",
    "    description=\"Synthesizes the analyses and make final determination\",\n",
    "    system_message=config['decision_agent']['assignment'],\n",
    "    model_client=model\n",
    ")\n",
    "\n",
    "summary_agent = AssistantAgent(\n",
    "    name=\"Summary_Agent\",\n",
    "    description=\"Generate a summary of the final determination\",\n",
    "    system_message=config['summary_agent']['assignment'],\n",
    "    model_client=model\n",
    ")\n",
    "\n",
    "language_translation_agent = AssistantAgent(\n",
    "    name=\"Language_Translation_Agent\",\n",
    "    description=\"Translate the summary to the user language, which is the language of the extracted text\",\n",
    "    system_message=config['language_translation_agent']['assignment'],\n",
    "    model_client=model\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Team Creation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "team = RoundRobinGroupChat([ocr_agent, url_checker_agent, content_agent, decision_agent, summary_agent, language_translation_agent], max_turns=6)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Running the Team"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<img src=\"data:image/png;base64,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/P7b777r2LHjo48+KqWKqI0AAAzRsqz9Bw8+8+wzU6dNnTJtWr169bTWkydPXr5k+XnnnTdtxoxp06cvXrJkxDsjpW2/9967RYWFQDRo0KCly5f94Y4/IMCTTz299IflS5ctS05OdpJ4lVRKaap9JSCttVJK67q3eVrrd0a+U1hQcO31106eOnny5Mlz583785//Qlq/O+rdsrIyArr55psXLl7Y77x+yNjbb7+9YuWKjz7+2OVyaa2kbSsprZDl7BqCweBbb761csXKs846699f/mfhokULFi187/336mVnfzVm7MyZ3yulAICIlFKWbX362acvvPDCrFkzFy9e/PnoL3JbtNiyafO3305w+l9RWfn2W28xxl599bWp06Z9/K9/TZ4y5bx+/davX//dd9+GQiHnFmJiYhAhPi7+ZxhQvwOctCnl1AX15LccFRWVCNi6desTOdi27UkTJxYXF185bNi1112bmZHpcbsbNGz4l7/+NScnZ/HChYsXLyYiZ1+nlWaMPf30My1btvR6vUnJyQ8++FBOTk5JUeG+fXsBSEo5btw3lVWVw6+++vrrr09KSvJ6vc2aNXvqqae8MV5gWHNrhETEBX/88ceHDx/epEnTrKx6breLc96/f/9JUye9/MrLDRs0SIiP93o85/fvP+TyIdVVVUuWLOFCGIZwu90ejwcJECE2NtblcgE4MQwICIiAJ+xeY4wxxu+8885Jkyc98cQTjRs1TkpKSk5KuuqqYbktcouLi4qKigDA4/W6TJNxBkTemBi3yy2EYAwd01SkHZRSlZeXT5s6LS097dnnnu3UqVNMTExCQkLfc8/985//bNvWS3//ezTjgoiA4Lrrrrv00ksTEhMTEhLOOqvngw8+JFzm4sWLtVIA4Pf5CgoLmzRp3LtP75iY2LjYuIYNGrz00kvvvff+2WefLYSoaQpA/85dbr88frKg6sN/gNV8xn786R92tlIWIHCB0caOA9uWkyZNRcIrLh+qpGZMIAqGIjYm7tprb0AuJk2aQsQAOABjTJxzTm8iJA1AKDhH1J07d0KEUCiISIB63ty5HFmv3r0RuSEEADDG4uLjb731VqczjrGFCICYYKJ5s1zGDMfqCwSC89S0tGbNmiUkxjOOwVBASoWIXq8HEQOBgJKqNsGFM59pLR2pREQEFrHr1rKXRjf3RwVvE2nGqHGT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x44dL77k0oL8vI8/+khKSYQA3LLUihUrPv7oo/j4+KeeftowDKkU49xZ0BABGRApQFJKAoYT2QC0JuVIeoSzmqJBToBo2SFkYJhi+/atth265NKL4xNiDYNrLYVgjKEOZ8NJIqm0TSSREda+OwamaUhlay01Kc7RskJKy5r8zxoQgEYEpTQgYiTIkYjCtIM6cjCC1hIZABIXTrSAIlLIwLkXRGaaplMyK7r4OyooY05clBNXqDUpTQ55ojoOB5XWFAnP1MiAIneHSIiELBzmVZNMG05gR3/A//rr/yg7VPLYn/40fsJ3bVq3u/a66+fOm9ejZ495c+d9MXp09KbGjfv6rrvu2LJl84MPPXTtddciEIDm/LAAsiiUUgcP5o3/5puGOTnvvvfepZde2r59+/PPP//tESNSUlK+GjOmrLycAJxnuHPXrjlz5zZt2vSDDz4YNGhgly5dLrrooldeeTkhIW70558FAn5ADagRce3atXNmz27YsOG/Pv3kwsEXduva7dJLL3vjjTdMlzn6888qKsp/d7L6a3ImEdHdd989efLkzz//vF///j16dEfktm2PePttYRiPPvZYakoKMmYwppSqqqpat27tkiVLLcvKaZTT77zz0tPTowTzUsqtW7fuP3DgvHP7O6R7zueBQHDVypWA0L5DOyc8eNv27YZhDhg4EIikUlu3bs3Ly2vVunVqSoppRmIGAfyBwLJly+Li4rp17eqoaqFQaPee3TO//37//gOZmZk9evZo27ZtbYqDIxAMBubOm5eYkNCte3etiTMAgOLiog0bNmZlZbZp0wYASGuldXF+/rr161u1bJmVleUkjlaUl+/YsWPJkqWlpeXp6ennnntuo0aNDEOEaew537Nnz44d2zt0aB8TE7Nq1aoVK1ZUVFZ26tjp7LPPSkhIOA5VEmNoWXYoFJozd9aGDRv8Pl+zZs3PPufsxo0bc8YwEqZ/NLZv37F58+YOnTrffPMtUkrOkXORmpL62GOPXXfddct/+CEUCno8HgB4d9So1NSUF196qW3btm+99Ray46U8EtH338+oqvZdNXx4YmKSkzELAA0bNDz7rLMnT5k8ceLEG2+4kUBLpebOmVNZXn799Td4PB7OuTP3tWjZon379osXLpw6ddqVwy4HAKXU/PnzLcu67fbbDcPggiMgY6xNm9Znn33WggULp0yZeu211x67U79F/JpULABQr17Wiy+++MgjD7/55pvvjHonPi5u3ry5Cxcu7Nat24DzBwhhKCU10bq1a5955pldO3c5tSqUVv98/fU/PvrYhRddmBAfTwBK688//3zcuHFjx45r375dhPsH/H7fc8/9jQg+H/2p1+Mhrffs3p2QmNC8WXOH72zlqlUvPPfc7X/4w0MPP1zTLcQli5c88MD9V155ZccOHQzDqKqq/vjjjz/59JPqyiq3x22FLI/Hc9HFFz/00IMpKWlHcb4AADDG/vbs32zbnjjxu7T0dERUSo/75pu33ngju3796dOnhyP+tX7zrbfGfjlm7Fdjs7LqKaV279795JNPrVm9CpFzIaxQ8O233rzr7ruHDx+enJzs7BEWLVr80ksvPvu3Z35YvnzC+AlC8GAo9Nm/Punavdtrr71Wr149OEZKrlLqhx9+ePHFl7Zs3iiEQIZKqcTExDvvvPPa665zu9x1nAMghFFdXQ1AbrfbySgCZIggBG/ZstVLL73k8XgiKQEw+KILr7j88gYNGoQJShEdvjXSdQislPaECRM4ZxdeeJHH49FaOXoD4+ziSy6eMmXKrJkzr7/+etBo2/aM6dOR8fPOOy9SJgMBkDN2+RWXL1q48JtvxjmCalnW4sWLhWF069YtPCSdHGXGhg0btnDhohnTp1933XW/L2fbad6jRlkAfuQwRETknAkh+vbt06NHj+XLli6YP3/r1m1P/OkxzvjzL7yQlJTobHt2bN9xyy23bNy4sf+A87/8csyUqVP+/veXbameeeaZyZMnQ8QAZdl2KBCMsiJEOb6UUqFQkMIEQtiqdetbbr45LS3V6clZZ52llZ42bZplWdGhjYhvvvWmtO1LLrnEMExbyg8/+nDkyBEu03zzrTcnTZr80ccf16ufPXbsmLfeeksIA/HIO3au3rVrl/Ky0v3793PGAcC27fHjxgX8vsKCwv379yMyZBgMhebNmZuQmJCb20IYori4+MGHHlq+fHm37j0++/zz776b+Mabb7nd7tdfe/WNN97QWnMuiIhIBwL+r776aumyZa//4/XvJk78z5dfNsttvnDBgocffthxM9b55EtLSx9//IlNGzfeetttEydNnDx58ksv/T0YDL766qslJSXH2tvbttWhQ3uvx7N82dIJEyYopUiTUsrJ/hsyZMigQYMMIzzpP/Tggw0bNkREIu3Y2ZVSWqk6W/b5/Lt37iSiVq1aOdZj53MpZW5uLgKsWLESCIRhKKV27NwBQM2bN691d4SInTt3Zgw3blxvWRYAKqV27dxFWmdnZzuTUfilAHTp0kUrvXv3rmAwcPwh+lvDr1l20UFMTMyjjz7qMo2nnvzLW2/9s6q6+tbbbm3SpEkkbU2PHTumqrLygQcffOOf/+zUqVPjxo0vu+yyUe+OQoTXX32tsLDQ4TFhYUJQOso8S9ENmyZ92WWX3Xb77abp2P2oXr16Pc8+e+uWLVu3bg0zjGm9c+fOjRs2dOrcuU3btpZtbdm8+Z0RI1u2bDllypQLLhjcqFHO2WefNeLtt+tl1fviiy/27dtbZ4Q5Y+yss87WWu/ctQsZEuiDefsrKityW7bWRGvWrFFKIWBhYWG1r7pHjx4ut0va9pw5c7Zs3jx48AUffPhB586dmzZtMnjw4K/HfZORWW/KlCl79uxVjmFHaWXLTRs2fPbpp4MuuCAnp1GXzl1Gjx6dlJi0ZvWardu2EkCdO9Xi4uJz+/Z59m/PPP74482aNWvcuPHgwRfcd//9Pp/vs08/ldI+ar8NAMC5iI2Ne+jhRxg3nnj80euvu3r3nl27du/ctXt3+IjjGsyPg/LycgKIj4939h013jKilJRUT4zXtq1gMKi1LikpIQ2xcXFer/eIx52UmOiNjbFCts/n01ofOnTIIXZMTk4mIq3CRgtEdLvdsXFxSqlAIHgSvT1FEP4E7pUj8AtzJh0NYgzatW/74MMPV1dVT5s6NS4u9s4779Raa4fDEnHatGlxsXEXXXSR48QjIsawc+fOF154YUlJydIlS7TWNWX8anIzGCJgOKk+DBb1/0Toy1ymcf3113AhPv/sc9uWAKC1XrJ4KQAbcP4gIEYaV61cKW37oosuTk5JEYJrIi5Ew5yc4ddcbYesb775hkhHFT/n6g5ndbPmzRiyNatWW6EQQ7Zv376A33fd9dcg6FUrf5DS4lzs3LE74At069aTNNi2+vLLsaThxhtvZujsSIkxbNiw/mWXXVJVWTFu3FhhMAANqLngfc/tn5VVH533QBAXl9Cnb18gqq6uQqzTmKRbtW755FNPXnPtNYwzcNi4GevcuTNp3Lhxs5ThZDoi7ZBLhR8qEWN47XXXfDdxQvfuPfbs3lNaUjL+63EXDBx0xx1/KCoqsmsxfR8FPGLI1P7Oqerh5LtrraLfCiEYZ16vFwCKS4oZY9VVVVpLr8cTNSXUhpOWbIUszrlDGxCXkABhn6ojHcQYY4x53C5kPJzbfLjNLDpAflb8JjiTKJL5+ZNuFxGHDRv66af/KigofPmVlxOTkhgyZMgZq6qqys/LS09Pz0jPqH2K4Pycc84Z9/XX69avv/jiSyzLJiIgQIdh8/DHHSWnr7VWOImdGgC6de+e2zx35coV5eVlGRkZUqlFixbHeLw9zzrLMAzG2I6dOwFh7do1b775JgA4hVtI69179gDAxo2bLKuOkDdEyG3ePCYudtPmTQCAjNasWWW6XAMHDFiwYMGy5csBIWRZmzdvUkStWrVijAeDwd27diPjbdq0FaKmTqQQvFevc/718UcrVqyMVpQCoNTUlNoBG9HMeDjSBF1zy0Cktaoor1i7Zm1+QYGvurqiouLgwYMRsTzmsEFEIXjz5s3e//C9nTt2/vGPfxRCeD3euXPnDhww8LXXXzv33PMc/oefBM45kJZSRbLha6SdtA4Gg0SUEB8PRDGxsYDo8weOnhEoTGgKgMAYM02TSEspSRMXnCJUjFoT4zwUCnmY+FX4SukUgvZOt6ACwE/XgbTWaWmpLtMtOO/RswcQIUPS2pKqvLzCtiUXwjSN2sOIc56SkgIE1VVVWiuH+wsw7LqI9iUsmeE6DuEKn1izFwXTdMdo1aNnz6+/Grt///60tLRgMLhwwfzcFi2aNGniBNxUVFQA4vz581esWOHIdrgpTekZ6bGxsUKII9RFItBaJSQknnXWWQsWLCg5dCgtLWX8+Al9+vRJSUkZPnz43XfdVVxUlJSUsmrlyvj4uJYtWxqGUV1dbVkhAPJ6vZyz6IiUSqWkpJCmysoKhwgKARAZZ1wIQ8ojqMadHtTs4iK/IAD4/f7Ro0ePHPm2tLXb4xbOthCjI6iOCS5yRxoBhDDiYkXjJo2TU5J79ux53733f/rppy+98OKod0b1Pffcozrx4/pwbGwsY6K6usqyLI/HHX2KRBQMBoPBoOA8Lj4eAOLj4zkXwWDQsmzDOKyqmG3bFeUVQoiYmFjLspJTkg3DqK6qsizLxVzR29BaSSlDlhXjjTUMo8bK9EvhVIxXv2bZxZqzELUGREDGBDccyg8nqDAhMQEZKqls2z4iBLyqqhoZi42NQ2QYKTbh8Ak4lC7h4jgOZUgtSXJadsTAtm3OxKWXXvr5p5/OmjW7bbt2c+fOLS8ru/POu0zTFIJLqZzrPvTQQ+eed55lWQwZY+g0iIiJCUlO0cHD1xNylojbbrt9zuw58+bN69qly4H9B5544s8ul6tTp07xcfFTp04bMmTI+g3r+vTpm5AQr7WKjY1zKC2CwYDb4+Kch+tUaV1VVQWISUlJnHOttbP42VJGmFAAIgo+ADjMqLXFDNGh+cRPPvnk7Tffysyu98c//rFJ48am6RKCb96y5Y7b7gCoTel22Nqotd69e1e1r7pli5Yulym4CRoNYZqmecMNN/zzn//csnWLbduippBHuJmjK+gcgbi4uIzMjD27d2/ZsrVDh7YRHy8IYWzZulXadrt27d0ul9Y6Lja2UaNGW7du37FjR8uWLaL3BQAbNmwAgJxGjWK8sQDAkDVu1Gjz5i379u1t2rQp4xzClalo/bp1VijUsFGO1+uJaBBH6l8/H9hP1DQPO/d0duRngGkY2dnZIStUUFBQ+3Op1Pz58wCoYcMGQnClNQEBUWlpqePTDx8mVVV1dYQ4vu5ZhDHWqVPHlq1azZg+rbqq6pN//atBw4Z9+/ZljDlvsVmzZoyxyqqqRjmNWrVqlZvbPDfyX4sWLdLTMxhjx4oLy22Rm5aeNmXKlO9nzkxMTOzQvj3jPCYmpl37dpMnT5o9Z7Zt29ddF/bpIUKjRo0AcO3adc7kApEv5i9YAAitWrVSUjr6AYXjB07o1TubzEAgMGP6DMb5OyNHXjh4cKtWrRo3adywYcO42NiokDtbtSNONwzj/fffH3r55Z999ilBeN6L6JMajqz4/hNgGMLhDZ0zZ7ZSuqa8iJKzZ88mop5nnSWVcligunbtQqSXL1+uDrchT540iQAGDBgQ7W3rNm201qtXrwbEKHUrY+zf//4PIJ5zTq9oGNPvBacUmXQ6OJOiloYjehX+QeRn9Ty7qrJq0aKlUmqlgHNTKVq/bv2kSVOF4Tr//IGm6WHIWrVqBQgzvp+ulK1JOjxM06dPP3jwIGOcyFl0ufNT6yoIAIwZw6++5uCBvK+/Hr9n954BAwaYpukMPsawa9duDHDKpEnBYCAq7kqq8RPG33jDDdOnT7Nt+1izgMftbdO67aaNm6dPm9GkSfPY2HjSZJpmmzZtiooLv/76q8TExJxGjcIHezyXXTZES2vM2P8EQ0EAUtq27dDBAwfGff01Atx8yy1cCKmklBK0ltKW6ojQPKz172GGP63JIVVijCUmJTluJwT0+f3vv/9+JMIsHJt1xF0opS699DIE9torry1dujQUDDo0/sGQ/+txXwWDwa5du3HGojxKdb3TGmit/X6/ZVlExBi/8MILDUNMnjzxUOkhANCklFZ5eXnfT5/h9cZcNfwqzjgiM4Rx8cWXmKYYP/4bKZWzJdda79mzf86ceTHe2JtuvtlpXwjjggsuNAzjyy+/si2Lwguv3rVr1+xZMxMTEm648fpaXFy/9E71eLa1Y+OUVN9fwGHMOb/+hhvmzJn7j3+8np+f17fvuYYQm7ds/vcXXyglH3/8iYyMzFAoyDnv3bt3QkLCtMlTGjdq1L59BwBatmzZmLFjExMTnZp/R2iDtYGI55173ruj3nnvvXf9/kC//v1rl0Vq07bNxZddOvHbb+++++6rr7mmcaNGZWVlCxcu/PTTT7Ozs3v27OnYr+qUVcZY6zZtpk2bXl5Wdv0NNzhmTM5Yr969P/rww7yD+X369ElOSo4czC+99JLx33w9ZfLkGK/3/AHnx8XF7t69e/y48SXFxZdddllWZiYACM6FEMBQCC6EOJHATUfNc7tdHTp22rR586N//ONdd9+dmppaWFD43XffFhUXA0A0SuRoKCW7dev+f48++sYbb9xz111t27ffvWt3wB9YuWLF8mXLk5KS7rjjD0ZdxtijYdvW66+/vn79+oceetjJemnQoP6AgQOmT5/x/HPPXXXVsKZNm+w/cOCdEaPy8g4OGz48MyMD0bEDsZYtW3bt1m3RwoV//vMTV199TaNGObt373l31Kjy8vIbbrg+WmwOkXXt2q1btx4LFy185OGHb//DH7LqZe3evWvUyHcty75y2JUet4vCS8zvJtj71wwhPAJCCCHEEUoUY6xjx04fffzxgw8++PFHH/7row8BUAN43O6hQ4deffXVjpXPsq0G9evfdPPNH3/88euvv+4YjU3TvOeee6ZNmxYKWVHVrk4gYnb97KZNmy1ZsjguNr579x5KacNw7JBoGuYLzz9fVVm5bPnyJYuXCMG11oCYlJj00ksveTxeAJBS1mnzdLncXbp0dbndSsmBAwZGK7V17tQpNi62qqq6ffv2zozn9DAjI+O999+79dZbv/7qq6/GjGUGAwLBRO++ff/0+OPCMFSEZ1Rwzrmgw2uTc+cZYt0zNWPsgQce2Lhx48qVK2+/5VYnXLFBw4ZPP/vMjTfcIIwjH36tV2MgyptvviUzM/Nf//po/dq1lRWVVdVVxSUJffr2fv75lxISE+p6uMiFMISoHdJo23LmzJl79+7Lzq7HGDLG4uLin3/+hW3btk+fNm36tOmcMwIiTZ26dHni8ccJQGvtdDU2NmbkiJHXX3/dxG+/mzxpEmeoCQCwS5cud955Z629OvN6vW+89eY1w4d/P3PmzFmzGKKjqrdp2/aOO+4AQM54uPDf7wQ/C2cSnBQny5zZs/2B4MCBAwzDOOIrIsrLy1u5ctW2rVv9fl+DhjkdO3Zs3759jWwgIIBU8oflP6xataq0tDS7fnbXrl1zm+euWPGDFbLOPqfXcap0Og9h3br1B/bvr5ed3bFjB8Zqh8tqAPL7/evXr1+2fHllRUV8fHyzps26de+WnJxyRHnFo1qGQCAwe9ZMTTRgwAC32+2YezTRokWLKisqWrdu06hxI6xRFIlIl5aVrVy5cvOmTaWlpfWzszt37dqhfXselkAAgF27dm7YsDE3t0Xz5rlRMbBte926tXkH87r36J6WllZnfxCxoqJi+fLlP6xYzhCbNm121tlnJScnfz9jRkZGRrdu3R1/j0MgeNS9aMaY3x/Iy9v/4IMPdu7c+a677s7Myjw61iP8P8a3bN68ZevWdu3aNW/ezNkWHjhwoH+/89q0bffVV2OdecHJVigrK//+++9XrVyxb//++vXr9+vfv3v37omJiSIcLRhuUykqKyudM3vO4iWL8/PzGzZseP7555999jlONlyk82FneWlp2ew5M5cuXVqQn59dv36/8/qde25frzf2uEP+mLaMU8eppLmddrrQk7dOaU1O3sYxdGp0PCtS2oxxp86FaZpOliNEyO+c3BTHgExEbpcrZFlak8NbeyxtncLmJnDaN80jRDpSgNwZVJqUkozxcC1SOJ6gIjIirSKsBQ7hSzSWQBMZYddOjaA6FmPLtgUXjLNgMOiE1zJEpxGtFSBqpbUGJ9MgchdOmUUn2+SYb9Yxj9sy5JR7dAL3pJSaiNdYfeseTE4Wmz/ge/T//tijZ88bb7xRacWOvPHovYS51DHM0M0AYOHCBbfddtuDDzx419131dovaER0EuJcbncoFOKcc86VCjeOkWSiiCELbNtyajU7inH4wocLKiISaNIaGdNKExBnDJEfl0HiNyqovyHOpAhH+7HiVB0KiLBFV2tiDKWMRhqE3QCIUKuKIkipGXLGw8bJY6k6zufOBH+UlIJz0w59AWeoUTPOEZlTD+b471XrcIZarUsjIgcgRIoSeNfuCwASMUMYAKSVMgwDI6palICTITLBomIZaZfV4rn/Ea+D4AYQMGY4vhzGBEd05rjjwIlqdpmuvz33fDjo73hERORwpjgTkzMJbNq0yeP2nH3O2dEGAcDxDTOmGTNIk+mEeREw5LXeL5DWkR5ibbWrTpqOcCgaMBSgiTjHsK/9d6PtHobfRMDDSeAEH3ckVPDHmXWcw4/bd8RIzA86xPZh78iPZiDU+eGPnxi5Vu1Twr8cf9I/wa0XkTP7hCXhBPZs4VmJMZ6cnBzt4XF7Ep6Joi0fOHAgLS01Kyvr8GtF7+iIiIsj3bBR7eFHLnxYp8NTONHvlCQT4OejCz2Rsou/IH5cKiKHncHPi6uvvubSSy9NTk75ZS97ggPgt4vfRGSSgxNcB07OUnci3NAn19SPtXwc58nxT6y99TuskcgVo6vNyfjuT+qBnFwQz2EhxK1atfzpLUQuH31idaQcHBGofHQ/6wjk+B3hd9z1M4jid+RmOIOTw09eUY/Iy6BaOi6GN4Q/E350sa7j0kqpmpySXwM/JkEn+LhqxxuF4ThLtCatlWEYWuuItVMrpYXghmEGgwEnEBJ+PWE+QesAOYs8gUMrVTebzDFs9rX+rWFCNAwhZd3Z6r9HnKqg1v7g5w/1OI6sHtOcS0SOx/xn6tMp40SeWN3HWFYoFAq53R4iJweAABzmNAoGQ6GQZRgG1RAm/4qr7o9emoC00uRYlXjt4P4f30wddgQiU1ojoGXZTuXOk+vxbw2/2vAlIimllLI2H6TzuVLKtm3lhGLX9dURpxwHY8eOffzxx9euXXva+n0KoNPqo1NKvvDCC1cPv3r//n3Ok3T8qFLa77373i233HL//ffXzmT4+dyDpw4CKigsfObpZ0a8PSKqGvy0FoiUUlLaFZUVGzdsWL9+XXV1tW3VMYp+pzjtnEkaSf8YZxIistLSsquuGn7jjTdVVVXX/k5r/eWXY4ZcNuQvf/lrKGQ5rAvOOcFQ6JFHHhkyZEheXv4JPv0FC+ZPGP/NEZk3vwqIdGVlZVFxUSAQUMoRqlNK4Ni//8D4b8avWb1q9OjRUkrHd1peXn7xRRe//PLLO7Zv27Nnd3V1tbNGVVdX79+/v7y8/DTdzekGQVVl5eTJ381fMFdrW+m6MmyPDU3k8/m//fbb4cOHd+7Y6aLBgy+55JI2bVoNvfLKjz/+uLT0UETj0BF21d8ffgXOJEcdTU5O9vt9q1atWrduXe1vpZSzZn6/ceP6CePH+f1+IcJ7FU26rKxs9erVRYWFsXGxJ27B+41MqFrTvffcc17fvhs2bjixDtXOU6rj2/r1691y281t2re95ZZbTdNwAgCWLFm8a+f2fv3Omzl75vgJ3zRv3pQL1CS/nzG9X79+n332mZRHZsYc99J19vQEv62728f6Fp2AkuNIEZJD23u0yde27b8++ddH/++Pa9eszWmUM3TYVcOGDWvXrv3WrVtffPGFRx5+2B/way1P4aZOD35RziSs9XNE6PcJuJPJUVIcuudrrh6ubGvq1MmRkCNGpC0rtG3bVq21ZVlz5sxSSjlnccYL8guLi4pbtWrjMj2McSJQihB5xPLuNK4jlvq6f4g0gSbQ4fkVCZkTOuMQcIdpqZWyEQ87UZOKEmQTKc4xQnVNkTLb0dZUZPLWkaA/0posy7ZtqRUx5FpHgzHqeEoEGgA0hVm5HFU/8qt03jXn7J577pkwYUJWVpbzhW1bpaUlWutefXrHxsZ63G4pJWmNiD6/LxjwKWWzGtLtOq7LOGpS4cAGjARMksM2hFqraPCjU/8uSkAHQIBRBwk5lCiRr5zHq7WWRKS1QoZaa0fFdW4QEZ3oRyDHBXT4Y8HajR/xpCgUsl5//R+TJ05Oz8wYMXLEd99998orf3/xxRe//nrcv/71r44dOyxatOjR//u/al9YcZNSIaJSynn7YSJy0s41fwFbxtGD8kTwk41Jh0kmHBbMc/y4nugZEFnlBg8e/PLLL69etTIQ8Hu8XqmkJp2fn7dv796WbVrv2b178eJFQ68c6oxoKfWmjZuCIatjp05ut0trQuRa20VFRVVV1VLajGNqaqrX4zFME4+8YviB+Pw+v99vCOF2uwPBYHl5uZQyNjY2PS2NALRS5eUVPr9P2jIhISExKdE0zRqjBmlFUFxcHPD7bVu63a64uLi4uHgnltUZxz6fPxgIer0eQCw9VOoP+BMTklNTUwKBQGlpmVJaayovrygsLDJN0wnuqeMRIYEmW9pV1dXFRUVEEB+fmJqagsiqqioBKSkxyRniPp8vGAzGxSbExHhDoVBZWWlZWRlyZoWCxUVFnPPYuFjLDlVVVpVXlCOiP+AvKCwwhBFlSz3i0g6riy2VbVklhw4FAgFp65TUlLTUVMMQRArRoSZCrclXWVFaWh4IBKWUCYnxGRnphjCcl4uIzi3Hxsa6XO6KivLKynKX252Rkc4Zty0LAKqrq/Lz84QwPR5PalpybTqro7aoxxzMSuktW7aN+c+YuPi4/3z5ZcOGDTnnWoWP79mz56h3R115xdCFC+bv27u3ZcuWiGgYgoiQYUVFZXn5Idu2pVJZWVkxXi8XQkv9C7hbj+/wrROnOeBBRyy/JxKZlJic1Lx5swMHDhYWFTVs2JAxZtv2l2PGAMKtt946csSI3Xv2VFZWxsfFAYDWasmSJUC6W7duWhPnEAoFP/vs86+/GltWXh4KBEy3mZGR8dDDD/fp3dswzDrtEYKLG2+4oVWrVsOHD3/++efz8/Nty05LS33k//6vf//zp0+fPmLE2yUlJdKyMzIzb7nt1qFXDHW73eE1RNPYsWO/+GJ0cXFxMBg0DTMjM+Oee+4dNGiQw5kkpfzk439NnzH9L3/5y7ivxy1ZvLjKV3377Xfecccdo0ePHjNmzMEDB20pn37qybi42B49z3r22b/V6YQgTVLa//7PF2P+MyYvPx8A0tLSBw++4KKLLnnk4UeaNG30xhtvcoGa1NNPPbV+/fovvvjC43EtX7702WeeLSsvVbb88MMPxn31lTDF56NHr1u37rXXXjt06BCR/nrM2Fkzvm/YuNHbb70VF5d49KUZomXbe/fufmfkqJUrV1ZVVUkp09LSzzmn10MPPZiU5JyibUuuXr3mtddePXDggN/vV4rS0tLOPvusxx57LD4h1pkVi4oKb7j+hosvvSQ1Nf0///53cVFhu/btPvjgPRSCNEyaOOm9994tyMsHxOTklAsvHDz4ogshysRBdYYc115+wrJkGGLWrFn+gP+mm25sUL8+QzyC2C0tNW3osCvnzJ61e/fOli1bAoBUEhGXLF78j3+8uX/fnpAVQoB69bOuufq6y6+4wuv1RtSN0y+uTkXSE1jP6sCvGZnEGGue22LLlq179+zJyclBxGAwOGP6jKTk5Msvv/z7GTPWrF7jq652iEKqqqqWL18WFxffrl170zT8/sCoUaPefvOt7Ab1+/Tp6/G4Dxzcv2rFykceeuiDDz/s0aOHMy866S3Rt27Z1o4dOyoqKjZs2FCvXr32HTrs3LFz2bJlj//pT48/8cQbb7zRtm3bbt277929Z8mSxc88/XRyUtKFF14IAIFAcPTnn7/097+np6X17NkzKSmpsLBg7tx5999/3zujRg0cOBAAiKjkUMnOnTtffvmVXTt3tGnb1u1216uXhYjp6RltWrcuKz0UCgWbNGmakZ7eqFGjYy0UWutRo0b98x//SE5K7tChQ3b9+gUFBZ9+8umaNWu3bdvq8ZhaK0ZcK71v3/7t27YFg0EA8Hg8rdu03bNnZ0lxcXZ2drNmzThnLpeZEB/fskXLnTt25h/MT8/IyM3Nzcqux4+RwKGJigoLb7zuxsLCwk5dOvfo0SPgD2zavPmzTz/dv3/fq6++kpqaCgC7du165JGHS0pKevbs2ahRo1DIXrxwwejPPw+FQi+//CIBY0DV1dU7d+2cPm16SXFxvXrZnTp1ata8GRdCSTVx4sTHHn3UEEaXrl0aNmxUVFT85Zgv161bZ1k2ERBpTcRPbCxbljVn9ixSulu3HkI4mevoUKU6STaI8MD9999/370YLSpPNGfO3Icffsi2ZLfu3bKz6x0qObR+w7qnnnwqPz///vsfcLuPmQ55inA4k07OX/RrJo4LLlq1ajlh/PhNmzb16dtXSrl/377iosJBFwzmnPfr33/RwkXLl/9w6aWXAMDGjRsrKiv7ndcvKSlJKVVUVPTZJ5+mZ6R//fW4uLg40xTBYODb7777yxNPfPHFv7t161ZnGrdWCojKysvvvffeK664QggjEAy8M3LkiLdHPP/cc888++wFgwd7vV7bssaPH//kk09+9dVXgwcPBkRN+quvv0pPS/3gww+b5zZnyJSSW7duvXzI5SPeert3797xcXFKSiII+P0HDx74/IsvmjZpAgCIwjCMSy65+Pzzz//DH25fsfyHe++7r1OnTi6Xy7FDHlX7nPYf2P/WW29xLl557dU+ffoQgdZ627att916mxUKSaVraYnOtpUYZ507d+7UsfPnoz/dsH798KuvHjr0Cqe4YKfOndu1b//VV1+tXrV6wMCBd919l8ftPpb/wwqF7rjjjrz8vOHXXPPXv/zF5XYDUXW17/E/PTF79syxY8fefffdAPTJJ5+Ul5U/9thjVw0fbhgGQ56fnzdkyJBvvhl32+23NGnSFLhQWmul9u7Z87fnXhg0aKDLZTDOGWMFRUVPPfmkUuq1114bdMEFhjClVDt3bb/m6qurKqoAaijaTgRa0+bNW7jgLVq0YIxH/HbRNAyKNFiTO1lSUvLQQw9WV1a9/s83Bw0aaBhcKXXg4P4brr/p448/7tChgzPt/tbwk9f3I/fBtR7pCai7tU1RyDnv0aMn52Lp0uW2LYUwNm7cRIDde3TnnJ/bt69hGGPGfOnsedauXUOkLxh8gVISETMy0r6fNXPK1Cnp6Wkul8mF8Hi9ffv2BYDde3aHLIsiCHc7ahghSIiLGzBwoMvtFkLExMTcfvvtLpcrPT29b9++MTExnDGXy9Wnb1+v21NaWhoIBKSUgvPRo7+YOGlyq1YtDSEMQxim2axZsyZNm1SUl1dWVEiplNakNSK/88672rRu43Z73G6Py2UCEGPM7XERaWEKw+Cmy+ActZYAR5RdJdu2vxj9RSgYHDb8qnN69TIMk3NumEaLli1vuPFGYLXsARGYpkGaGHNoLRgCkibDMMOJLowzZFIqYMg5d7vcTg2OOo0aa9eu27lzV+MmjZ94/PGYmBiXabrd7sTExMefeHzYsGFhrhPCv/zlL3Pnz7vmmmucYwzTSE9PHzz4Atuyd+3aDY5xDxEBc1vk9j+/X2JigvO0iWDsmDGBQOCiiy4afOGFLtPknJmmyM3NfeCBB7lRMxrD747o8FEVHW2OXZB8vioihQgJCXHRhyKlvXnzpoWLFs6fP2/+/PmLFi1atGjxtu07nASaadOmBQKBK68aNnjwILfbJYRwu91NGjf523N/A4AJ4yfYtvy5HQW1xeAEccohhIdf/sdw2CFaQ9OmzRrm5Pyw/IdgICi4sXbtOiBq1bIlZzwrq17nLp0XLVpUWlaWlJS0dt3a2Bhvm7atndxrl8vlkNb7Az6tlM/nZ5yVlZaG326t0U90mDAQkcvlTkpKcki0GaJhGIYh4uLiEhISImnKaJqmGa6DjgyRGUZqWqptWdU+n23bjDElVVVVFUSHVHjyBs6wadPmjImomzScI64VIiglwwwPWjm/OD101hAplVJq2dLlXLjuuftuzoXWTr61NoRo3769Qy0deZLhh6m0JtKI3Em/BgwbThkyIGCMA0iHbxoxugOsOzt/w4YNtm0NGDgoLi6ORapFMoaNG+c8/8LzzuJPBPHx8WYwpElXlJeHLMtZx0IhC4j8/kAkGRYBICUlJT4uFoCYY0PXsGH9BiIaOnSoCO/PCRE4Y506d/J6Y48YQnSYJ6F2Bkz4aUtpKyUNIZChLS3ODABABu++++706dMc/kGnPtXlQ6944fnniWjt2rVANGjQIGGIqD6MyFq2aJGQkLBnz55AIJSQ4PoZ08d/C3vUnwQiEsK44IIL3nrzzVWrVnfr1m3VqlVJyaktW7ZEBKnkWWefvWD+gk2bNnXs2PHA/v0ZmZmpKSlhmz5QYWHRe++/t3rVqsqqKl+1LxQK2bblEEkeX3dCCBMjUPhPBEBktZ1NDvNATSNElJ+XP3bsmPnz55eVlgaCQb/fHwwEQ6FQgwYNwtqVQ9HPOeeMMTxGVaTjgXPm89khy3K7zISERH4YHQykZ6QjwDH4AU5PoJzPVw1E2fXqHfEAwzUOIz5p27YnTBg/adKkgvyC6uoqfyBg29JXXX10g7UVe8ZYMBj0+apNw0hKTobDX1NyUpLH4wGHWvyEOxyfkBCfkGDb9qFDhxITE50PtdIXX3xRmzatHVvdhg0bvp0wQUnpeIACgYBhmrFxcbV1bER0u91ej9fn9zsFeE64C78QTrOg/kTOJBKC9+/ff9Q77yxduiQxMXH3rl1XX3ON1+uVUnLG27dr53a7V/zwQ1Zm1sEDB87p1Ss5JYUxJm17565d11177aGSQ+3bt+/SuUtGRrrL5Y6Njf3bM88A1JDTRoxJYRKTcLELhliL7pUielSt0qCH1R4ggvKKijvvvGPLps0tWrTo0LFjZlZWUlJSjNc7cuRIJ508QtNCACil0vqIVHVyaFvCEn3MbRhyzjiCZduOuy/aAUS0LAvQSTOIcOWHV4QImQFhZH1AjLCcRK8b0fzDEVFHOSEYgFZKQ13p40prrbXL5QoGQ0T6rbfffvedd7Kz67dp27ZBgwYJiQler3fK5MnLliytfcUj1g7OuSYyTZfzeo66CJLSTlS9JuJ1kTYcDUMYLVu2XLVi5ZbNmxs3auxQPRiG6N+/PxFxIaQtv/hi9MTvvnO53ACAkUnn6CIzRKBJO2WbGeMOc+XpBdJP4Ac9Aj9X4vgJAhEzMzOzsrLWr19r2yHG8PoIG7VhGI0aNYqJ8a5evbp+/fqhUGjgwIFSSoaoicZ/801JScm999535513uD0e27YZssLCgueefRaOcpgf1UvSkYCDyCdQ+0/H9hj9kzFcuGDBls2bz+51zhtvvOnxepw+ENFnn34WCAYY44wzJhk6YeCHZ7mcsE8blFKGYTRp1mz9hg1Lliy+4IILoiRARLB/3z4pJUT32lRreiBNOqzXQjiqg46iMvpx1KuXBQy3bNkSUXrDBKLOdQPBIGds776DH33wYb162Z989mlGRoZhGEAkpdyze7cjqLVRWxyklIZhJCYlSikLCgratm1b84yICgry/QE/nXAUtwNNesCAgStXrpw3b16//v097nB91wgnMwOAFStWMM47dOwguNBaJSYmWqFQQWFh7XaIqLq62ufzZ2ZmulxupdRvLXHwlCKTMKI3RlynJ3NzcXGxOY0a7dyx89tvv81plNOgYUPncyKdlpbWtl27devWjR8/3uPx9ujRAyDMWlZZWcmQtWrdyhsTYxqG2+XmnC1btjy8q/lR0aiLqShiHMPIJ+F/CWDdunUE0KNHj6SkRJfL5fZ4TNMsyC/IO3iQNOlahc/COUQ1UU21n1k4FYFxDmHykcOemMOWOmTIZZzzd94ZmZd30OElVUqVlJRMGD/BoSCL7orD0TxQI7KOfhDeqEe+A2fIEkSKlGL088ONGti2bXuXyz1nzpy9+/ZBeJEhANi+bdvDDz08+vPPiai4uNiyrea5zTMyMrwej2mYnPNAILhs2bLa90M1zC41984Z69ChA2n90ccf+/2BaMSVUmrOnDnBYAgZMs4540QkpSorKy917A61X1OtH8bYOb3OiY+Pnz5t2rq1a+yIfutUBpG23Lhp44ofViQnJ3fu3NlZxzt06IDIvho7NhgMRecRrfW8+fPKy8pycnIca/mPDaBfGqcqqJHiIgiAP0KMVTfI5TLbtG2dl3ewsKCgRW6uEI7ZA6VSjPPbbr+99NChJUuX5rZsER8f7yRecsbi4uK01tOmTvVVV1u27dS8+PDDD5zx8RP3GI57DSMxkVERDf+upGzTti3nYsqUqaVlZaFg0O/3792z56677qyqroJI7JszOEkppaXSKiKoTiMMgKWmpGsNmzZt9lX7pdSI/Oh+GobRu3evnmf33LRh4yOPPLJr1y7Lsvbt2/fAAw+sWbNaCMMZ/47qy2ptscImJAgbk6LLupQSkcXGxiLiwoWLfH5/IOAnADiMpih8y7m5La655tr8g3mP/vGPRUVFgUDA7/eXHDp0zz33zPh+BuecC5GZmckYW7Vq9cEDB/z+gJTSlvL111/btmWrs9mnyCyAESU8rJojIuLFF19cLzt72eIlI98ZGQyFpFKhUGjixImffPIJFxydcnyMAUBBQf5VVw0bOHDQ7t17jiWrnIkWuS2uve666urqm2+8ecrkyaFgMBgM2rZtWdaCBQuuvmp4cXFR7z59cho2dLT6/v37Z9XLWjB//qhR71RWVgaCwaqqqvnzF7zy8iuM4ZVXXsmPrKDzm8CvGZnkgDF28UUXvTdqFBOsfYd2NbGWRIzzDh06JCenlJeXn3fuuYZpkg5v9q64YujMWbPGjx+/e/fuBg0aFBUVrV+/4ZZbbt68efORO0D8EVU4bL84cpapaYNzce6553bs2HHp0iWXXHRRh44dq6ur161d2617d5fpKisrcxbVcOWmI7dmYfZDIXi//v2mT5/+4gsvfDthQvcePR5//PE6I0tN0/XUk08+9dSTy5Yu7dfvPLfbHQyEOnfu9Je/Pvn443+q5R+mcDfDHXX+jPQ+cgPOTv2cc85JS09bu3bNVcOG5ebm/u2555KT6mAtEkLccsuta9esXr582YUXXuTUYtq2bVtpael1119/xdChWusGDRrcdttt//ro4yGXXdajZ08hxJrVq70xMUOvGjbmyy9rdtVQt1UoOSXlb3/72z333PPeO6NmzJhRL6uez+fbtn3btddcO3HSJEAgrTVpRJw9e/aunbsAYcWKH3JyGtadSg7AOXvk4YfdLvP1V1+/795727Rt06BBAwTMy8vfsGEDY3jlsKueeOJxzgUAILLExKSRI0fee++9I0eMmDRpUnZ2ti3lurXrAOjZv/2tV69ep5jV9DPh1+dMYoy1bdeuS9euPp+vT59zheHSSgMA56CJ3C7X+QPO37RxY+cuXcwwQyQSUdOmTf/z73+/9NJLy5YuKysrj42NeexPj1137XWzZ8+pX79B1DSalZnZrGmzuPg450+3x9O0WbPMjMNLrQrRrFmzBg0bRrdkDuN8i5atUlJSkTEAio+LGzFyxIi33p41a9b69etNw7z3/vuHDh36wgsvFOTnCxFeG1NSUpo2bRqfkCCEiJLNOn0GgIEDB+bl5U2fPr2ivMxXXQ2ADutv9CCtteNyaNmy5X++/M+SxYunz5jBOT/n7F59+vTZvmOH4y91lFvGWGZmZm5urmEYEZFlSUnJTZs2S05JEYYRCXnViJiUmPjBhx/+85//PLB/f0VFpVGH6Zg5R2ZnZ//nyy///e9/fzH68127djHG0tLS//jHR4dcPsTlcjl7yIcfeaRxkyYfffjh5s2bOec9evb80+OPL160aN3atampqZwxpVRiYmLzps2y69dHPHzDj9inT9+ZM2c+9thje/fu3blje3xCwuuvv969e/cdu3amJCUzzgFAKT1kyOUTv/tOKt2nT5+obaxOpZQxds8991188SV//ctfduzYWZBfCAimYfY8q+ett93Wp3fviFsrvOFv267ddxMnvvz3vy9dsmTnzp2Ci06dOj7++F9at25dJ/PobwE/mYC7NogoP7/w1Hh9KRJeozURY8w0zFopF0RElmU7RY0Nw3AomJ1vldZKyrKyMlvK+Ph4R7tzMjMNYTiLlVLSsiyX280i1NVSKYZYe3rWWluW4pxH00EQhdZSSptzHolCR2e7eOjQISsUik9I8LjdDkO0UpoxxjlHhloprcl0maQPDzlCBEKlJBFIKaurq71eb0yMN5oBHz1Ya620HfAHhMEc3m0iEtwUhpg7Z86tt9zSq3fvDz74QAihHc4VIiNcBwSjN8g5Nw3TmSmcdCInvAkRqn0+RIyJiXH4eLGGj5PVSqnRtrQDfn9FZaVhGPHx8YJzQOQ8HNiniTjnlRWVlVWVbrc7KSmJMyalVEqbLpNzrpXWpG3b5oxzXkcZbyKybbvk0CEESEhMdJkuLrht244kMWSMCaWUZYWIyOPx1HqQRwuSjjw6CgQCRUVFfr9fKhnjjalXL8swDIfm4qhzUSpZWVFR7fN5vd4Yr9c03YfTL59+/KIE3HVJYs1e5ySMz47znTHgyLRWDhF+tD3HwcUY01pHdibhywkhOOPp6RmaSDg2d8aYwbgQSkrnSMa4xxsDEacoERhCqHBTYTDGY2LcSsnonOW8rEhkf83uSGudlpbGHNp1Ik0khGG6GGMsFAqRIiEMJ4eLscP3n0QAKIQhpTRNIy0tTWvlCGHtkeH0Yf++fZdeeqlpGhO+nZCeloaMEeiSkpIpU6YQUbdu3Z1TOGNAYAqhtUNiQIicc0EAggtd4wd2HiM4c1NCQoLWtU1NEHEnH2adNgxDxMXHxcU7f2rSEY9FWM0mgvj4hMTERGRohSxA5vZ4lFRaa2lLAmLIDGEIIeqk40BE0+VKz8gQjGuncisgAjqE3Y6VCBGE8DqvVR3PKx3uEmMYnxAfFxerNTltcs6lUtHJPXqk8y9nPCExMSkpWUqbC+F40I54I78d/HZKWuhacnIc8vUfwfFzlI61/YjE3PwEV8pPReQSx+sAAACQlPaDDz4wdfKUnEYNe/ft07hx4+KioukzZuzdtTcxOWnK1KlO1EctI9CRsUpHtQnHufQpoE5vcNQoXXNQnSeHzRlUS/Qh6kcAYD+187Xf3fEHIUVMf3V37OcT1P+O2jNnBNUBEemSQyUfffj+3Llzt2/fYVmWEKJedla/8/rfe+99zpLunHRGUGsfUlv3Oa5md0ZQa4y9J+eqOQ34+bJ+T1GMT7hj4U27UkqT1lqVHipNSkp2tk/OLjoyko4vqBiZ7443xE/tpuqOrzrBGSEiqIiEtdlVwkPoZ2RaiArqER+H6/r8fFUeftE96vHxqxT3qB048FOvH9nJUXRyx59tUT1xIKIQgkhr4hmZmZwxAKTaYRU1OFZvT0QCT23qqTsFmg7/5RceEHV26bcCOoXE8VOat34jjyR6/wSgEBQSgAJQx1hMnK8AnIx7BI3EgAAUoUYARqdUmOPY0EQSQFOtjhERAjHQBKA1aERFFA1EEIYRMVBHn7RjcwHNUCNppjUQAENiSCyyJkRRlxxSeMUG0kdVYPpRKGQSgJAAHQYpIGdhZAQ8/NwIKVznrvbVieERKxXXRySH6+g8T1ib1elYDE/AQLPIi6ZIKJhG5wnXni9qM6ppQtKRyVhj+AcAGGqMaMMRNqzTj5MeWadedhFOV9nFk4A+8lWjH5jJyFRSaCJgUQ0q3DHUgJKAiIQODwhCINAETDNizNHEwl5FOMU1p+ZlOwk/yAKkEUFoxbjJwjF2BMiDBBxBktZAbhSMJENUUiEy0tE+ICJq1JKUFi5LaYbgAiU0EiIBQ0INiOgMsjpFUCNCSJNiwlDAmcYTjuJCAmRagVLMxUmjJgStAYkYA2RECOhMeYgIhJoRIQEx0kohKedTQE6AQEgoFLdRadQIiI6wAdfIgCMBcakjtmCHU86ASDIuAWpGXCvnLASuGBIgByAgxUBowDBvHQFqhHC2hTMGFDoHawBBXBMQI04EDEgBcsaUspwhrSOl7k7vqD5iSJ3gbPnrRibhqYlBGNEmbOTr8nwukG2ykmLAwpqwX9KRehtInGskICm00OQE0hEikAHANEa3KKelb5E62aC0wGCIbyrxmwa0To1zkbPsUwiNgoDeWVzWqX4KM81NB0sCQeqWGRcj6pYi1MAAd1XTxryyBslxnZMNIAXAndoiGjmicla2urh/mCZVbrMtxf5kt6t5ummo0I9lMIRBCJoMm8evzavwimDztEQPESkk4JphUGiNxLQwKIigAZERSGAKURpGtZLVls2YSOLMDQxQMbI1hqNPFQID1CAUGgEQlcGgB414kwPYgIoxMpUCqF2EXhM42gST6NLAASUnxUkBCK4JyCBCYtpiApC4DhuoVPhGJYLFCBUw1IQAgKQYhtAIIQ8GQgag1+VhqDlJBAUAGtlpkdXfKWcSMsYcinfDEIxhLSPESfFOEJUF7Oe+nJGV4H7htiEuFnIpSSAiqUWIAEyjRkMxzQCDEgzGhVKGobUiAI4IIW3bDAQTQilGp800hchtTUUS/jFlXpeceu36dWQAgCBBVqP38zmLN+wv+fvtQ2zJ/jlxwaGK0Gd/uNjDBccjEmCcWRCDWo9esHrS+v1NEowPbh2YyDQjUAg2CgJtajpOdA1jbHt55YuT57fOrveXS3ok/pRBQ8TKlfnChNlXdWneIj1VSR9xHlS6gCdOWLKWkTWodU7jWCZQc2JIEOK8lHsnbcj/btEKBXbQtnNS06/o3qFnTlICVQtAp8w4Z8xPrs1+HLt0zdrdB0MaTcEbpScMPbtD14yYZOWzbGnUGqcIyAgkUcAVO2bZtgPVmivrknY5HVMFKq1RAEGIieX78+buPGSDYQpeOyknRvsu79G2iVtz0JqY0py4UUI0ceP+acs2BW1NtlUvNf78Hi3756RlIJ5Ga/nvlDOJiGjatKmLFy+57rrrWrbKPcUdLwFIglLNY4jZyMJla6lmwSAAxTQBKeB5Ff4vfthQLzbmsh7t420/ciLQCLDfJyeu3pqWlHhp25x4FnUZwCmurkQgmbGzylcQwPTMTAESQQAQgiqXcvmu/AYNmwriNuM+jKlkqLAm5ONouF1mdkJCplmQHR9rME7ECKAwoL/+YW1aYtwl7RvHkRU59ugWMIC8GEQpCjvCllvroPBafMQy69x8kPEF23cdCMi2LVuAZStmVAj3rF35oxcs3FsRTOJ2x8bZOQkeIAlENor9Afjn5O9X5vm8Hlf9hBhLqrUHSvcUzbu8c/NrujdPAYWggfMKML/fWfKvuT+U+/1pCQn14hNKff7FOw5uyyu+rU+Hy1tleg031Uw+CEAMKYCuhXtKP16wtVIzr+3v1rieTmLC2aVrbXM2f8v+r9cd9JouRjav9foSyTegaxtNyJAQmEZ+IIBvTV+wdHd+vNeTFhsjRMLOouK142dtadfijr7dskSQ/Tz71Z+EX0dQnYg8IrVyxQ9jv/zPBRcMsu3GhhC1UqXrDBD5EXWUABwiFgaaESoQrOYUIiRkmggVYbEyxm7I75adOqCHmYS21iHiWildbPMJGwuaZOkLOrZQdoBhdIuLRMrZtDjbcnKKdRMhgEZAIBYO7mVHm74RgDhfubeEQqGW9TNNrpUiJz5nX1FFNYg29RPiubY0oCbU4R1ExEimERxDETEgBERLXdWjw4XduxjKjkE/KU2IhZb+dnNhbgPs38EdS+oYUWIEQIwwuhUHgPDmFjU65iUgQsCwSgjgmF+4QmJVaCzatjclLqF+QgxXgXzJvlq85Yslmy3iRmxiKFSpQHDGubQRIEDGfxavXbyrrFfH1jf175TBFQBfXRZ66T8Txq3c3KJ+ap/sBBcjW8JBxUbNX+WzrYevHNyjQYobtF/D2B+2jF2y6fN5qzs1vqCpm5nIEIhR2DgvNe0NwXtTFvjIm5WeWlW8l5CQgIAjAAdQBCX+oBnjfvymy+NZ+JUgAANyq+rsOAPsADHgSlWB663vZs09UNGjWcM7B5+VZYAGY2NJ5QvjZ3y34WC9tKxb26f9FuqL/WRBPcyPerg/5sT1XkcOtQ4nUkppR4kKlFKcO2Q24BSecdKpnfOE4LWD3aMOxbCllIHiaAthI9fC5ZOKG6ZUtsHABZozW0uUzPBpZjGmyPArFgAWQBcnUJq0MP1oBbSlDO5H4UKPiWCwIGgISs44AlMauAS0gKNpkLINy3KjJCAAzUATEpGLGNOgRW0bLIKNfNmG7a2yUpomxJD0KwAkkODZVXCo2g51buARWE08HkgxIjTNECcbDc25VJbXENxSJjrxupoxI5YpQynDBE7MZhDkzG/wEKClhR9NP5cmkEGaQEU1t8jbIdDEFRNADFADt0mA4UUKushmygbSgGgpm5suRUxL5eJCgwSgIp/asr+sU7OmLKTKDGPE1DmzdxTnNs6++bxu4xZvXr2zHDWRUqQJiCqJzduel5YQe/s5rVqhTyiJxJKSxbquLccv37J4V1GPBqkmag3mmg27D5WVXNmjZb9GMYmqAkkRo9u7Ntm4p2TdwaLledU5zdIEWQyICBkhgVHNXF8tXlbgkzf0a7/zoH/toYOKCURnm0OEKki6oKws2Ss6xVhpEGQggAQjzSGIoFBZDBiRBCaW7ihcuLeifdN6f76kVxZWe0AC8ZR0b/XF/V4dO3X52rXXtugtTHEawwJOTvv9FVZUIlJKb9q0adq0aStWrLAta9zXXy9ZusTtdt99990u0wQg25b79+8bN+6bdevWlZaW5uTk9O3b59xzz8sIJ77UvSFHAk4MSJQqtisvNHPL7j0F++MTYnu1aHZeo/QsrrSSBdr4dvmGPSER4ubWgD1i6ZZ6EOzbPCM13jNz89bV5apEs63lle8uXp8E6pwmmT3TYwKkPli2KS42bmC3tvkV1bM37125c59wx3TKyb6oaVpjj8sNAQSlkSkU5doIhKyUGJNLFbWoKcT8cl9BSfmQgWfHgFYKHGaYUsIN+w8YTDZISwGylNaatE1gcfeGyuC0tdu3F1UoZfVoVf/cnNTmXiOWAQHTiOuKyxdu2tWifkb/xplllpq6YeuqCl1u0c5DpR/MW5HB7F7NGnZNT1FcYR3epprqQES4Nq90wYHt3Rpn9syK8+gQByRAw4TtFs5avS1BGJd3aiKIMcCDpWU+FeySFcsxGGTe0tLiId1aXNOri5cb3wFJzTAyjxMiJ0o3ecuM9Poe5OAHpjQZHOxGKSkUoryicgbEkAHJeF15TZeGgzvkeK1qAYwRI4AYAfVSE9fllfhCZIJiYAE5Y1VJzpcU+BZtymuZkXlp+8Zv5q1WTvUPDeHoL07VUlUrjPGabpNcQUCNktuIimmKlC1nWmmfIdYczAc3v7BTTpJhccuyCZAbplZ900TXu4cwJd2GcohdT68U/FT8LJxJP1okChG2bNk8evTnvupqApo+fZphGG635/777ldaI8Ls2bOeeeaZ4qJC0+X2emN2bNs2Z87s5s1Gv/vee5mZmRihbKXDI34QwASo0Gr82t2L5i7zuAzb9u8s9q/dW/5DdvyTl50Tx6Dab81bsaaYx0vpqQqElq/ZmGr72iR1T42PW7V269pqzUGUllTMP1SUogKtYnvZSaYSfNKqbTwhBbIbffnVd0SSGUZ5oHzL7qKFy/n/XX5el9TYGBkAJoptePbr2UWh0I39ul6ck8oj+keIxIqtu9wub6v66S4IEScArRFKpNi292D/7p3diJwAiBRDHzMmbcifu3CFTVIYrCRgbThYMC858ZFBZ3VP5gZDSbS7MjRuxaYL0OjTJEszvmTthjWVADyppKJi8dr8JBVokZJE6an0YyZdwXmVrcctW3fwUEXbC3u4kDsWY8nNKRt3jl+6bniv7sBQa/CR2JZXjMDb10/2YsiQ+NilA5KS4+LJH5CxTJPg0QJhDAmTUL58dX8P43HgR9RACKAN5i2pKJGkM5NjBSlQ2mTQr3NuLwEuUkoqm6FBShOW2pRfUhILVrdGqQZJBlIhI+ABpfbZ8s0JMw2kBy7pnUiSdACQEDlzXD8AGrXftmwb0kS8L2Bo7ioMgAUq04sZzBYqKISQMiRMVyEaa3bnga1bpyfYmgq88QcqLKE9qSZLcEEmkA7ZphAQ5m2EsAv65KXj92ZMYowPGTLk4osu/vvLf//3v0ePGDmy51k93G4P59yy7c2b1j3xxBPBQODBhx6+6qqr4uLiCgsK3njzzSmTJz9w//2ffvaZk09TZ8tSqSq/tXPH9jsv69+5cbpgtOZAxYfT5y7YWzhz674Lc+tlJbpffuQPm8vVnz76Njcl7U/Xn5tmU4bQWoX+fOuwJcW+V8Z+36RBwz8N6Zlk6WSyBAQVd2sm8n36s4lzerXLHdQxNy3Bc6hKfrtk06yNe96ZuvD5Yf2auJnUdl6Zf11xdRXji9dvuygnNbruB4mt31uUHOtJi/VwHSAkyUghX7+7UKHo3rSxGVn3CMFibNoPK/u1b3ph1zYmU8VSf7lg1eLtRZ8vWtfiyr7pOoRkK+IhxWyNSBAr2J//cN3qytCLX8xpVq/Jg5d1y2A6XmpQdrhNAKjTJoYASuZkpaXFx208WBZAt2IWkg2EpcpcsHGX6TZ6tm7ElJIMqs2YdfvyEuLd2clubgeEtpskuhgFkHgQLQKtiUWy5hEATFD1TM3IZhoIhUJAxopCbOX2vR6T923V2CByinR6EN0SAFiZEVOGjCMUlPjmb9+5Py//nKaZjV0W0xoYMgJNFDJc363eXSnVLX26NPVoTRYDxUDX5AAhIXHbItvW3BU/dUve8pVr8w5VacYTDX5+1zYXtGuYDZbBOSKrYEZJKMgZA8MzbtXOGSvXFAX8UmGiGdOzbZMhXVs0cSPVMAydBrPiSWvQv0IIIREhMtN0eTxe0zQZoMvlSkhIsG2ltEKgzz//vLTk0GOP/+n22/8gBAfAnEYNn3/huV27dqz4YfnChQv79+9fd8sAlpTMwuvO6jwg0xUDPjuk6zfw6H7dnhw/Z+Xe0kEtGyWSP47rctsyQSbKYENb10OfAGahdNmBLFSGDnghlCUD6RByCa5sRsSByLZVRmrMHX3apsgKU1qNYrB+/1aHqv3r9hRuyc/PbOh2mUaDjMQBnVvuPZh3RZ+eCBoAGIFGLA+pnaWVzTNT40wGGjQqWzCL2Iptu2O8cc2TYk3tgyh/H6OOufVvPadFmqwSgpXyYOb57fNKFq45WLS8oHJgKuecGYAuQBOQI3jAcslQgUIv07EkmwAkWdVaKjI4Uo0dIeoedmJxHEsV45Tp5V3qpUzakL95X0lSA48HJQHfUWoXVdqdG6Q0dlsmcS3MPT5rT2nJgLM7kwooAkBgDmcTAyksxTQBpyjtFCAB06ARCRUHLmwGPuRfLF23dV9Bz5aNO6R4BBFoQsc+prkkXLRx378XLq9QFFA8xGIvOrfPlR0z0qiaa5AakbTm/KDkY5esa5wU07tZWjwEKsB0DG5IFA3z4MywLSskYd2u/et2bM9JS+jUsU1ZuX/Dtl0j5q/dUVj454u6p0JIEwSJ+aRMTMv6ZsnaBWt2Z6al9G/frqiycv3uotErd63fu+dvVw1s4WJCWwpF+MZOh5icBH6yQYsd/oNU85f+ca+jU4kwHOIXDaZDZFqD4FxwrpTasWNHbFxsnz59DINHDgaP233nXXchZ3PmzFFKO4SgR/s5XR4z1UXN0hMMIKlCyLVh21leb7zploC2Ugw0KUuDrbRyG8xE4soGGeKkTEShERUIYi7kBgAozRCIUIIpWOi6C89JJfACR9AmQQpnPRunKmlt3JmnIBZtlqjtx3q1GHH1uR3jCEgSKKVJIhT4fPl+f5cm6S4KEQMAZCBKLb6npDIrLSGVhQRoRGSAnMBDMCC3SSxnGkmB9AhXhoHd2zSzOZu7YauNGgAUosWYZAwJkJgBBlNcWSEEW9sBpm2DadQStXYiIo9l51Ma3Ejnd2nDTT5u6YoK5iYSFvKNhZV2CDrm5MRTCLXUmq3asU/Z8uymOR7Dq4VmQFxzQiZBo0KmNZFNtcKRGWgTJKKWwpZcBbl78taDXy/dlpuZfFOvtqkmMK0VYxYHyTQxi7k4cc5iUiAhKySYCvl27tixaevBoI7VKLRmpHWRpf/x3ffcYPddcHYjNzeYS2gn5lhqsjRJR1wtKf3+gMmNJMGeurzPe9ee++x5TV8Z2mXE7YOaJfD52/aMXb3T1kiSQtUkdMz+4uqlew/ef+FZ/7y69596Nnupf9eRNw7sXD91a4n615wNfuCWbVM4Af+kVddTxWm2PEdn65OGUirv4MH4hIRwAYVIw4xhVmamEOLQoWJN8tihmOQ2ucfFMWKURgAWjuEkihIaIXIMuwujrpCwCTmi6kQ+BwYIiEkGb5ro4coi4kwbDITQdrO0eMYpvyJgoQeJcSK3DnmUZWjFgABAax0AY8O+g6Dtro0audCpJcq1xN3l/rKq8iYZSQkcGYWLgDIAg3ST2BhD2cCYBoNpFyls27yxIjpQUiE4Q6QawuIwQy5GosFqx7jS0U8pWkjXCZ5kJDHka5qe2CI7dVdJRX5ZNQNto7lo/V6PUt2aNDYUBwCJev2uvQnxCfUMQwYCCsHiZEcCoNDx9wBpIEIExHBYIRga3BJ4FefLSyrfnbQkPUbcM7BHS68UqpIxQkCuBdcGas6lHNii/ogbBn1yXb9x91zx7PDexWUF//x+8fdFviBo4MLPPQu2Fm7c6+vXolGH7BRBVlApxVwMBKCQ3LAFc4KEFcgGcfiHHo2fubh7/5zMZLC9Khgvq1smu+4c0s8UxsyVW8tDTIPBgCmllW0N6NzynBYZKdyKB5mIViMP3n9Zrzi32FFcdkja6BKMgGvgNeGcvzROs6BiZMD9JBBp0hQxXDPGuENuAhBltQRNJIQQhqGUYowdi05dSeWQA2CtJCznNx2JR6ef4r+O3o6LMUODwRgiRxBASFoykhpUwFbySAYCBGIAyLmoQNf3S9Z1bNQow+MSoAlBE5ckNuSXS8vXoXEmgoy+fsdIG+9xIzktMiCGyEkrRAxKJ5otUrcjLIw6QltTK7j4GM8nEvUe/pMBixEiFq2zmmVUKL21qNQ2PbsrAtsOFJzbPreemzESGlhJSOcfKmuSnpbOtUswRNSMpDgiZtXxU6LTM02oNQqEIJoL9pW/9OW01ITYR4f06ZBqeAVqNDQoTkqQYiQJgLQ0rfIUuzTTLsu0qrunxVx1fu+AxlHfTAvYHLTeb7Exi9YLV3zfszoWKzggPPtN7x40/IY3oEWl8BSwOJ9wKcZdQjRJSrysS+uODTwuXcU1MY2mVnEgczOSEuJiKy1WGlDIjVgTvB4W4zZapCbEsAADS0pLy5BLhbJdlJ4QUxIM5Vf7ZNgNq44udv6L4XRbfX/6KUQklYqS9zDGYmJjK8rLgsHgEQa2srLyoD8QExvrMCYxdnR+OWly+JYAWPSZhnNjnQpROpx0fSJzSU2wBABUWXYVaeACdBCQNBFwsyIoSUFqfIzBFBzuNYp64HcVVZcH2YBGOahCwAkJidDm5g/b9jdMSWqekQi6CmpN1BqhNBCKMcFjMCIFiIyx8kqfViopziO1EsgYsCgDJ0MGiIiEiE7gerQPR3ux8LC7Qg2GInCT1bVB0kdMr9lfcHbLnDmb1im0zu3cPBalRpQM95TpYHWwXYOMGLQANCNGCIz0EUZlZ3qkyKotuBFCvTq/4v2J84M2PXb5OV3ruV3KIi2IOLKQRrSYO68qIFHkeE1ONilAII6UyETHBpnxnFfbujJEsTF83cH8g0pL0v/4fJqXWRo1MR5S7n1BFlD8vQlzp/Lg9b079G1eL4ax0qAusXSS20p1GaSIO8qKRtNgDBmhRia0FUyN4Q3SE0r2lzNCTkAECgiRMWAkSZiGVaU1E8AM0FIjaSR+ZIrSL4RfP+jCocJlnDkvnXOeXT+7rLy8sLCwNt2OVnrdunVaqdzmuYwxIY7FAuGYM2oWKGeGd4J8EBGIaceBgKgRFJJGDRBRPhEJmCJGTiw3MUJw4t1LpV6y7WCVAgDSTErUARDLd+cB8MZpcW4MEZBC8KNRzQwLGQERaoW4ZV8+4542GRlO1QlOiITltt6xP79Ds0ZuHbBBawRy9ttIFrJ523fbrlitgJHSzPZZavHKjZygVU495cxGDqkmadCatNQkiZQGkBoAIuoGakIIIfMxw48G1ejyCOBk7jAFhkQuQOameJtlpqzatnsv0er88sxEo0Gyi3FpMx1Cvu5AhSGhXf10AKUBmWZCHWF2J8cvwyI5LhrAz9gWnxoxeUGI+ONXXdgnO1aArTVwcp422YyVouvFMdOf+HJ6oeW2WayNRtgda5q2QmnrYDBkaztgWSaqNLdK8Wgb0KfdfmUGtaE0Z8QNYSjgfsWCzIVCKKLvN25/9D+Tvt+WX0WMUCOQBh5E974qKin3eRjFu9Bk0qOqm2clIeKeMn8IXJIJxRghKmQlUhRV+NwIcYZJSgOC5NoJQT1dI/8n4dQjk2oxQRL8mOQf9q1WxJlQGnbv2mtbigtEAMPggy8YNHfWzFdffeW1115r0qQxICpJixYv+eD9D70xsZdeOoQxoVRdMYZIgIqTZoQEjIezCpGBFiS5VojCMeEaiIyxg/7qQwgJ3DAATU0GgkAO3L0nv6xCGTFoGiQZkSRpk63QM3Hhhq6pKW0SY9wmBhWtK6pesLc0PsbbsUm9GCYl6QCyb9cfrAz5z22Z3dprEIMqYtvzCt0cmiSYBlnOhlkxWLf3oBBWm4apMUyGEzyBASAShRibvPFAz5YtcrjLDcwyjJV5Vet3Hkp1uXvl5nAKMsY4R+TAGHLGGEdiIAzkgudXBWzDY0klMMRIa2ArCytX7SvKSogb3LyeFySSAJDEiEAwMhGrAGymVQI3r+zWYdSEOZPXVOwsVZflNkoF4AyCxGxyL169qXFmanZCrFY+AO3U7sFwkiEDdEKyGBAakjFAjdpmbFu178VvFxaS+/oBXXtmxqEdQh4jSSqHapl7tdBCU7Omzf+zauvH81bcMfDseCEZSktiBRlfL9lQqni3pvXT49Cj+cBG2efdmqOdIcSCGgCBhcD97NQ1y7fseGRQ34ubxCNKF4U4UEZaaom9bdyG3V3bNXAZ2gVmUJtFlvh05g82YtemGSncYpx5QfVsmjl+yfrxP2zq2iCpeVKMqWzO9CFFn85ddqjKN6hF/UYuMJnWpLl2bAEnl/1yqviVq7ll1avHuXjl5Zf279+fkpJ4//33u1yuYcOGzfh+xtw5c4ZfddWNN92Ylp7+w/IfpkyZprV+7rnnsrOziYBzdjhxLgAAgrPjRyQEYkiSkDgJ7uRrAjKmuFYMWUZaqtvgu6r1s98t7l4v4byc+u1TYxjZLjdPNNmu8uoHPvl2QNucXk1S2qTFWJwRqjim4zyxj348qVfn1g3qZe0rKJq7cm2Q9LVdmzVNiQUMamD7S/wfz/yhgoz8vJJnL+6hEEvItbOwqFmTrGQXGFoLAAZgAS7duic1Ia5+SpKpFAIyUI5lhpE2FaWkJNwz8oveXTrUT0vbsOvAmn37Ahwu7JTTJlFjlZIm2EpqraSWNllch2wgj9udFmeuK/HdM/r7Ps0z+zWr1zE2nhh8OX/p/H1lWQa1S+rbLDWGg2RgG6QM0pxsTpbjpkE72KthwpgYY8qiH4QK9WnfnMtq4AjA8ip9e4qKBg7oHKN9LGIujPhhiAExAkbKAOkiEshQc0RdQcYLE+evL7ZS07Imr9q7ZM1OA9HghrQlAMRA8I+XnZPJKVFbV5zTaeHOPVO2HNhQOuOCczo3zkjeV5A/ddH0nfnV9U167IreMcKHQfRocoMNAICkWRABkMxqBoKAEbg1xNlEjAhBEWuVndk63lydX3XjP8feOPC8No0aF/qCY6fNP+ALtEg2bhrQickqIBcn6lYv4dY+7d5dtPHRL2YN6NqpQ/OcQ+Ul3y1evrMw0NglburTJYZZjOThSfn6l1dFT3tkEkHYVvHjs44QxqWXXpp38OCYsWPHjfva7Xbdfc89htaMsVdfeXXUu6MmT5w0csQIAmCcN23a7MYbbxo8eLBDFa+UPoIOH4hcDNOYTARlgrNvc3ZNzAWUpIPJJF2ESBwJ4rS8//zuYxauOrh73/d7rNwYV24ii2XY2Gvc26/rlwtW7y6tmLFwaWNv945pMRahIEgUcMeQsxbPWb98w+Z5q9aDKRJi+I2dWwzp1tpFtq0AGIt1e7PiXcIfatEwi7TSaO6sCBZXlg0bcJagEANFgBqxGvjuMl+KyZJdnJNEAkCFwFygktHOkr77zu/wFVPL1m2YD9y2VIMUz3mdmlzUsZHbqmaGqbVKRJkFMp0TIhBjDHWmi67t0QwXb8krLJxdsKuVt1e35jkIKrde6vqDxRkJ8QkJiYoUgHZrK1X6UnTA4NqJ0kfgjNnx4G/botna1fkt0uNzkmNdUIWoiZsrdu31ej0tG6a7IQQgCMJVBcixHoHkAEkQSie/WwYBPIiMARJQZVl5InGr8GARUgGFOHBDmLZtA0C8CgnoS1qittM5/umyAV8sWLEur+jDb6abCIxJYLxPk8zLu7ZuiBokaY5AqvbbBgACQqQ48iVBdazhpBQoAo1MpDD76eGDxi1f+/2WHWNmLwVYTogG8nPrp1/Tq1UWBjhnqDlojKHgsM5NPd64MQvXTpy/fOriHwBtpuSAZi2G9miVE+PkDXPAw0TzZ6NVOiZ+FnIzOjGSD0RUSjspqXl5eUnJiUlJiZxzRwK1UhUVFVu3basoL8/Ozm7atLlhGJyLCIctAmA0ywQASOsAsXwe7wZMARmjgwxsANQkypm7mLiHrDS0TLIBUDMR4p5iYiU2KsvKFoFUIWMAQHM/d5egO99CHQo2jsFEWRU0zIve/NY0PP+8c1gWsL3BwK6SEsPtaZqe0Ij5uA5x4lwzQApwo5B7Kn3VmcJOAxUy4p75ftPmnVteu2tYM+njCMgNS+NOy7jt/XHXdm96fY/W8TqEoDkpjaIaPWXcbRFmk10JfHdI55UHYhg0T4lLM6oN5eMgkNwIshy9PjQ9SElUSVoikgKqUKzKjK+Shg4EG3pUhgoqRoXMeyCgYkxvfabcOshAVwh3BfeYCpLRL3SAE2fAJQRDQry+OO8/y3Y8eEGXq5qnxLEQKVmmY16ZsXJ7fuHfrzuvmREEcAMARnLOCBiCJM2LhdenWQYorw4Ymmmmqjjbj7E2Mc0ADFBEgsDkaNsEAB6ChlIK9BFqJMMGV4XL3FJUtXl/cWVlVaKX5zbOaR4n0kG7kAi1Ah3OunAcA6QIFQFT3JOHhuQiSctEuxpAMnI4X1AB8yM/yGKX7cwvKquOMc22TTPbuEQC+hhTSIyRoYEB2Qq0H2MOcGPl5vwyXyAu1myVntI8MdarK12GIqkJMSqZYXX/pAQVSaelp9dVpuDH8WuSmzk5NJxz0zSbNGkiDObw3EOkIFdCQmKPHj201g6Ph21LxuqwjzsPEZG5gXKYH6U2AZgmh0+FuPZiKAeAoY8xzTQgCSIUujKTYzpDYSJXIRM9WimG4NaBVBVMEV7DBLSDSIy0VhqQdLybvAFf63hf+3iPbSFqn0eTQgINXAMgmCizwF/fKwVo1EZQwurNOzs3bZgGEhgqAEQjgHzxui0ypAZ26eiGQHg/TZwRxpBtgLRJC8bildXRbXTMZExKYVSH7KDgBmpCshF0CgYSZTXnXCkbWJj/xA2UgEHGpfaEBFqaSQSWzoNxbsk5gM2FVsAglkIJAKRsZoBkTGlQRD5hFEi+adfuNB7smun1gHbyBYOa7So61CjJlezijES4pgwAkpPcp4GYAEqVFYlApuFiZANjCNqjdTMCbhg2aSVBkTI0mSRsaSEAEgoAIMc2o0wKpVjWWTF2j9ZJJNJcyBSRlhYHQgTt+KgAooLKFdMMFFOGDjREizQy0EpbjHGuhWaKUHGieMNthCqbN0uSKokxQ2NAWEFkSMgZgWIKNSIJBO2CUBMItmibJkMKlBRETFcA2AZxG/ThxKInH/NwKuRmvzpnEjncDoigFTHkEYIbxxHKgMBJCiUgwziytyyc00AMuVLEkXGpEEhpBYwjIDBgACYoRFBKsLDjgCGA0M6KgICEhksBAXd0QXAxILKAmAJGHJgnxjC9iKQVAIYkKQLOGWOANhGBAQydVE4EEFojcQAjpM2thyqqINS0YbJbhywkBlqAriSxcMOWJvVSE7ngiAQCASUHhkgABgInxlCLMJOQQgFaW4IzAAQnkABRacUEs51aNBheRVwMuNakLQZEICTjiAwAXdzQJIFrFU6gVqSCxFBKInDZzLW1qGhrwP527fbNhWWDW+fmJsQJ8gOBAqy0gvklRTec0zeGlAZQ3IkWYVjrSZLWACZnqAjJ8NhKOUZlBIfhBgWRIkakCZCxcIkL5cQfRqgfATTjTAihHZs9EXKmiDQyQHDs/5GgDtAcCDkA04DOmLE1IXNpZDZHQu4sGSS1YJwRGAhAkhMDwR1bQFgXY6id7DkkBpwpm6NGromQGDLmkkDIGCmbYXgBYXTStYgjI/7wmIkTlPufhzPpxCqlnkoiQrgFZAqJgbaBQsJTZiEhApJWOuoniPr+ldbRnG6KrOeISKSRwvuu2mHXHA3NSDFla4ZaMZerwgSTJwYpwMDkxDgAEdTMVJHfGCASAUdXXNztA/u3aJhcZHAGjKFNGkuVPqtHl7S0NEuwQumO3kh4E0RApBBAg0Rgkfk3PHdh2DIMmjQic6IcGIbLRgEAagZAOmz6IAREwiMYsTVRJBSKUFOQ/X97Xx9eVXXlvdbe+9x780ESCAkQvgISBCEQIGBkqtXKN/at1so7TO37ioKv+AFS60wdqLXQjp1qywzgiNX6Ua1trUqdd16lPC+gdqogPhIgBCtILUT5aEhCEsK995y91vyxz7n35ubm84YJ9jm/h+cx3nP2Pvvss9dee6+91m/JX+87tq3qk0YpZlxasnBueR0wqxAyIIlmHbn1unnjRw1tVLYGJg5hjGXMtAm80zBzuibQYQZ2t5FSuCdlGpgFKAQtXHM9E0NCVczMApQQmhEQXEuhl2TPvI9oo4yMdxYA61g4QPwgGxCBCGRs3Yqxs5V4LewlBjMuXuawnQEEghBoE4PgfmRnsY0YYdScBmN1jP2wB0g/SdSJRI3qDdlOMh3GirdqShJBUPJGt9XtGEsLg0xAjSzWv/BqrcojVAxIWsfTQMUE1bhVGJUARnMjIhC5EgtxQWVgECS01iRsUPBpS1AjFmZZmXSehUaQgoQA85E5aR1hRqJ2bJAqysQSEVGSQGELAdEIowiiJNRaMhol7giI+SoYxykm7Tkyo2djFeBlWSQiQGH8kdA70WT2ct6wERQyThHUWlCBGYU0mZCRiFXwWKN9+ryjkUcNyc4TkSCBA2xpYkcRSxucLIksSANrRwCABI8gAuNfBhEZQQqpybCrIQC77UEgIiKWliJPr3tZmCEW4sPMUrkJnci97El165sTh4HJwafJHJ4kO2AQs5SxJH2xz95qVLGb61kioknkwwwmTasWhGRfOWrEVyomBUULgC1IJs8WXQYjFQxM3qP2jUbtljWsm7kDUtwuGASzLRCELJ1a1hDIY2ExCyYthEzqAFdQ3cGOsU9msnG6M4snqQggGUkTI6EAEkozS8XsOIggQDALREzpjIgAhOA4JBUT2IABgqAkkEwsgYkla1BOlBQSB7QULG1JMTZMZkYEIgeF8ReOHYYgoqHMdbdN5K7bXMKZmKAaKgQwWgKQ47nJzdzGZnAzs2QUyOXkgAASyEITkiZLMAUcJSFACCzDAChYMYAGDQAKkUl4g5xdXk1EQBAygUmMGYVEJgDUpIlZWRZpO1H2vOnWfXGpLKPQ2M1FB+3c7H0rAUJIYNKaEDBR17uqnljKpITRrSSVmY1ul0qYdhrfNiOoTI6lI6P69/NGSFrr3i6uNNsp26sa1Zvwer7hjresS6ZjYgRGIgCNSCg1MaLQmlSSoDJorY25MkFQGcDskJMFlYElIxMhS0aJghhsVOhobdz3jPs5A7Z1/zQ+TxGy0dLKQUDFyIogoIVWKsoswBFSawIHHcFSOSHkhMScrgryWhv/Rq7XIAAQawQ0gioEAqAZywINg7Dnm+Su7VtpVGYSQhiPXERCZM0OB5QjhWISxA4CgC0pCBqZHZIsmCwKaEZH2uzJP7iLfYxpVEAQQjKTN7+YngIA0ExEpCyLyIn3ceLMzq6gEgAwGFdQV1DRXSdDmwGBgEKgSSoJmEKjmskLYg0yYppwV2y5IYVAQE3EwMCMQkgUqEk6JFAIIbVgBkLiNDx+qaAgOaVFF0Wl15NEdevpHaF9QU3RTaZzGcGLocdEt30GgEQqDUSBwrZtKSUgxJOQoGgl2rG8LCwACREcbaOUguPu/vF74jCmLyBmRlbGiwFZmJBmNNMZATKz+QGQpWllQrJy9vS9R2ZhGhhrmrtUjHWU+zPGBNV9nSQlFO9AJkNhxuBaI5HQ+AsYBcnC+AS6lRvysGS2+x6h0xrSHTm9C8GG9pkJ0XzHNEAFBYWWUj14w770TOpFYNwE7e70sNXVVrORdpzzURsRhAgKFByf1xkwVR8iAUA4EmlubuqXnW1ZgU4X7ejKqzvJu1TgCADkfmmO/+5OPfFZxkNcDST84E7nHDcfxmYNYEDhbnEBEbmVY6ohM4uVFa1kGBmltyYU8dyqsT8SyMzTxcUlh53CTZiA4Dl99w163ROqG7oUUTCz1prjIyPN55ojgRROwIn/mpqaVtxzz7e+9a3m5uYOmxcrCMz876+9NnvWrBX33JO+sTpVw3oLvdU2Y5r5nAnVxY8ed2ivG5O82b0LLULEY8eOf/bZZyUlJQMHDkzzyYbtob3HJo45x3GOHDmcmZXlOLpDqXMLme3ckSNHzp49u7eysvU97Rbv8iiP6a5uI5WdvKvPbXNb4vyGF0NY1V8fLiJysy57JiEAE9Hzz//8heef/+mTT838mwopY+m92o6S+A7TNQD2zmTvLXld00s7bUWUUv7d3329sLCgtLQ0gVetW9LVfQsEtt0Ap4G+C3r2kT7S90wS3fVMMoZKInAc23Fs0g6AFiiISElFpM3Bl9YkpWDW7JI1MqKw7agxmsXM9W3yarPWWgrJRGyCTgEAWLonB2bbZ06eCYAYiBEkSCJzKKK9Ew6SUkajtpTCRKiPGDHilltuiZ24MrOQQtsOCjTphbXWgOg4djAQYEAmAmPgMo00xtGYZ0BrSCkB0bFtqZR3OoqIwo46QiQtQUkIKaTUWjORlIqIHO0o5RIuGDsnkRfiJ93+cWytLBlj0tDaMbtYpRQlWzJ9dXrR4cJo1A7PixDRcZza2jMfffTRyRMnHO1UVVVp0sFgaHp5uRCyru50VVXV2LGX5ufnNzU3btu2reb4sdGXjL7qyqv6DxjQoUZ1VdC5c80H9u2vOnSwuam5cMjgWbNmDRyQh8mhzvE/HU2Odhrq6t59d9exY8cAeOLEieXl5f369YvxSNTV1X34x0NDBg8ePfoSRHQc+7139yBgxRUVp06d/P3vf19TUzNy5Mh58+ZbStm2/fHRo7t37a6trR0zZsy0aeWDBxcKKTGVDDDzqVN/qa6uHjFyxKBBgw4cOLB/3/6m5qZxl4676qqrsrOzk9bnkUh437591dXV9fX1ubm5FRUVJWPHxq7uP3CgsbGxdOLE3NxcANZaa0cfqDrQeLbxyiu/IKX3xRH/8M47mRkZEyeWhkKhtjGDPi4q9A1TPgC89dab6763tqXlnHb0+h//xApYmZlZf3j3HWD64IMP7r7rzm/ed/+oUcXf/vY/RCIRrR1mzh+Yv/Z7a6+55kvmGLCNqCIAENGnNTU/+MEP3ty5U0iBCI7W/7r+JytW3HPjjTcGg8HYuSJ7ZMrMHLXtV155Zf2jj55rblaW5TgOA5SVla1evWbSpElmUjh0qPqO/3P7/1y8eM3qNYhIRHfesVxZavPmzffdd9+Z2jPRaISInnvuuZ+sX79/3/51a9eGw+FoNCKkHDVq1KOP/viyy8YDpjCbMfPeyr13L79r1TfvtYLBf/nJeq21Y9sAUHLp2I0bN44aNcqcJ2rt1NXVPfzww1t/9zttO8pSdtSWUiy59dYlS24tKChAhB3btz/9s6dXr1m9aNEiRMFEp/9y+hs33xwOh59//vkrrphpvCY/PvLxsttuu7ziiief/KmjHYGybWf25sLbR3roA88ks3q8+uqrS0pKnnrqya1b33jgHx8onTQxIyPLsizbthE4EolsfeONTz+tmTNnzte+9jUA2LJly69++cu77rz76WefmTlzZhsXRdd8Wld7auWKFfv376uouOK2ZUsHDBjw3p49Tz311Pce+l5LS8uSJUuklGYBGlNTzLxt27Z1a9dmZmQ8/MN/Hjd+XGNj46uvbnn5N79+8MHvPP30M/n5+QAQiUSjtm3btimotY5GIy0tLWvWrFmwYMHs2bNPnz792KbH9n7wwUPf/e6h6kN/u3jxnDmzI5HII488sue9PZs2bdywYYNlBVL2iXYoGrW3bPltOBJZ8501Y0pKzp49u/nxx/e8t+cfV69+4YUXgCEQsFpaImvWrNm2bdu0qVNv/sb/Gj169PHjx9etW7f58cdramoe/uEPQ6HQl7/8P57YvHnr1q03LVpkXGGrqqpaWloc23njja3TZ8ywlKU1VR+qjoQj5eXThJBMDElyGtvP9OGJhI8E9M05qpSqoKCgoKCwqKhIoCgePXrqtGnoBjG5UWuVlXu/ed+37r77LmYmpsllZcOHD3/kR488ufmJ6eXTA4FAStW0ZcuWffsqv/jFqzdu3JjVrx8RTSwtnVw2+Y6lS1/8xYuLFy/OyspK0hPM3FBfP3/evP99yy0TLptgWRYilJZOOnr040PV1adOnRowYEDblTYzA2IkEp45c+aKFSsyMzOJePTo0fPnz3/77bdvv/32VatWKSUjkch3H3po0aJFO3bs6PQk5tOamp8+9eTlFRVKKcdxSsaUfPm663a9++5nn31WNGSIbdt7Kyt3/P/t48eP37Bp0+DBg6UQkyZNmjx50rJly3bs3PnhoUPl06cPHzF8ZPGojz463FDfMCB/gJDiyOHDTFRcXLxr17vnzp3Ly81lpkOHDqmANX78ZShQSUm+peniRrfNBtT6n2FSNf9E54l03DuZHUSWyk1iqqQSQgkhBUoplWGdHFI0dMmSJQAopWUpKxgIXvfl64qGFlXu20fEbWxImtkhcn710q9VILD8rjuz+mUjuqxCUyaXPfmzZ/7p4X8OBjM87i8vSwoIheob3/j6oz9+ZNKkiaGMALGDyKGQVVg4MBxuOXeuidnwcZLn3ErsubQx8fI778zIyDQpc8aMGVM0dKiS6vbbb1dKAWAoFCouLh6Ynx8JR+vq6ts/DWJAunb2rClTpxpLmBRi0KDC6TNmsKajR48ygO04GzZscEjfccfywoIC8Pyihg0fvmDhwnDL+a1bt2pHI+KUKWXNzc2nTp8ircPnz7/33ntjSkq+tuimuvr606dPExEKcfBAVXZm1iVjxpgIweTmIAGSr04vHvS5Z1LiUPCOAZkBeOYVMy0rELPlMPPAgQVDhgz58yfHTpw4WVw8MlHLGd+JM2dqP/nkk9ycnPHjxydetSxr2rSpzLEomXiKFPNEIWQkEvm0pubon/4UCYf/Ult7vqXlo8OH27gGtWqrkbq8vDwh3bhGIQRpLaQIBIOxlsVdizuQUmAAGDZsmJISPUcqBigqGoJSKCmlkOFw+PDhw6T1F77wNzEeDADQWpdNLlOWqqysVEoqVBMmTtzyyqt/OvqnS8eOPdvY+OGhD79+880VFZdvWP8vVVVVxcXFwFB1sGpMyZjBgwZx6lS0Pi4u9LmgGrghI4koLCyQMkFtIiil8vr3Z6L6+vri4pGJNxthOHv2LDl2UVFRW8rfQCAYiUQSXQJio5OITp88uWHDhtdee42JrYCFDFKpxsaz0Ma8bEom/kJaM5FLC27InABFcq6NLkmCiQOPh3QhOlp7Es7h8+GWpuZ+OTk5ublCSvKCgYQQObk5RHT8+HEiJtalpaUoxa7du2bPnvXe7t3nzjV/9as3DBo0OG9A/7ffemve3LlVBw/W1dXfdNNNQrbHuurj4kKvG5PI/W+XJ2nD6+u66iYM6JbzYUTBTIhusCZpqKutRyHycnOS9ICx5ebl5SHip599FrsSuycSCRORECneNxqNrl69euf2HV+54fq58+YVFBQopbIyM7///e///q23IZY3wvj5I8YzSaBLyG/IYtwgDHdy8ZQnm2ThXfMWEugForgetkHLikWNWQELEZubm881N+fm5aEQsdNk446aPyCfgQViSUlJcXHxmzt3Pvjgg6+99lrJ2LF5/fsLIRcsXPj6/3u9sbFx27ZtGaHQNV/6kkrQzD4uZvTy0TbHcmR2vQiDJpJKJmmqyr17I5FIbC9KxPX19WfO1GZmZubn5yfpTK01ke7fv/+A/IHnmpv//Oc/J151HKempqampsZsbtFzZDVj1Lbtd/7wzoiRI+7/+7+/5uqrp5RNmVRaWjxqVCgY9CKnEjzgvVbH/jKBXL3p/ttO74VCoXGXjSetq6qqXB4prykHDhwgptJJpUyMQkgpr7322pqamoNVB6sOVI279NJ+2dmIYv78+Zr0+++/v2P79ssmXJadnd02y5aPCwfGeO6f7iL9bG7xS9S5fLYqTZoRJTE0N52zo9qEk7jeEsgHqw/87nevO04UkDTZRHr//n0nT5y4bMKEYCjDy7bimnZca5bgW2+7lYGeeeZnkch5KVEqgQjHa44tX37HnXctj0bDAOS55sUsWzoSjYQyMjIzM6WUiCClPHPmzOEjRwDQcWzvQZxgTIpHeBp7WML+Ez1fWdG786BlWUtuvRWFeOKJJ841NzMRAAohmpua39i61bKsOXPmMjATBSxrwYIFQshfv/SbpsamsinThFBEuqhoWG5O3ksvvXzmL7Xl5eUBy0JErXVDQ0N1dbXWmnzj74UHJ5lju1aqtz2TAKAbbseYk5ODiM///Of9+/cPZQSnTZsmpTTrykGDBj3y6KP19fXl5eW241Tu3bdp48aobS9evFi1T7h44403vvLKy//xf/8jNzd33vz5llInTp785S9e/LC6+pYlSzx+llado5Qad+m448ePPfvMM7Nnz7EC1sdHjjz77HN1dfVmMxvzi4gZhDp25e/q23cTSqlZs2ZNnz599+7d69atW7jwuoEFA2tra3/729/u2b27bMqUyZMnW5Zl9q4DBw4sGlL00q9+ZQWCM2bMsG1bCFlYUDgwP/+tN3cqpaZMnYpCIGJDQ8OypUsP7N93/Q03/tPDD7eXIdpH+khn5XWhnPK7YtiXUl5//fVPPL65snLvsqVLM7My//MP/5kRCpnAt9lz5jQ0NPzoR4+Y8H7HdqSUK1fee8MNNxh9liKYDXHQoMKNmzYtu23p008//fNnnwNEQzgwZ968bz/wbcuyAABRKCVjhtNgMLhy1b0r7r5704aNj//b40IKcvT4iROuuebq119/PUZ9KISQXilENPnmlGVhAtkSACgppVJJ++fEO1MBhRBKqaQsdYggpFSWEug6XYWCofXr1998881bXn11yyuvCiWNDiwpKXnsscfy8wdorU35nJzcSy65pOb4sbLJ04cNG24oKbKysr507bV7KyuVJUsnljq2E8gMRiLRuvp6x9Ef7P2ASF809sW/QrgE1D2ay9P6Ko7jJP3Srfh3IhoypGj7zp1vvfXmiRMnc3OzMzIyBAopBCBmZmTef//913/l+l27dtXX1w0ePKS8fEZFRUX76aEAAIh5/Lhxv3jxxfff3/PHP/6xoaFh+LDhZVPKZlx+eUxUsrKyVqxcqZTKyMgAACnl3LlzX9myZcf27adPn+6Xk1NWVnbVlVdWVlaWTysfOnSYKVUydux3vvPgmJIx5n+VUg888IAx9iaake9dtSoSjoRCGcwEAFIGAoHQqnvva2w6m5ubl1JWEcX48eMffOihCRMmCNcoxeYRCxYsGDly5KjRo8E1OMOwYcNefvnlPXve37t3b0ND/eDBgydNnnz5jMuzsjI9EhZv9rl31VVf/GJpaamUUmtSKsBMCxcuzOufF7CsYcOGAoDWOj8/f+3atfv37587d14gkNpxykevQKQR5pYWZ1I0Gq2trU2HMwlRkAdlSa0dpdT27duX3bb0juV3rFy50rIsb/gJISQRCZGyZgZw+fgcx0FE7WhACFhWNBq1AgHSpJRh2QciMnu5mIy5y1ljSUY0FLsmEEcgIppMrR6HsBCIwthXbceRrdeKjsNCiBjznW1TIBBwHJtIW5aVcu2DKBg0aU3eSS+6dmyvWe5tKBABkJiAWRNJKR3HsSzLROmZFsaCexCl42giCgQsy7Ichw0/jNaG3UIAAKLh1ONoNGpZVsx27ePCoOecSd3WqJzwB0ErDvEe+LGYhOtSCikFICiptEOkmYkQpWUFzMATAonY8HS3A3TPhhCkVMCMJhMmsGUFEVAIw0JoRqcAYJFwSCsQGb20i+6ZBwKwkuZ8yCjM2P4WXQ5d5ja+7GBZrTjvLEsyaymFdHOgt9cJIKRKWI94EUIIQJw4NbFhJEeQUjFAMGAeh14woNcdrtqXABIAbNsGj6rCC6CJbbaZmb3gQV9KLzjaOql3BT0XVGgz7nqo0+PcXOb/UEoZCGYIIRClEIJIM0P7G7yU7cNES2zrw0nT1Fa1xck0XS2WWFEHrgspGtXG2tTFoZ/EzRzvk2SPi9iVuNtUK/+N9sGJxRNfxD9K/W9GD7q75yyEDBwJR+rr69ppSQ+/PTM3NjZVVx8sKhpaVFQkhEha6/qjysfnFj1nIeyhoDIwMjSda25uampdncfa7kuTDx+tgUyFhcl71C6i51bflIrNl08fPi4Eei6ozOA4TpJPrx8X5cNHe0AU3FPKmzQEFYA0tWVH8nWqDx8pIQRi6sPFLpTtWbH2krWZlA3+AtiHj7aQUsqexhX2XKMSEZFO/pVjQV7+ItiHD0jkc87KyurxmUUPNSoDa+34x+M+fHQRlmWFQqEeF++2Ro0FQdq2o3XbyDZfdn34MIhHPgqBmZmZ6bgA9FBQbUeHw1FIYTryBdWHD0jc/TFwMJiRmZGZTnU9XPqePx82IY6+ldeHjzZoJRSBQCAnOztNDdYTY1I0Go1Ewm6LWqUbZmY2SVxSx3PFXGovgHSbyi+2mtN55TS7q6+a3Vc1w4UfA12sHBEBhCaHmTMygrk5OTJtbqpuCKrR5dFopKG+nkym7GRrEgspEA03irnUscbumPij47IdG5Y7dTZO59F91Wz/lbtVFvrqld1QZCEzMkI5/frF2LnSQZcElcGQkLBtO42NjeQxknihj2Qi1JSycnNyorYdiYSj0ajWOhaW0iO9341CbTyi0lxopFO847Kd1tzjR7eOvul2NZ/7V/7vLZ6yrEtMKQADAUsplZ2d3VshJF1yyjdzi21HzzY22rZtWHhNQSGkEBAIWJlZWQErECfLZQqfPx85HwYAIkrigkh/cdLeQOyVZU/KyrtYczoNS/Ol+qrZfVVze5VfuJo7rTwQDGZlZQWUJXpDi7ZuT9cElZmbzzVHbDsajQKAEtJwTAeDwVBG0FKWd6NXLyADY3KYpXuN4hV3gI5WFwiMqVrunReltSgSnOLRHH+VbpdNaFhHazkBIuXFrpRFQEw1iNJpdhfLdvylBDBcmC+V5it30ux28rN4zW63rEgdrpIuuqFRIRUDQOtpI/ndRId9QZ30Y0efEBM/Rxuwm4W9w4e3j3SanU5ZBGzPNxPM7qPD1VpfNbuzKbUjGtnOvlQnLm4Xrtmiw7LUySsn8RIkXOgpumf19YO2L1p0IOF9jXY5aHx0HV0SVDMEukC80r2x0tnY6rS2jgiUely2CyUvVNlOa75wj76QZaHj3u6w6rRmn/Qmrx63OVVAWdozVTcYHri1Dr9oJ3AfPv764NOi+/DxOUA39qi+FvXho6/ga1QfPj4H8AXVh4/PAXxB9eHjcwBfUH34+BzgvwDPw0RDEsPRdwAAAABJRU5ErkJggg==\"/>"
      ],
      "text/plain": [
       "<autogen_core._image.Image at 0x797b7f6d3080>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from autogen_agentchat.messages import MultiModalMessage\n",
    "from autogen_core import Image as AGImage\n",
    "from PIL import Image\n",
    "\n",
    "image_path = \"./samples/02.giftcard.message.scam.png\"\n",
    "# image_path = \"./samples/scam.spanish.png\"\n",
    "\n",
    "pil_image = Image.open(image_path)\n",
    "img = AGImage(pil_image)\n",
    "multi_modal_message = MultiModalMessage(content=[img], source=\"User\")\n",
    "img"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "#team.reset()\n",
    "stream = team.run_stream(task=multi_modal_message)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---------- User ----------\n",
      "<image>\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---------- OCR_Specialist ----------\n",
      "Congratulations! You've won a $1,000 Walmart gift card. Go to http://bit.ly/123456 tp claim now.\n",
      "[Prompt tokens: 330, Completion tokens: 26]\n",
      "---------- URL_Checker ----------\n",
      "[FunctionCall(id='call_fj1nCVYiksMkytwKw6jeThkj', arguments='{\"target_url\":\"http://bit.ly/123456\"}', name='is_url_safe')]\n",
      "[Prompt tokens: 384, Completion tokens: 22]\n",
      "---------- URL_Checker ----------\n",
      "[FunctionExecutionResult(content='(True, [])', call_id='call_fj1nCVYiksMkytwKw6jeThkj')]\n",
      "---------- URL_Checker ----------\n",
      "(True, [])\n",
      "---------- Content_Analyst ----------\n",
      "This message shows several signs of being a potential scam:\n",
      "\n",
      "1. **Unsolicited Message:** You received a notification out of the blue about winning a prize.\n",
      "\n",
      "2. **Shortened URL:** The use of a link shortener (bit.ly) could be hiding the actual destination, which is often used for malicious purposes.\n",
      "\n",
      "3. **Urgency:** The message prompts immediate action (\"claim now\"), pressuring you to visit the link without thinking.\n",
      "\n",
      "4. **Spelling Error:** There's a typo, \"tp\" instead of \"to,\" which is common in scam messages.\n",
      "\n",
      "5. **Large Prize Claim:** Offers of large sums or prizes often lure recipients into clicking or providing personal information.\n",
      "\n",
      "Always verify through official channels before acting on such messages. Do not click on the link or provide any personal information.\n",
      "[Prompt tokens: 391, Completion tokens: 163]\n",
      "---------- Decision_Maker ----------\n",
      "This message is likely a scam. Here’s why:\n",
      "\n",
      "1. **Unexpected Win:** Legitimate companies rarely give out significant prizes randomly.\n",
      "\n",
      "2. **Shortened Link:** The use of a URL shortener can conceal malicious sites.\n",
      "\n",
      "3. **Sense of Urgency:** It creates pressure to act quickly, a common tactic in scams.\n",
      "\n",
      "4. **Typo:** The presence of errors (\"tp\" instead of \"to\") is typical in fraudulent messages.\n",
      "\n",
      "5. **Generic Greeting:** Scams often use impersonal or generic messages.\n",
      "\n",
      "Always verify with the company directly if you receive such messages. Do not click the link or share personal information.\n",
      "[Prompt tokens: 521, Completion tokens: 129]\n",
      "---------- Summary_Agent ----------\n",
      "The text message is likely a scam. It claims you won a large prize unexpectedly, uses a shortened URL to conceal a potentially harmful site, and includes a typo (\"tp\" instead of \"to\"). These are common red flags. Additionally, it urges immediate action, a tactic often used by scammers. To stay safe, avoid clicking the link and don't share any personal information. Verify through official channels if you're unsure.\n",
      "[Prompt tokens: 695, Completion tokens: 83]\n",
      "---------- Language_Translation_Agent ----------\n",
      "The message claims you've won a $1,000 Walmart gift card, but it shows signs of being a scam. It uses a shortened URL, contains a typo, and urges quick action, which are common in fraudulent messages. Avoid clicking the link or sharing personal information. Always verify with the company directly if unsure.\n",
      "[Prompt tokens: 778, Completion tokens: 63]\n",
      "---------- Summary ----------\n",
      "Number of messages: 9\n",
      "Finish reason: Maximum number of turns 6 reached.\n",
      "Total prompt tokens: 3099\n",
      "Total completion tokens: 486\n",
      "Duration: 17.81 seconds\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "TaskResult(messages=[MultiModalMessage(source='User', models_usage=None, content=[<autogen_core._image.Image object at 0x797b7f6d3080>], type='MultiModalMessage'), TextMessage(source='OCR_Specialist', models_usage=RequestUsage(prompt_tokens=330, completion_tokens=26), content=\"Congratulations! You've won a $1,000 Walmart gift card. Go to http://bit.ly/123456 tp claim now.\", type='TextMessage'), ToolCallMessage(source='URL_Checker', models_usage=RequestUsage(prompt_tokens=384, completion_tokens=22), content=[FunctionCall(id='call_fj1nCVYiksMkytwKw6jeThkj', arguments='{\"target_url\":\"http://bit.ly/123456\"}', name='is_url_safe')], type='ToolCallMessage'), ToolCallResultMessage(source='URL_Checker', models_usage=None, content=[FunctionExecutionResult(content='(True, [])', call_id='call_fj1nCVYiksMkytwKw6jeThkj')], type='ToolCallResultMessage'), TextMessage(source='URL_Checker', models_usage=None, content='(True, [])', type='TextMessage'), TextMessage(source='Content_Analyst', models_usage=RequestUsage(prompt_tokens=391, completion_tokens=163), content='This message shows several signs of being a potential scam:\\n\\n1. **Unsolicited Message:** You received a notification out of the blue about winning a prize.\\n\\n2. **Shortened URL:** The use of a link shortener (bit.ly) could be hiding the actual destination, which is often used for malicious purposes.\\n\\n3. **Urgency:** The message prompts immediate action (\"claim now\"), pressuring you to visit the link without thinking.\\n\\n4. **Spelling Error:** There\\'s a typo, \"tp\" instead of \"to,\" which is common in scam messages.\\n\\n5. **Large Prize Claim:** Offers of large sums or prizes often lure recipients into clicking or providing personal information.\\n\\nAlways verify through official channels before acting on such messages. Do not click on the link or provide any personal information.', type='TextMessage'), TextMessage(source='Decision_Maker', models_usage=RequestUsage(prompt_tokens=521, completion_tokens=129), content='This message is likely a scam. Here’s why:\\n\\n1. **Unexpected Win:** Legitimate companies rarely give out significant prizes randomly.\\n\\n2. **Shortened Link:** The use of a URL shortener can conceal malicious sites.\\n\\n3. **Sense of Urgency:** It creates pressure to act quickly, a common tactic in scams.\\n\\n4. **Typo:** The presence of errors (\"tp\" instead of \"to\") is typical in fraudulent messages.\\n\\n5. **Generic Greeting:** Scams often use impersonal or generic messages.\\n\\nAlways verify with the company directly if you receive such messages. Do not click the link or share personal information.', type='TextMessage'), TextMessage(source='Summary_Agent', models_usage=RequestUsage(prompt_tokens=695, completion_tokens=83), content='The text message is likely a scam. It claims you won a large prize unexpectedly, uses a shortened URL to conceal a potentially harmful site, and includes a typo (\"tp\" instead of \"to\"). These are common red flags. Additionally, it urges immediate action, a tactic often used by scammers. To stay safe, avoid clicking the link and don\\'t share any personal information. Verify through official channels if you\\'re unsure.', type='TextMessage'), TextMessage(source='Language_Translation_Agent', models_usage=RequestUsage(prompt_tokens=778, completion_tokens=63), content=\"The message claims you've won a $1,000 Walmart gift card, but it shows signs of being a scam. It uses a shortened URL, contains a typo, and urges quick action, which are common in fraudulent messages. Avoid clicking the link or sharing personal information. Always verify with the company directly if unsure.\", type='TextMessage')], stop_reason='Maximum number of turns 6 reached.')"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from autogen_agentchat.ui import Console\n",
    "await Console(stream)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pprint import pprint\n",
    "\n",
    "streams = []\n",
    "async for s in stream:\n",
    "    streams.append(s)\n",
    "\n",
    "pprint(streams[-1].messages[-1].content)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}