{ "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-10-22T00:29:31.729311Z", "iopub.status.busy": "2024-10-22T00:29:31.728882Z", "iopub.status.idle": "2024-10-22T00:29:32.364877Z", "shell.execute_reply": "2024-10-22T00:29:32.364348Z" }, "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-10-22T00:29:32.366889Z", "iopub.status.busy": "2024-10-22T00:29:32.366512Z", "iopub.status.idle": "2024-10-22T00:29:52.787044Z", "shell.execute_reply": "2024-10-22T00:29:52.786457Z" }, "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "row_accumulator = []\n", "for filename in glob.glob('nvd.jsonl'):\n", " with open(filename, 'r', encoding='utf-8') as f:\n", " nvd_data = json.load(f)\n", " for entry in nvd_data:\n", " cve = entry['cve']['id']\n", " try:\n", " assigner = entry['cve']['sourceIdentifier']\n", " except KeyError:\n", " assigner = 'Missing_Data'\n", " try:\n", " published_date = entry['cve']['published']\n", " except KeyError:\n", " published_date = 'Missing_Data'\n", " try:\n", " attack_vector = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['attackVector']\n", " except KeyError:\n", " attack_vector = 'Missing_Data'\n", " try:\n", " attack_complexity = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['attackComplexity']\n", " except KeyError:\n", " attack_complexity = 'Missing_Data'\n", " try:\n", " privileges_required = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['privilegesRequired']\n", " except KeyError:\n", " privileges_required = 'Missing_Data'\n", " try:\n", " user_interaction = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['userInteraction']\n", " except KeyError:\n", " user_interaction = 'Missing_Data'\n", " try:\n", " scope = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['scope']\n", " except KeyError:\n", " scope = 'Missing_Data'\n", " try:\n", " confidentiality_impact = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['confidentialityImpact']\n", " except KeyError:\n", " confidentiality_impact = 'Missing_Data'\n", " try:\n", " integrity_impact = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['integrityImpact']\n", " except KeyError:\n", " integrity_impact = 'Missing_Data'\n", " try:\n", " availability_impact = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['availabilityImpact']\n", " except KeyError:\n", " availability_impact = 'Missing_Data'\n", " try:\n", " base_score = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseScore']\n", " except KeyError:\n", " base_score = '0.0'\n", " try:\n", " base_severity = entry['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseSeverity']\n", " except KeyError:\n", " base_severity = 'Missing_Data'\n", " try:\n", " exploitability_score = entry['cve']['metrics']['cvssMetricV31'][0]['exploitabilityScore']\n", " except KeyError:\n", " exploitability_score = 'Missing_Data'\n", " try:\n", " impact_score = entry['cve']['metrics']['cvssMetricV31'][0]['impactScore']\n", " except KeyError:\n", " impact_score = 'Missing_Data'\n", " try:\n", " cwe = entry['cve']['weaknesses'][0]['description'][0]['value']\n", " except KeyError:\n", " cwe = 'Missing_Data'\n", " try:\n", " description = entry['cve']['descriptions'][0]['value']\n", " except IndexError:\n", " description = ''\n", " try:\n", " cve_tag = entry['cve']['cveTags'][0]['tags'] \n", " except IndexError:\n", " cve_tag = np.nan \n", " try: \n", " vulnStatus = entry['cve']['vulnStatus']\n", " except IndexError:\n", " vulnStatus = '' \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", " 'Tag' : cve_tag,\n", " 'Status': vulnStatus \n", " }\n", " row_accumulator.append(new_row)\n", " nvd = pd.DataFrame(row_accumulator)\n", "\n", "nvd = nvd[~nvd.Status.str.contains('Rejected')] \n", "nvd['Published'] = pd.to_datetime(nvd['Published'])\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-10-22T00:29:52.789418Z", "iopub.status.busy": "2024-10-22T00:29:52.789064Z", "iopub.status.idle": "2024-10-22T00:29:53.093750Z", "shell.execute_reply": "2024-10-22T00:29:53.093118Z" }, "tags": [ "remove-input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA60AAANXCAYAAADerLmgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADJ+UlEQVR4nOzdeVyVdf7//+cxCgyEI4YLdGQVyd1wC8rDKdyjqTHLalo0yxnJ0tBJnZwhp0Qz2wyx+jgtNqYfp81pwRTPaVxRIz5ZqaVFmIrOiAJibHr9/vDH+XZ5QEFJztTjfru9bzfP+3q/r/O6LmGmp+9rsRiGYQgAAAAAAC/UorkLAAAAAACgPoRWAAAAAIDXIrQCAAAAALwWoRUAAAAA4LUIrQAAAAAAr0VoBQAAAAB4LUIrAAAAAMBrEVoBAAAAAF6L0AoAAAAA8FqEVgAA8IuRlJSkpKSk5i4D58hisSg9Pb25ywDgZQitAIAGe/XVV2WxWGSxWLR+/XqP7YZhyGazyWKx6Prrr/9Zati/f7/S09OVn5/fqHl79uzR+PHjFRUVJT8/PwUGBioxMVHPPfecfvzxx5+l1l+Shpy/Ll26qGfPnh5z33nnHVksFtntdo9tf/vb32SxWPTxxx9LMv+M1dU2b9788x5oPc52/Hl5ebJYLHr00Ufr3cc333wji8Wihx9+WJKUnp5+xmMtKio6Y00RERGm8f7+/urXr59ef/31Jj12AGhuPs1dAADgv4+fn5+WLl2qq6++2tT/ySef6IcffpCvr+/P9t379+/XY489poiICPXq1atBcz744AONGjVKvr6+uuuuu9StWzdVVVVp/fr1mjp1qr788ku99NJLP1vN/+0aev6uvvpqLV68WCUlJQoKCnLP37Bhg3x8fLR161ZVV1fr4osvNm276KKLdNVVV5m+c9asWYqMjPSoJSYm5oy11obfptTQ44+Li9Obb76pxx9/vM79LF26VJL0u9/9ztSflZWlgIAAj/FWq/WstfXq1UtpaWmSpAMHDuh//ud/dPfdd6uyslL33XdfI48UALwToRUA0GjDhw/XihUr9Pzzz8vH5//9X8nSpUsVHx+v//znP81Yndl3332n0aNHKzw8XGvXrlWHDh3c21JTU7V792598MEHzVihd2vM+bv66qv18ssva+PGjRo2bJh73IYNG3TLLbdo6dKl+vTTTzVgwAD3tvXr16tHjx5q1aqV6XuHDRumPn36NLreSy65pNFzzqQxx3/HHXdo5syZ2rx5s+kYa7355puKi4vTlVdeaeq/+eabddlll51TfWFhYaYQfM899ygqKkrPPPOMV4bW8vJy+fv7N3cZAP7LcHkwAKDRbrvtNh0+fFirV69291VVVekf//iHbr/99jrnlJeXKy0tTTabTb6+vurcubOeeuopGYZhGrd69WpdffXVslqtCggIUOfOnTVjxgxJksvlUt++fSVJY8aMcV8W+eqrr9Zb65NPPqljx45p8eLFpsBRKyYmRg899JD7c01Njf76178qOjpavr6+ioiI0IwZM1RZWWmaFxERoeuvv14ul0t9+vRRy5Yt1b17d7lcLknS22+/re7du8vPz0/x8fH67LPPTPPvueceBQQEqLCwUNdff70CAgIUFhamzMxMSdL27dt17bXXyt/fX+Hh4e5Vup/69ttvNWrUKAUHB+vSSy/VgAEDPAK4y+WSxWLR//7v/+qJJ57Q5ZdfLj8/P1133XXavXt3veftXM5f7cr7hg0b3NsrKiqUl5en3/72t4qKijJt+/e//62vv/7aY8X+fJx+T+uFPP477rhDkur8u/r000+1a9cu95ifS0hIiOLi4rRnzx5T/8mTJ/Xss8+qa9eu8vPzU7t27TR+/HgdOXLEYx8fffSR7Ha7WrVqpcDAQPXt29fjmFasWKH4+Hi1bNlSl112mX73u99p3759pjG1P+N79uzR8OHD1apVK/fxV1ZWavLkyQoJCVGrVq10ww036IcffvCopaysTJMmTVJERIR8fX3Vtm1bDRo0SHl5eed7qgD8FyG0AgAaLSIiQldddZXefPNNd99HH32kkpISjR492mO8YRi64YYb9Mwzz2jo0KF6+umn1blzZ02dOtV9f58kffnll7r++utVWVmpWbNmaf78+brhhhvcQeeKK67QrFmzJEn333+/lixZoiVLlmjgwIH11vrPf/5TUVFRSkhIaNCxjRs3Tn/+85915ZVX6plnnpHdbldGRkadx7V7927dfvvtSklJUUZGho4cOaKUlBT9/e9/1+TJk/W73/1Ojz32mPbs2aNbbrlFJ0+eNM0/ceKEhg0bJpvNpieffFIRERF64IEH9Oqrr2ro0KHq06eP5s6dq1atWumuu+7Sd99955578OBBJSQkaNWqVZowYYKeeOIJVVRU6IYbbtA777zjUeucOXP0zjvvaMqUKZo+fbo2b97coADVmPMXFRWl0NBQ0/3OW7duVVVVlRISEpSQkGAKrRs3bpSkOkNrSUmJ/vOf/5ja4cOHz1pDfS7E8UdGRiohIUH/+7//qxMnTpi21Ya+uv5Rp7i42ONYjx492rADO01NTY1++OEHtW7d2tQ/fvx4TZ061X0f7pgxY/T3v/9dQ4YMUXV1tXvcq6++qhEjRqi4uFjTp0/XnDlz1KtXL2VnZ5vG3HLLLbrooouUkZGh++67T2+//bauvvpqj7pramo0ZMgQtW3bVk899ZRGjhwp6dTv2bPPPqvBgwdrzpw5uvjiizVixAiP4/n973+vrKwsjRw5UgsXLtSUKVPUsmVL7dix45zOD4D/UgYAAA30yiuvGJKMrVu3Gi+88ILRqlUr4/jx44ZhGMaoUaMMh8NhGIZhhIeHGyNGjHDPe/fddw1JxuOPP27a380332xYLBZj9+7dhmEYxjPPPGNIMv7973/XW8PWrVsNScYrr7xy1npLSkoMScZvfvObBh1ffn6+IckYN26cqX/KlCmGJGPt2rXuvvDwcEOSsXHjRnffqlWrDElGy5Ytje+//97d/+KLLxqSDKfT6e67++67DUnG7Nmz3X1HjhwxWrZsaVgsFmPZsmXu/p07dxqSjL/85S/uvkmTJhmSjHXr1rn7ysrKjMjISCMiIsI4ceKEYRiG4XQ6DUnGFVdcYVRWVrrHPvfcc4YkY/v27fWej8aeP8M49XPQsmVLo6qqyjAMw8jIyDAiIyMNwzCMhQsXGm3btnWPrT2v+/btc/fV/ozV1Xx9fc/6/Xa73bDb7e7PF/r4MzMzDUnGqlWr3H0nTpwwwsLCjKuuuso09i9/+Uu9x9q5c+ezfld4eLgxePBg49///rfx73//29i+fbtx5513GpKM1NRU97h169YZkoy///3vpvnZ2dmm/qNHjxqtWrUy+vfvb/z444+msSdPnjQMwzCqqqqMtm3bGt26dTONef/99w1Jxp///Gd3X+3P+LRp00z7qv09mzBhgqn/9ttv9/g5DwoKMh0LgF8nVloBAOfklltu0Y8//qj3339fZWVlev/99+u9NPjDDz/URRddpAcffNDUn5aWJsMw9NFHH0n6fw+eee+99zxWJc9FaWmpJHncL1mfDz/8UJJMq7+1dUryuPS2S5cupgcI9e/fX5J07bXXqmPHjh793377rcd3jhs3zv1nq9Wqzp07y9/fX7fccou7v3PnzrJarab5H374ofr162dapQwICND999+vgoICffXVV6bvGTNmjOl+z2uuuabemmo19vxJp1ZNf/zxR3366aeSTl0qXLtKmZiYqEOHDumbb75xb4uMjFRoaKjHfjIzM7V69WpTq/05ORcX6vhvvfVWXXzxxabLaT/55BPt27ev3pXdt956y+NYX3nllQZ938cff6yQkBCFhISoe/fuWrJkicaMGaN58+a5x6xYsUJBQUEaNGiQaTU3Pj5eAQEBcjqdkk5dml9WVqZp06bJz8/P9D0Wi0WStG3bNh06dEgTJkwwjRkxYoTi4uLqvD/8D3/4g+lz7e/Z6f97MGnSJI+5VqtVubm52r9/f4POB4BfJh7EBAA4JyEhIUpOTtbSpUt1/PhxnThxQjfffHOdY7///nuFhoZ6/Mf/FVdc4d4unfoP/v/5n//RuHHjNG3aNF133XX67W9/q5tvvlktWjT+31kDAwMlnbovriG+//57tWjRwuMJte3bt5fVanXXWeunwVSS+4m5Nputzv7T7x/08/NTSEiIx9jLL7/cHRJ+2v/T+d9//707DP/UT89pt27d6q219vLRuu5prNXY8yeZ72vt37+/Nm7c6H6abrdu3RQYGKgNGzbIZrPp008/1a233lrnfvr163dOD2Kqz4U6/jZt2mjIkCF65513tGjRIveTtn18fEz/EPFTAwcOPOcHMfXv31+PP/64Tpw4oS+++EKPP/64jhw5Ygro33zzjUpKStS2bds693Ho0CFJct8H+9Ofm9PV/g507tzZY1tcXJzHq7B8fHx0+eWXe+yjRYsWio6ONvXXtc8nn3xSd999t2w2m+Lj4zV8+HDdddddioqKqrdGAL88hFYAwDm7/fbbdd9996moqEjDhg1r0Cs6zqRly5b617/+JafTqQ8++EDZ2dlavny5rr32Wn388ce66KKLGrW/wMBAhYaG6osvvmjUvNMDY33qq6e+fuO0h06d7/zGOJd9nsv569mzp1q1aqX169dr+PDhKi4udq+0tmjRQv3799f69esVHR2tqqqqJn0I05lcqOOXTr3S5v3339f777+vG264QW+99ZYGDx7s8Q8UTeGyyy5TcnKyJGnIkCGKi4vT9ddfr+eee859xcDJkyfVtm1b/f3vf69zHz9HXbV8fX3P6R+cat1yyy265ppr9M477+jjjz/WvHnzNHfuXL399tumJ1QD+GXj8mAAwDm76aab1KJFC23evLneS4MlKTw8XPv37/dYsdq5c6d7e60WLVrouuuu09NPP62vvvpKTzzxhNauXeu+hLGhgbLW9ddfrz179mjTpk1nHRseHq6TJ0+6L1+tdfDgQR09etRUZ3MLDw/Xrl27PPrrOqfnozHnTzoVDgcMGKANGzZo/fr1CgwMVPfu3d3bax/GVPtApgsVWs9VY49fkm644Qa1atVKS5cu1UcffaQjR4787E8NrjVixAjZ7XbNnj1b5eXlkqTo6GgdPnxYiYmJSk5O9mg9e/Z0j5N0xpBe+3NV18/erl27GvRzV/t7dvoTjuvapyR16NBBEyZM0LvvvqvvvvtObdq00RNPPHHW7wHwy0FoBQCcs4CAAGVlZSk9PV0pKSn1jhs+fLhOnDihF154wdT/zDPPyGKxuFdMiouLPeb26tVLktyvnKl9x2NDn676xz/+Uf7+/ho3bpwOHjzosX3Pnj167rnn3HVK0rPPPmsa8/TTT0tSnU83bS7Dhw/Xli1bTGGqvLxcL730kiIiItSlS5cm+Z7GnL9aV199tf7973/rlVdeUf/+/U0rbQkJCdq1a5fee+89tWnTxn05s7c6l+Nv2bKlbrrpJn344YfKysqSv7+/fvOb31yokvXII4/o8OHDevnllyWdWq08ceKE/vrXv3qMrampcf8uDR48WK1atVJGRoYqKipM42pXpPv06aO2bdtq0aJFptdAffTRR9qxY0eDfkdqf9+ff/55U//pv3cnTpxQSUmJqa9t27YKDQ31eAUVgF82Lg8GAJyXu++++6xjUlJS5HA49Kc//UkFBQXq2bOnPv74Y7333nuaNGmSe4Vn1qxZ+te//qURI0YoPDxchw4d0sKFC3X55Ze7V+Sio6NltVq1aNEitWrVSv7+/urfv78iIyPr/O7o6GgtXbpUt956q6644grddddd6tatm6qqqrRx40atWLFC99xzj6RTl7befffdeumll3T06FHZ7XZt2bJFr732mm688UY5HI6mOWlNYNq0aXrzzTc1bNgwPfjggwoODtZrr72m7777Tm+99dZ5XZL5U405f7Vq/642bdqk9PR007YB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680336xt27bp73//u06cOOH+7qqqqqY6dQAAAADggcuDm1hUVJTy8vL0xBNPKC0tTQcOHFBISIji4+NN94A6HA69/vrr7vtZa9ntdr3yyivuV9ScLjk52aPvzTff1OjRo+sc/+ijj8pisejRRx/Vvn37FBISopSUFD3xxBPuMX379tU777yj6dOna9asWYqMjNSzzz6rO+64Q5K0b98+rVy5UpLUq1cv0/6dTqfHMQAAAABAU7EYDX16EHAeSktLFRQUJIXNkFr4NXc5XsUonNncJQAAAAAXTG02KCkpOeNzcmpxeTAAAAAAwGsRWgEAAAAAXovQCgAAAADwWoRWAAAAAIDX4unBuKBKvnqkQTdbAwAAAIDESisAAAAAwIsRWgEAAAAAXovQCgAAAADwWoRWAAAAAIDXIrQCAAAAALwWTw/GBRXUZa7Uwq+5y/ivZxTObO4SAAAAgAuClVYAAAAAgNcitAIAAAAAvBahFQAAAADgtQitAAAAAACvRWgFAAAAAHgtQisAAAAAwGsRWn8GRUVFmjhxoqKiouTr6yubzaaUlBTl5ORo9OjRGjp0qGl8dna2LBaL0tPTTf3p6enq2LGjJKmgoEAWi6XOtnnz5nprefnll3XNNdeodevWat26tZKTk7VlyxbTmGPHjumBBx7Q5ZdfrpYtW6pLly5atGiRe/uZvnvFihXnebYAAAAAoH68p7WJFRQUKDExUVarVfPmzVP37t1VXV2tVatWKTU1VZMnT9aUKVNUU1MjH59Tp9/pdMpms8nlcpn25XQ65XA4TH1r1qxR165dTX1t2rSptx6Xy6XbbrtNCQkJ8vPz09y5czV48GB9+eWXCgsLkyQ9/PDDWrt2rd544w1FRETo448/1oQJExQaGqobbrhBNptNBw4cMO33pZde0rx58zRs2LBzPVUAAAAAcFYWwzCM5i7il2T48OH6/PPPtWvXLvn7+5u2HT16VIcOHVLnzp21adMmDRgwQJLUv39/3X333UpLS9ORI0fk5+eniooKWa1WLVq0SPfcc48KCgoUGRmpzz77TL169Trn+k6cOKHWrVvrhRde0F133SVJ6tatm2699VbNnDnTPS4+Pl7Dhg3T448/Xud+evfurSuvvFKLFy9u0PeWlpYqKChICpshtfA75/pxilE48+yDAAAAAC9Umw1KSkoUGBh41vFcHtyE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smVLRUdH6y9/+YuqqqrO80wBAAAAwJmd83taUbeCggIlJibKarVq3rx56t69u6qrq7Vq1SqlpqZq8uTJmjJlimpqauTjc+r0O51O2Ww2uVwu076cTqccDoepb82aNerataupr02bNvXWExwcrD/96U+Ki4vTJZdcovfff19jxoxR27ZtNWTIEPe4oUOH6pVXXnF/9vX1df95586dOnnypF588UXFxMToiy++0H333afy8nI99dRTjT5HAAAAANBQhNYmNmHCBFksFm3ZskX+/v7u/q5du2rs2LE6dOiQjh07pm3btmnAgAGSJJfLpWnTpiktLU0VFRXy8/NTRUWFcnNzNWbMGNP+27Rpo/bt2ze4nqSkJNPnhx56SK+99prWr19vCq2+vr717nfo0KGmldeoqCjt2rVLWVlZhFYAAAAAPysuD25CxcXFys7OVmpqqimw1rJarYqNjVVoaKicTqckqaysTHl5eRo1apQiIiK0adMmSdLGjRtVWVnpsdJ6PgzDUE5Ojnbt2qWBAweatrlcLrVt21adO3fWH/7wBx0+fPiM+yopKVFwcHC92ysrK1VaWmpqAAAAANBYhNYmtHv3bhmGobi4uDOOczgc7kuB161bp9jYWIWEhGjgwIHufpfLpcjISIWHh5vmJiQkKCAgwNTOpqSkRAEBAbrkkks0YsQILViwQIMGDXJvHzp0qF5//XXl5ORo7ty5+uSTTzRs2DCdOHGi3uNcsGCBxo8fX+93ZmRkKCgoyN1sNttZ6wQAAACA03F5cBMyDKNB45KSkjRp0iRVV1fL5XK5L+G12+168cUXJZ0KrXWtsi5fvlxXXHGFR39hYaG6dOni/jxjxgzNmDFDktSqVSvl5+fr2LFjysnJ0cMPP6yoqCj3944ePdo9r3v37urRo4eio6Plcrl03XXXmb5n3759Gjp0qEaNGqX77ruv3mOcPn26Hn74Yffn0tJSgisAAACARiO0NqFOnTrJYrFo586dZxzncDhUXl6urVu3yul0aurUqZJOhdaxY8equLhYubm5da5k2mw2xcTEePSHhoYqPz/f/fmnl+62aNHCPadXr17asWOHMjIyPO53rRUVFaXLLrtMu3fvNoXW/fv3y+FwKCEhQS+99NIZj9HX19f0MCcAAAAAOBdcHtyEgoODNWTIEGVmZqq8vNxj+9GjRyVJ0dHRstls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4YcfLnhblyu8AwAAAMDl8IcOrZJktVq1dOlSnThxwuwrLy/XP/7xD3Xo0MHs8/LyUqtWrS758zw8POTp6XnJ27lQH330kfLz8/Xzzz8rKSlJpaWlioyM1CeffNLgtQAAAADA5fKHD60333yzrFarVq1aZfatWrVKHTp00E033WT2nTvDOG/ePIWGhsrFxUXt2rXTvffeay5bsWKFIiIi1KJFC7Vp00axsbEqKyuTVP3y4JiYGD355JN67rnn5OXlJR8fH02ZMsWuxt27d6tfv35ycXFR586dtWHDBlksFq1Zs6be++np6SkfHx8FBgZqwIABWrFihYYPH64nnnhCR48elSQdOXJEw4YNk7+/v1xdXRUREaElS5aY2xg5cqS+/fZbvfvuu+bMbV5enk6dOqVRo0YpKChILVq0UKdOnfTuu+/WuzYAAAAAuFh/+NAqSQkJCfroo4/MrxctWqSHH3641vHbtm3Tk08+qalTp2rPnj1KTk5WVFSUJCk/P1/Dhg1TQkKCsrOzlZaWpnvuuUeGYdS6vY8//lgtW7ZUZmam3nzzTU2dOlXr16+XJJ06dUqDBw+Wq6urMjMz9be//U0vvvjiZdnvZ555RiUlJeZnlZeXq3v37vrnP/+pnTt3avTo0XrwwQe1ZcsWSWcube7du7ceffRR5efnKz8/X1arVadPn1b79u31+eefa9euXXr55Zf1wgsvaPny5bV+dkVFhYqLi+0aAAAAAFyopo1dQEP4y1/+okmTJuk///mPJCk9PV1Lly5VWlpajeP379+vli1b6v/8n/+jVq1aKSAgwJyVzc/P18mTJ3XPPfcoICBAkhQREVHn53ft2lWvvPKKJCk0NFTvvfeeUlJS1L9/f61fv1579+5VWlqafHx8JElvvPGG+vfvf8n7HR4eLknKy8uTJPn7+2v8+PHm8nHjxmndunVavny5evbsKQ8PDzVv3lyurq5mLZLk5OSkV1991fw6KChIGRkZWr58ue67774aP3v69Ol26wAAAADAxbgmQqu3t7fuuOMOLV68WIZh6I477tB1111X6/j+/fsrICBAwcHBio+PV3x8vO6++265urqqW7duuu222xQREaG4uDgNGDBA9957r1q3bl3r9rp27Wr3ta+vrw4fPixJ2rNnj6xWq11I7Nmz5yXu8RlnZ38tFoukM7O606ZN0/Lly3Xw4EFVVlaqoqJCrq6u591WUlKSFi1apP379+vEiROqrKzUjTfeWOv4SZMm6dlnnzW/Li4ultVqvbQdAgAAAHDNuSYuD5bOXCK8ePFiffzxx0pISKhzbKtWrbR9+3YtWbJEvr6+evnll9WtWzcdO3ZMTk5OWr9+vb7++mt17txZc+fOVadOnbRv375at9esWTO7ry0Wi06fPn1Z9qsu2dnZks7MjErSrFmz9O677+r5559XamqqsrKyFBcXp8rKyjq3s3TpUo0fP16jRo3Sv/71L2VlZenhhx+ucz1nZ2e5u7vbNQAAAAC4UNdMaI2Pj1dlZaWqqqoUFxd33vFNmzZVbGys3nzzTf3444/Ky8vTN998I+lM6Ozbt69effVV7dixQ82bN9fq1asvqq5OnTrpwIEDOnTokNm3devWi9rWud555x25u7srNjZW0pnLou+66y795S9/Ubdu3RQcHKxffvnFbp3mzZvr1KlTdn3p6enq06ePxowZo5tuukkhISHau3fvZakRAAAAAOpyTVweLJ25L/PszKOTk1OdY7/88kv9+uuvioqKUuvWrfXVV1/p9OnT6tSpkzIzM5WSkqIBAwaobdu2yszM1H//+19df/31F1VX//791bFjR40YMUJvvvmmSkpK9NJLL0n6/1/WWx/Hjh1TQUGBKioq9Msvv+iDDz7QmjVr9Mknn5iv4AkNDdWKFSv0/fffq3Xr1nr77bd16NAhde7c2dxOYGCgMjMzlZeXJzc3N3l5eSk0NFSffPKJ1q1bp6CgIH366afaunWrOYMLAAAAAFfKNTPTKqnel6l6enpq1apV+tOf/qTrr79e77//vpYsWaIuXbrI3d1dGzdu1O23366wsDC99NJLmj17tgYOHHhRNTk5OWnNmjUqLS1Vjx499Mgjj5hPD3Zxcan3dh5++GH5+voqPDxcf/3rX+Xm5qYtW7bogQceMMe89NJLuvnmmxUXF6eYmBj5+PjYvZ5HksaPHy8nJyd17txZ3t7e2r9/vx577DHdc889uv/++xUZGakjR45ozJgxF7W/AAAAAHAhLEZd72pBo0hPT1e/fv2Um5urjh07NnY5l0VxcbE8PDwk/xekJvUP44AjMvZPbuwSAAAArlpns0FRUVG9JhWvmcuDHdnq1avl5uam0NBQ5ebm6qmnnlLfvn3/MIEVAAAAAC7WNXV5sKMqKSnR2LFjFR4erpEjR6pHjx764osvJEnTpk2Tm5tbje1iL0kGAAAAgKsFlwc7uMLCQhUWFta4rEWLFvL392/gii4Olwfjj4TLgwEAAC4elwf/wXh5ecnLy6uxywAAAACARkFoRYMq2vV8vf43BQAAAAAk7mkFAAAAADgwQisAAAAAwGERWgEAAAAADovQCgAAAABwWIRWAAAAAIDD4unBaFAenWfynlbgKsC7aAEAgKNgphUAAAAA4LAIrQAAAAAAh0VoBQAAAAA4LEIrAAAAAMBhEVoBAAAAAA6L0AoAAAAAcFiE1kZSUFCgcePGKTg4WM7OzrJarRo0aJBSUlI0dOhQxcfH241PTk6WxWLRlClT7PqnTJmiDh06SJLy8vJksVhqbJs3b661lgULFujWW29V69at1bp1a8XGxmrLli12YwzD0MsvvyxfX1+1aNFCsbGxysnJuTwHAwAAAABqQWhtBHl5eerevbu++eYbzZo1Sz/99JOSk5Nls9k0duxY2Ww2paen6+TJk+Y6qampslqtSktLs9tWamqqbDabXd+GDRuUn59v17p3715rPWlpaRo2bJhSU1OVkZEhq9WqAQMG6ODBg+aYN998U3PmzNH777+vzMxMtWzZUnFxcSovL788BwUAAAAAamAxDMNo7CKuNbfffrt+/PFH7dmzRy1btrRbduzYMR0+fFidOnVSRkaGevXqJUmKjIzUiBEjlJiYqKNHj8rFxUXl5eXy9PTU+++/r5EjRyovL09BQUHasWOHbrzxxouu79SpU2rdurXee+89PfTQQzIMQ35+fkpMTNT48eMlSUVFRWrXrp0WL16soUOHnnebxcXF8vDwkPxfkJq4XHRtABqGsX9yY5cAAAD+oM5mg6KiIrm7u593PDOtDaywsFDJyckaO3ZstcAqSZ6engoLC5Ofn59SU1MlSSUlJdq+fbuGDBmiwMBAZWRkSJK+//57VVRUVJtpvVTHjx9XVVWVvLy8JEn79u1TQUGBYmNjzTEeHh6KjIw0azlXRUWFiouL7RoAAAAAXChCawPLzc2VYRgKDw+vc5zNZjMvBf7uu+8UFhYmb29vRUVFmf1paWkKCgpSQECA3bp9+vSRm5ubXbsQzz//vPz8/MyQWlBQIElq166d3bh27dqZy841ffp0eXh4mM1qtV5QDQAAAAAgEVobXH2vxo6JiVF6erqqqqqUlpammJgYSVJ0dLRdaK1plnXZsmXKysqya5K0f/9+uyA7bdq0auvOmDFDS5cu1erVq+XicvGX8U6aNElFRUVmO3DgwEVvCwAAAMC1q2ljF3CtCQ0NlcVi0e7du+scZ7PZVFZWpq1btyo1NVUTJkyQdCa0JiQkqLCwUJmZmXrssceqrWu1WhUSElKt38/PzwywkszLf8966623NGPGDG3YsEFdu3Y1+318fCRJhw4dkq+vr9l/6NChWu+ddXZ2lrOzc537CAAAAADnw0xrA/Py8lJcXJySkpJUVlZWbfmxY8ckSR07dpTVatXatWuVlZWl6OhoSZK/v7/8/f01e/ZsVVZWXtD9rE2bNlVISIjZfh9a33zzTb322mtKTk7WLbfcYrdeUFCQfHx8lJKSYvYVFxcrMzNTvXv3vpDdBwAAAIALQmhtBElJSTp16pR69uyplStXKicnR9nZ2ZozZ45dCLTZbJo3b55CQkLs7ieNjo7W3LlzzQc2nevIkSMqKCiwa3W9mmbmzJmaPHmyFi1apMDAQHOd0tJSSZLFYtHTTz+t119/XWvXrtVPP/2khx56SH5+fho8ePDlOzAAAAAAcA5CayMIDg7W9u3bZbPZlJiYqBtuuEH9+/dXSkqK5s+fb46z2WwqKSkx72c9Kzo6WiUlJbXOssbGxsrX19eurVmzptZ65s+fr8rKSt17771267z11lvmmOeee07jxo3T6NGj1aNHD5WWlio5OfmS7nsFAAAAgPPhPa1oELynFbi68J5WAABwpfCeVgAAAADAHwahFQAAAADgsAitAAAAAACHRWgFAAAAADispo1dAK4tRbuer9fN1gAAAAAgMdMKAAAAAHBghFYAAAAAgMMitAIAAAAAHBahFQAAAADgsAitAAAAAACHxdOD0aA8Os+Umrg0dhkAriBj/+TGLgEAAPyBMNMKAAAAAHBYhFYAAAAAgMMitAIAAAAAHBahFQAAAADgsAitAAAAAACHRWgFAAAAADgsQusVUFBQoHHjxik4OFjOzs6yWq0aNGiQUlJSNHToUMXHx9uNT05OlsVi0ZQpU+z6p0yZog4dOkiS8vLyZLFYamybN2+utZaYmJga17njjjvMMaWlpXriiSfUvn17tWjRQp07d9b7779vLq/rsz///PPLcMQAAAAAoGa8p/Uyy8vLU9++feXp6alZs2YpIiJCVVVVWrduncaOHatnnnlG48eP18mTJ9W06ZnDn5qaKqvVqrS0NLttpaamymaz2fVt2LBBXbp0setr06ZNrfWsWrVKlZWV5tdHjhxRt27dNGTIELPv2Wef1TfffKO///3vCgwM1L/+9S+NGTNGfn5+uvPOO2W1WpWfn2+33b/97W+aNWuWBg4ceEHHBwAAAAAuBKH1MhszZowsFou2bNmili1bmv1dunRRQkKCDh8+rNLSUm3btk29evWSJKWlpWnixIlKTExUeXm5XFxcVF5erszMTD388MN222/Tpo18fHzqXY+Xl5fd10uXLpWrq6tdaP3+++81YsQIxcTESJJGjx6tDz74QFu2bNGdd94pJyenap+5evVq3XfffXJzc6t3LQAAAABwobg8+DIqLCxUcnKyxo4daxdYz/L09FRYWJj8/PyUmpoqSSopKdH27ds1ZMgQBQYGKiMjQ9KZIFlRUVFtpvVSLVy4UEOHDrWrr0+fPlq7dq0OHjwowzCUmpqqX375RQMGDKhxGz/88IOysrI0atSoWj+noqJCxcXFdg0AAAAALhSh9TLKzc2VYRgKDw+vc5zNZjMvBf7uu+8UFhYmb29vRUVFmf1paWkKCgpSQECA3bp9+vSRm5ubXauvLVu2aOfOnXrkkUfs+ufOnavOnTurffv2at68ueLj45WUlKSoqKgat7Nw4UJdf/316tOnT62fNX36dHl4eJjNarXWu04AAAAAOIvQehkZhlGvcTExMUpPT1dVVZXS0tLMy3Kjo6PtQmtNs6zLli1TVlaWXZOk/fv32wXZadOmVVt34cKFioiIUM+ePe36586dq82bN2vt2rX64YcfNHv2bI0dO1YbNmyoto0TJ07oH//4R52zrJI0adIkFRUVme3AgQP1ODIAAAAAYI97Wi+j0NBQWSwW7d69u85xNptNZWVl2rp1q1JTUzVhwgRJZ0JrQkKCCgsLlZmZqccee6zaularVSEhIdX6/fz8zAArVb+XtaysTEuXLtXUqVPt+k+cOKEXXnhBq1evNp8o3LVrV2VlZemtt95SbGys3fgVK1bo+PHjeuihh+rcR2dnZzk7O9c5BgAAAADOh5nWy8jLy0txcXFKSkpSWVlZteXHjh2TJHXs2FFWq1Vr165VVlaWoqOjJUn+/v7y9/fX7NmzVVlZeUH3szZt2lQhISFmOze0fv7556qoqNBf/vIXu/6qqipVVVWpSRP7bwUnJyedPn262ucsXLhQd955p7y9vetdGwAAAABcLGZaL7OkpCT17dtXPXv21NSpU9W1a1edPHlS69ev1/z585WdnS3pzGzrvHnzFBISonbt2pnrR0dHa+7cueYDm8515MgRFRQU2PV5enrKxcWlzroWLlyowYMHV3s9jru7u6KjozVhwgS1aNFCAQEB+vbbb/XJJ5/o7bffthubm5urjRs36quvvrqgYwIAAAAAF4uZ1sssODhY27dvl81mU2Jiom644Qb1799fKSkpmj9/vjnOZrOppKTEvJ/1rOjoaJWUlNQ6yxobGytfX1+7tmbNmjpr2rNnjzZt2lTrfahLly5Vjx49NHz4cHXu3FkzZszQG2+8occff9xu3KJFi9S+fftanyoMAAAAAJebxajv04OAS1BcXCwPDw/J/wWpSd2zwgCubsb+yY1dAgAAcGBns0FRUZHc3d3PO56ZVgAAAACAwyK0AgAAAAAcFqEVAAAAAOCwCK0AAAAAAIdFaAUAAAAAOCze04oGVbTr+Xo9IQwAAAAAJGZaAQAAAAAOjNAKAAAAAHBYhFYAAAAAgMMitAIAAAAAHBYPYkKD8ug8U2ri0thlALiGGfsnN3YJAADgAjDTCgAAAABwWIRWAAAAAIDDIrQCAAAAABwWoRUAAAAA4LAIrQAAAAAAh0VoBQAAAAA4LEIrAAAAAMBhEVqvgIKCAo0bN07BwcFydnaW1WrVoEGDlJKSoqFDhyo+Pt5ufHJysiwWi6ZMmWLXP2XKFHXo0EGSlJeXJ4vFUmPbvHlzrbX8/PPP+vOf/6zAwEBZLBa988471cZs3LhRgwYNkp+fnywWi9asWVNtzKFDhzRy5Ej5+fnJ1dVV8fHxysnJueBjAwAAAAAXgtB6meXl5al79+765ptvNGvWLP30009KTk6WzWbT2LFjZbPZlJ6erpMnT5rrpKamymq1Ki0tzW5bqampstlsdn0bNmxQfn6+XevevXut9Rw/flzBwcGaMWOGfHx8ahxTVlambt26KSkpqcblhmFo8ODB+vXXX/XFF19ox44dCggIUGxsrMrKyup5ZAAAAADgwjVt7AL+aMaMGSOLxaItW7aoZcuWZn+XLl2UkJCgw4cPq7S0VNu2bVOvXr0kSWlpaZo4caISExNVXl4uFxcXlZeXKzMzUw8//LDd9tu0aVNr+KxJjx491KNHD0nSxIkTaxwzcOBADRw4sNZt5OTkaPPmzdq5c6e6dOkiSZo/f758fHy0ZMkSPfLII/WuBwAAAAAuBDOtl1FhYaGSk5M1duxYu8B6lqenp8LCwuTn56fU1FRJUklJibZv364hQ4YoMDBQGRkZkqTvv/9eFRUV1WZaG0NFRYUkycXFxexr0qSJnJ2dtWnTplrXKS4utmsAAAAAcKEIrZdRbm6uDMNQeHh4neNsNpt5KfB3332nsLAweXt7KyoqyuxPS0tTUFCQAgIC7Nbt06eP3Nzc7NqVFh4erg4dOmjSpEk6evSoKisrNXPmTP3222/Kz8+vcZ3p06fLw8PDbFar9YrXCQAAAOCPh9B6GRmGUa9xMTExSk9PV1VVldLS0hQTEyNJio6OtgutNc2yLlu2TFlZWXZNkvbv328XZKdNm3Y5dkmS1KxZM61atUq//PKLvLy85OrqqtTUVA0cOFBNmtT8LTRp0iQVFRWZ7cCBA5etHgAAAADXDu5pvYxCQ0NlsVi0e/fuOsfZbDaVlZVp69atSk1N1YQJEySdCa0JCQkqLCxUZmamHnvssWrrWq1WhYSEVOv38/MzA6wkeXl5XdrOnKN79+7KyspSUVGRKisr5e3trcjISN1yyy01jnd2dpazs/NlrQEAAADAtYeZ1svIy8tLcXFxSkpKqvGpuseOHZMkdezYUVarVWvXrlVWVpaio6MlSf7+/vL399fs2bNVWVl5QfezNm3aVCEhIWa73KH1LA8PD3l7eysnJ0fbtm3TXXfddUU+BwAAAAAkZlovu6SkJPXt21c9e/bU1KlT1bVrV508eVLr16/X/PnzlZ2dLenMbOu8efMUEhKidu3ametHR0dr7ty55gObznXkyBEVFBTY9Xl6eto9JOn3KisrtWvXLvPfBw8eVFZWltzc3MwZ29LSUuXm5prr7Nu3T1lZWfLy8jLfE/v555/L29tbHTp00E8//aSnnnpKgwcP1oABAy7haAEAAABA3ZhpvcyCg4O1fft22Ww2JSYm6oYbblD//v2VkpKi+fPnm+NsNptKSkrM+1nPio6OVklJSa2zrLGxsfL19bVra9asqbWe//3f/9VNN92km266Sfn5+Xrrrbd000032b2mZtu2beYYSXr22Wd100036eWXXzbH5Ofn68EHH1R4eLiefPJJPfjgg1qyZMlFHCEAAAAAqD+LUd+nBwGXoLi4WB4eHpL/C1KTmmeFAaAhGPsnN3YJAABc085mg6KiIrm7u593PDOtAAAAAACHRWgFAAAAADgsQisAAAAAwGERWgEAAAAADotX3qBBFe16vl43WwMAAACAxEwrAAAAAMCBEVoBAAAAAA6L0AoAAAAAcFiEVgAAAACAw+JBTGhQHp1nSk1cGrsMALjijP2TG7sEAAD+EJhpBQAAAAA4LEIrAAAAAMBhEVoBAAAAAA6L0AoAAAAAcFiEVgAAAACAwyK0AgAAAAAcFqEVAAAAAOCwCK2NoKCgQOPGjVNwcLCcnZ1ltVo1aNAgpaSkaOjQoYqPj7cbn5ycLIvFoilTptj1T5kyRR06dJAk5eXlyWKx1Ng2b95cZz3vvPOOOnXqpBYtWshqteqZZ55ReXm5ubykpERPP/20AgIC1KJFC/Xp00dbt269PAcDAAAAAOrQtLELuNbk5eWpb9++8vT01KxZsxQREaGqqiqtW7dOY8eO1TPPPKPx48fr5MmTatr0zOlJTU2V1WpVWlqa3bZSU1Nls9ns+jZs2KAuXbrY9bVp06bWev7xj39o4sSJWrRokfr06aNffvlFI0eOlMVi0dtvvy1JeuSRR7Rz5059+umn8vPz09///nfFxsZq165d8vf3vwxHBQAAAABqRmhtYGPGjJHFYtGWLVvUsmVLs79Lly5KSEjQ4cOHVVpaqm3btqlXr16SpLS0NE2cOFGJiYkqLy+Xi4uLysvLlZmZqYcffthu+23atJGPj0+96/n+++/Vt29fPfDAA5KkwMBADRs2TJmZmZKkEydOaOXKlfriiy8UFRUl6cwM7//9v/9X8+fP1+uvv35JxwMAAAAA6sLlwQ2osLBQycnJGjt2rF1gPcvT01NhYWHy8/NTamqqpDOX5m7fvl1DhgxRYGCgMjIyJJ0JmxUVFdVmWi9Unz599MMPP2jLli2SpF9//VVfffWVbr/9dknSyZMnderUKbm4uNit16JFC23atKnW7VZUVKi4uNiuAQAAAMCFIrQ2oNzcXBmGofDw8DrH2Ww281Lg7777TmFhYfL29lZUVJTZn5aWpqCgIAUEBNit26dPH7m5udm1ujzwwAOaOnWq+vXrp2bNmqljx46KiYnRCy+8IElq1aqVevfurddee03/+7//q1OnTunvf/+7MjIylJ+fX+t2p0+fLg8PD7NZrdbzHB0AAAAAqI7Q2oAMw6jXuJiYGKWnp6uqqkppaWmKiYmRJEVHR9uF1ppmWZctW6asrCy7Jkn79++3C7LTpk0ztzNt2jTNmzdP27dv16pVq/TPf/5Tr732mrnNTz/9VIZhyN/fX87OzpozZ46GDRumJk1q//aZNGmSioqKzHbgwIF67TsAAAAA/B73tDag0NBQWSwW7d69u85xNptNZWVl2rp1q1JTUzVhwgRJZ0JrQkKCCgsLlZmZqccee6zaularVSEhIdX6/fz8zAArSV5eXpKkyZMn68EHH9QjjzwiSYqIiFBZWZlGjx6tF198UU2aNFHHjh317bffqqysTMXFxfL19dX999+v4ODgWvfB2dlZzs7O5z0mAAAAAFAXZlobkJeXl+Li4pSUlKSysrJqy48dOyZJ6tixo6xWq9auXausrCxFR0dLkvz9/eXv76/Zs2ersrLygu5nbdq0qUJCQsx2NrQeP3682oypk5OTpOozwy1btpSvr6+OHj2qdevW6a677qr35wMAAADAxWCmtYElJSWpb9++6tmzp6ZOnaquXbvq5MmTWr9+vebPn6/s7GxJZ2Zb582bp5CQELVr185cPzo6WnPnzjUf2HSuI0eOqKCgwK7P09Oz2oOUzho0aJDefvtt3XTTTYqMjFRubq4mT56sQYMGmeF13bp1MgxDnTp1Um5uriZMmKDw8PBqTy4GAAAAgMuN0NrAgoODtX37dr3xxhtKTExUfn6+vL291b17d82fP98cZ7PZ9Mknn5j3s54VHR2tjz76yHxFzbliY2Or9S1ZskRDhw6tcfxLL70ki8Wil156SQcPHpS3t7cGDRqkN954wxxTVFSkSZMm6bfffpOXl5f+/Oc/64033lCzZs0u4ggAAAAAQP1ZjPo+HQi4BMXFxfLw8JD8X5Ca1DzrCwB/JMb+yY1dAgAADulsNigqKpK7u/t5x3NPKwAAAADAYRFaAQAAAAAOi9AKAAAAAHBYhFYAAAAAgMPi6cFoUEW7nq/XzdYAAAAAIDHTCgAAAABwYIRWAAAAAIDDIrQCAAAAABwWoRUAAAAA4LAIrQAAAAAAh8XTg9GgPDrPlJq4NHYZAAAAgMMz9k9u7BIcAjOtAAAAAACHRWgFAAAAADgsQisAAAAAwGERWgEAAAAADovQCgAAAABwWITWP7jAwEC98847F7ROenq6IiIi1KxZMw0ePPiK1AUAAAAA9dGooXXkyJGyWCyaMWOGXf+aNWtksVi0cuVKOTk56eDBgzWuHxoaqmeffVaSFBMTI4vFIovFImdnZ/n7+2vQoEFatWpVvetZuXKlYmJi5OHhITc3N3Xt2lVTp05VYWGhdu/eLYvFos2bN9ut06tXL7m4uKi8vNzsKy8vl4uLixYuXGi3n+e2+Pj4etd2sbZu3arRo0df0DrPPvusbrzxRu3bt0+LFy++MoUBAAAAQD00+kyri4uLZs6cqaNHj1Zbduedd6pNmzb6+OOPqy3buHGjcnNzNWrUKLPv0UcfVX5+vvbu3auVK1eqc+fOGjp0aL1C24svvqj7779fPXr00Ndff62dO3dq9uzZ+ve//61PP/1U4eHh8vHxUVpamrlOSUmJtm/fLm9vb7swm5GRoYqKCv3pT38y++Lj45Wfn2/XlixZUt/DdNG8vb3l6up6Qevs3btXf/rTn9S+fXt5enpemcIAAAAAoB4aPbTGxsbKx8dH06dPr7asWbNmevDBB2uc7Vu0aJEiIyPVpUsXs8/V1VU+Pj5q3769evXqpZkzZ+qDDz7QggULtGHDhlpr2LJli6ZNm6bZs2dr1qxZ6tOnjwIDA9W/f3+tXLlSI0aMkCTZbDa70Lpp0yaFhYVp0KBBdv1paWkKCAhQUFCQ2efs7CwfHx+71rp161prysvLk8Vi0apVq2Sz2eTq6qpu3bopIyPDbtzKlSvVpUsXOTs7KzAwULNnz7Zbfu7lwRaLRR9++KHuvvtuubq6KjQ0VGvXrrX7zCNHjighIUEWi8U89t9++6169uwpZ2dn+fr6auLEiTp58mSt9QMAAADA5dDoodXJyUnTpk3T3Llz9dtvv1VbPmrUKOXk5Gjjxo1mX2lpqVasWGE3y1qbESNGqHXr1nVeJvzZZ5/Jzc1NY8aMqXH52dlGm82mTZs2mWEtNTVVMTExio6OVmpqqjk+NTVVNpvtvLXVx4svvqjx48crKytLYWFhGjZsmPn5P/zwg+677z4NHTpUP/30k6ZMmaLJkyef95LeV199Vffdd59+/PFH3X777Ro+fLgKCwtltVqVn58vd3d3vfPOO8rPz9f999+vgwcP6vbbb1ePHj3073//W/Pnz9fChQv1+uuv1/oZFRUVKi4utmsAAAAAcKEaPbRK0t13360bb7xRr7zySrVlnTt3Vq9evbRo0SKzb/ny5TIMQ0OHDj3vtps0aaKwsDDl5eXVOiYnJ0fBwcFq1qxZnduy2WwqKyvT1q1bJZ2ZUY2OjlZUVJQyMzNVXl6uEydOaMuWLdVC65dffik3Nze7Nm3atPPWP378eN1xxx0KCwvTq6++qv/85z/Kzc2VJL399tu67bbbNHnyZIWFhWnkyJF64oknNGvWrDq3OXLkSA0bNkwhISGaNm2aSktLtWXLFjk5OcnHx0cWi0UeHh7y8fFRixYtNG/ePFmtVr333nsKDw/X4MGD9eqrr2r27Nk6ffp0jZ8xffp0eXh4mM1qtZ53XwEAAADgXA4RWiVp5syZ+vjjj5WdnV1tWUJCglasWKGSkhJJZy4NHjJkiFq1alWvbRuGIYvFIkkaOHCgGRrPXlpsGEa9thMSEqL27dsrLS1NxcXF2rFjh6Kjo+Xr66sOHTooIyPDvJ/13NBqs9mUlZVl1x5//HFJ0uOPP24XZn+va9eu5r99fX0lSYcPH5YkZWdnq2/fvnbj+/btq5ycHJ06darW/fj9Nlu2bCl3d3dzmzXJzs5W7969zWN49nNKS0trnB2XpEmTJqmoqMhsBw4cqHX7AAAAAFCbpo1dwFlRUVGKi4vTpEmTNHLkSLtlQ4cO1TPPPKPly5crKipK6enpNd4DW5NTp04pJydHPXr0kCR9+OGHOnHihCSZM6thYWHatGmTqqqqzjvbGhMTo9TUVHXt2lWhoaFq27atJJmXCBuGoZCQkGoziy1btlRISEiN25w6darGjx9f47Lf13M2NNY2u1lf5+6jxWK55G2ey9nZWc7Ozpd1mwAAAACuPQ4TWiVpxowZuvHGG9WpUye7/latWmnIkCFatGiR9u7dq7CwMN1666312ubHH3+so0eP6s9//rMkyd/fv9qYBx54QHPmzNG8efP01FNPVVt+7Ngxu/tan3zySXXu3FkxMTHmmKioKC1YsECGYVzw/axt27Y1w++FuP7665Wenm7Xl56errCwMDk5OV3w9ur6nJUrV9rNWKenp6tVq1Zq3779ZfscAAAAADiXQ4XWiIgIDR8+XHPmzKm2bNSoUbr11luVnZ2t559/vsb1jx8/roKCAp08eVK//fabVq9erf/5n//RX//61zqDZGRkpJ577jklJibq4MGDuvvuu+Xn56fc3Fy9//776tevnxlmz97XumjRIi1YsMDcRnR0tB555BFJqvGBThUVFSooKLDra9q0qa677rrzH5haJCYmqkePHnrttdd0//33KyMjQ++9957mzZt30dusyZgxY/TOO+9o3LhxeuKJJ7Rnzx698sorevbZZ9WkicNcYQ4AAADgD8jhEsfUqVNrvFS1X79+6tSpk4qLi/XQQw/VuO6CBQvk6+urjh076p577tGuXbu0bNmyeoW4mTNn6h//+IcyMzMVFxenLl266Nlnn1XXrl3NV95IUlBQkAICAlRSUqLo6Gizv0OHDvLz81NlZaXdDOxZycnJ8vX1tWv9+vWrxxGp3c0336zly5dr6dKluuGGG/Tyyy9r6tSp1S6vvlT+/v766quvtGXLFnXr1k2PP/64Ro0apZdeeumyfg4AAAAAnMti1PcpRMAlKC4uloeHh+T/gtTEpbHLAQAAAByesX9yY5dwRZzNBkVFRXJ3dz/veIebaQUAAAAA4CxCKwAAAADAYRFaAQAAAAAOi9AKAAAAAHBYDvXKG/zxFe16vl43WwMAAACAxEwrAAAAAMCBEVoBAAAAAA6L0AoAAAAAcFiEVgAAAACAwyK0AgAAAAAcFk8PRoPy6DxTauLS2GUAAAAAVz1j/+TGLqFBMNMKAAAAAHBYhFYAAAAAgMMitAIAAAAAHBahFQAAAADgsAitAAAAAACHRWi9hixevFienp6NXQYAAAAA1JtDhdaRI0fKYrFoxowZdv1r1qyRxWLRypUr5eTkpIMHD9a4fmhoqJ599llJUkxMjCwWiywWi5ydneXv769BgwZp1apV9a5n5cqViomJkYeHh9zc3NS1a1dNnTpVhYWF2r17tywWizZv3my3Tq9eveTi4qLy8nKzr7y8XC4uLlq4cKHdfp7b4uPjz1vTgQMHlJCQID8/PzVv3lwBAQF66qmndOTIEbtxgYGBeuedd+q9rwAAAADgiBwqtEqSi4uLZs6cqaNHj1Zbduedd6pNmzb6+OOPqy3buHGjcnNzNWrUKLPv0UcfVX5+vvbu3auVK1eqc+fOGjp0qEaPHn3eOl588UXdf//96tGjh77++mvt3LlTs2fP1r///W99+umnCg8Pl4+Pj9LS0sx1SkpKtH37dnl7e9uF2YyMDFVUVOhPf/qT2RcfH6/8/Hy7tmTJkjpr+vXXX3XLLbcoJydHS5YsUW5urt5//32lpKSod+/eKiwsPO9+XQlVVVWN8rkAAAAA/vgcLrTGxsbKx8dH06dPr7asWbNmevDBB7V48eJqyxYtWqTIyEh16dLF7HN1dZWPj4/at2+vXr16aebMmfrggw+0YMECbdiwodYatmzZomnTpmn27NmaNWuW+vTpo8DAQPXv318rV67UiBEjJEk2m80utG7atElhYWEaNGiQXX9aWpoCAgIUFBRk9jk7O8vHx8eutW7dus5jM3bsWDVv3lz/+te/FB0drQ4dOmjgwIHasGGDDh48qBdffFHSmVnm//znP3rmmWfMWdzfW7duna6//nq5ubmZ4fn3PvzwQ11//fVycXFReHi45s2bZy7Ly8uTxWLRsmXLFB0dLRcXF3322Wd11g0AAAAAF8vhQquTk5OmTZumuXPn6rfffqu2fNSoUcrJydHGjRvNvtLSUq1YscJulrU2I0aMUOvWreu8TPizzz6Tm5ubxowZU+Pys/eF2mw2bdq0SSdPnpQkpaamKiYmRtHR0UpNTTXHp6amymaznbe2uhQWFmrdunUaM2aMWrRoYbfMx8dHw4cP17Jly2QYhlatWqX27dtr6tSp5izuWcePH9dbb72lTz/9VBs3btT+/fs1fvx4u31/+eWX9cYbbyg7O1vTpk3T5MmTq81uT5w4UU899ZSys7MVFxdXrd6KigoVFxfbNQAAAAC4UA4XWiXp7rvv1o033qhXXnml2rLOnTurV69eWrRokdm3fPlyGYahoUOHnnfbTZo0UVhYmPLy8modk5OTo+DgYDVr1qzObdlsNpWVlWnr1q2SzsyoRkdHKyoqSpmZmSovL9eJEye0ZcuWaqH1yy+/lJubm12bNm1anTUZhqHrr7++xuXXX3+9jh49qv/+97/y8vKSk5OTWrVqZc7inlVVVaX3339ft9xyi26++WY98cQTSklJMZe/8sormj17tu655x4FBQXpnnvu0TPPPKMPPvjA7vOefvppc4yvr2+1eqZPny4PDw+zWa3WOo8lAAAAANTEIUOrJM2cOVMff/yxsrOzqy1LSEjQihUrVFJSIunMpcFDhgxRq1at6rVtwzDMS2YHDhxohsazlxYbhlGv7YSEhKh9+/ZKS0tTcXGxduzYoejoaPn6+qpDhw7KyMgw72c9N7TabDZlZWXZtccff1yS9Pjjj9uF2XNrvxSurq7q2LGj+bWvr68OHz4sSSorK9PevXs1atQou89//fXXtXfvXrvt3HLLLXV+zqRJk1RUVGS2AwcOXFLdAAAAAK5NTRu7gNpERUUpLi5OkyZN0siRI+2WDR06VM8884yWL1+uqKgopaen13gPbE1OnTqlnJwc9ejRQ9KZ+zdPnDghSebMalhYmDZt2qSqqqrzzrbGxMQoNTVVXbt2VWhoqNq2bStJ5iXChmEoJCSk2kxjy5YtFRISUuM2p06danfJrnQmIFssFmVnZ+vuu++utk52drZat24tb2/vOus9d38sFosZhEtLSyVJCxYsUGRkpN04JyenavXXxdnZWc7OznWOAQAAAIDzcdjQKkkzZszQjTfeqE6dOtn1t2rVSkOGDNGiRYu0d+9ehYWF6dZbb63XNj/++GMdPXpUf/7znyVJ/v7+1cY88MADmjNnjubNm6ennnqq2vJjx47Z3df65JNPqnPnzoqJiTHHREVFacGCBTIM44LvZ23btq0Zfs9q06aN+vfvr3nz5umZZ56xu6+1oKBAn332mR566CFzBrl58+Y6derUBX1uu3bt5Ofnp19//VXDhw+/oHUBAAAA4Epw6NAaERGh4cOHa86cOdWWjRo1Srfeequys7P1/PPP17j+8ePHVVBQoJMnT+q3337T6tWr9T//8z/661//WmeQjIyM1HPPPafExEQdPHhQd999t/z8/MxXzPTr188Ms2fva120aJEWLFhgbiM6OlqPPPKIJNX4QKeKigoVFBTY9TVt2lTXXXddrXW999576tOnj+Li4vT6668rKChIP//8syZMmCB/f3+98cYb5tjAwEBt3LhRQ4cOlbOzc53b/b1XX31VTz75pDw8PBQfH6+Kigpt27ZNR48eNd+BCwAAAAANxWHvaT1r6tSpOn36dLX+fv36qVOnTiouLtZDDz1U47oLFiyQr6+vOnbsqHvuuUe7du3SsmXL7F7hUpuZM2fqH//4hzIzMxUXF6cuXbro2WefVdeuXc1X3khSUFCQAgICVFJSoujoaLO/Q4cO8vPzU2Vlpd0M7FnJycny9fW1a/369auzptDQUG3btk3BwcG677771LFjR40ePVo2m00ZGRny8vIyx06dOlV5eXnq2LHjeS8Z/r1HHnlEH374oT766CNFREQoOjpaixcvtntdDwAA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dOrUKS1fvlyStGzZMjVp0kT333+/3bhWrVopKyvLrn344YeSpG7duum2225TRESEhgwZogULFujo0aOXd4cAAA6P0AoAAOotNDRUFotFu3fvrnOcu7u77r33Xn300UeSzlwafN9991WbJW3SpIlCQkLsmr+/vyTJyclJ69ev19dff63OnTtr7ty56tSpk/bt23dldg4A4JAIrQAAoN68vLwUFxenpKQklZWVVVt+7Ngx89+jRo3Spk2b9OWXX+r777+3ewBTfVksFvXt21evvvqqduzYoebNm2v16tWXsgsAgKsMTw8GAAAXJCkpSX379lXPnj01depUde3aVSdPntT69es1f/58ZWdnS5KioqIUEhKihx56SOHh4erTp0+1bRmGoYKCgmr9bdu21datW5WSkqIBAwaobdu2yszM1H//+19df/31V3wfAQCOg9AKAAAuSHBwsLZv36433nhDiYmJys/Pl7e3t7p376758+eb4ywWixISEvTCCy9o0qRJNW6ruLhYvr6+1frz8/Pl7u6ujRs36p133lFxcbECAgI0e/Zs80FNAIBrg8XgufEAAAAAAAfFPa0AAAAAAIdFaAUAAAAAOCxCKwAAAADAYRFaAQAAAAAOi9AKAAAAAHBYhFYAAAAAgMMitAIAAAAAHBahFQAAAADgsAitAAAAAACHRWgFAAAAADgsQisAAAAAwGH9fyl2iIaZ6yT9AAAAAElFTkSuQmCC", "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-10-22T00:29:53.095910Z", "iopub.status.busy": "2024-10-22T00:29:53.095583Z", "iopub.status.idle": "2024-10-22T00:29:53.103837Z", "shell.execute_reply": "2024-10-22T00:29:53.103269Z" }, "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.2.2 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-10-22T00:29:53.105621Z", "iopub.status.busy": "2024-10-22T00:29:53.105303Z", "iopub.status.idle": "2024-10-22T00:29:53.109235Z", "shell.execute_reply": "2024-10-22T00:29:53.108695Z" }, "tags": [ "remove-input" ] }, "outputs": [ { "data": { "text/markdown": [ "This report is updated automatically every day, last generated on: **2024-10-22 00:29:53.106236**" ], "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.10" }, "vscode": { "interpreter": { "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" } } }, "nbformat": 4, "nbformat_minor": 5 }