{ "cells": [ { "cell_type": "markdown", "id": "serious-pressing", "metadata": {}, "source": [ "# CWE Data\n", "---" ] }, { "cell_type": "code", "execution_count": 1, "id": "91b44dc2", "metadata": { "execution": { "iopub.execute_input": "2024-06-16T12:27:51.302947Z", "iopub.status.busy": "2024-06-16T12:27:51.302779Z", "iopub.status.idle": "2024-06-16T12:27:51.839829Z", "shell.execute_reply": "2024-06-16T12:27:51.839331Z" }, "tags": [ "remove-cell" ] }, "outputs": [ { "data": { "text/html": [ "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from IPython.core.magic import register_cell_magic\n", "from IPython.display import Markdown\n", "import datetime\n", "from datetime import date\n", "import glob\n", "import json\n", "import logging\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import plotly\n", "import warnings\n", "import calplot\n", "from itables import init_notebook_mode, show\n", "import itables.options as opt\n", "\n", "\n", "opt.dom = \"tpir\" \n", "opt.style = \"table-layout:auto;width:auto\"\n", "init_notebook_mode(all_interactive=True, connected=True)\n", "\n", "@register_cell_magic\n", "def markdown(line, cell):\n", " return Markdown(cell.format(**globals()))\n", "\n", "\n", "logging.getLogger('matplotlib.font_manager').disabled = True\n", "warnings.filterwarnings(\"ignore\")\n", "pd.set_option('display.width', 500)\n", "pd.set_option('display.max_rows', 50)\n", "pd.set_option('display.max_columns', 10)" ] }, { "cell_type": "code", "execution_count": 2, "id": "98bafc2f-2e20-4032-a091-ec2dc0ecb7a5", "metadata": { "execution": { "iopub.execute_input": "2024-06-16T12:27:51.842041Z", "iopub.status.busy": "2024-06-16T12:27:51.841803Z", "iopub.status.idle": "2024-06-16T12:28:36.145770Z", "shell.execute_reply": "2024-06-16T12:28:36.145212Z" }, "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "\n", "row_accumulator = []\n", "for filename in glob.glob('nvdcve-1.1-*.json'):\n", " with open(filename, 'r', encoding='utf-8') as f:\n", " nvd_data = json.load(f)\n", " for entry in nvd_data['CVE_Items']:\n", " cve = entry['cve']['CVE_data_meta']['ID']\n", " try:\n", " assigner = entry['cve']['CVE_data_meta']['ASSIGNER']\n", " except KeyError:\n", " assigner = 'Missing_Data'\n", " try:\n", " published_date = entry['publishedDate']\n", " except KeyError:\n", " published_date = 'Missing_Data'\n", " try:\n", " attack_vector = entry['impact']['baseMetricV3']['cvssV3']['attackVector']\n", " except KeyError:\n", " attack_vector = 'Missing_Data'\n", " try:\n", " attack_complexity = entry['impact']['baseMetricV3']['cvssV3']['attackComplexity']\n", " except KeyError:\n", " attack_complexity = 'Missing_Data'\n", " try:\n", " privileges_required = entry['impact']['baseMetricV3']['cvssV3']['privilegesRequired']\n", " except KeyError:\n", " privileges_required = 'Missing_Data'\n", " try:\n", " user_interaction = entry['impact']['baseMetricV3']['cvssV3']['userInteraction']\n", " except KeyError:\n", " user_interaction = 'Missing_Data'\n", " try:\n", " scope = entry['impact']['baseMetricV3']['cvssV3']['scope']\n", " except KeyError:\n", " scope = 'Missing_Data'\n", " try:\n", " confidentiality_impact = entry['impact']['baseMetricV3']['cvssV3']['confidentialityImpact']\n", " except KeyError:\n", " confidentiality_impact = 'Missing_Data'\n", " try:\n", " integrity_impact = entry['impact']['baseMetricV3']['cvssV3']['integrityImpact']\n", " except KeyError:\n", " integrity_impact = 'Missing_Data'\n", " try:\n", " availability_impact = entry['impact']['baseMetricV3']['cvssV3']['availabilityImpact']\n", " except KeyError:\n", " availability_impact = 'Missing_Data'\n", " try:\n", " base_score = entry['impact']['baseMetricV3']['cvssV3']['baseScore']\n", " except KeyError:\n", " base_score = '0.0'\n", " try:\n", " base_severity = entry['impact']['baseMetricV3']['cvssV3']['baseSeverity']\n", " except KeyError:\n", " base_severity = 'Missing_Data'\n", " try:\n", " exploitability_score = entry['impact']['baseMetricV3']['exploitabilityScore']\n", " except KeyError:\n", " exploitability_score = 'Missing_Data'\n", " try:\n", " impact_score = entry['impact']['baseMetricV3']['impactScore']\n", " except KeyError:\n", " impact_score = 'Missing_Data'\n", " try:\n", " cwe = entry['cve']['problemtype']['problemtype_data'][0]['description'][0]['value']\n", " except IndexError:\n", " cwe = 'Missing_Data'\n", " try:\n", " description = entry['cve']['description']['description_data'][0]['value']\n", " except IndexError:\n", " description = ''\n", " new_row = { \n", " 'CVE': cve, \n", " 'Published': published_date,\n", " 'AttackVector': attack_vector,\n", " 'AttackComplexity': attack_complexity,\n", " 'PrivilegesRequired': privileges_required,\n", " 'UserInteraction': user_interaction,\n", " 'Scope': scope,\n", " 'ConfidentialityImpact': confidentiality_impact,\n", " 'IntegrityImpact': integrity_impact,\n", " 'AvailabilityImpact': availability_impact,\n", " 'BaseScore': base_score,\n", " 'BaseSeverity': base_severity,\n", " 'ExploitabilityScore': exploitability_score,\n", " 'ImpactScore': impact_score,\n", " 'CWE': cwe,\n", " 'Description': description,\n", " 'Assigner' : assigner\n", " }\n", " if not description.startswith('** REJECT **'): # disputed, rejected and other non issues start with '**'\n", " row_accumulator.append(new_row)\n", " nvd = pd.DataFrame(row_accumulator)\n", " \n", "nvd['Published'] = pd.to_datetime(nvd['Published'])\n", "thisyear = ((nvd['Published'] > '2000-01-01') & (nvd['Published'] < '2024-01-01'))\n", "nvd = nvd.loc[thisyear]\n", "nvd = nvd.sort_values(by=['Published'])\n", "nvd = nvd.reset_index(drop=True)\n", "nvd['BaseScore'] = pd.to_numeric(nvd['BaseScore']);\n", "nvd['BaseScore'] = pd.to_numeric(nvd['BaseScore']);\n", "nvd['BaseScore'] = nvd['BaseScore'].replace(0, np.NaN);\n", "nvdcount = nvd['Published'].count()\n", "nvdunique = nvd['Published'].nunique()\n", "startdate = date(2000, 1, 1)\n", "enddate = date.today()\n", "numberofdays = enddate - startdate \n", "per_day = nvdcount/numberofdays.days" ] }, { "cell_type": "markdown", "id": "aa3ea191", "metadata": { "tags": [ "hide-input" ] }, "source": [ "\n", "\n", "## CWE Data" ] }, { "cell_type": "code", "execution_count": 3, "id": "6815f0a1", "metadata": { "execution": { "iopub.execute_input": "2024-06-16T12:28:36.148422Z", "iopub.status.busy": "2024-06-16T12:28:36.148049Z", "iopub.status.idle": "2024-06-16T12:28:36.415086Z", "shell.execute_reply": "2024-06-16T12:28:36.414571Z" }, "tags": [ "remove-input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6wAAANXCAYAAAAxbtKeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADKgklEQVR4nOzdeVxWdd7/8fdlKBgIlxgu4CWrSG5puIXFxVW4Z5tZVtOiWc5IVoZOajlDlqKZLeMgTt1Oi2V5N5U5LZjidTUuiBrxyya1tAhT0RmRRYxNz+8PH1x3RxZBSa/q9Xw8vo+HfM/3nPM5J7zvefs953sshmEYAgAAAADAw7S40AUAAAAAAFAXAisAAAAAwCMRWAEAAAAAHonACgAAAADwSARWAAAAAIBHIrACAAAAADwSgRUAAAAA4JEIrAAAAAAAj0RgBQAAAAB4JAIrAAD41UhISFBCQsKFLgNnyWKxKCUl5UKXAcCDEFgBAI32yiuvyGKxyGKxaOPGjbW2G4Yhm80mi8Wia6+99mep4cCBA0pJSVFubm6T9tu7d68mTZqkiIgI+fj4yN/fX4MHD9YLL7ygH3/88Wep9dekMfeve/fuuuyyy2rt+95778lischut9fa9ve//10Wi0WffPKJJPPvWF1ty5YtP++F1uNM15+TkyOLxaLHH3+83mN88803slgseuSRRyRJKSkpDV5rQUFBgzWFhYWZxvv6+mrAgAF67bXXmvXaAeBC8rrQBQAAfnl8fHy0YsUKXXnllab+Tz/9VD/88IO8vb1/tnMfOHBATzzxhMLCwtSnT59G7fPhhx9q7Nix8vb21l133aWePXuqsrJSGzdu1PTp0/Xvf/9bL7744s9W8y9dY+/flVdeqWXLlqm4uFgBAQHu/Tdt2iQvLy9t27ZNVVVVatmypWnbRRddpCuuuMJ0zjlz5ig8PLxWLVFRUQ3WWhN8m1Njrz8mJkZvvvmmnnrqqTqPs2LFCknS7373O1N/enq6/Pz8ao23Wq1nrK1Pnz5KTk6WJB08eFD/8z//o7vvvlsVFRW67777mnilAOB5CKwAgCYbOXKk3n77bf3lL3+Rl9f//b+SFStWKDY2Vv/9738vYHVm3333ncaNG6fQ0FCtX79enTp1cm9LSkrSnj179OGHH17ACj1bU+7flVdeqZdeekmbN2/WiBEj3OM2bdqkW265RStWrNBnn32mQYMGubdt3LhRvXv3Vps2bUznHTFihPr169fkelu1atXkfRrSlOu/4447NHv2bG3ZssV0jTXefPNNxcTE6PLLLzf133zzzbrkkkvOqr6QkBBTAL7nnnsUERGh5557ziMDa1lZmXx9fS90GQB+QXgkGADQZLfddpuOHDmitWvXuvsqKyv1j3/8Q7fffnud+5SVlSk5OVk2m03e3t7q1q2bnnnmGRmGYRq3du1aXXnllbJarfLz81O3bt00a9YsSZLL5VL//v0lSePHj3c/CvnKK6/UW+vTTz+tY8eOadmyZaawUSMqKkoPPfSQ++fq6mo9+eSTioyMlLe3t8LCwjRr1ixVVFSY9gsLC9O1114rl8ulfv36qXXr1urVq5dcLpck6d1331WvXr3k4+Oj2NhYff7556b977nnHvn5+Sk/P1/XXnut/Pz8FBISorS0NEnSjh07dPXVV8vX11ehoaHu2bmf+vbbbzV27FgFBgbq4osv1qBBg2qFb5fLJYvFov/93//V3Llz1blzZ/n4+Oiaa67Rnj176r1vZ3P/ambcN23a5N5eXl6unJwc3XTTTYqIiDBt+89//qOvv/661kz9uTj9Hdbzef133HGHJNX53+qzzz7T7t273WN+LkFBQYqJidHevXtN/SdPntTzzz+vHj16yMfHRx06dNCkSZN09OjRWsf4+OOPZbfb1aZNG/n7+6t///61runtt99WbGysWrdurUsuuUS/+93vtH//ftOYmt/xvXv3auTIkWrTpo37+isqKjR16lQFBQWpTZs2uu666/TDDz/UqqW0tFQPP/ywwsLC5O3trfbt22vIkCHKyck511sF4BeCwAoAaLKwsDBdccUVevPNN919H3/8sYqLizVu3Lha4w3D0HXXXafnnntOw4cP17PPPqtu3bpp+vTp7vf5JOnf//63rr32WlVUVGjOnDlatGiRrrvuOnfIufTSSzVnzhxJ0v3336/ly5dr+fLlio+Pr7fWf/7zn4qIiFBcXFyjrm3ixIn605/+pMsvv1zPPfec7Ha7UlNT67yuPXv26Pbbb9fo0aOVmpqqo0ePavTo0XrjjTc0depU/e53v9MTTzyhvXv36pZbbtHJkydN+584cUIjRoyQzWbT008/rbCwMD3wwAN65ZVXNHz4cPXr108LFixQmzZtdNddd+m7775z73vo0CHFxcVpzZo1mjx5subOnavy8nJdd911eu+992rVOn/+fL333nuaNm2aZs6cqS1btjQqPDXl/kVERCg4ONj0fvO2bdtUWVmpuLg4xcXFmQLr5s2bJanOwFpcXKz//ve/pnbkyJEz1lCf83H94eHhiouL0//+7//qxIkTpm01ga+uf9ApLCysda1FRUWNu7DTVFdX64cfflDbtm1N/ZMmTdL06dPd792OHz9eb7zxhoYNG6aqqir3uFdeeUWjRo1SYWGhZs6cqfnz56tPnz7KyMgwjbnlllt00UUXKTU1Vffdd5/effddXXnllbXqrq6u1rBhw9S+fXs988wzGjNmjKRTf8+ef/55DR06VPPnz1fLli01atSoWtfz+9//Xunp6RozZoyWLFmiadOmqXXr1tq5c+dZ3R8Av0AGAACN9PLLLxuSjG3bthl//etfjTZt2hjHjx83DMMwxo4dazgcDsMwDCM0NNQYNWqUe79Vq1YZkoynnnrKdLybb77ZsFgsxp49ewzDMIznnnvOkGT85z//qbeGbdu2GZKMl19++Yz1FhcXG5KM66+/vlHXl5uba0gyJk6caOqfNm2aIclYv369uy80NNSQZGzevNndt2bNGkOS0bp1a+P777939//tb38zJBlOp9Pdd/fddxuSjHnz5rn7jh49arRu3dqwWCzGW2+95e7ftWuXIcn485//7O57+OGHDUnGhg0b3H2lpaVGeHi4ERYWZpw4ccIwDMNwOp2GJOPSSy81Kioq3GNfeOEFQ5KxY8eOeu9HU++fYZz6PWjdurVRWVlpGIZhpKamGuHh4YZhGMaSJUuM9u3bu8fW3Nf9+/e7+2p+x+pq3t7eZzy/3W437Ha7++fzff1paWmGJGPNmjXuvhMnThghISHGFVdcYRr75z//ud5r7dat2xnPFRoaagwdOtT4z3/+Y/znP/8xduzYYdx5552GJCMpKck9bsOGDYYk44033jDtn5GRYeovKioy2rRpYwwcOND48ccfTWNPnjxpGIZhVFZWGu3btzd69uxpGvPBBx8Ykow//elP7r6a3/EZM2aYjlXz92zy5Mmm/ttvv73W73lAQIDpWgD89jDDCgA4K7fccot+/PFHffDBByotLdUHH3xQ7+PAH330kS666CI9+OCDpv7k5GQZhqGPP/5Y0v8tMvP+++/Xmo08GyUlJZJU6/3I+nz00UeSZJr1ralTUq3Hbbt3725aLGjgwIGSpKuvvlpdunSp1f/tt9/WOufEiRPdf7ZarerWrZt8fX11yy23uPu7desmq9Vq2v+jjz7SgAEDTLOTfn5+uv/++5WXl6evvvrKdJ7x48eb3u+86qqr6q2pRlPvn3RqtvTHH3/UZ599JunU48E1s5ODBw/W4cOH9c0337i3hYeHKzg4uNZx0tLStHbtWlOr+T05G+fr+m+99Va1bNnS9Ajtp59+qv3799c7o/vOO+/UutaXX365Uef75JNPFBQUpKCgIPXq1UvLly/X+PHjtXDhQveYt99+WwEBARoyZIhpFjc2NlZ+fn5yOp2STj2OX1paqhkzZsjHx8d0HovFIknavn27Dh8+rMmTJ5vGjBo1SjExMXW+D/6HP/zB9HPN37PT/+/Bww8/XGtfq9Wq7OxsHThwoFH3A8CvD4suAQDOSlBQkBITE7VixQodP35cJ06c0M0331zn2O+//17BwcG1/of/pZde6t4unfof+//zP/+jiRMnasaMGbrmmmt000036eabb1aLFk3/N1Z/f39Jp96Da4zvv/9eLVq0qLUSbceOHWW1Wt111vhpKJXkXhnXZrPV2X/6+4I+Pj4KCgqqNbZz587ugPDT/p/u//3337uD8E/99J727Nmz3lprHhmt6x3GGk29f5L5PdaBAwdq8+bN7lVze/bsKX9/f23atEk2m02fffaZbr311jqPM2DAgLNadKk+5+v627Vrp2HDhum9997T0qVL3Stqe3l5mf4R4qfi4+PPetGlgQMH6qmnntKJEyf05Zdf6qmnntLRo0dN4fybb75RcXGx2rdvX+cxDh8+LEnu915/+ntzupq/A926dau1LSYmptbnrry8vNS5c+dax2jRooUiIyNN/XUd8+mnn9bdd98tm82m2NhYjRw5UnfddZciIiLqrRHArwuBFQBw1m6//Xbdd999Kigo0IgRIxr1GY6GtG7dWv/617/kdDr14YcfKiMjQytXrtTVV1+tTz75RBdddFGTjufv76/g4GB9+eWXTdrv9LBYn/rqqa/fOG2BqXPdvynO5phnc/8uu+wytWnTRhs3btTIkSNVWFjonmFt0aKFBg4cqI0bNyoyMlKVlZXNuuBSQ87X9UunPlvzwQcf6IMPPtB1112nd955R0OHDq31jxPN4ZJLLlFiYqIkadiwYYqJidG1116rF154wf2kwMmTJ9W+fXu98cYbdR7j56irhre391n9Y1ONW265RVdddZXee+89ffLJJ1q4cKEWLFigd99917QSNYBfLx4JBgCctRtvvFEtWrTQli1b6n0cWJJCQ0N14MCBWjNVu3btcm+v0aJFC11zzTV69tln9dVXX2nu3Llav369+7HFxobJGtdee6327t2rrKysM44NDQ3VyZMn3Y+s1jh06JCKiopMdV5ooaGh2r17d63+uu7puWjK/ZNOBcNBgwZp06ZN2rhxo/z9/dWrVy/39pqFl2oWXzpfgfVsNfX6Jem6665TmzZttGLFCn388cc6evToz746cI1Ro0bJbrdr3rx5KisrkyRFRkbqyJEjGjx4sBITE2u1yy67zD1OUoMBveb3qq7fvd27dzfq967m79npKxnXdUxJ6tSpkyZPnqxVq1bpu+++U7t27TR37twzngfArwOBFQBw1vz8/JSenq6UlBSNHj263nEjR47UiRMn9Ne//tXU/9xzz8lisbhnSgoLC2vt26dPH0lyf1am5huOjV1F9Y9//KN8fX01ceJEHTp0qNb2vXv36oUXXnDXKUnPP/+8acyzzz4rSXWuYnqhjBw5Ulu3bjUFqbKyMr344osKCwtT9+7dm+U8Tbl/Na688kr95z//0csvv6yBAweaZtji4uK0e/duvf/++2rXrp37EWZPdTbX37p1a91444366KOPlJ6eLl9fX11//fXnq2Q9+uijOnLkiF566SVJp2YpT5w4oSeffLLW2OrqavffpaFDh6pNmzZKTU1VeXm5aVzNTHS/fv3Uvn17LV261PSpp48//lg7d+5s1N+Rmr/vf/nLX0z9p/+9O3HihIqLi0197du3V3BwcK3PTAH49eKRYADAObn77rvPOGb06NFyOBx67LHHlJeXp8suu0yffPKJ3n//fT388MPumZ05c+boX//6l0aNGqXQ0FAdPnxYS5YsUefOnd0zcZGRkbJarVq6dKnatGkjX19fDRw4UOHh4XWeOzIyUitWrNCtt96qSy+9VHfddZd69uypyspKbd68WW+//bbuueceSaceZ7377rv14osvqqioSHa7XVu3btWrr76qG264QQ6Ho3luWjOYMWOG3nzzTY0YMUIPPvigAgMD9eqrr+q7777TO++8c06PYf5UU+5fjZr/VllZWUpJSTFtGzRokCwWi7Zs2aLRo0fXO2P+8ccfu2eLfyouLu68vr94NtcvnXos+LXXXtOaNWt0xx13uP+hpS7/+Mc/5OfnV6t/yJAh6tChQ5NrHjFihHr27Klnn31WSUlJstvtmjRpklJTU5Wbm6uhQ4eqZcuW+uabb/T222/rhRde0M033yx/f38999xzmjhxovr376/bb79dbdu21f/7f/9Px48f16uvvqqWLVtqwYIFGj9+vOx2u2677TYdOnRIL7zwgsLCwjR16tQz1tenTx/ddtttWrJkiYqLixUXF6fMzMxa38UtLS1V586ddfPNN+uyyy6Tn5+f1q1bp23btmnRokVNvi8AfqEu5BLFAIBflp9+1qYhp3/WxjBOfXJl6tSpRnBwsNGyZUuja9euxsKFC92fyzAMw8jMzDSuv/56Izg42GjVqpURHBxs3HbbbcbXX39tOtb7779vdO/e3fDy8mr0J26+/vpr47777jPCwsKMVq1aGW3atDEGDx5sLF682CgvL3ePq6qqMp544gkjPDzcaNmypWGz2YyZM2eaxtR3jYZh1PqkiGEYxnfffWdIMhYuXOjuu/vuuw1fX99a+9vtdqNHjx61+us63969e42bb77ZsFqtho+PjzFgwADjgw8+MI2p+azL22+/XWdNjbl3htH4+2cYhlFWVub+b/PJJ5/UOlbv3r0NScaCBQtqbWvoszaNqbe+z9qcz+s3DMOorq42OnXqZEgyPvroozqP2dBnbXTaZ5DqUt/voGEYxiuvvFLr+l588UUjNjbWaN26tdGmTRujV69exh//+EfjwIEDpn1Xr15txMXFGa1btzb8/f2NAQMGGG+++aZpzMqVK42+ffsa3t7eRmBgoHHHHXcYP/zwg2lMfb/jhmEYP/74o/Hggw8a7dq1M3x9fY3Ro0cb+/btM33WpqKiwpg+fbpx2WWXGW3atDF8fX2Nyy67zFiyZEmD9wXAr4vFMM5hBQcAAAAAAH4mvMMKAAAAAPBIBFYAAAAAgEcisAIAAAAAPBKBFQAAAADgkQisAAAAAACPRGAFAAAAAHgkrwtdAH4bTp48qQMHDqhNmzb1fiQeAAAAwK+fYRgqLS1VcHCwWrRoeA6VwIrz4sCBA7LZbBe6DAAAAAAeYt++fercuXODYwisOC/atGkj6dQvpb+//wWuBgAAAMCFUlJSIpvN5s4IDSGw4ryoeQzY39+fwAoAAACgUa8KsugSAAAAAMAjEVgBAAAAAB6JwAoAAAAA8EgEVgAAAACARyKwAgAAAAA8EoEVAAAAAOCRCKwAAAAAAI9EYAUAAAAAeCQCKwAAAADAIxFYAQAAAAAeicAKAAAAAPBIBFYAAAAAgEcisAIAAAAAPBKBFQAAAADgkQisAAAAAACPRGAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHonACgAAAADwSARWAAAAAIBHIrACAAAAADwSgRUAAAAA4JEIrAAAAAAAj0RgBQAAAAB4JAIrAAAAAMAjEVgBAAAAAB6JwAoAAAAA8EgEVgAAAACARyKwAgAAAAA8EoEVAAAAAOCRCKwAAAAAAI9EYAUAAAAAeCSvC10AflsCui+QWvhc6DJMjPzZF7oEAAAAAHVghhUAAAAA4JEIrAAAAAAAj0RgBQAAAAB4JAIrAAAAAMAjEVgBAAAAAB6JwAoAAAAA8EgE1p9BQUGBpkyZooiICHl7e8tms2n06NHKzMzUuHHjNHz4cNP4jIwMWSwWpaSkmPpTUlLUpUsXSVJeXp4sFkudbcuWLfXW8u6776pfv36yWq3y9fVVnz59tHz58lrjdu7cqeuuu04BAQHy9fVV//79lZ+fL0kqLCzUlClT1K1bN7Vu3VpdunTRgw8+qOLi4nO8UwAAAABQP77D2szy8vI0ePBgWa1WLVy4UL169VJVVZXWrFmjpKQkTZ06VdOmTVN1dbW8vE7dfqfTKZvNJpfLZTqW0+mUw+Ew9a1bt049evQw9bVr167eegIDA/XYY48pJiZGrVq10gcffKDx48erffv2GjZsmCRp7969uvLKK3XvvffqiSeekL+/v/7973/Lx+fU91IPHDigAwcO6JlnnlH37t31/fff6/e//70OHDigf/zjH+d6ywAAAACgThbDMIwLXcSvyciRI/XFF19o9+7d8vX1NW0rKirS4cOH1a1bN2VlZWnQoEGSpIEDB+ruu+9WcnKyjh49Kh8fH5WXl8tqtWrp0qW65557lJeXp/DwcH3++efq06fPOdV4+eWXa9SoUXryySclSePGjVPLli3rnHmtz9tvv63f/e53KisrcwfvhpSUlCggIEAKmSW18Dnr2n8ORv7sC10CAAAA8JtRkw2Ki4vl7+/f4FgeCW5GhYWFysjIUFJSUq2wKklWq1XR0dEKDg6W0+mUJJWWlionJ0djx45VWFiYsrKyJEmbN29WRUVFrRnWc2EYhjIzM7V7927Fx8dLkk6ePKkPP/xQ0dHRGjZsmNq3b6+BAwdq1apVDR6r5pervrBaUVGhkpISUwMAAACApiCwNqM9e/bIMAzFxMQ0OM7hcLgf/92wYYOio6MVFBSk+Ph4d7/L5VJ4eLhCQ0NN+8bFxcnPz8/UzqS4uFh+fn5q1aqVRo0apcWLF2vIkCGSpMOHD+vYsWOaP3++hg8frk8++UQ33nijbrrpJn366ad1Hu+///2vnnzySd1///31njM1NVUBAQHuZrPZzlgnAAAAAPwUgbUZNfbp6oSEBG3atElVVVVyuVxKSEiQJNntdlNgrWt2deXKlcrNzTU1ScrPzzeF2Hnz5rn3adOmjXJzc7Vt2zbNnTtXjzzyiPs8J0+elCRdf/31mjp1qvr06aMZM2bo2muv1dKlS2udv6SkRKNGjVL37t1rLRL1UzNnzlRxcbG77du3r1H3BgAAAABqsOhSM+ratassFot27drV4DiHw6GysjJt27ZNTqdT06dPl3QqsE6YMEGFhYXKzs7WpEmTau1rs9kUFRVVqz84ONgdXqVTiy3VaNGihXufPn36aOfOnUpNTVVCQoIuueQSeXl5qXv37qbjXXrppdq4caOpr7S0VMOHD1ebNm303nvvqWXLlvVeo7e3t7y9vRu8DwAAAADQEGZYm1FgYKCGDRumtLQ0lZWV1dpeVFQkSYqMjJTNZtPq1auVm5sru90uSQoJCVFISIgWLVqkysrKJr2/6uXlpaioKHf7aWA93cmTJ1VRUSFJatWqlfr376/du3ebxnz99demx5FLSko0dOhQtWrVSqtXr3avIAwAAAAAPxdmWJtZWlqaBg8erAEDBmjOnDnq3bu3qqurtXbtWqWnp2vnzp2STs2yLlmyRFFRUerQoYN7f7vdrsWLF7sXZzrdkSNHVFBQYOqzWq31BsjU1FT169dPkZGRqqio0EcffaTly5crPT3dPWb69Om69dZbFR8fL4fDoYyMDP3zn/90PzZcE1aPHz+u119/3bSIUlBQkC666KJzumcAAAAAUBcCazOLiIhQTk6O5s6dq+TkZB08eFBBQUGKjY01hUSHw6HXXnvN/f5qDbvdrpdfflm33357ncdPTEys1ffmm29q3LhxdY4vKyvT5MmT9cMPP6h169aKiYnR66+/rltvvdU95sYbb9TSpUuVmpqqBx98UN26ddM777yjK6+8UpKUk5Oj7OxsSar1OPJ3332nsLCwM94XAAAAAGgqvsOK84LvsAIAAACQ+A4rAAAAAOBXgMAKAAAAAPBIBFYAAAAAgEcisAIAAAAAPBKrBOO8Kv7q0TO+WA0AAAAAEjOsAAAAAAAPRWAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHonACgAAAADwSKwSjPMqoPsCqYXPhS6j2Rj5sy90CQAAAMCvFjOsAAAAAACPRGAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHonACgAAAADwSARWAAAAAIBHIrD+DAoKCjRlyhRFRETI29tbNptNo0ePVmZmpsaNG6fhw4ebxmdkZMhisSglJcXUn5KSoi5dukiS8vLyZLFY6mxbtmxpVF1vvfWWLBaLbrjhhlrniYmJka+vr9q2bavExERlZ2fXeYyKigr16dNHFotFubm5jTovAAAAAJwNAmszy8vLU2xsrNavX6+FCxdqx44dysjIkMPhUFJSkhwOhzZt2qTq6mr3Pk6nUzabTS6Xy3Qsp9Mph8Nh6lu3bp0OHjxoarGxsY2qa9q0abrqqqtqbYuOjtZf//pX7dixQxs3blRYWJiGDh2q//znP7XG/vGPf1RwcHAj7wYAAAAAnD2vC13Ar83kyZNlsVi0detW+fr6uvt79OihCRMm6PDhwzp27Ji2b9+uQYMGSZJcLpdmzJih5ORklZeXy8fHR+Xl5crOztb48eNNx2/Xrp06duzYpJpOnDihO+64Q0888YQ2bNigoqIi0/bbb7/d9POzzz6rZcuW6YsvvtA111zj7v/444/1ySef6J133tHHH3/cpBoAAAAAoKmYYW1GhYWFysjIUFJSkims1rBarYqOjlZwcLCcTqckqbS0VDk5ORo7dqzCwsKUlZUlSdq8ebMqKipqzbCejTlz5qh9+/a69957zzi2srJSL774ogICAnTZZZe5+w8dOqT77rtPy5cv18UXX3zG41RUVKikpMTUAAAAAKApCKzNaM+ePTIMQzExMQ2Oczgc7sd/N2zYoOjoaAUFBSk+Pt7d73K5FB4ertDQUNO+cXFx8vPzM7WGbNy4UcuWLdNLL73U4LgPPvhAfn5+8vHx0XPPPae1a9fqkksukSQZhqF77rlHv//979WvX78Gj1MjNTVVAQEB7maz2Rq1HwAAAADUILA2I8MwGjUuISFBmzZtUlVVlVwulxISEiRJdrvdFFjrml1duXKlcnNzTU2S8vPzTSF23rx5Ki0t1Z133qmXXnrJHT7r43A4lJubq82bN2v48OG65ZZbdPjwYUnS4sWLVVpaqpkzZzbuRkiaOXOmiouL3W3fvn2N3hcAAAAAJN5hbVZdu3aVxWLRrl27GhzncDhUVlambdu2yel0avr06ZJOBdYJEyaosLBQ2dnZmjRpUq19bTaboqKiavUHBwebVu0NDAzU3r17lZeXp9GjR7v7T548KUny8vLS7t27FRkZKUny9fVVVFSUoqKiNGjQIHXt2lXLli3TzJkztX79emVlZcnb29t0zn79+umOO+7Qq6++Wqseb2/vWuMBAAAAoCkIrM0oMDBQw4YNU1pamh588MFa77EWFRXJarUqMjJSNptNq1evVm5urux2uyQpJCREISEhWrRokSorK5v0/qqXl1etIHvxxRdrx44dpr7HH39cpaWleuGFFxp8TPfkyZOqqKiQJP3lL3/RU0895d524MABDRs2TCtXrtTAgQMbXSMAAAAANAWBtZmlpaVp8ODBGjBggObMmaPevXururpaa9euVXp6unbu3Cnp1CzrkiVLFBUVpQ4dOrj3t9vtWrx4sXtxptMdOXJEBQUFpj6r1SofH59aY318fNSzZ89aYyW5+8vKyjR37lxdd9116tSpk/773/8qLS1N+/fv19ixYyXJ/S3YGjXvzUZGRqpz585NuT0AAAAA0Gi8w9rMIiIilJOTI4fDoeTkZPXs2VNDhgxRZmam0tPT3eMcDodKS0vd76/WsNvtKi0trXd2NTExUZ06dTK1VatWnXW9F110kXbt2qUxY8YoOjpao0eP1pEjR7Rhwwb16NHjrI8LAAAAAOfKYjR2pSDgHJSUlCggIEAKmSW1qD0b/Etl5M++0CUAAAAAvyg12aC4uFj+/v4NjmWGFQAAAADgkQisAAAAAACPRGAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHonvsOK8Kv7q0TOuBAYAAAAAEjOsAAAAAAAPRWAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHolFl3BeBXRfILXwudBlNBsjf/aFLgEAAAD41WKGFQAAAADgkQisAAAAAACPRGAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHonACgAAAADwSARWAAAAAIBHIrD+DAoKCjRlyhRFRETI29tbNptNo0ePVmZmpsaNG6fhw4ebxmdkZMhisSglJcXUn5KSoi5dukiS8vLyZLFY6mxbtmxpsJ7nn39e3bp1U+vWrWWz2TR16lSVl5ebxuzfv1+/+93v1K5dO7Vu3Vq9evXS9u3bJUlVVVV69NFH1atXL/n6+io4OFh33XWXDhw4cI53CgAAAADq53WhC/i1ycvL0+DBg2W1WrVw4UL16tVLVVVVWrNmjZKSkjR16lRNmzZN1dXV8vI6dfudTqdsNptcLpfpWE6nUw6Hw9S3bt069ejRw9TXrl27eutZsWKFZsyYob///e+Ki4vT119/rXvuuUcWi0XPPvusJOno0aMaPHiwHA6HPv74YwUFBembb75R27ZtJUnHjx9XTk6OZs+ercsuu0xHjx7VQw89pOuuu84dagEAAACguRFYm9nkyZNlsVi0detW+fr6uvt79OihCRMm6PDhwzp27Ji2b9+uQYMGSZJcLpdmzJih5ORklZeXy8fHR+Xl5crOztb48eNNx2/Xrp06duzY6Ho2b96swYMH6/bbb5ckhYWF6bbbblN2drZ7zIIFC2Sz2fTyyy+7+8LDw91/DggI0Nq1a03H/etf/6oBAwYoPz/fPQv8UxUVFaqoqHD/XFJS0uiaAQAAAEDikeBmVVhYqIyMDCUlJZnCag2r1aro6GgFBwfL6XRKkkpLS5WTk6OxY8cqLCxMWVlZkk4FzYqKilozrE0VFxenzz77TFu3bpUkffvtt/roo480cuRI95jVq1erX79+Gjt2rNq3b6++ffvqpZdeavC4xcXFslgsslqtdW5PTU1VQECAu9lstnO6DgAAAAC/PQTWZrRnzx4ZhqGYmJgGxzkcDvfjvxs2bFB0dLSCgoIUHx/v7ne5XAoPD1doaKhp37i4OPn5+ZlaQ26//XbNmTNHV155pVq2bKnIyEglJCRo1qxZ7jHffvut0tPT1bVrV61Zs0Z/+MMf9OCDD+rVV1+t85jl5eV69NFHddttt8nf37/OMTNnzlRxcbG77du3r8E6AQAAAOB0BNZmZBhGo8YlJCRo06ZNqqqqksvlUkJCgiTJbrebAmtds6srV65Ubm6uqUlSfn6+KcTOmzfPfZx58+ZpyZIlysnJ0bvvvqsPP/xQTz75pPuYJ0+e1OWXX6558+apb9++uv/++3Xfffdp6dKltc5fVVWlW265RYZhKD09vd5r9Pb2lr+/v6kBAAAAQFPwDmsz6tq1qywWi3bt2tXgOIfDobKyMm3btk1Op1PTp0+XdCqwTpgwQYWFhcrOztakSZNq7Wuz2RQVFVWrPzg42B1eJSkwMFCSNHv2bN15552aOHGiJKlXr14qKyvT/fffr8cee0wtWrRQp06d1L17d9PxLr30Ur3zzjumvpqw+v3332v9+vWEUAAAAAA/K2ZYm1FgYKCGDRumtLQ0lZWV1dpeVFQkSYqMjJTNZtPq1auVm5sru90uSQoJCVFISIgWLVqkysrKJr2/6uXlpaioKHerCazHjx9Xixbm/8wXXXSRpP+bER48eLB2795tGvP111+bHkeuCavffPON1q1b1+DKxAAAAADQHAiszSwtLU0nTpzQgAED9M477+ibb77Rzp079Ze//EVXXHGFe5zD4dCSJUsUFRWlDh06uPvtdrsWL17sXpzpdEeOHFFBQYGpnf5N1Z8aPXq00tPT9dZbb+m7777T2rVrNXv2bI0ePdodXKdOnaotW7Zo3rx52rNnj1asWKEXX3xRSUlJkk6F1Ztvvlnbt2/XG2+8oRMnTrjPXVlZ2Vy3DgAAAABMeCS4mUVERCgnJ0dz585VcnKyDh48qKCgIMXGxpre+XQ4HHrttdfc76/WsNvtevnll92foTldYmJirb4333xT48aNq3P8448/LovFoscff1z79+9XUFCQRo8erblz57rH9O/fX++9955mzpypOXPmKDw8XM8//7zuuOMOSdL+/fu1evVqSVKfPn1Mx3c6nbWuAQAAAACag8Vo7EpBwDkoKSlRQECAFDJLauFzoctpNkb+7AtdAgAAAPCLUpMNiouLz7guDo8EAwAAAAA8EoEVAAAAAOCRCKwAAAAAAI9EYAUAAAAAeCRWCcZ5VfzVo2d8sRoAAAAAJGZYAQAAAAAeisAKAAAAAPBIBFYAAAAAgEcisAIAAAAAPBKLLuG8Cui+QGrhc6HLaDZG/uwLXQIAAADwq8UMKwAAAADAIxFYAQAAAAAeicAKAAAAAPBIBFYAAAAAgEcisAIAAAAAPBKBFQAAAADgkQisAAAAAACPRGD9GRQUFGjKlCmKiIiQt7e3bDabRo8erczMTI0bN07Dhw83jc/IyJDFYlFKSoqpPyUlRV26dJEk5eXlyWKx1Nm2bNlSby3//ve/NWbMGIWFhclisej555+vNaa0tFQPP/ywQkND1bp1a8XFxWnbtm2mMYZh6E9/+pM6deqk1q1bKzExUd98883Z3SAAAAAAaAQCazPLy8tTbGys1q9fr4ULF2rHjh3KyMiQw+FQUlKSHA6HNm3apOrqavc+TqdTNptNLpfLdCyn0ymHw2HqW7dunQ4ePGhqsbGx9dZz/PhxRUREaP78+erYsWOdYyZOnKi1a9dq+fLl2rFjh4YOHarExETt37/fPebpp5/WX/7yFy1dulTZ2dny9fXVsGHDVF5efhZ3CQAAAADOzGIYhnGhi/g1GTlypL744gvt3r1bvr6+pm1FRUU6fPiwunXrpqysLA0aNEiSNHDgQN19991KTk7W0aNH5ePjo/LyclmtVi1dulT33HOP8vLyFB4ers8//1x9+vQ5q9rCwsL08MMP6+GHH3b3/fjjj2rTpo3ef/99jRo1yt0fGxurESNG6KmnnpJhGAoODlZycrKmTZsmSSouLlaHDh30yiuvaNy4cWc8d0lJiQICAqSQWVILn7Oq3xMZ+bMvdAkAAADAL0pNNiguLpa/v3+DY5lhbUaFhYXKyMhQUlJSrbAqSVarVdHR0QoODpbT6ZR06nHcnJwcjR07VmFhYcrKypIkbd68WRUVFbVmWJtbdXW1Tpw4IR8fc4hs3bq1Nm7cKEn67rvvVFBQoMTERPf2gIAADRw40F3v6SoqKlRSUmJqAAAAANAUBNZmtGfPHhmGoZiYmAbHORwO9+O/GzZsUHR0tIKCghQfH+/ud7lcCg8PV2hoqGnfuLg4+fn5mdq5aNOmja644go9+eSTOnDggE6cOKHXX39dWVlZOnjwoKRT7+RKUocOHUz7dujQwb3tdKmpqQoICHA3m812TnUCAAAA+O0hsDajxj5dnZCQoE2bNqmqqkoul0sJCQmSJLvdbgqsdc2urly5Urm5uaYmSfn5+aYQO2/evEbXvXz5chmGoZCQEHl7e+svf/mLbrvtNrVocfa/HjNnzlRxcbG77du376yPBQAAAOC3yetCF/Br0rVrV1ksFu3atavBcQ6HQ2VlZdq2bZucTqemT58u6VRgnTBhggoLC5Wdna1JkybV2tdmsykqKqpWf3BwsDu8SlJgYGCj646MjNSnn36qsrIylZSUqFOnTrr11lsVEREhSe7Fmg4dOqROnTq59zt06FC979N6e3vL29u70TUAAAAAwOmYYW1GgYGBGjZsmNLS0lRWVlZre1FRkaRTAdFms2n16tXKzc2V3W6XJIWEhCgkJESLFi1SZWVlk95f9fLyUlRUlLs1JbDW8PX1VadOnXT06FGtWbNG119/vSQpPDxcHTt2VGZmpntsSUmJsrOzdcUVVzT5PAAAAADQGMywNrO0tDQNHjxYAwYM0Jw5c9S7d29VV1dr7dq1Sk9P186dOyWdmmVdsmSJoqKiTO+G2u12LV682L040+mOHDlS671Rq9Vaa9GkGpWVlfrqq6/cf96/f79yc3Pl5+fnnqlds2aNDMNQt27dtGfPHk2fPl0xMTEaP368JMlisejhhx/WU089pa5duyo8PFyzZ89WcHCwbrjhhnO+ZwAAAABQF2ZYm1lERIRycnLkcDiUnJysnj17asiQIcrMzFR6erp7nMPhUGlpqfv91Rp2u12lpaX1zq4mJiaqU6dOprZq1ap66zlw4ID69u2rvn376uDBg3rmmWfUt29fTZw40T2muLhYSUlJiomJ0V133aUrr7xSa9asUcuWLd1j/vjHP2rKlCm6//771b9/fx07dkwZGRn1BmUAAAAAOFd8hxXnBd9hBQAAACDxHVYAAAAAwK8AgRUAAAAA4JEIrAAAAAAAj0RgBQAAAAB4JD5rg/Oq+KtHz/hiNQAAAABIzLACAAAAADwUgRUAAAAA4JEIrAAAAAAAj0RgBQAAAAB4JAIrAAAAAMAjsUowzquA7gukFj4XuoxmY+TPvtAlAAAAAL9azLACAAAAADwSgRUAAAAA4JEIrAAAAAAAj0RgBQAAAAB4JAIrAAAAAMAjEVgBAAAAAB6JwPozKCgo0JQpUxQRESFvb2/ZbDaNHj1amZmZGjdunIYPH24an5GRIYvFopSUFFN/SkqKunTpIknKy8uTxWKps23ZsqXeWv79739rzJgxCgsLk8Vi0fPPP19rTGpqqvr37682bdqoffv2uuGGG7R7927TmPLyciUlJaldu3by8/PTmDFjdOjQobO7QQAAAADQCATWZpaXl6fY2FitX79eCxcu1I4dO5SRkSGHw6GkpCQ5HA5t2rRJ1dXV7n2cTqdsNptcLpfpWE6nUw6Hw9S3bt06HTx40NRiY2Prref48eOKiIjQ/Pnz1bFjxzrHfPrpp0pKStKWLVu0du1aVVVVaejQoSorK3OPmTp1qv75z3/q7bff1qeffqoDBw7opptuOos7BAAAAACN43WhC/i1mTx5siwWi7Zu3SpfX193f48ePTRhwgQdPnxYx44d0/bt2zVo0CBJksvl0owZM5ScnKzy8nL5+PiovLxc2dnZGj9+vOn47dq1qzd41qV///7q37+/JGnGjBl1jsnIyDD9/Morr6h9+/b67LPPFB8fr+LiYi1btkwrVqzQ1VdfLUl6+eWXdemll2rLli3u6wAAAACA5sQMazMqLCxURkaGkpKSTGG1htVqVXR0tIKDg+V0OiVJpaWlysnJ0dixYxUWFqasrCxJ0ubNm1VRUVFrhvV8KC4uliQFBgZKkj777DNVVVUpMTHRPSYmJkZdunRx13u6iooKlZSUmBoAAAAANAWBtRnt2bNHhmEoJiamwXEOh8P9+O+GDRsUHR2toKAgxcfHu/tdLpfCw8MVGhpq2jcuLk5+fn6m1pxOnjyphx9+WIMHD1bPnj0lnXont1WrVrJaraaxHTp0UEFBQZ3HSU1NVUBAgLvZbLZmrRMAAADArx+BtRkZhtGocQkJCdq0aZOqqqrkcrmUkJAgSbLb7abAWtfs6sqVK5Wbm2tqkpSfn28KsfPmzTura0hKStKXX36pt95666z2rzFz5kwVFxe72759+87peAAAAAB+e3iHtRl17dpVFotFu3btanCcw+FQWVmZtm3bJqfTqenTp0s6FVgnTJigwsJCZWdna9KkSbX2tdlsioqKqtUfHBzsDq/S/z3O2xQPPPCAPvjgA/3rX/9S586d3f0dO3ZUZWWlioqKTLOshw4dqvd9Wm9vb3l7eze5BgAAAACowQxrMwoMDNSwYcOUlpZmWmG3RlFRkSQpMjJSNptNq1evVm5urux2uyQpJCREISEhWrRokSorK5v0/qqXl5eioqLcrSmB1TAMPfDAA3rvvfe0fv16hYeHm7bHxsaqZcuWyszMdPft3r1b+fn5uuKKKxp9HgAAAABoCmZYm1laWpoGDx6sAQMGaM6cOerdu7eqq6u1du1apaena+fOnZJOzbIuWbJEUVFR6tChg3t/u92uxYsXuxdnOt2RI0dqvTdqtVrl4+NTZz2VlZX66quv3H/ev3+/cnNz5efn556pTUpK0ooVK/T++++rTZs27uMHBASodevWCggI0L333qtHHnlEgYGB8vf315QpU3TFFVewQjAAAACAnw0zrM0sIiJCOTk5cjgcSk5OVs+ePTVkyBBlZmYqPT3dPc7hcKi0tNT9/moNu92u0tLSemdXExMT1alTJ1NbtWpVvfUcOHBAffv2Vd++fXXw4EE988wz6tu3ryZOnOgek56eruLiYiUkJJiOu3LlSveY5557Ttdee63GjBmj+Ph4dezYUe++++7Z3SQAAAAAaASL0diVgoBzUFJSooCAAClkltSi7tngXyIjf/aFLgEAAAD4RanJBsXFxfL3929wLDOsAAAAAACPRGAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHonP2uC8Kv7q0TO+WA0AAAAAEjOsAAAAAAAPRWAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHonACgAAAADwSKwSjPMqoPsCqYXPhS7jvDHyZ1/oEgAAAIBfLGZYAQAAAAAeicAKAAAAAPBIBFYAAAAAgEcisAIAAAAAPBKBFQAAAADgkQisAAAAAACPRGD9GRQUFGjKlCmKiIiQt7e3bDabRo8erczMTI0bN07Dhw83jc/IyJDFYlFKSoqpPyUlRV26dJEk5eXlyWKx1Nm2bNnSqLreeustWSwW3XDDDab++o67cOFC07gPP/xQAwcOVOvWrdW2bdtaxwEAAACA5sR3WJtZXl6eBg8eLKvVqoULF6pXr16qqqrSmjVrlJSUpKlTp2ratGmqrq6Wl9ep2+90OmWz2eRyuUzHcjqdcjgcpr5169apR48epr527do1qq5p06bpqquuqrXt4MGDpp8//vhj3XvvvRozZoy775133tF9992nefPm6eqrr1Z1dbW+/PLLM54XAAAAAM4WgbWZTZ48WRaLRVu3bpWvr6+7v0ePHpowYYIOHz6sY8eOafv27Ro0aJAkyeVyacaMGUpOTlZ5ebl8fHxUXl6u7OxsjR8/3nT8du3aqWPHjk2q6cSJE7rjjjv0xBNPaMOGDSoqKjJtP/1477//vhwOhyIiIiRJ1dXVeuihh7Rw4ULde++97nHdu3dvUh0AAAAA0BQ8EtyMCgsLlZGRoaSkJFNYrWG1WhUdHa3g4GA5nU5JUmlpqXJycjR27FiFhYUpKytLkrR582ZVVFTUmmE9G3PmzFH79u1NYbM+hw4d0ocffmgam5OTo/3796tFixbq27evOnXqpBEjRjQ4w1pRUaGSkhJTAwAAAICmILA2oz179sgwDMXExDQ4zuFwuB//3bBhg6KjoxUUFKT4+Hh3v8vlUnh4uEJDQ037xsXFyc/Pz9QasnHjRi1btkwvvfRSo67h1VdfVZs2bXTTTTe5+7799ltJp96pffzxx/XBBx+obdu2SkhIUGFhYZ3HSU1NVUBAgLvZbLZGnR8AAAAAahBYm5FhGI0al5CQoE2bNqmqqkoul0sJCQmSJLvdbgqsdc2urly5Urm5uaYmSfn5+aYQO2/ePJWWlurOO+/USy+9pEsuuaRRtf3973/XHXfcIR8fH3ffyZMnJUmPPfaYxowZo9jYWL388suyWCx6++236zzOzJkzVVxc7G779u1r1PkBAAAAoAbvsDajrl27ymKxaNeuXQ2OczgcKisr07Zt2+R0OjV9+nRJpwLrhAkTVFhYqOzsbE2aNKnWvjabTVFRUbX6g4OD3eFVkgIDA7V3717l5eVp9OjR7v6a8Onl5aXdu3crMjLSvW3Dhg3avXu3Vq5caTp2p06dJJnfWfX29lZERITy8/PrvEZvb295e3s3eB8AAAAAoCEE1mYUGBioYcOGKS0tTQ8++GCt91iLiopktVoVGRkpm82m1atXKzc3V3a7XZIUEhKikJAQLVq0SJWVlU16f9XLy6tWkL344ou1Y8cOU9/jjz+u0tJSvfDCC7Ue0122bJliY2N12WWXmfpjY2Pl7e2t3bt368orr5QkVVVVKS8vr9YjywAAAADQXAiszSwtLU2DBw/WgAEDNGfOHPXu3VvV1dVau3at0tPTtXPnTkmnZlmXLFmiqKgodejQwb2/3W7X4sWL3Yszne7IkSMqKCgw9VmtVtMjvDV8fHzUs2fPWmMl1eovKSnR22+/rUWLFtU6jr+/v37/+9/rz3/+s2w2m0JDQ93faB07dmwj7goAAAAANB3vsDaziIgI5eTkyOFwKDk5WT179tSQIUOUmZmp9PR09ziHw6HS0lL3+6s17Ha7SktL651dTUxMVKdOnUxt1apV51z3W2+9JcMwdNttt9W5feHChRo3bpzuvPNO9e/fX99//73Wr1+vtm3bnvO5AQAAAKAuFqOxKwUB56CkpEQBAQFSyCypRe3Z4F8rI3/2hS4BAAAA8Cg12aC4uFj+/v4NjmWGFQAAAADgkQisAAAAAACPRGAFAAAAAHgkAisAAAAAwCPxWRucV8VfPXrGF6sBAAAAQGKGFQAAAADgoQisAAAAAACPRGAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHolVgnFeBXRfILXwudBlXHBG/uwLXQIAAADg8ZhhBQAAAAB4JAIrAAAAAMAjEVgBAAAAAB6JwAoAAAAA8EgEVgAAAACARyKwAgAAAAA8EoH1Z1BQUKApU6YoIiJC3t7estlsGj16tDIzMzVu3DgNHz7cND4jI0MWi0UpKSmm/pSUFHXp0kWSlJeXJ4vFUmfbsmVLvbW8++676tevn6xWq3x9fdWnTx8tX7681pihQ4eqXbt2slgsys3NrXWc8vJyJSUlqV27dvLz89OYMWN06NChs7tBAAAAANAIBNZmlpeXp9jYWK1fv14LFy7Ujh07lJGRIYfDoaSkJDkcDm3atEnV1dXufZxOp2w2m1wul+lYTqdTDofD1Ldu3TodPHjQ1GJjY+utJzAwUI899piysrL0xRdfaPz48Ro/frzWrFnjHlNWVqYrr7xSCxYsqPc4U6dO1T//+U+9/fbb+vTTT3XgwAHddNNNTbw7AAAAANB4Xhe6gF+byZMny2KxaOvWrfL19XX39+jRQxMmTNDhw4d17Ngxbd++XYMGDZIkuVwuzZgxQ8nJySovL5ePj4/Ky8uVnZ2t8ePHm47frl07dezYsdH1JCQkmH5+6KGH9Oqrr2rjxo0aNmyYJOnOO++UdCps16W4uFjLli3TihUrdPXVV0uSXn75ZV166aXasmWL+zoAAAAAoDkxw9qMCgsLlZGRoaSkJFNYrWG1WhUdHa3g4GA5nU5JUmlpqXJycjR27FiFhYUpKytLkrR582ZVVFTUmmE9F4ZhKDMzU7t371Z8fHyj9/vss89UVVWlxMREd19MTIy6dOnirvd0FRUVKikpMTUAAAAAaAoCazPas2ePDMNQTExMg+McDof78d8NGzYoOjpaQUFBio+Pd/e7XC6Fh4crNDTUtG9cXJz8/PxM7UyKi4vl5+enVq1aadSoUVq8eLGGDBnS6OsqKChQq1atZLVaTf0dOnRQQUFBnfukpqYqICDA3Ww2W6PPBwAAAAASgbVZGYbRqHEJCQnatGmTqqqq5HK53I/t2u12U2Cta3Z15cqVys3NNTVJys/PN4XYefPmufdp06aNcnNztW3bNs2dO1ePPPJIrfdlm9vMmTNVXFzsbvv27ftZzwcAAADg14d3WJtR165dZbFYtGvXrgbHORwOlZWVadu2bXI6nZo+fbqkU4F1woQJKiwsVHZ2tiZNmlRrX5vNpqioqFr9wcHBptV9AwMD3X9u0aKFe58+ffpo586dSk1NrfV+a306duyoyspKFRUVmWZZDx06VO/7tN7e3vL29m7U8QEAAACgLsywNqPAwEANGzZMaWlpKisrq7W9qKhIkhQZGSmbzabVq1crNzdXdrtdkhQSEqKQkBAtWrRIlZWVTXp/1cvLS1FRUe7208B6upMnT6qioqLRx46NjVXLli2VmZnp7tu9e7fy8/N1xRVXNPo4AAAAANAUzLA2s7S0NA0ePFgDBgzQnDlz1Lt3b1VXV2vt2rVKT0/Xzp07JZ2aZV2yZImioqLUoUMH9/52u12LFy92L850uiNHjtR6b9RqtcrHx6fOelJTU9WvXz9FRkaqoqJCH330kZYvX6709HT3mMLCQuXn5+vAgQOSToVR6dTMaseOHRUQEKB7771XjzzyiAIDA+Xv768pU6boiiuuYIVgAAAAAD8bZlibWUREhHJycuRwOJScnKyePXtqyJAhyszMNIVEh8Oh0tLSWo/l2u12lZaW1ju7mpiYqE6dOpnaqlWr6q2nrKxMkydPVo8ePTR48GC98847ev311zVx4kT3mNWrV6tv374aNWqUJGncuHHq27evli5d6h7z3HPP6dprr9WYMWMUHx+vjh076t133z2LOwQAAAAAjWMxGrtSEHAOSkpKFBAQIIXMklrUPRv8W2Lkz77QJQAAAAAXRE02KC4ulr+/f4NjmWEFAAAAAHgkAisAAAAAwCMRWAEAAAAAHonACgAAAADwSARWAAAAAIBH4jusOK+Kv3r0jCuBAQAAAIDEDCsAAAAAwEMRWAEAAAAAHonACgAAAADwSARWAAAAAIBHYtElnFcB3RdILXwudBkewciffaFLAAAAADwaM6wAAAAAAI9EYAUAAAAAeCQCKwAAAADAIxFYAQAAAAAeicAKAAAAAPBIBFYAAAAAgEcisAIAAAAAPBKB9WdQUFCgKVOmKCIiQt7e3rLZbBo9erQyMzM1btw4DR8+3DQ+IyNDFotFKSkppv6UlBR16dJFkpSXlyeLxVJn27JlS721vPvuu+rXr5+sVqt8fX3Vp08fLV++3DTm0KFDuueeexQcHKyLL75Yw4cP1zfffGMas3fvXt14440KCgqSv7+/brnlFh06dOgc7hIAAAAANIzA2szy8vIUGxur9evXa+HChdqxY4cyMjLkcDiUlJQkh8OhTZs2qbq62r2P0+mUzWaTy+UyHcvpdMrhcJj61q1bp4MHD5pabGxsvfUEBgbqscceU1ZWlr744guNHz9e48eP15o1ayRJhmHohhtu0Lfffqv3339fn3/+uUJDQ5WYmKiysjJJUllZmYYOHSqLxaL169dr06ZNqqys1OjRo3Xy5MlmunMAAAAAYGYxDMO40EX8mowcOVJffPGFdu/eLV9fX9O2oqIiHT58WN26dVNWVpYGDRokSRo4cKDuvvtuJScn6+jRo/Lx8VF5ebmsVquWLl2qe+65R3l5eQoPD9fnn3+uPn36nFONl19+uUaNGqUnn3xSX3/9tbp166Yvv/xSPXr0kCSdPHlSHTt21Lx58zRx4kR98sknGjFihI4ePSp/f39JUnFxsdq2batPPvlEiYmJZzxnSUmJAgICpJBZUgufc6r/18LIn32hSwAAAADOu5psUFxc7M4X9WGGtRkVFhYqIyNDSUlJtcKqJFmtVkVHRys4OFhOp1OSVFpaqpycHI0dO1ZhYWHKysqSJG3evFkVFRW1ZljPhWEYyszM1O7duxUfHy9JqqiokCT5+PxfiGzRooW8vb21ceNG9xiLxSJvb2/3GB8fH7Vo0cI95nQVFRUqKSkxNQAAAABoCgJrM9qzZ48Mw1BMTEyD4xwOh/vx3w0bNig6OlpBQUGKj49397tcLoWHhys0NNS0b1xcnPz8/EztTIqLi+Xn56dWrVpp1KhRWrx4sYYMGSJJiomJUZcuXTRz5kwdPXpUlZWVWrBggX744QcdPHhQkjRo0CD5+vrq0Ucf1fHjx1VWVqZp06bpxIkT7jGnS01NVUBAgLvZbLYz1gkAAAAAP0VgbUaNfbo6ISFBmzZtUlVVlVwulxISEiRJdrvdFFjrml1duXKlcnNzTU2S8vPzTSF23rx57n3atGmj3Nxcbdu2TXPnztUjjzziPk/Lli317rvv6uuvv1ZgYKAuvvhiOZ1OjRgxQi1anPr1CAoK0ttvv61//vOf8vPzU0BAgIqKinT55Ze7x5xu5syZKi4udrd9+/Y16t4AAAAAQA2vC13Ar0nXrl1lsVi0a9euBsc5HA6VlZVp27Ztcjqdmj59uqRTgXXChAkqLCxUdna2Jk2aVGtfm82mqKioWv3BwcHu8CqdWmypRosWLdz79OnTRzt37lRqaqo7KMfGxio3N1fFxcWqrKxUUFCQBg4cqH79+rmPMXToUO3du1f//e9/5eXlJavVqo4dOyoiIqLOa/T29jY9QgwAAAAATcUMazMKDAzUsGHDlJaW5l5h96eKiookSZGRkbLZbFq9erVyc3Nlt9slSSEhIQoJCdGiRYtUWVnZpPdXvby8FBUV5W4/DaynO3nypPvd1Z8KCAhQUFCQvvnmG23fvl3XX399rTGXXHKJrFar1q9fr8OHD+u6665rdI0AAAAA0BTMsDaztLQ0DR48WAMGDNCcOXPUu3dvVVdXa+3atUpPT9fOnTslnZplXbJkiaKiotShQwf3/na7XYsXL3YvznS6I0eOqKCgwNRntVpNiyb9VGpqqvr166fIyEhVVFToo48+0vLly5Wenu4e8/bbbysoKEhdunTRjh079NBDD+mGG27Q0KFD3WNefvllXXrppQoKClJWVpYeeughTZ06Vd26dTun+wUAAAAA9SGwNrOIiAjl5ORo7ty5Sk5O1sGDBxUUFKTY2FhTSHQ4HHrttdfcj+XWsNvtevnll3X77bfXefy6PiHz5ptvaty4cXWOLysr0+TJk/XDDz+odevWiomJ0euvv65bb73VPebgwYN65JFHdOjQIXXq1El33XWXZs82f3Jl9+7dmjlzpgoLCxUWFqbHHntMU6dObextAQAAAIAm4zusOC/4DmttfIcVAAAAv0V8hxUAAAAA8ItHYAUAAAAAeCQCKwAAAADAIxFYAQAAAAAeiVWCcV4Vf/XoGV+sBgAAAACJGVYAAAAAgIcisAIAAAAAPBKBFQAAAADgkQisAAAAAACPRGAFAAAAAHgkVgnGeRXQfYHUwudCl/GLZ+TPvtAlAAAAAD87ZlgBAAAAAB6JwAoAAAAA8EgEVgAAAACARyKwAgAAAAA8EoEVAAAAAOCRCKwAAAAAAI9EYL1ACgoKNGXKFEVERMjb21s2m02jR49WZmamxo0bp+HDh5vGZ2RkyGKxKCUlxdSfkpKiLl26SJLy8vJksVjqbFu2bKm3lqqqKs2ZM0eRkZHy8fHRZZddpoyMjHrHz58/XxaLRQ8//PBZXz8AAAAAnAnfYb0A8vLyNHjwYFmtVi1cuFC9evVSVVWV1qxZo6SkJE2dOlXTpk1TdXW1vLxO/SdyOp2y2WxyuVymYzmdTjkcDlPfunXr1KNHD1Nfu3bt6q3n8ccf1+uvv66XXnpJMTExWrNmjW688UZt3rxZffv2NY3dtm2b/va3v6l3797ncAcAAAAA4MyYYb0AJk+eLIvFoq1bt2rMmDGKjo5Wjx499Mgjj2jLli1yOBw6duyYtm/f7t7H5XJpxowZys7OVnl5uSSpvLxc2dnZtQJru3bt1LFjR1Nr2bJlvfUsX75cs2bN0siRIxUREaE//OEPGjlypBYtWmQad+zYMd1xxx166aWX1LZt22a8IwAAAABQG4H1PCssLFRGRoaSkpLk6+tba7vValV0dLSCg4PldDolSaWlpcrJydHYsWMVFhamrKwsSdLmzZtVUVFRK7A2VUVFhXx8fEx9rVu31saNG019SUlJGjVqlBITExt1zJKSElMDAAAAgKYgsJ5ne/bskWEYiomJaXCcw+FwP/67YcMGRUdHKygoSPHx8e5+l8ul8PBwhYaGmvaNi4uTn5+fqTVk2LBhevbZZ/XNN9/o5MmTWrt2rd59910dPHjQPeatt95STk6OUlNTG3WdqampCggIcDebzdao/QAAAACgBoH1PDMMo1HjEhIStGnTJlVVVcnlcikhIUGSZLfbTYG1rtnVlStXKjc319QkKT8/3xRi582bJ0l64YUX1LVrV8XExKhVq1Z64IEHNH78eLVocerXY9++fXrooYf0xhtv1JqJrc/MmTNVXFzsbvv27WvUfgAAAABQg0WXzrOuXbvKYrFo165dDY5zOBwqKyvTtm3b5HQ6NX36dEmnAuuECRNUWFio7OxsTZo0qda+NptNUVFRtfqDg4Pd4VWSAgMDJUlBQUFatWqVysvLdeTIEQUHB2vGjBmKiIiQJH322Wc6fPiwLr/8cve+J06c0L/+9S/99a9/VUVFhS666CLTuby9veXt7d24mwIAAAAAdSCwnmeBgYEaNmyY0tLS9OCDD9Z6j7WoqEhWq1WRkZGy2WxavXq1cnNzZbfbJUkhISEKCQnRokWLVFlZ2aT3V728vOoMsjV8fHwUEhKiqqoqvfPOO7rlllskSddcc4127NhhGjt+/HjFxMTo0UcfrRVWAQAAAKA5EFgvgLS0NA0ePFgDBgzQnDlz1Lt3b1VXV2vt2rVKT0/Xzp07JZ2aZV2yZImioqLUoUMH9/52u12LFy92L850uiNHjqigoMDUZ7Va632cNzs7W/v371efPn20f/9+paSk6OTJk/rjH/8oSWrTpo169uxp2sfX11ft2rWr1Q8AAAAAzYV3WC+AiIgI5eTkyOFwKDk5WT179tSQIUOUmZmp9PR09ziHw6HS0lL3+6s17Ha7SktL651dTUxMVKdOnUxt1apV9dZTXl6uxx9/XN27d9eNN96okJAQbdy4UVartRmuFgAAAADOjsVo7CpAwDkoKSlRQECAFDJLatG4hZtQPyN/9oUuAQAAADgrNdmguLhY/v7+DY5lhhUAAAAA4JEIrAAAAAAAj0RgBQAAAAB4JAIrAAAAAMAj8VkbnFfFXz16xherAQAAAEBihhUAAAAA4KEIrAAAAAAAj0RgBQAAAAB4JAIrAAAAAMAjEVgBAAAAAB6JVYJxXgV0XyC18LnQZfwqGPmzL3QJAAAAwM+KGVYAAAAAgEcisAIAAAAAPBKBFQAAAADgkQisAAAAAACPRGAFAAAAAHgkAisAAAAAwCMRWH8GBQUFmjJliiIiIuTt7S2bzabRo0crMzNT48aN0/Dhw03jMzIyZLFYlJKSYupPSUlRly5dJEl5eXmyWCx1ti1bttRby0svvaSrrrpKbdu2Vdu2bZWYmKitW7eaxhw7dkwPPPCAOnfurNatW6t79+5aunSpe3tD53777bfP8W4BAAAAQN34Dmszy8vL0+DBg2W1WrVw4UL16tVLVVVVWrNmjZKSkjR16lRNmzZN1dXV8vI6dfudTqdsNptcLpfpWE6nUw6Hw9S3bt069ejRw9TXrl27eutxuVy67bbbFBcXJx8fHy1YsEBDhw7Vv//9b4WEhEiSHnnkEa1fv16vv/66wsLC9Mknn2jy5MkKDg7WddddJ5vNpoMHD5qO++KLL2rhwoUaMWLE2d4qAAAAAGiQxTAM40IX8WsycuRIffHFF9q9e7d8fX1N24qKinT48GF169ZNWVlZGjRokCRp4MCBuvvuu5WcnKyjR4/Kx8dH5eXlslqtWrp0qe655x7l5eUpPDxcn3/+ufr06XPW9Z04cUJt27bVX//6V911112SpJ49e+rWW2/V7Nmz3eNiY2M1YsQIPfXUU3Uep2/fvrr88su1bNmyRp23pKREAQEBUsgsqYXPWdeP/2Pkzz7zIAAAAMDD1GSD4uJi+fv7NziWR4KbUWFhoTIyMpSUlFQrrEqS1WpVdHS0goOD5XQ6JUmlpaXKycnR2LFjFRYWpqysLEnS5s2bVVFRUWuG9VwdP35cVVVVCgwMdPfFxcVp9erV2r9/vwzDkNPp1Ndff62hQ4fWeYzPPvtMubm5uvfee+s9T0VFhUpKSkwNAAAAAJqCwNqM9uzZI8MwFBMT0+A4h8Phfvx3w4YNio6OVlBQkOLj4939LpdL4eHhCg0NNe0bFxcnPz8/U2uKRx99VMHBwUpMTHT3LV68WN27d1fnzp3VqlUrDR8+XGlpaYqPj6/zGMuWLdOll16quLi4es+TmpqqgIAAd7PZbE2qEwAAAAAIrM2osU9XJyQkaNOmTaqqqpLL5VJCQoIkyW63mwJrXbOrK1euVG5urqlJUn5+vinEzps3r9a+8+fP11tvvaX33ntPPj7/91ju4sWLtWXLFq1evVqfffaZFi1apKSkJK1bt67WMX788UetWLGiwdlVSZo5c6aKi4vdbd++fY26NwAAAABQg0WXmlHXrl1lsVi0a9euBsc5HA6VlZVp27Ztcjqdmj59uqRTgXXChAkqLCxUdna2Jk2aVGtfm82mqKioWv3BwcHu8CrJ9MivJD3zzDOaP3++1q1bp969e7v7f/zxR82aNUvvvfeeRo0aJUnq3bu3cnNz9cwzz5hmYiXpH//4h44fP+5+/7U+3t7e8vb2bnAMAAAAADSEGdZmFBgYqGHDhiktLU1lZWW1thcVFUmSIiMjZbPZtHr1auXm5sput0uSQkJCFBISokWLFqmysrJJ7696eXkpKirK3X4aWJ9++mk9+eSTysjIUL9+/Uz7VVVVqaqqSi1amH8VLrroIp08ebLWeZYtW6brrrtOQUFBja4NAAAAAM4GM6zNLC0tTYMHD9aAAQM0Z84c9e7dW9XV1Vq7dq3S09O1c+dOSadmWZcsWaKoqCh16NDBvb/dbtfixYvdizOd7siRIyooKDD1Wa1W0yO+P7VgwQL96U9/0ooVKxQWFubet+bRYX9/f9ntdk2fPl2tW7dWaGioPv30U7322mt69tlnTcfas2eP/vWvf+mjjz46p3sEAAAAAI3BDGszi4iIUE5OjhwOh5KTk9WzZ08NGTJEmZmZSk9Pd49zOBwqLS11v79aw263q7S0tN7Z1cTERHXq1MnUVq1aVW896enpqqys1M0332za55lnnnGPeeutt9S/f3/dcccd6t69u+bPn6+5c+fq97//velYf//739W5c+d6Vw8GAAAAgObEd1hxXvAd1ubHd1gBAADwS8R3WAEAAAAAv3gEVgAAAACARyKwAgAAAAA8EoEVAAAAAOCR+KwNzqvirx4944vVAAAAACAxwwoAAAAA8FAEVgAAAACARyKwAgAAAAA8EoEVAAAAAOCRCKwAAAAAAI/EKsE4rwK6L5Ba+FzoMn41jPzZF7oEAAAA4GfDDCsAAAAAwCMRWAEAAAAAHonACgAAAADwSARWAAAAAIBHIrACAAAAADwSgRUAAAAA4JEIrBdIQUGBpkyZooiICHl7e8tms2n06NHKzMzUuHHjNHz4cNP4jIwMWSwWpaSkmPpTUlLUpUsXSVJeXp4sFkudbcuWLfXWkpCQUOc+o0aNco85duyYHnjgAXXu3FmtW7dW9+7dtXTp0ua7IQAAAABwGr7DegHk5eVp8ODBslqtWrhwoXr16qWqqiqtWbNGSUlJmjp1qqZNm6bq6mp5eZ36T+R0OmWz2eRyuUzHcjqdcjgcpr5169apR48epr527drVW8+7776ryspK989HjhzRZZddprFjx7r7HnnkEa1fv16vv/66wsLC9Mknn2jy5MkKDg7Wddddd7a3AgAAAADqRWC9ACZPniyLxaKtW7fK19fX3d+jRw9NmDBBhw8f1rFjx7R9+3YNGjRIkuRyuTRjxgwlJyervLxcPj4+Ki8vV3Z2tsaPH286frt27dSxY8dG1xMYGGj6+a233tLFF19sCqybN2/W3XffrYSEBEnS/fffr7/97W/aunUrgRUAAADAz4JHgs+zwsJCZWRkKCkpyRRWa1itVkVHRys4OFhOp1OSVFpaqpycHI0dO1ZhYWHKysqSdCpEVlRU1JphPVfLli3TuHHjTPXFxcVp9erV2r9/vwzDkNPp1Ndff62hQ4fWeYyKigqVlJSYGgAAAAA0BYH1PNuzZ48Mw1BMTEyD4xwOh/vx3w0bNig6OlpBQUGKj49397tcLoWHhys0NNS0b1xcnPz8/EytsbZu3aovv/xSEydONPUvXrxY3bt3V+fOndWqVSsNHz5caWlpio+Pr/M4qampCggIcDebzdboGgAAAABAIrCed4ZhNGpcQkKCNm3apKqqKrlcLvejuHa73RRY65pdXblypXJzc01NkvLz800hdt68ebX2XbZsmXr16qUBAwaY+hcvXqwtW7Zo9erV+uyzz7Ro0SIlJSVp3bp1ddY/c+ZMFRcXu9u+ffsadd0AAAAAUIN3WM+zrl27ymKxaNeuXQ2OczgcKisr07Zt2+R0OjV9+nRJpwLrhAkTVFhYqOzsbE2aNKnWvjabTVFRUbX6g4OD3eFVqv3uallZmd566y3NmTPH1P/jjz9q1qxZeu+999wrB/fu3Vu5ubl65plnlJiYWOtc3t7e8vb2bvAaAQAAAKAhzLCeZ4GBgRo2bJjS0tJUVlZWa3tRUZEkKTIyUjabTatXr1Zubq7sdrskKSQkRCEhIVq0aJEqKyub9P6ql5eXoqKi3O30wPr222+roqJCv/vd70z9VVVVqqqqUosW5l+Xiy66SCdPnmz0+QEAAACgKQisF0BaWppOnDihAQMG6J133tE333yjnTt36i9/+YuuuOIK9ziHw6ElS5YoKipKHTp0cPfb7XYtXrzYvTjT6Y4cOaKCggJTKy8vP2Ndy5Yt0w033FDrEzj+/v6y2+2aPn26XC6XvvvuO73yyit67bXXdOONN57DnQAAAACA+hFYL4CIiAjl5OTI4XAoOTlZPXv21JAhQ5SZman09HT3OIfDodLSUvf7qzXsdrtKS0vrnV1NTExUp06dTG3VqlUN1rR7925t3LhR9957b53b33rrLfXv31933HGHunfvrvnz52vu3Ln6/e9/36RrBwAAAIDGshiNXQUIOAclJSUKCAiQQmZJLXwudDm/Gkb+7AtdAgAAANAkNdmguLhY/v7+DY5lhhUAAAAA4JEIrAAAAAAAj0RgBQAAAAB4JAIrAAAAAMAjEVgBAAAAAB7J60IXgN+W4q8ePeNKYAAAAAAgMcMKAAAAAPBQBFYAAAAAgEcisAIAAAAAPBKBFQAAAADgkVh0CedVQPcFUgufC13Gb5qRP/tClwAAAAA0CjOsAAAAAACPRGAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHonACgAAAADwSARWAAAAAIBHIrACAAAAADwSgfVnUFBQoClTpigiIkLe3t6y2WwaPXq0MjMzNW7cOA0fPtw0PiMjQxaLRSkpKab+lJQUdenSRZKUl5cni8VSZ9uyZUuj6nrrrbdksVh0ww03mPrfffddDR06VO3atZPFYlFubm6d+2dlZenqq6+Wr6+v/P39FR8frx9//LFR5wYAAACApvK60AX82uTl5Wnw4MGyWq1auHChevXqpaqqKq1Zs0ZJSUmaOnWqpk2bpurqanl5nbr9TqdTNptNLpfLdCyn0ymHw2HqW7dunXr06GHqa9euXaPqmjZtmq666qpa28rKynTllVfqlltu0X333Vfn/llZWRo+fLhmzpypxYsXy8vLS//v//0/tWjBv3kAAAAA+HkQWJvZ5MmTZbFYtHXrVvn6+rr7e/TooQkTJujw4cM6duyYtm/frkGDBkmSXC6XZsyYoeTkZJWXl8vHx0fl5eXKzs7W+PHjTcdv166dOnbs2KSaTpw4oTvuuENPPPGENmzYoKKiItP2O++8U9KpUFufqVOn6sEHH9SMGTPcfd26dat3fEVFhSoqKtw/l5SUNKlmAAAAAGB6rBkVFhYqIyNDSUlJprBaw2q1Kjo6WsHBwXI6nZKk0tJS5eTkaOzYsQoLC1NWVpYkafPmzaqoqKg1w3o25syZo/bt2+vee+89q/0PHz6s7OxstW/fXnFxcerQoYPsdrs2btxY7z6pqakKCAhwN5vNdrblAwAAAPiNIrA2oz179sgwDMXExDQ4zuFwuB//3bBhg6KjoxUUFKT4+Hh3v8vlUnh4uEJDQ037xsXFyc/Pz9QasnHjRi1btkwvvfTSWV/Xt99+K+nUO7X33XefMjIydPnll+uaa67RN998U+c+M2fOVHFxsbvt27fvrM8PAAAA4LeJwNqMDMNo1LiEhARt2rRJVVVVcrlcSkhIkCTZ7XZTYK1rdnXlypXKzc01NUnKz883hdh58+aptLRUd955p1566SVdcsklZ31dJ0+elCRNmjRJ48ePV9++ffXcc8+pW7du+vvf/17nPt7e3vL39zc1AAAAAGgK3mFtRl27dpXFYtGuXbsaHOdwOFRWVqZt27bJ6XRq+vTpkk4F1gkTJqiwsFDZ2dmaNGlSrX1tNpuioqJq9QcHB5tW9w0MDNTevXuVl5en0aNHu/trwqeXl5d2796tyMjIM15Xp06dJEndu3c39V966aXKz88/4/4AAAAAcDYIrM0oMDBQw4YNU1pamh588MFa77EWFRXJarUqMjJSNptNq1evVm5urux2uyQpJCREISEhWrRokSorK5v0/qqXl1etIHvxxRdrx44dpr7HH39cpaWleuGFFxr9XmlYWJiCg4O1e/duU//XX3+tESNGNLpGAAAAAGgKAmszS0tL0+DBgzVgwADNmTNHvXv3VnV1tdauXav09HTt3LlT0qlZ1iVLligqKkodOnRw72+327V48WL34kynO3LkiAoKCkx9VqtVPj4+tcb6+PioZ8+etcZKMvUXFhYqPz9fBw4ckCR3MO3YsaM6duwoi8Wi6dOn689//rMuu+wy9enTR6+++qp27dqlf/zjH2dxlwAAAADgzHiHtZlFREQoJydHDodDycnJ6tmzp4YMGaLMzEylp6e7xzkcDpWWlrrfX61ht9tVWlpa7+xqYmKiOnXqZGqrVq06p5pXr16tvn37atSoUZKkcePGqW/fvlq6dKl7zMMPP6yZM2dq6tSpuuyyy5SZmam1a9c26pFiAAAAADgbFqOxKwUB56CkpEQBAQFSyCypRe3ZYJw/Rv7sC10CAAAAfsNqskFxcfEZF2dlhhUAAAAA4JEIrAAAAAAAj0RgBQAAAAB4JAIrAAAAAMAj8VkbnFfFXz16xherAQAAAEBihhUAAAAA4KEIrAAAAAAAj9SkwLp161adOHGi3u0VFRX63//933MuCgAAAACAJgXWK664QkeOHHH/7O/vr2+//db9c1FRkW677bbmqw4AAAAA8JvVpEWXDMNo8Of6+oAaAd0XSC18LnQZ+AUx8mdf6BIAAABwgTT7O6wWi6W5DwkAAAAA+A1i0SUAAAAAgEdq8ndYv/rqKxUUFEg69fjvrl27dOzYMUnSf//73+atDgAAAADwm9XkwHrNNdeY3lO99tprJZ16FNgwDB4JBgAAAAA0iyYF1u++++7nqgMAAAAAAJMmBdbQ0NCfqw4AAAAAAEyatOhSaGioxo8fr9dee0379u37uWoCAAAAAKBpgXX8+PH67rvvNGnSJIWFhSkqKkr33Xef3nzzTfdCTJAKCgo0ZcoURUREyNvbWzabTaNHj1ZmZqbGjRun4cOHm8ZnZGTIYrEoJSXF1J+SkqIuXbpIkvLy8mSxWOpsW7ZsqbeWd999V/369ZPVapWvr6/69Omj5cuXm8bcc889tY750xrz8vJ07733Kjw8XK1bt1ZkZKT+/Oc/q7Ky8hzvFAAAAADUr0mPBNcEqoqKCm3atEmffvqpXC6Xli9frqqqKkVHR+vqq69WWlraz1HrL0JeXp4GDx4sq9WqhQsXqlevXqqqqtKaNWuUlJSkqVOnatq0aaqurpaX16nb73Q6ZbPZ5HK5TMdyOp1yOBymvnXr1qlHjx6mvnbt2tVbT2BgoB577DHFxMSoVatW+uCDDzR+/Hi1b99ew4YNc48bPny4Xn75ZffP3t7e7j/v2rVLJ0+e1N/+9jdFRUXpyy+/1H333aeysjI988wzTb5HAAAAANAYFuOnS/6epaNHj2rRokVavHixjh07phMnTjRHbb9II0eO1BdffKHdu3fL19fXtK2oqEiHDx9Wt27dlJWVpUGDBkmSBg4cqLvvvlvJyck6evSofHx8VF5eLqvVqqVLl+qee+5RXl6ewsPD9fnnn6tPnz7nVOPll1+uUaNG6cknn5R0aoa1qKhIq1atavQxFi5cqPT0dH377beNGl9SUqKAgAApZJbUwudsysZvlJE/+0KXAAAAgGZUkw2Ki4vl7+/f4NgmPRJco7KyUp9++qmeeOIJORwOhYSEaOXKlbr55ptNs3S/NYWFhcrIyFBSUlKtsCpJVqtV0dHRCg4OltPplCSVlpYqJydHY8eOVVhYmLKysiRJmzdvVkVFRa0Z1nNhGIYyMzO1e/duxcfHm7a5XC61b99e3bp10x/+8AcdOXKkwWMVFxcrMDCw3u0VFRUqKSkxNQAAAABoiiY9Ejxnzhy5XC5lZ2crNDRU8fHxuv/++/XGG28oODj456rxF2PPnj0yDEMxMTENjnM4HHK5XJo5c6Y2bNig6OhoBQUFKT4+Xi6Xy709PDy81srMcXFxatHC/O8Mx44da/B8xcXFCgkJUUVFhS666CItWbJEQ4YMcW8fPny4brrpJoWHh2vv3r2aNWuWRowYoaysLF100UV1XufixYsbfBw4NTVVTzzxRIN1AQAAAEBDmvwOa5cuXbRo0SKNHTu2wXcnf4sa+3R1QkKCHn74YVVVVcnlcikhIUGSZLfb9be//U2S3MH1dCtXrtSll15aqz8/P1/du3d3/zxr1izNmjVLktSmTRvl5ubq2LFjyszM1COPPKKIiAj3eceNG+fer1evXurdu7ciIyPlcrl0zTXXmM6zf/9+DR8+XGPHjtV9991X7zXOnDlTjzzyiPvnkpIS2Wy2M9wZAAAAAPg/TQqsH3/8sZxOp1555RU99NBDio6OVkJCgux2u+x2u4KCgn6uOn8RunbtKovFol27djU4zuFwqKysTNu2bZPT6dT06dMlnQqsEyZMUGFhobKzszVp0qRa+9psNkVFRdXqDw4OVm5urvvnnz6u26JFC/c+ffr00c6dO5WamuoOrKeLiIjQJZdcoj179pgC64EDB+RwOBQXF6cXX3yxwWv09vY2LdwEAAAAAE3VpHdYhw0bpvnz52vLli3673//qwULFujiiy/W008/rc6dO6tHjx564IEHfq5aPV5gYKCGDRumtLQ0lZWV1dpeVFQkSYqMjJTNZtPq1auVm5sru90uSQoJCVFISIgWLVqkysrKJr2/6uXlpaioKHdr6P3SkydPqqKiot7tP/zwg44cOaJOnTq5+/bv36+EhATFxsbq5ZdfrvVYMgAAAAA0t3NeJfjEiRPaunWrVq9erSVLlvzmVwn+9ttvNXjwYAUGBmrOnDnq3bu3qqurtXbtWqWnp2vnzp2SpLvvvlvvvfeeQkJC3H2SNGHCBP3jH/9Qp06dtHv3bnd/zSrBdX3Wxmq1ysen7pV3U1NT1a9fP0VGRqqiokIfffSRZsyYofT0dE2cOFHHjh3TE088oTFjxqhjx47au3ev/vjHP6q0tFQ7duyQt7e3O6yGhobq1VdfNb3X2rFjx0bdF1YJxtlilWAAAIBfl6asEtykR4KlU7Nz27dvl9PplMvl0qZNm1RWVqbOnTvrxhtvbNZVbX+JIiIilJOTo7lz5yo5OVkHDx5UUFCQYmNjlZ6e7h7ncDj02muv1Xos12636+WXX9btt99e5/ETExNr9b355pum91B/qqysTJMnT9YPP/yg1q1bKyYmRq+//rpuvfVWSdJFF12kL774Qq+++qqKiooUHBysoUOH6sknn3Q/0rt27Vrt2bNHe/bsUefOnU3Hb4avIgEAAABAnZo0wzpixAht3rxZpaWlCg4OlsPhUEJCghwOhyIiIn7OOvELxwwrzhYzrAAAAL8uP9sMq9Vq1TPPPKOEhAR17dr1nIoEAAAAAKAhTVo557777tNzzz2nDh061NpWXFysHj16aMOGDc1WHAAAAADgt6tJgfWFF17Q/fffX+e0bUBAgCZNmqRnn3222YoDAAAAAPx2NSmwfv755xo2bFi924cOHarPPvvsnIsCAAAAAKBJ77AePnxYLVu2rP9gXl76z3/+c85F4der+KtHz/hiNQAAAABITZxhDQkJ0Zdfflnv9i+++EKdOnU656IAAAAAAGhSYB05cqRmz56t8vLyWtt+/PFH/fnPf9a1117bbMUBAAAAAH67mvQd1kOHDunyyy/XRRddpAceeEDdunWTJO3atUtpaWk6ceKEcnJy6lxFGL9tTfnWEgAAAIBfr5/tO6wdOnTQ5s2b9Yc//EEzZ85UTda1WCwaNmyY0tLSCKsAAAAAgGbRpMAqSaGhofroo4909OhR7dmzR4ZhqGvXrmrbtu3PUR8AAAAA4DeqyYG1Rtu2bdW/f//mrAW/AQHdF0gtfC50GfgFMfJnX+gSAAAAcIE0adElAAAAAADOFwIrAAAAAMAjEVgBAAAAAB6JwAoAAAAA8EgEVgAAAACARyKwAgAAAAA8EoH1Z1BQUKApU6YoIiJC3t7estlsGj16tDIzMzVu3DgNHz7cND4jI0MWi0UpKSmm/pSUFHXp0kWSlJeXJ4vFUmfbsmVLvbW89NJLuuqqq9S2bVu1bdtWiYmJ2rp1a61xO3fu1HXXXaeAgAD5+vqqf//+ys/PrzXOMAyNGDFCFotFq1atavrNAQAAAIBGIrA2s7y8PMXGxmr9+vVauHChduzYoYyMDDkcDiUlJcnhcGjTpk2qrq527+N0OmWz2eRyuUzHcjqdcjgcpr5169bp4MGDphYbG1tvPS6XS7fddpucTqeysrJks9k0dOhQ7d+/3z1m7969uvLKKxUTEyOXy6UvvvhCs2fPlo9P7e+lPv/887JYLGd5dwAAAACg8bwudAG/NpMnT5bFYtHWrVvl6+vr7u/Ro4cmTJigw4cP69ixY9q+fbsGDRok6VSonDFjhpKTk1VeXi4fHx+Vl5crOztb48ePNx2/Xbt26tixY6PreeONN0w//8///I/eeecdZWZm6q677pIkPfbYYxo5cqSefvpp97jIyMhax8rNzdWiRYu0fft2derUqdE1AAAAAMDZYIa1GRUWFiojI0NJSUmmsFrDarUqOjpawcHBcjqdkqTS0lLl5ORo7NixCgsLU1ZWliRp8+bNqqioqDXDeq6OHz+uqqoqBQYGSpJOnjypDz/8UNHR0Ro2bJjat2+vgQMH1nrc9/jx47r99tuVlpbWqMBcUVGhkpISUwMAAACApiCwNqM9e/bIMAzFxMQ0OM7hcLgf/92wYYOio6MVFBSk+Ph4d7/L5VJ4eLhCQ0NN+8bFxcnPz8/UmuLRRx9VcHCwEhMTJck94zt//nwNHz5cn3zyiW688UbddNNN+vTTT937TZ06VXFxcbr++usbdZ7U1FQFBAS4m81ma1KdAAAAAMAjwc3IMIxGjUtISNDDDz+sqqoquVwuJSQkSJLsdrv+9re/SToVWOuaXV25cqUuvfTSWv35+fnq3r27++dZs2Zp1qxZpjHz58/XW2+9JZfL5X4/9eTJk5Kk66+/XlOnTpUk9enTR5s3b9bSpUtlt9u1evVqrV+/Xp9//nmjrk+SZs6cqUceecT9c0lJCaEVAAAAQJMQWJtR165dZbFYtGvXrgbHORwOlZWVadu2bXI6nZo+fbqkU4F1woQJKiwsVHZ2tiZNmlRrX5vNpqioqFr9wcHBys3Ndf9c88hvjWeeeUbz58/XunXr1Lt3b3f/JZdcIi8vL1PYlaRLL71UGzdulCStX79ee/fuldVqNY0ZM2aMrrrqqlqLRUmSt7e3vL29G7wPAAAAANAQAmszCgwM1LBhw5SWlqYHH3yw1nusRUVFslqtioyMlM1m0+rVq5Wbmyu73S5JCgkJUUhIiBYtWqTKysomvb/q5eVVZ5CVpKefflpz587VmjVr1K9fP9O2Vq1aqX///tq9e7ep/+uvv3Y/jjxjxgxNnDjRtL1Xr1567rnnNHr06EbXCAAAAABNQWBtZmlpaRo8eLAGDBigOXPmqHfv3qqurtbatWuVnp6unTt3Sjo1y7pkyRJFRUWpQ4cO7v3tdrsWL17sXpzpdEeOHFFBQYGpz2q11vkJGklasGCB/vSnP2nFihUKCwtz7/vT91+nT5+uW2+9VfHx8XI4HMrIyNA///lP98xpx44d61xoqUuXLgoPD2/6TQIAAACARmDRpWYWERGhnJwcORwOJScnq2fPnhoyZIgyMzOVnp7uHudwOFRaWup+f7WG3W5XaWlpvbOriYmJ6tSpk6mdvqLvT6Wnp6uyslI333yzaZ9nnnnGPebGG2/U0qVL9fTTT6tXr17uT99ceeWV53QvAAAAAOBcWIzGrhQEnIOSkhIFBARIIbOkFnXPBgN1MfJnX+gSAAAA0IxqskFxcbH8/f0bHMsMKwAAAADAIxFYAQAAAAAeicAKAAAAAPBIBFYAAAAAgEfiszY4r4q/evSML1YDAAAAgMQMKwAAAADAQxFYAQAAAAAeicAKAAAAAPBIBFYAAAAAgEcisAIAAAAAPBKrBOO8Cui+QGrhc6HLwK+EkT/7QpcAAACAnxEzrAAAAAAAj0RgBQAAAAB4JAIrAAAAAMAjEVgBAAAAAB6JwAoAAAAA8EgEVgAAAACARyKw/gwKCgo0ZcoURUREyNvbWzabTaNHj1ZmZqbGjRun4cOHm8ZnZGTIYrEoJSXF1J+SkqIuXbpIkvLy8mSxWOpsW7ZsqbeWf//73xozZozCwsJksVj0/PPP1xqTmpqq/v37q02bNmrfvr1uuOEG7d692zQmISGh1nl///vfn90NAgAAAIBGILA2s7y8PMXGxmr9+vVauHChduzYoYyMDDkcDiUlJcnhcGjTpk2qrq527+N0OmWz2eRyuUzHcjqdcjgcpr5169bp4MGDphYbG1tvPcePH1dERITmz5+vjh071jnm008/VVJSkrZs2aK1a9eqqqpKQ4cOVVlZmWncfffdZzrv008/3cS7AwAAAACN53WhC/i1mTx5siwWi7Zu3SpfX193f48ePTRhwgQdPnxYx44d0/bt2zVo0CBJksvl0owZM5ScnKzy8nL5+PiovLxc2dnZGj9+vOn47dq1qzd41qV///7q37+/JGnGjBl1jsnIyDD9/Morr6h9+/b67LPPFB8f7+6/+OKLm3RuAAAAADgXzLA2o8LCQmVkZCgpKckUVmtYrVZFR0crODhYTqdTklRaWqqcnByNHTtWYWFhysrKkiRt3rxZFRUVtWZYz4fi4mJJUmBgoKn/jTfe0CWXXKKePXtq5syZOn78eL3HqKioUElJiakBAAAAQFMQWJvRnj17ZBiGYmJiGhzncDjcj/9u2LBB0dHRCgoKUnx8vLvf5XIpPDxcoaGhpn3j4uLk5+dnas3p5MmTevjhhzV48GD17NnT3X/77bfr9ddfl9Pp1MyZM7V8+XL97ne/q/c4qampCggIcDebzdasdQIAAAD49eOR4GZkGEajxiUkJOjhhx9WVVWVXC6XEhISJEl2u11/+9vfJJ0KrHXNrq5cuVKXXnpprf78/Hx1797d/fOsWbM0a9asJl9DUlKSvvzyS23cuNHUf//997v/3KtXL3Xq1EnXXHON9u7dq8jIyFrHmTlzph555BH3zyUlJYRWAAAAAE1CYG1GXbt2lcVi0a5duxoc53A4VFZWpm3btsnpdGr69OmSTgXWCRMmqLCwUNnZ2Zo0aVKtfW02m6Kiomr1BwcHKzc31/3z6Y/zNsYDDzygDz74QP/617/UuXPnBscOHDhQ0qlZ5boCq7e3t7y9vZtcAwAAAADU4JHgZhQYGKhhw4YpLS2t1gq7klRUVCRJioyMlM1m0+rVq5Wbmyu73S5JCgkJUUhIiBYtWqTKysomvb/q5eWlqKgod2tKYDUMQw888IDee+89rV+/XuHh4WfcpyYcd+rUqdHnAQAAAICmYIa1maWlpWnw4MEaMGCA5syZo969e6u6ulpr165Venq6du7cKenULOuSJUsUFRWlDh06uPe32+1avHixe3Gm0x05ckQFBQWmPqvVKh8fnzrrqays1FdffeX+8/79+5Wbmys/Pz/3TG1SUpJWrFih999/X23atHEfPyAgQK1bt9bevXu1YsUKjRw5Uu3atdMXX3yhqVOnKj4+Xr179z73mwYAAAAAdWCGtZlFREQoJydHDodDycnJ6tmzp4YMGaLMzEylp6e7xzkcDpWWlrrfX61ht9tVWlpa7+xqYmKiOnXqZGqrVq2qt54DBw6ob9++6tu3rw4ePKhnnnlGffv21cSJE91j0tPTVVxcrISEBNNxV65cKUlq1aqV1q1bp6FDhyomJkbJyckaM2aM/vnPf579jQIAAACAM7AYjV0pCDgHJSUlCggIkEJmSS3qng0GmsrIn32hSwAAAEAT1WSD4uJi+fv7NziWGVYAAAAAgEcisAIAAAAAPBKBFQAAAADgkQisAAAAAACPxGdtcF4Vf/XoGV+sBgAAAACJGVYAAAAAgIcisAIAAAAAPBKBFQAAAADgkQisAAAAAACPRGAFAAAAAHgkVgnGeRXQfYHUwudCl4FfKSN/9oUuAQAAAM2IGVYAAAAAgEcisAIAAAAAPBKBFQAAAADgkQisAAAAAACPRGAFAAAAAHgkAisAAAAAwCMRWAEAAAAAHonAeoEUFBRoypQpioiIkLe3t2w2m0aPHq3MzEyNGzdOw4cPN43PyMiQxWJRSkqKqT8lJUVdunSRJOXl5clisdTZtmzZUm8tL730kq666iq1bdtWbdu2VWJiorZu3ereXlVVpUcffVS9evWSr6+vgoODddddd+nAgQPNd0MAAAAA4DQE1gsgLy9PsbGxWr9+vRYuXKgdO3YoIyNDDodDSUlJcjgc2rRpk6qrq937OJ1O2Ww2uVwu07GcTqccDoepb926dTp48KCpxcbG1luPy+XSbbfdJqfTqaysLNlsNg0dOlT79++XJB0/flw5OTmaPXu2cnJy9O6772r37t267rrrmu+mAAAAAMBpLIZhGBe6iN+akSNH6osvvtDu3bvl6+tr2lZUVKTDhw+rW7duysrK0qBBgyRJAwcO1N13363k5GQdPXpUPj4+Ki8vl9Vq1dKlS3XPPfcoLy9P4eHh+vzzz9WnT5+zru/EiRNq27at/vrXv+quu+6qc8y2bds0YMAAff/99+4Z3p+qqKhQRUWF++eSkhLZbDYpZJbUwuesawMaYuTPvtAlAAAA4AxKSkoUEBCg4uJi+fv7NziWGdbzrLCwUBkZGUpKSqoVViXJarUqOjpawcHBcjqd+v/t/XtcVWX+//8/t6eNiIAYysEtBwFJQyvzbGz2hIL1sazJ0pzKsKzRrEzNrCyz8pDZu9HQGkezaRoP5SE/TYOjBJmEqClTJhpYDOYbdL6inJSTrd8f/lyfdhzEJNjp4367XbdbXOta136t7bopz651kKSSkhLt3btXo0aNUnBwsNLT0yVJX3zxhSoqKmqssF6q06dPq6qqSj4+PnWOKSoqksVikbe3d63b582bJy8vL7PZbLZGrREAAADA5Y/A2sRycnJkGIYiIyPrHedwOMzLfz///HNFRETI19dX0dHRZn9qaqpCQkIUFBTktO+gQYPk4eHh1C7GjBkzFBAQoNjY2Fq3l5eXa8aMGRozZkyd/0dk5syZKioqMtuRI0cuqgYAAAAAILA2sYZegR0TE6O0tDRVVVUpNTVVMTExkiS73e4UWGtbXV27dq0yMzOdmiTl5eU5hdi5c+fW2Hf+/Plas2aNNm7cKDe3mpfuVlVV6a677pJhGFq2bFmd9VutVnl6ejo1AAAAALgYrZq7gCtNeHi4LBaLDh48WO84h8OhsrIy7d69WykpKZo+fbqkc4E1ISFBhYWFysjI0MMPP1xjX5vNprCwsBr9AQEBZniVVOOS39dee03z58/Xtm3b1KtXrxr7nw+r//nPf/Tpp58SQgEAAAD8qlhhbWI+Pj6Ki4tTYmKiysrKamw/deqUJKlbt26y2WzavHmzMjMzZbfbJUmBgYEKDAzUokWLVFlZeVH3r7Zq1UphYWFm+2lgffXVV/XSSy8pKSlJN9xwQ419z4fV7Oxsbdu2TR07drzIIwcAAACAi0NgbQaJiYk6e/as+vXrp/Xr1ys7O1tZWVlavHixBg4caI5zOBxaunSpwsLC1LlzZ7PfbrdryZIl5sOZfu7EiRMqKChwauXl5XXWs2DBAs2aNUsrV65UcHCwuU9paamkc2H1zjvv1J49e/T+++/r7Nmz5pjKyspG/GYAAAAA4P8hsDaD0NBQ7d27Vw6HQ1OnTtU111yjoUOHKjk52em+UIfDoZKSEvP+1fPsdrtKSkrqXF2NjY2Vv7+/U9u0aVOd9SxbtkyVlZW68847nfZ57bXXJElHjx7V5s2b9cMPP+jaa691GvPFF19c8vcBAAAAALXhPaxoEufftcR7WPFr4j2sAAAAro/3sAIAAAAAfvMIrAAAAAAAl0RgBQAAAAC4JAIrAAAAAMAltWruAnBlKTow44I3VgMAAACAxAorAAAAAMBFEVgBAAAAAC6JwAoAAAAAcEkEVgAAAACAS+KhS2hSXj0WSC3cmrsMoNEYebOauwQAAIDLFiusAAAAAACXRGAFAAAAALgkAisAAAAAwCURWAEAAAAALonACgAAAABwSQRWAAAAAIBLIrACAAAAAFwSgfVXUFBQoMmTJys0NFRWq1U2m00jRoxQcnKyRo8erfj4eKfxSUlJslgsmj17tlP/7Nmz1bVrV0lSbm6uLBZLrW3nzp111rJ8+XLdeOON6tChgzp06KDY2Fjt2rXLaYxhGHr++efl7++vtm3bKjY2VtnZ2U5jCgsLNXbsWHl6esrb21vjx49XaWnpJXxLAAAAAFA/Amsjy83NVZ8+ffTpp59q4cKF+vrrr5WUlCSHw6FJkybJ4XAoLS1N1dXV5j4pKSmy2WxKTU11mislJUUOh8Opb9u2bcrPz3dqffr0qbOe1NRUjRkzRikpKUpPT5fNZtOwYcN09OhRc8yrr76qxYsX66233lJGRobatWunuLg4lZeXm2PGjh2rb775Rlu3btXHH3+s7du3a8KECZf4bQEAAABA3SyGYRjNXcTl5Oabb9ZXX32lQ4cOqV27dk7bTp06pePHj6t79+5KT0/XgAEDJEn9+/fX/fffr6lTp+rkyZNyc3NTeXm5vL299dZbb2ncuHHKzc1VSEiI9u3bp2uvvfYX13f27Fl16NBBb775pu677z4ZhqGAgABNnTpV06ZNkyQVFRWpc+fOWrVqlUaPHq2srCz16NFDu3fv1g033CDp3KrwzTffrB9++EEBAQEX/Nzi4mJ5eXlJgc9ILdx+cf2AqzHyZjV3CQAAAL8p57NBUVGRPD096x3LCmsjKiwsVFJSkiZNmlQjrEqSt7e3IiIiFBAQoJSUFElSSUmJ9u7dq1GjRik4OFjp6emSpC+++EIVFRU1Vlgv1enTp1VVVSUfHx9J0vfff6+CggLFxsaaY7y8vNS/f3+zlvT0dHl7e5thVZJiY2PVokULZWRk1Po5FRUVKi4udmoAAAAAcDEIrI0oJydHhmEoMjKy3nEOh8O8/Pfzzz9XRESEfH19FR0dbfanpqYqJCREQUFBTvsOGjRIHh4eTu1izJgxQwEBAWZALSgokCR17tzZaVznzp3NbQUFBerUqZPT9latWsnHx8cc83Pz5s2Tl5eX2Ww220XVCQAAAAAE1kbU0KurY2JilJaWpqqqKqWmpiomJkaSZLfbnQJrbaura9euVWZmplOTpLy8PKcQO3fu3Br7zp8/X2vWrNHGjRvl5vbrXpY7c+ZMFRUVme3IkSO/6ucBAAAAuPy0au4CLifh4eGyWCw6ePBgveMcDofKysq0e/dupaSkaPr06ZLOBdaEhAQVFhYqIyNDDz/8cI19bTabwsLCavQHBASY4VWSecnvea+99prmz5+vbdu2qVevXma/n5+fJOnYsWPy9/c3+48dO2beK+vn56fjx487zVddXa3CwkJz/5+zWq2yWq31fAsAAAAAUD9WWBuRj4+P4uLilJiYqLKyshrbT506JUnq1q2bbDabNm/erMzMTNntdklSYGCgAgMDtWjRIlVWVl7U/autWrVSWFiY2X4aWF999VW99NJLSkpKcroPVZJCQkLk5+en5ORks6+4uFgZGRkaOHCgJGngwIE6deqUvvzyS3PMp59+qh9//FH9+/dvcI0AAAAAcDEIrI0sMTFRZ8+eVb9+/bR+/XplZ2crKytLixcvNgOgdG6VdenSpQoLC3O6f9Rut2vJkiXmw5l+7sSJEyooKHBqP339zM8tWLBAs2bN0sqVKxUcHGzuc/4dqhaLRU888YRefvllbd68WV9//bXuu+8+BQQEaOTIkZKkq6++WvHx8XrooYe0a9cupaWl6dFHH9Xo0aMb9IRgAAAAAPglCKyNLDQ0VHv37pXD4dDUqVN1zTXXaOjQoUpOTtayZcvMcQ6HQyUlJeb9q+fZ7XaVlJTUuboaGxsrf39/p7Zp06Y661m2bJkqKyt15513Ou3z2muvmWOeeuopTZ48WRMmTFDfvn1VWlqqpKQkp/tc33//fUVGRuqmm27SzTffrCFDhujPf/7zL/uSAAAAAKABeA8rmgTvYcXlivewAgAAXBzewwoAAAAA+M0jsAIAAAAAXBKBFQAAAADgkgisAAAAAACX1Kq5C8CVpejAjAveWA0AAAAAEiusAAAAAAAXRWAFAAAAALgkAisAAAAAwCURWAEAAAAALonACgAAAABwSTwlGE3Kq8cCqYVbc5cBoBEZebOauwQAAHCZYoUVAAAAAOCSCKwAAAAAAJdEYAUAAAAAuCQCKwAAAADAJRFYAQAAAAAuicAKAAAAAHBJBNZmUlBQoMmTJys0NFRWq1U2m00jRoxQcnKyRo8erfj4eKfxSUlJslgsmj17tlP/7Nmz1bVrV0lSbm6uLBZLrW3nzp111rJ8+XLdeOON6tChgzp06KDY2Fjt2rXLaYxhGHr++efl7++vtm3bKjY2VtnZ2Y3zZQAAAABALQiszSA3N1d9+vTRp59+qoULF+rrr79WUlKSHA6HJk2aJIfDobS0NFVXV5v7pKSkyGazKTU11WmulJQUORwOp75t27YpPz/fqfXp06fOelJTUzVmzBilpKQoPT1dNptNw4YN09GjR80xr776qhYvXqy33npLGRkZateuneLi4lReXt44XwoAAAAA/IzFMAyjuYu40tx888366quvdOjQIbVr185p26lTp3T8+HF1795d6enpGjBggCSpf//+uv/++zV16lSdPHlSbm5uKi8vl7e3t9566y2NGzdOubm5CgkJ0b59+3Tttdf+4vrOnj2rDh066M0339R9990nwzAUEBCgqVOnatq0aZKkoqIide7cWatWrdLo0aMvOGdxcbG8vLykwGekFm6/uDYArsfIm9XcJQAAgN+Q89mgqKhInp6e9Y5lhbWJFRYWKikpSZMmTaoRViXJ29tbERERCggIUEpKiiSppKREe/fu1ahRoxQcHKz09HRJ0hdffKGKiooaK6yX6vTp06qqqpKPj48k6fvvv1dBQYFiY2PNMV5eXurfv79Zy89VVFSouLjYqQEAAADAxSCwNrGcnBwZhqHIyMh6xzkcDvPy388//1wRERHy9fVVdHS02Z+amqqQkBAFBQU57Tto0CB5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5i4BANBIWGEFAAAAALgkAisAAAAAwCURWAEAAAAALonACgAAAABwSQRWAAAAAIBLIrACAAAAAFwSgfX/LyYmRk888cQlzzNu3DiNHDnykucBAAAAgCvdZR1Yx40bJ4vFokceeaTGtkmTJslisWjcuHGSpA0bNuill1665M/805/+pFWrVl3yPBfDYrGYrV27dgoPD9e4ceP05ZdfXvRcjRXcAQAAAOBSXdaBVZJsNpvWrFmjM2fOmH3l5eX6+9//rq5du5p9Pj4+at++/SV/npeXl7y9vS95nov1zjvvKD8/X998840SExNVWlqq/v37669//WuT1wIAAAAAjeGyD6zXX3+9bDabNmzYYPZt2LBBXbt21XXXXWf2/XxlcenSpQoPD5ebm5s6d+6sO++809z24YcfKioqSm3btlXHjh0VGxursrIySTUvCY6JidFjjz2mp556Sj4+PvLz89Ps2bOdajx48KCGDBkiNzc39ejRQ9u2bZPFYtGmTZsafJze3t7y8/NTcHCwhg0bpg8//FBjx47Vo48+qpMnT0qSTpw4oTFjxigwMFDu7u6KiorS6tWrzTnGjRunzz77TH/605/MFdvc3FydPXtW48ePV0hIiNq2bavu3bvrT3/6U4NrAwAAAIBf4rIPrJKUkJCgd955x/x55cqVeuCBB+ocv2fPHj322GOaM2eODh06pKSkJEVHR0uS8vPzNWbMGCUkJCgrK0upqam64447ZBhGnfO9++67ateunTIyMvTqq69qzpw52rp1qyTp7NmzGjlypNzd3ZWRkaE///nPevbZZxvluKdMmaKSkhLzs8rLy9WnTx/94x//0P79+zVhwgTde++92rVrl6RzlzMPHDhQDz30kPLz85Wfny+bzaYff/xRXbp00QcffKADBw7o+eef1zPPPKN169bV+dkVFRUqLi52agAAAABwMVo1dwFN4Q9/+INmzpyp//znP5KktLQ0rVmzRqmpqbWOz8vLU7t27fR//s//Ufv27RUUFGSuxubn56u6ulp33HGHgoKCJElRUVH1fn6vXr30wgsvSJLCw8P15ptvKjk5WUOHDtXWrVt1+PBhpaamys/PT5L0yiuvaOjQoZd83JGRkZKk3NxcSVJgYKCmTZtmbp88ebK2bNmidevWqV+/fvLy8lKbNm3k7u5u1iJJLVu21Isvvmj+HBISovT0dK1bt0533XVXrZ89b948p30AAAAA4GJdEYHV19dXt9xyi1atWiXDMHTLLbfoqquuqnP80KFDFRQUpNDQUMXHxys+Pl6333673N3d1bt3b910002KiopSXFychg0bpjvvvFMdOnSoc75evXo5/ezv76/jx49Lkg4dOiSbzeYUEPv163eJR3zO+VVfi8Ui6dxq7ty5c7Vu3TodPXpUlZWVqqiokLu7+wXnSkxM1MqVK5WXl6czZ86osrJS1157bZ3jZ86cqSeffNL8ubi4WDab7dIOCAAAAMAV5Yq4JFg6d1nwqlWr9O677yohIaHese3bt9fevXu1evVq+fv76/nnn1fv3r116tQptWzZUlu3btU///lP9ejRQ0uWLFH37t31/fff1zlf69atnX62WCz68ccfG+W46pOVlSXp3IqoJC1cuFB/+tOfNGPGDKWkpCgzM1NxcXGqrKysd541a9Zo2rRpGj9+vP71r38pMzNTDzzwQL37Wa1WeXp6OjUAAAAAuBhXTGCNj49XZWWlqqqqFBcXd8HxrVq1UmxsrF599VV99dVXys3N1aeffirpXOAcPHiwXnzxRe3bt09t2rTRxo0bf1Fd3bt315EjR3Ts2DGzb/fu3b9orp9744035OnpqdjYWEnnLoW+7bbb9Ic//EG9e/dWaGiovv32W6d92rRpo7Nnzzr1paWladCgQZo4caKuu+46hYWF6fDhw41SIwAAAADU5Yq4JFg6dx/m+RXHli1b1jv2448/1nfffafo6Gh16NBBn3zyiX788Ud1795dGRkZSk5O1rBhw9SpUydlZGTov//9r66++upfVNfQoUPVrVs33X///Xr11VdVUlKi5557TtL/u5S3IU6dOqWCggJVVFTo22+/1dtvv61Nmzbpr3/9q/manfDwcH344Yf64osv1KFDB73++us6duyYevToYc4THBysjIwM5ebmysPDQz4+PgoPD9df//pXbdmyRSEhIXrvvfe0e/duc+UWAAAAAH4NV8wKq6QGX5rq7e2tDRs26He/+52uvvpqvfXWW1q9erV69uwpT09Pbd++XTfffLMiIiL03HPPadGiRRo+fPgvqqlly5batGmTSktL1bdvXz344IPmU4Ld3NwaPM8DDzwgf39/RUZG6o9//KM8PDy0a9cu3XPPPeaY5557Ttdff73i4uIUExMjPz8/p1fw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mQsODtYbb7xxUfukpaUpKipKrVu31siRI3+VugAAAADgQpo1sI4bN04Wi0Xz58936t+0aZMsFovWr1+vli1b6ujRo7XuHx4erieffFKSFBMTI4vFIovFIqvVqsDAQI0YMUIbNmxocD3r169XTEyMvLy85OHhoV69emnOnDkqLCzUwYMHZbFYtHPnTqd9BgwYIDc3N5WXl5t95eXlcnNz04oVK5yO8+ctPj6+wbX9Urt379aECRMuap8nn3xS1157rb7//nutWrXq1ykMAAAAAC6g2VdY3dzctGDBAp08ebLGtltvvVUdO3bUu+++W2Pb9u3blZOTo/Hjx5t9Dz30kPLz83X48GGtX79ePXr00OjRoxsU2J599lndfffd6tu3r/75z39q//79WrRokf7973/rvffeU2RkpPz8/JSammruU1JSor1798rX19cpyKanp6uiokK/+93vzL74+Hjl5+c7tdWrVzf0a/rFfH195e7uflH7HD58WL/73e/UpUsXeXt7/zqFAQAAAMAFNHtgjY2NlZ+fn+bNm1djW+vWrXXvvffWusq3cuVK9e/fXz179jT73N3d5efnpy5dumjAgAFasGCB3n77bS1fvlzbtm2rs4Zdu3Zp7ty5WrRokRYuXKhBgwYpODhYQ4cO1fr163X//fdLkhwOh1Ng3bFjhyIiIjRixAin/tTUVAUFBSkkJMTss1qt8vPzc2odOnSos6bc3FxZLBZt2LBBDodD7u7u6t27t9LT053GrV+/Xj179pTValVwcLAWLVrktP3nlwRbLBb95S9/0e233y53d3eFh4dr8+bNTp954sQJJSQkyGKxmN/9Z599pn79+slqtcrf319PP/20qqur66wfAAAAAC5VswfWli1bau7cuVqyZIl++OGHGtvHjx+v7Oxsbd++3ewrLS3Vhx9+6LS6Wpf7779fHTp0qPfS4Pfff18eHh6aOHFirdvPrzI6HA7t2LHDDGopKSmKiYmR3W5XSkqKOT4lJUUOh+OCtTXEs88+q2nTpikzM1MREREaM2aM+flffvml7rrrLo0ePVpff/21Zs+erVmzZl3wMt4XX3xRd911l7766ivdfPPNGjt2rAoLC2Wz2ZSfny9PT0+98cYbys/P1913362jR4/q5ptvVt++ffXvf/9by5Yt04oVK/Tyyy/X+RkVFRUqLi52agAAAABwMZo9sErS7bffrmuvvVYvvPBCjW09evTQgAEDtHLlSrNv3bp1MgxDo0ePvuDcLVq0UEREhHJzc+sck52drdDQULVu3breuRwOh8rKyrR7925J51ZS7Xa7oqOjlZGRofLycp05c0a7du2qEVg//vhjeXh4OLW5c+desP5p06bplltuUUREhF588UX95z//UU5OjiTp9ddf10033aRZs2YpIiJC48aN06OPPqqFCxfWO+e4ceM0ZswYhYWFae7cuSotLdWuXbvUsmVL+fn5yWKxyMvLS35+fmrbtq2WLl0qm82mN998U5GRkRo5cqRefPFFLVq0SD/++GOtnzFv3jx5eXmZzWazXfBYAQAAAOCnXCKwStKCBQv07rvvKisrq8a2hIQEffjhhyopKZF07nLgUaNGqX379g2a2zAMWSwWSdLw4cPNwHj+cmLDMBo0T1hYmLp06aLU1FQVFxdr3759stvt8vf3V9euXZWenm7ev/rzwOpwOJSZmenUHnnkEUnSI4884hRkf6pXr17mf/v7+0uSjh8/LknKysrS4MGDncYPHjxY2dnZOnv2bJ3H8dM527VrJ09PT3PO2mRlZWngwIHmd3j+c0pLS2tdFZekmTNnqqioyGxHjhypc34AAAAAqE2r5i7gvOjoaMXFxWnmzJkaN26c07bRo0drypQpWrdunaKjo5WWllbrPa+1OXv2rLKzs9W3b19J0l/+8hedOXNGkswV1YiICO3YsUNVVVUXXGWNiYlRSkqKevXqpfDwcHXq1EmSzMuCDcNQWFhYjRXFdu3aKSwsrNY558yZo2nTptW67af1nA+Mda1qNtTPj9FisVzynD9ntVpltVobdU4AAAAAVxaXCaySNH/+fF177bXq3r27U3/79u01atQorVy5UocPH1ZERIRuvPHGBs357rvv6uTJk/r9738vSQoMDKwx5p577tHixYu1dOlSPf744zW2nzp1yuk+1scee0w9evRQTEyMOSY6OlrLly+XYRgXff9qp06dzOB7Ma6++mqlpaU59aWlpSkiIkItW7a86Pnq+5z169c7rVSnpaWpffv26tKlS6N9DgAAAAD8lEsF1qioKI0dO1aLFy+usW38+PG68cYblZWVpRkzZtS6/+nTp1VQUKDq6mr98MMP2rhxo/7nf/5Hf/zjH+sNkf3799dTTz2lqVOn6ujRo7r99tsV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tWtXpaenyzAMVVRU1AisDodDy5Ytc+rz8fGRJD3yyCP629/+ZvaXlpY61X4p3N3d1a1bN/Nnf39/HT9+XJJUVlamw4cPa/z48XrooYfMMdXV1fLy8nKa54Ybbqj3c6xWq6xW6yXVCgAAAODK5rKBNTo6WnFxcZo5c6bGjRvntG306NGaMmWK1q1bp+joaKWlpdV6z2ttzp49q+zsbPXt21fSufs1z5w5I0nmimpERIR27NihqqqqC66yxsTEKCUlRb169VJ4eLg6deokSeZlwYZhKCwsrMYlse3atVNYWFitc86ZM6dGUA8LC5PFYlFWVpZuv/32GvtkZWWpQ4cO8vX1rbfenx+PxWIxQ/D5YLx8+XL179/faVzLli1r1A8AAAAAvyaXDaySNH/+fF177bXq3r27U3/79u01atQorVy5UocPH1ZERIRuvPHGBs357rvv6uTJk/r9738vSQoMDKwx5p577tHixYu1dOlSPf744zW2nzp1yuk+1scee0w9evRQTEyMOSY6OlrLly+XYRgXff9qp06dzOB7XseOHTV06FAtXbpUU6ZMcbqPtaCgQO+//77uu+8+c+W4TZs2Onv27EV9bufOnRUQEKDvvvtOY8eOvah9AQAAAKCxuXRgjYqK0tixY7V48eIa28aPH68bb7xRWVlZmjFjRq37nz59WgUFBaqurtYPP/ygjRs36n/+53/0xz/+sd4Q2b9/fz311FOaOnWqjh49qttvv10BAQHma2SGDBliBtnz97GuXLlSy5cvN+ew2+168MEHJanWhzdVVFSooKDAqa9Vq1a66qqr6qzrzTff1KBBgxQXF6eXX35ZISEh+uabbzR9+nQFBgbqlVdeMccGBwdr+/btGj16tKxWa73z/tSLL76oxx57TF5eXoqPj1dFRYX27NmjkydPmu+4BQAAAICm4JIPXfqpOXPm6Mcff6zRP2TIEHXv3l3FxcW67777at13+fLl8vf3V7du3XTHHXfowIEDWrt2rdNrWuqyYMEC/f3vf1dGRobi4uLUs2dPPfnkk+rVq5f5WhtJCgkJUVBQkEpKSmS3283+rl27KiAgQJWVlU4rr+clJSXJ39/fqQ0ZMqTemsLDw7Vnzx6FhobqrrvuUrdu3TRhwgQ5HA6lp6eb98BK57633NxcdevW7YKXCf/Ugw8+qL/85S965513FBUVJbvdrlWrVjm9kgcAAAAAmoLFuNSn+AANUFxcfO7BTYHPSC3cmrscAAAA4Iph5M1q7hKcnM8GRUVF8vT0rHesy6+wAgAAAACuTARWAAAAAIBLIrACAAAAAFwSgRUAAAAA4JJc+rU2uPwUHZhxwRurAQAAAEBihRUAAAAA4KIIrAAAAAAAl0RgBQAAAAC4JAIrAAAAAMAlEVgBAAAAAC6JwAoAAAAAcEkEVgAAAACASyKwAgAAAABcEoEVAAAAAOCSCKwAAAAAAJdEYAUAAAAAuCQCKwAAAADAJRFYAQAAAAAuicAKAAAAAHBJBFYAAAAAgEsisAIAAAAAXBKBFQAAAADgkgisAAAAAACXRGAFAAAAALgkAisAAAAAwCURWAEAAAAALonACgAAAABwSQRWAAAAAIBLIrACAAAAAFwSgRUAAAAA4JIIrAAAAAAAl0RgBQAAAAC4JAIrAAAAAMAlEVgBAAAAAC6JwAoAAAAAcEkEVgAAAACASyKwAgAAAABcEoEVAAAAAOCSWjV3AbgyGIYhSSouLm7mSgAAAAA0p/OZ4HxGqA+BFU3ixIkTkiSbzdbMlQAAAABwBSUlJfLy8qp3DIEVTcLHx0eSlJeXd8GTElem4uJi2Ww2HTlyRJ6ens1dDlwM5wfqw/mB+nB+oD6cH83DMAyVlJQoICDggmMJrGgSLVqcu13ay8uLvwxQL09PT84R1InzA/Xh/EB9OD9QH86PptfQRSweugQAAAAAcEkEVgAAAACASyKwoklYrVa98MILslqtzV0KXBTnCOrD+YH6cH6gPpwfqA/nh+uzGA15ljAAAAAAAE2MFVYAAAAAgEsisAIAAAAAXBKBFQAAAADgkgisAAAAAACXRGBFk0hMTFRwcLDc3NzUv39/7dq1q7lLQiObPXu2LBaLU4uMjDS3l5eXa9KkSerYsaM8PDz0+9//XseOHXOaIy8vT7fccovc3d3VqVMnTZ8+XdXV1U5jUlNTdf3118tqtSosLEyrVq1qisPDRdq+fbtGjBihgIAAWSwWbdq0yWm7YRh6/vnn5e/vr7Zt2yo2NlbZ2dlOYwoLCzV27Fh5enrK29tb48ePV2lpqdOYr776SjfeeKPc3Nxks9n06quv1qjlgw8+UGRkpNzc3BQVFaVPPvmk0Y8XF+9C58i4ceNq/J0SHx/vNIZz5PI0b9489e3bV+3bt1enTp00cuRIHTp0yGlMU/6bwu8wrqch50hMTEyNv0MeeeQRpzGcI78RBvArW7NmjdGmTRtj5cqVxjfffGM89NBDhre3t3Hs2LHmLg2N6IUXXjB69uxp5Ofnm+2///2vuf2RRx4xbDabkZycbOzZs8cYMGCAMWjQIHN7dXW1cc011xixsbHGvn37jE8++cS46qqrjJkzZ5pjvvvuO8Pd3d148sknjQMHDhhLliwxWrZsaSQlJTXpseLCPvnkE+PZZ581NmzYYEgyNm7c6LR9/vz5hpeXl7Fp0ybj3//+t3HrrbcaISEhxpkzZ8wx8fHxRu/evY2dO3can3/+uREWFmaMGTPG3F5UVGR07tzZGDt2rLF//35j9erVRtu2bY23337bHJOWlma0bNnSePXVV40DBw4Yzz33nNG6dWvj66+//tW/A9TvQufI/fffb8THxzv9nVJYWOg0hnPk8hQXF2e88847xv79+43MzEzj5ptvNrp27WqUlpaaY5rq3xR+h3FNDTlH7Ha78dBDDzn9HVJUVGRu5xz57SCw4lfXr18/Y9KkSebPZ8+eNQICAox58+Y1Y1VobC+88ILRu3fvWredOnXKaN26tfHBBx+YfVlZWYYkIz093TCMc7+8tmjRwigoKDDHLFu2zPD09DQqKioMwzCMp556yujZs6fT3HfffbcRFxfXyEeDxvTzMPLjjz8afn5+xsKFC82+U6dOGVar1Vi9erVhGIZx4MABQ5Kxe/duc8w///lPw2KxGEePHjUMwzCWLl1qdOjQwTw/DMMwZsyYYXTv3t38+a677jJuueUWp3r69+9vPPzww416jLg0dQXW2267rc59OEeuHMePHzckGZ999plhGE37bwq/w/w2/PwcMYxzgfXxxx+vcx/Okd8OLgnGr6qyslJffvmlYmNjzb4WLVooNjZW6enpzVgZfg3Z2dkKCAhQaGioxo4dq7y8PEnSl19+qaqqKqfzIDIyUl27djXPg/T0dEVFRalz587mmLi4OBUXF+ubb74xx/x0jvNjOJd+W77//nsVFBQ4/Vl6eXmpf//+TueDt7e3brjhBnNMbGysWrRooYyMDHNMdHS02rRpY46Ji4vToUOHdPLkSXMM58xvV2pqqjp16qTu3bvrj3/8o06cOGFu4xy5chQVFUmSfHx8JDXdvyn8DvPb8fNz5Lz3339fV111la65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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nvd_cwe = nvd['CWE'].value_counts()\n", "nvd_cwe = nvd_cwe.reset_index()\n", "nvd_cwe.columns = ['CWE', 'CVEs']\n", "nvd_cwe_graph = nvd_cwe[nvd_cwe.CVEs > 100].head(25)\n", "plt.figure(figsize=(10,10));\n", "plt.barh(\"CWE\", \"CVEs\", data = nvd_cwe_graph, color=\"#001d82\");\n", "plt.xlabel(\"CVEs\"); \n", "plt.ylabel(\"CWE\") ;\n", "plt.title(\"Most Common CWE in CVE Records\");\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "04a26e54", "metadata": { "execution": { "iopub.execute_input": "2024-06-16T12:28:36.417469Z", "iopub.status.busy": "2024-06-16T12:28:36.417135Z", "iopub.status.idle": "2024-06-16T12:28:36.424268Z", "shell.execute_reply": "2024-06-16T12:28:36.423725Z" }, "tags": [ "remove-input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "
CWECVEs
\n", "\n", "
\n", "Loading ITables v2.1.1 from the internet...\n", "(need help?)
\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show(nvd_cwe, scrollY=\"400px\", scrollCollapse=True, paging=False)" ] }, { "cell_type": "code", "execution_count": 5, "id": "20ee3a71", "metadata": { "execution": { "iopub.execute_input": "2024-06-16T12:28:36.426466Z", "iopub.status.busy": "2024-06-16T12:28:36.426150Z", "iopub.status.idle": "2024-06-16T12:28:36.430205Z", "shell.execute_reply": "2024-06-16T12:28:36.429762Z" }, "tags": [ "remove-input" ] }, "outputs": [ { "data": { "text/markdown": [ "This report is updated automatically every day, last generated on: **2024-06-16 12:28:36.427054**" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Markdown(f\"This report is updated automatically every day, last generated on: **{datetime.datetime.now()}**\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" }, "vscode": { "interpreter": { "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" } } }, "nbformat": 4, "nbformat_minor": 5 }