diff --git a/2022-round-2/hrshshrm/nx_notebook.ipynb b/2022-round-2/hrshshrm/nx_notebook.ipynb new file mode 100644 index 0000000..483bffe --- /dev/null +++ b/2022-round-2/hrshshrm/nx_notebook.ipynb @@ -0,0 +1,182 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# An Explanatory Notebook" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import networkx as nx" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAt8AAAHHCAYAAABnZzSvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAABScklEQVR4nO3dd3gUVf/+8XtJSIGQhEBCKIGEJkU0AoL0buhgB32AIE2kCDyogEoTBDuigIgKiFgeQAULKEWKSlGkKUWIRERJaJIQSoDk/P7wl/2yZJPsxmQ2wffruvaCPTs785nZmdk7s2fP2owxRgAAAADyXRFPFwAAAAD8WxC+AQAAAIsQvgEAAACLEL4BAAAAixC+AQAAAIsQvgEAAACLEL4BAAAAixC+AQAAAIsQvgGgADpy5IgmTpyoPXv2eLoUAEAeInwjk5YtW6ply5b2+/Hx8bLZbFqwYIHHarLZbJo4caL9/oIFC2Sz2RQfH5/vy46NjVVkZKT9fsb2eOGFF/J92ZI0ceJE2Ww2S5Z1rZSUFPXv31/h4eGy2WwaMWKER+rIC9fuQ1cbP368brnlFl2+fFnR0dEaNWqUtcVd4/Lly7r33nu1e/du1a5dO1+XVRCO738i41zwww8/WLrcyMhIxcbGujxt586d87egHJbvaq2F1fr162Wz2bR06dI8m2dsbKwCAgJcmtaV96hr31sLgu+//16NGzdW8eLFZbPZtHPnTk+X9K/gVvjO2Jkybn5+fipXrpxiYmI0c+ZMnT17Nr/qLJB27typ//znP4qIiJCvr69CQkLUtm1bzZ8/X2lpafm23L1792rixImWBM+sfPHFF1kGmYLq/PnzmjhxotavX+/pUjIpqLU988wzWrBggQYPHqxFixapV69e+bq8yMhIh3PM1bf27dvnyzJPnTqlmTNnavbs2Vq0aJEuXLigqVOn5sm8Y2NjHdbB19dX1atX1/jx43Xx4sUsn/fYY4/Jy8tLixcvVpEiXCMpDArCeRmFy59//qmJEyd6LPBevnxZ99xzj06fPq2XX35ZixYtUqVKlbKcPj09Xc8995yioqLk5+enm266Se+//75Ly9q4caO6du2qiIgI+fn5KTw8XO3bt9e3336bV6tjl3HBKqtbQkKCpP+78JBxK1KkiEJCQtShQwdt3rw503yPHTumMWPGqFWrVipRooRsNluu37O9c/OkyZMnKyoqSpcvX1ZCQoLWr1+vESNG6KWXXtKKFSt000035aqYwuTNN9/UQw89pDJlyqhXr16qVq2azp49q7Vr16pfv346duyYxo0bly/L3rt3ryZNmqSWLVs6XJHNL5UqVdKFCxdUtGhRe9sXX3yhWbNmeSyA9+rVSz169JCvr6/Lzzl//rwmTZokSW5dfZg3b57S09PdLdEt2dX25JNPasyYMfm6/KysW7dOt912myZMmGDZMqOjo/Xf//43U3u5cuXyZXnPPvus7rrrLt18882677779OGHH8rf3z/P5u/r66s333xTkpSUlKTly5fr6aefVlxcnBYvXpxp+jNnzqhkyZJasWJFntaRFWfHN3J24MABhz+MrD4vo2C5cOGCvL2zj1RfffWVw/0///xTkyZNUmRkpKKjo/OxOufi4uL022+/ad68eerfv3+O0z/xxBOaPn26BgwYoFtvvVXLly/X/fffL5vNph49emT73F9++UVFihTRQw89pPDwcP31119699131bx5c33++ef5cnFlzpw5Tj+5CA4Odrjfs2dPdezYUWlpafrll180e/ZstWrVSt9//73q1Kljn+7AgQN69tlnVa1aNdWpU8dpQHdVrsJ3hw4dVL9+ffv9sWPHat26dercubO6du2qffv2WfKmkcEYo4sXL1q2zC1btuihhx5So0aN9MUXX6hEiRL2x0aMGKEffvhBP/30kyW15CQvtk3GpxwFiZeXl7y8vPJ1GefOnVPx4sU9Hkq8vb1zPKnnl+PHj6tWrVp5Nr8rV64oPT1dPj4+WU5Tvnx5/ec//3F73hmvl7uee+45+/+PHDni9vNz4u3t7bA+Dz/8sBo3bqz3339fL730ksqUKeMwfXBwsMaPH5/ndWTFiuPb6nO0Fdz5wx/uK2z7jCvHUHbnPU84fvy4pMxh1Jk//vhDL774ooYMGaLXXntNktS/f3+1aNFCjz76qO65555s35P79++fKeA//PDDqly5smbMmJEv4fvuu+9W6dKlc5yubt26DufoZs2aqUOHDpozZ45mz55tb69Xr55OnTqlkJAQLV26VPfcc0+ua8uzzzNbt26tp556Sr/99pveffddh8f279+vu+++WyEhIfLz81P9+vW1YsWKTPPYvXu3WrRoIX9/f1WoUEFTpkzR/PnzM/Wbyug/9+WXX6p+/fry9/fX3LlzJf191WjEiBH2riBVq1bVs88+m+nKZXp6umbMmKHatWvLz89PZcqU0aBBg/TXX3/luK6TJk2SzWbT4sWLHYJ3hvr16zv0r3N1WRnr9c0336hBgwby8/NT5cqV9c4779inWbBggf0Fb9Wqlf3jkoyPPrLbNvPnz1fr1q0VFhYmX19f1apVS3PmzMlxfa/tExobG6tZs2ZJksNHNsYYRUZGqlu3bpnmcfHiRQUFBWnQoEHZLis1NVUjR45UaGioSpQooa5du+ro0aOZpnPWn+6HH35QTEyMSpcuLX9/f0VFRenBBx+0r0NoaKik/3v9ru6jl9G3Ly4uTh07dlSJEiX0wAMP2B/L6krWyy+/rEqVKsnf318tWrTI9EdXVn38rp5nTrU56/N95coVPf3006pSpYp8fX0VGRmpcePGKTU11WE6V/YpZzL6Tx4+fFiff/65vaaM7X38+HH169dPZcqUkZ+fn26++WYtXLjQYR5X942fMWOGvda9e/dmu2xXZPd6uboPSdKOHTvUoUMHBQYGKiAgQG3atNGWLVscprl8+bImTZqkatWqyc/PT6VKlVLTpk21evXqXNVus9nUtGlTGWP066+/Ojy2cuVKNWvWTMWLF1eJEiXUqVMn/fzzz07X/Y8//lD37t0VEBCg0NBQjR492t7dzZ1j0Z0+33lxjnb1PJQxj6+++krR0dHy8/NTrVq19NFHHzmtLTU1VaNGjVJoaKiKFy+uO+64QydOnMh2fVasWCGbzabdu3fb25YtWyabzaY777zTYdqaNWvqvvvuc6gv4zyf03k5g7vHYQZX30OMMZoyZYoqVKigYsWKqVWrVpn2nwyuvpaSa/ulMxnn6Y0bN2rQoEEqVaqUAgMD1bt37yzf/5ztM7/++qvuuecehYSEqFixYrrtttv0+eefO11mWlqaxo0bp/DwcBUvXlxdu3bV77//7jDNpk2bdM8996hixYry9fVVRESERo4cqQsXLjid56+//qqYmBgVL15c5cqV0+TJk2WMcZgmu++UZLj6/WD9+vW69dZbJUl9+/a17zMLFizQhAkTVLRoUaf778CBAxUcHJxttzXp708tM16z4OBgdevWTfv27bM/HhsbqxYtWkiS7rnnHtlstmw/EV6+fLkuX76shx9+2GGdBw8erKNHj+bqKnCxYsUUGhqqM2fOuP3c/NSsWTNJf38ycLUSJUooJCQkT5aRp5fTevXqpXHjxumrr77SgAEDJEk///yzmjRpovLly2vMmDEqXry4/ve//6l79+5atmyZ7rjjDkl//1WVcdIaO3asihcvrjfffDPLqwsHDhxQz549NWjQIA0YMEA33HCDzp8/rxYtWuiPP/7QoEGDVLFiRX333XcaO3asjh07phkzZtifP2jQIC1YsEB9+/bV8OHDdfjwYb322mvasWOHvv322yyvdp4/f15r165V8+bNVbFiRZe2izvLOnTokO6++27169dPffr00dtvv63Y2FjVq1dPtWvXVvPmzTV8+HDNnDlT48aNU82aNSXJ/m9W20b6+yOY2rVrq2vXrvL29tann36qhx9+WOnp6RoyZIhL65KxPn/++adWr16tRYsW2dttNpv+85//6LnnntPp06cddtJPP/1UycnJOV7R7N+/v959913df//9aty4sdatW6dOnTrlWNPx48d1++23KzQ0VGPGjFFwcLDi4+Ptb9ShoaGaM2eOBg8erDvuuMP+xnp1F6krV64oJiZGTZs21QsvvKBixYplu8x33nlHZ8+e1ZAhQ3Tx4kW98sorat26tfbs2ZPpamZ2XKntWv3799fChQt1991367///a+2bt2qadOmad++ffr4448dps1pn3KmZs2aWrRokUaOHKkKFSrYu4GEhobqwoULatmypQ4dOqShQ4cqKipKS5YsUWxsrM6cOaNHHnnEYV7z58/XxYsXNXDgQPt3I7Jz+fJlnTx5MlN78eLFHa6CZfV6uboP/fzzz2rWrJkCAwP12GOPqWjRopo7d65atmypDRs2qGHDhpL+/uNn2rRp6t+/vxo0aKDk5GT98MMP+vHHH9WuXbts1yUrGeGmZMmS9rZFixapT58+iomJ0bPPPqvz589rzpw5atq0qXbs2OHwB2BaWppiYmLUsGFDvfDCC1qzZo1efPFFValSRYMHD86TY/FaeXGOltw7Dx08eFD33XefHnroIfXp00fz58/XPffco1WrVmXa9sOGDVPJkiU1YcIExcfHa8aMGRo6dKg+/PDDLNepadOm9nCYcbxt2rRJRYoU0TfffGOf7sSJE9q/f7+GDh3qdD6unJdzcxxmcPU9ZPz48ZoyZYo6duyojh076scff9Ttt9+uS5cuOczPndfSnf0yK0OHDlVwcLAmTpyoAwcOaM6cOfrtt9/sf+RncLbPJCYmqnHjxjp//ryGDx+uUqVKaeHCheratauWLl1qzxAZpk6dKpvNpscff1zHjx/XjBkz1LZtW+3cudN+/liyZInOnz+vwYMHq1SpUtq2bZteffVVHT16VEuWLHGYX1pamtq3b6/bbrtNzz33nFatWqUJEyboypUrmjx5co7rnpWaNWtq8uTJGj9+vAYOHGgPfI0bN1bTpk01efJkffjhhw773KVLl7R06VLddddd2V5pX7NmjTp06KDKlStr4sSJunDhgl599VU1adJEP/74oyIjIzVo0CCVL19ezzzzjIYPH65bb7012/etHTt2qHjx4g77tCQ1aNDA/njTpk1zXO/k5GRdunRJJ0+e1DvvvKOffvop37ronj59OlObt7d3jlf6nZ2f85xxw/z5840k8/3332c5TVBQkLnlllvs99u0aWPq1KljLl68aG9LT083jRs3NtWqVbO3DRs2zNhsNrNjxw5726lTp0xISIiRZA4fPmxvr1SpkpFkVq1a5bDsp59+2hQvXtz88ssvDu1jxowxXl5e5siRI8YYYzZt2mQkmcWLFztMt2rVKqftV9u1a5eRZB555JEsp7maO8vKWK+NGzfa244fP258fX3Nf//7X3vbkiVLjCTz9ddfZ1peVtvGGGPOnz+fqS0mJsZUrlzZoa1FixamRYsW9vuHDx82ksz8+fPtbUOGDDHOdp8DBw4YSWbOnDkO7V27djWRkZEmPT0903My7Ny500gyDz/8sEP7/fffbySZCRMm2Nsy9sWM/eLjjz/Ocd88ceJEpvlk6NOnj5FkxowZ4/SxSpUq2e9nbA9/f39z9OhRe/vWrVuNJDNy5Eh727XbMqt5ZlfbhAkTHLZ1xnbq37+/w3SjR482ksy6devsba7uU1mpVKmS6dSpk0PbjBkzjCTz7rvv2tsuXbpkGjVqZAICAkxycrIx5v+2U2BgoDl+/HiOy7q6Xme3adOm2afL6vVyZx/q3r278fHxMXFxcfa2P//805QoUcI0b97c3nbzzTdn2gau6tOnjylevLg5ceKEOXHihDl06JB54YUXjM1mMzfeeKP9eDh79qwJDg42AwYMcHh+QkKCCQoKcmjPWPfJkyc7THvLLbeYevXq2e+7eiw6O76dyYtztDGun4cy5rFs2TJ7W1JSkilbtqzDe0zGuaBt27YO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fv31V3vXkObNm2vUqFFasmSJ0tLS1Lx582znk1+/Quvqe0jGcXfw4EGHK7UnTpzIdHXX1dcyr/bLgwcPqlWrVvb7KSkpOnbsmDp27JjjcytVqpTlcZrx+LXLupoxRocOHbJ/UrVnzx798ssvWrhwoXr37m2fLqtjOD09Xb/++qv94p2Ud/tgTvtM79691a1bN33//fdavHixbrnllhy/nJuxPbLaZqVLl87VkKzR0dF68803tW/fPofhZ7du3Wp/PDcuXLggY4zOnj2b5f7du3dvh25H+f1H2hNPPKF58+bpySef1KpVq/JlGXl22WjdunV6+umnFRUVZe83FhYWppYtW2ru3Ln2v46udvUwOjExMdq8ebPDLz2dPn06y7/2nbn33nu1efNmffnll5keO3PmjL1f0b333qu0tDQ9/fTTmaa7cuVKjsPeTJgwQcYY9erVy+GjkAzbt2+3D7v2T5flTMaB485zM666XH2VJSkpyWn/p7yooVevXtq7d68effRReXl55TgAv/T3+PGSNHPmTId2V8LCX3/9lekKUsbJIOOjsozRMPJqWKNPPvnE/p0FSdq2bZu2bt1qXw/p7zev/fv3O+zru3btyvSrXu7UlvGGde12eemllyTJpdFh/omOHTsqISHBYRSJK1eu6NVXX1VAQEC2/RHzm6v7kJeXl26//XYtX77c4QpKYmKi3nvvPTVt2tT+kfqpU6ccnhsQEKCqVava96uyZcuqbdu2DrecDBs2TMWKFdP06dMl/X3+CwwM1DPPPOP0Ows5DZmXndwci87kxTna3fPQn3/+6TB6T3Jyst555x1FR0c7vRKbW82aNdO6deu0bds2e/iOjo5WiRIlNH36dPn7+6tevXrZziM352VXuPoe0rZtWxUtWlSvvvqqw/Z1dv509bXMq/3yjTfecHj+nDlzdOXKFYdzZVY6duyobdu2OQxld+7cOb3xxhuKjIzM9DsEGaNQZVi6dKmOHTtmX5azfdAYo1deeSXLGjLGtc6Y9rXXXlPRokXVpk2bHOvPTk77TIcOHVS6dGk9++yz2rBhg0tXvcuWLavo6GgtXLjQYb4//fSTvvrqK5f+4HGmW7duKlq0qMO418YYvf766ypfvrwaN25sbz927Jj279/v8Jo768575swZLVu2TBEREVl2q5L+vpB79fm1SZMmuVoHVwUHB2vQoEH68ssv8+3XR3N15XvlypXav3+/rly5osTERK1bt06rV69WpUqVtGLFCochcGbNmqWmTZuqTp06GjBggCpXrqzExERt3rxZR48e1a5duyT9/XPK7777rtq1a6dhw4bZhz6qWLGiTp8+7dJVhUcffVQrVqxQ586d7UM4nTt3Tnv27NHSpUsVHx+v0qVLq0WLFho0aJCmTZumnTt36vbbb1fRokV18OBBLVmyRK+88kq2He0bN26sWbNm6eGHH1aNGjUcfuFy/fr1WrFihaZMmSJJ/3hZzkRHR8vLy0vPPvuskpKS5Ovrax83Nyu33367fHx81KVLFw0aNEgpKSmaN2+ewsLCnP5hlJOMN6Lhw4crJiYm05t6p06dVKpUKS1ZskQdOnTItrar16tnz56aPXu2kpKS1LhxY61du9alK2sLFy7U7Nmzdccdd6hKlSo6e/as5s2bp8DAQPvJxt/fX7Vq1dKHH36o6tWrKyQkRDfeeGOuv0RVtWpVNW3aVIMHD1ZqaqpmzJihUqVKOXR7evDBB/XSSy8pJiZG/fr10/Hjx/X666+rdu3a9i/0uVvbzTffrD59+uiNN97QmTNn1KJFC23btk0LFy5U9+7dHa4w5YeBAwdq7ty5io2N1fbt2xUZGamlS5far6q6+mXkrPzxxx+ZfitA+jv0du/ePdvnurMPTZkyRatXr1bTpk318MMPy9vbW3PnzlVqaqrDD+/UqlVLLVu2VL169RQSEqIffvhBS5cuzXLYOVeUKlVKffv21ezZs7Vv3z7VrFlTc+bMUa9evVS3bl316NFDoaGhOnLkiD7//HM1adLEIQC4IzfHojN5cY529zxUvXp19evXT99//73KlCmjt99+W4mJibm+aJCVZs2aafHixfYx2KW/Q1rjxo315ZdfqmXLljn+QEpuzsuucPU9JGOs92nTpqlz587q2LGjduzYoZUrV2bq9+rqaxkYGJgn++WlS5fUpk0b3XvvvTpw4IBmz56tpk2bqmvXrjk+d8yYMXr//ffVoUMHDR8+XCEhIVq4cKEOHz6sZcuWZep6FhISoqZNm6pv375KTEzUjBkzVLVqVfvwxzVq1FCVKlU0evRo/fHHHwoMDNSyZcuy7Hvv5+enVatWqU+fPmrYsKFWrlypzz//XOPGjfvHXX6qVKmi4OBgvf766ypRooSKFy+uhg0b2vu+Fy1aVD169NBrr70mLy8vp186d+b5559Xhw4d1KhRI/Xr188+1GBQUFCuf5W6QoUKGjFihJ5//nldvnxZt956qz755BNt2rRJixcvduhWNXbsWPtrlPHpQIcOHVShQgU1bNhQYWFhOnLkiObPn68///wz2+FA/4mlS5c67XLarl27HIcDfuSRRzRjxgxNnz5dH3zwgb09I9tljHO/aNEi+7CkTz75pOvFuTM0SsbQObpqmJjw8HDTrl0788orrzgM73O1uLg407t3bxMeHm6KFi1qypcvbzp37myWLl3qMN2OHTtMs2bNjK+vr6lQoYKZNm2amTlzppFkEhIS7NM5G/4sw9mzZ83YsWNN1apVjY+PjyldurRp3LixeeGFFxyGOjLGmDfeeMPUq1fP+Pv7mxIlSpg6deqYxx57zPz5558ubY/t27eb+++/35QrV84ULVrUlCxZ0rRp08YsXLjQPvyRO8vKar2cDVc3b948U7lyZePl5eUw3E1222bFihXmpptuMn5+fiYyMtI8++yz5u23385xOCRnQ5FduXLFDBs2zISGhhqbzeZ02MGHH37YSDLvvfdeFlswswsXLpjhw4ebUqVKmeLFi5suXbqY33//PcdhnH788UfTs2dPU7FiRePr62vCwsJM586dzQ8//OAw/++++87Uq1fP+Pj4OMwzY0g4Z7IaavD55583L774oomIiDC+vr6mWbNmDkORZXj33XdN5cqVjY+Pj4mOjjZffvllpnlmV9u1Qw0aY8zly5fNpEmTTFRUlClatKiJiIgwY8eOdRjS0xj39ilnsnp+YmKi6du3ryldurTx8fExderUyTRc1tXbyVXZDTV49fbK7vVydR8y5u/9JiYmxgQEBJhixYqZVq1ame+++85hmilTppgGDRqY4OBg4+/vb2rUqGGmTp2a6XziTHZ1xsXFGS8vL4ch4L7++msTExNjgoKCjJ+fn6lSpYqJjY112I+zmqez/SRDdseiq0MNGpM352hXz0MZ8/jyyy/NTTfdZHx9fU2NGjUyDf+V1RC4GcOouTIU2M8//2wkmZo1azq0T5kyxUgyTz31VKbnXDvUoDHun5ddPQ6Nce09JC0tzUyaNMmULVvW+Pv7m5YtW5qffvrJaa2uvpbGuLZfOpPx2mzYsMEMHDjQlCxZ0gQEBJgHHnjAYRi87LaRMX8fK3fffbcJ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FFz5dtMvv/yi6OhoSdKSJUvUvHlzvffee1qwYIGWLVvm2eIAAABQoBG+3WSMUXp6uiRpzZo16tixoyQpIiJCJ0+e9GRpAAAAKOAI326qX7++pkyZokWLFmnDhg3q1KmTpL+/MFmmTBkPVwcAAICCjPDtphkzZujHH3/U0KFD9cQTT6hq1aqSpKVLl6px48Yerg4AAAAFGV+4dNNNN93kMNpJhueffz7Ln30HAAAAJK5858qZM2f05ptvauzYsTp9+rQkae/evTp+/LiHKwMAAEBBxpVvN+3evVtt2rRRcHCw4uPjNWDAAIWEhOijjz7SkSNH9M4773i6RAAAABRQXPl206hRo9S3b18dPHhQfn5+9vaOHTtq48aNHqwMAAAABR1Xvt30/fffa+7cuZnay5cvr4SEBA9UhOtZ5JjPPV0CAADIQ1z5dpOvr6+Sk5Mztf/yyy8KDQ31QEUAAAAoLAjfburatasmT56sy5cvS5JsNpuOHDmixx9/XHfddZeHqwMAAEBBRvh204svvqiUlBSFhYXpwoULatGihapWraoSJUpo6tSpni4PAAAABRh9vt0UFBSk1atX69tvv9WuXbuUkpKiunXrqm3btp4uDQAAAAUc4TuXmjRpoiZNmni6DAAAABQidDtx0/DhwzVz5sxM7a+99ppGjBhhfUEAAAAoNAjfblq2bJnTK96NGzfW0qVLPVARAAAACgvCt5tOnTqloKCgTO2BgYE6efKkByoCAABAYUH4dlPVqlW1atWqTO0rV65U5cqVPVARAAAACgu+cOmmUaNGaejQoTpx4oRat24tSVq7dq1efPFFzZgxw7PFAQAAoEAjfLvpwQcfVGpqqqZOnaqnn35akhQZGak5c+aod+/eHq4OAAAABRnhOxcGDx6swYMH68SJE/L391dAQICnSwIAAEAhQPj+B0JDQz1dAgAAAAoRvnDppsTERPXq1UvlypWTt7e3vLy8HG4AAABAVrjy7abY2FgdOXJETz31lMqWLSubzebpkgAAAFBIEL7d9M0332jTpk2Kjo72dCkAAAAoZOh24qaIiAgZYzxdBgAAAAohwrebZsyYoTFjxig+Pt7TpQAAAKCQoduJm+677z6dP39eVapUUbFixVS0aFGHx0+fPu2hygAAAFDQEb7dxK9YAgAAILcI327q06ePp0sAAABAIUWf71yIi4vT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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create a random erdos-renyi graph with 100 nodes and a edge probability of 0.3\n", + "ER1 = nx.erdos_renyi_graph(100, 0.3) \n", + "ER1_DC = nx.degree_centrality(ER1) \n", + "plt.hist(list(ER1_DC.values()))\n", + "plt.title(\"Degree Centrality distribution for Erdős-Rényi graph with edge probability of 0.3 - ER1\")\n", + "plt.xlabel(\"Degree Centrality\")\n", + "plt.ylabel(\"Occurrences\")\n", + "plt.show() " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAt8AAAHHCAYAAABnZzSvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgmElEQVR4nO3dd3yN9///8ecRMowkRqaG2LuUVmpTI1Rb+lFFtUSNftSoqrb41NZGtyqly6jRKlW0RWvUqlWbFiWEGolViRgRyfv3R385X0eGhOQ6JI/77XZunPf1vt7X6zrXeuU67+t9bMYYIwAAAADZLo+zAwAAAAByC5JvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcA3IWOHTumkSNHas+ePc4OBQCQhUi+kULjxo3VuHFj+/vIyEjZbDZNnz7daTHZbDaNHDnS/n769Omy2WyKjIzM9mWHhYUpODjY/j7583jvvfeyfdmSNHLkSNlsNkuWdbO4uDj16NFD/v7+stlsGjBggFPiyAo370M3Gj58uB544AElJCSoRo0aGjhwoLXB3SQhIUFPP/20du/erSpVqmTrsu6G4/tOJJ8Ltm7daulyg4ODFRYWluG6jz32WPYGdIvlZzTWe9Xq1atls9k0f/78LGszLCxMBQsWzFDdjFyjbr623g1+//131a1bVwUKFJDNZtPOnTudHVKukKnkO3lnSn65u7srMDBQoaGhmjBhgi5evJhdcd6Vdu7cqWeffVZBQUFyc3NTkSJF1KxZM02bNk2JiYnZttw///xTI0eOtCTxTMuSJUvSTGTuVpcvX9bIkSO1evVqZ4eSwt0a21tvvaXp06erd+/emjlzpp577rlsXV5wcLDDOebGV8uWLbNlmefOndOECRP0ySefaObMmbpy5YrefPPNLGk7LCzMYR3c3NxUvnx5DR8+XFevXk1zvtdee00uLi6aPXu28uThHsm94G44L+PecvLkSY0cOdJpCW9CQoLat2+v8+fP68MPP9TMmTNVsmTJNOsnJSXpnXfeUalSpeTu7q77779fX3/9daaWuWLFCj3yyCPy8vJSoUKFVKtWLc2dO/dOV8XBzefdm/PWZMl/sCW/XFxc5Ovrq6eeekr79u1L0e6CBQvUoUMHlS5dWvnz51eFChX0yiuv6MKFC5mOMe/trNjo0aNVqlQpJSQkKCoqSqtXr9aAAQP0wQcfaPHixbr//vtvp9l7yhdffKH//ve/8vPz03PPPady5crp4sWLWrlypbp3765Tp05p6NCh2bLsP//8U6NGjVLjxo0d7shml5IlS+rKlSvKly+fvWzJkiWaNGmS0xLw5557Th07dpSbm1uG57l8+bJGjRolSZm6+/D5558rKSkpsyFmSnqxvfHGGxo8eHC2Lj8tq1at0sMPP6wRI0ZYtswaNWrolVdeSVEeGBiYLct7++231a5dO1WvXl0dOnTQ3Llz5eHhkWXtu7m56YsvvpAkxcTEaNGiRRozZowiIiI0e/bsFPUvXLigwoULa/HixVkaR1pSO75xawcOHHD4w8jq8zLuLleuXFHevOmnVL/88ovD+5MnT2rUqFEKDg5WjRo1sjG61EVEROjo0aP6/PPP1aNHj1vW/9///qdx48apZ8+eeuihh7Ro0SI988wzstls6tix4y3nnzZtmrp3767mzZvrrbfekouLiw4cOKC///47K1bHwY3n3Ru5uLikKOvfv78eeughJSQkaPfu3ZoyZYpWr16tvXv3yt/f316vV69eCgwM1LPPPqsSJUpoz549mjhxopYsWaLt27dn6nx9W8l3q1at9OCDD9rfDxkyRKtWrdJjjz2mJ554Qvv27bPkopHMGKOrV69atsxNmzbpv//9r+rUqaMlS5aoUKFC9mkDBgzQ1q1btXfvXktiuZWs+Gxu/mvxbuDi4pLqQZSVLl26pAIFCjg9KcmbN+8tT+rZ5fTp06pcuXKWtXf9+nUlJSXJ1dU1zTrFixfXs88+m+m2k7dXZr3zzjv2/x87dizT899K3rx5HdbnxRdfVN26dfX111/rgw8+kJ+fn0N9b29vDR8+PMvjSIsVx7fV52grZOYPf2TevbbPZOQYSu+85wynT5+W9O8551ZOnDih999/X3369NHEiRMlST169FCjRo306quvqn379ulekyMjI9WnTx/169dPH330UZbEn56bz7vpadCggZ566in7+woVKqh379766quv9Nprr9nL58+fn+LmWK1atdS1a1fNnj07Q3/AJMuy7zMfeeQRDRs2TEePHtWsWbMcpu3fv19PPfWUihQpInd3dz344INavHhxijZ2796tRo0aycPDQ/fdd5/Gjh2radOmpeg3ldx/7ueff9aDDz4oDw8Pffrpp5L+vWs0YMAAe1eQsmXL6u23305x5zIpKUnjx49XlSpV5O7uLj8/P73wwgv6559/brmuo0aNks1m0+zZsx0S72QPPvigQ/+6jC4reb3Wr1+v2rVry93dXaVLl9ZXX31lrzN9+nS1b99ektSkSRP71yXJ3RXS+2ymTZumRx55RL6+vnJzc1PlypU1efLkW67vzX1Cw8LCNGnSJEly+MrGGKPg4GC1adMmRRtXr16Vl5eXXnjhhXSXFR8fr5dfflk+Pj4qVKiQnnjiCR0/fjxFvdT6023dulWhoaEqVqyYPDw8VKpUKT3//PP2dfDx8ZH0f9vvxj56yX37IiIi9Oijj6pQoULq3LmzfVpad7I+/PBDlSxZUh4eHmrUqFGKP7rS6uN3Y5u3ii21Pt/Xr1/XmDFjVKZMGbm5uSk4OFhDhw5VfHy8Q72M7FOpSf467siRI/rpp5/sMSV/3qdPn1b37t3l5+cnd3d3Va9eXTNmzHBo48a+8ePHj7fH+ueff6a77IxIb3tldB+SpB07dqhVq1by9PRUwYIF1bRpU23atMmhTkJCgkaNGqVy5crJ3d1dRYsWVf369bV8+fLbit1ms6l+/foyxujw4cMO05YuXaoGDRqoQIECKlSokFq3bq0//vgj1XU/ceKE2rZtq4IFC8rHx0eDBg2yd3fLzLGYmT7fWXGOzuh5KLmNX375RTVq1JC7u7sqV66sBQsWpBpbfHy8Bg4cKB8fHxUoUEBPPvmkzpw5k+76LF68WDabTbt377aXfffdd7LZbPrPf/7jULdSpUrq0KGDQ3zJ5/lbnZeTZfY4TJbRa4gxRmPHjtV9992n/Pnzq0mTJin2n2QZ3ZZSxvbL1CSfp9euXasXXnhBRYsWlaenp7p06ZLm9S+1febw4cNq3769ihQpovz58+vhhx/WTz/9lOoyExMTNXToUPn7+6tAgQJ64oknUtxZXbdundq3b68SJUrIzc1NQUFBevnll3XlypVU2zx8+LBCQ0NVoEABBQYGavTo0TLGONRJ75mSZDdeD1avXq2HHnpIktStWzf7PjN9+nSNGDFC+fLlS3X/7dWrl7y9vdPttib9+61l8jbz9vZWmzZtHLpShIWFqVGjRpKk9u3by2azpfuN8KJFi5SQkKAXX3zRYZ179+6t48ePa+PGjenGM2XKFCUmJmr06NGS/n2e6ObP8G7RoEEDSf9+M3Cj1D6fJ598UpJS7aaSniy9nfbcc89p6NCh+uWXX9SzZ09J0h9//KF69eqpePHiGjx4sAoUKKBvv/1Wbdu21XfffWcP/MSJE/aT1pAhQ1SgQAF98cUXad5dOHDggDp16qQXXnhBPXv2VIUKFXT58mU1atRIJ06c0AsvvKASJUpow4YNGjJkiE6dOqXx48fb53/hhRc0ffp0devWTf3799eRI0c0ceJE7dixQ7/99luadzsvX76slStXqmHDhipRokSGPpfMLOvQoUN66qmn1L17d3Xt2lVTp05VWFiYatWqpSpVqqhhw4bq37+/JkyYoKFDh6pSpUqSZP83rc9GkiZPnqwqVaroiSeeUN68efXDDz/oxRdfVFJSkvr06ZOhdUlen5MnT2r58uWaOXOmvdxms+nZZ5/VO++8o/Pnz6tIkSL2aT/88INiY2Nv+Zdojx49NGvWLD3zzDOqW7euVq1apdatW98yptOnT6tFixby8fHR4MGD5e3trcjISPuF2sfHR5MnT1bv3r315JNP2i+sN3aRun79ukJDQ1W/fn299957yp8/f7rL/Oqrr3Tx4kX16dNHV69e1UcffaRHHnlEe/bsSXE3Mz0Zie1mPXr00IwZM/TUU0/plVde0ebNmxUeHq59+/bp+++/d6h7q30qNZUqVdLMmTP18ssv67777rN3A/Hx8dGVK1fUuHFjHTp0SH379lWpUqU0b948hYWF6cKFC3rppZcc2po2bZquXr2qXr162Z+NSE9CQoLOnj2borxAgQIOd8HS2l4Z3Yf++OMPNWjQQJ6ennrttdeUL18+ffrpp2rcuLHWrFmjkJAQSf/+8RMeHq4ePXqodu3aio2N1datW7V9+3Y1b9483XVJS3JyU7hwYXvZzJkz1bVrV4WGhurtt9/W5cuXNXnyZNWvX187duxw+AMwMTFRoaGhCgkJ0XvvvacVK1bo/fffV5kyZdS7d+8sORZvlhXnaClz56GDBw+qQ4cO+u9//6uuXbtq2rRpat++vZYtW5bis+/Xr58KFy6sESNGKDIyUuPHj1ffvn3T7U9av359e3KYfLytW7dOefLk0fr16+31zpw5o/3796tv376ptpOR8/LtHIfJMnoNGT58uMaOHatHH31Ujz76qLZv364WLVro2rVrDu1lZltmZr9MS9++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WqlYsWJ6++23tWbNmgzd9Q4ICFCNGjU0Y8YMh3b37t2rX375JUN/8KSmTZs2ypcvnz755BN7mTFGU6ZMUfHixVW3bl17+alTp7R//36HbZ48TOeXX35pL0tKStK0adNUpEiRdI+vypUrO5xfb3Us3qkyZcqoXbt2mj59usOzJVFRUWrRooXy5Mmjn3/++Y6+dbqtO99Lly7V/v37df36dUVHR2vVqlVavny5SpYsqcWLFzsMgTNp0iTVr19f1apVU8+ePVW6dGlFR0dr48aNOn78uHbt2iXp379sZs2apebNm6tfv372oY9KlCih8+fPZ+iuwquvvqrFixfrsccesw/hdOnSJe3Zs0fz589XZGSkihUrpkaNGumFF15QeHi4du7cqRYtWihfvnw6ePCg5s2bp48++shhwPWb1a1bV5MmTdKLL76oihUrOvzC5erVq7V48WKNHTtWku54WampUaOGXFxc9PbbbysmJkZubm72cXPT0qJFC7m6uurxxx/XCy+8oLi4OH3++efy9fVN9Q+jW0ne+fv376/Q0NAUF/XWrVuraNGimjdvnlq1apVubDeuV6dOnfTJJ58oJiZGdevW1cqVKzN0Z23GjBn65JNP9OSTT6pMmTK6ePGiPv/8c3l6etpPNh4eHqpcubLmzp2r8uXLq0iRIqpateptP0RVtmxZ1a9fX71791Z8fLzGjx+vokWLOnR7ev755/XBBx8oNDRU3bt31+nTpzVlyhRVqVLF/kBfZmOrXr26unbtqs8++0wXLlxQo0aNtGXLFs2YMUNt27Z1uMOUHXr16qVPP/1UYWFh2rZtm4KDgzV//nz7XdWMPoyclhMnTqT4rQDp36S3bdu26c6bmX1o7NixWr58uerXr68XX3xRefPm1aeffqr4+HiHH96pXLmyGjdurFq1aqlIkSLaunWr5s+fn+awcxlRtGhRdevWTZ988on27dunSpUqafLkyXruuedUs2ZNdezYUT4+Pjp27Jh++ukn1atXzyEByIzbORZTkxXn6Myeh8qXL6/u3bvr999/l5+fn6ZOnaro6OjbvmmQlgYNGmj27Nn2Mdilf5O0unXr6ueff1bjxo1v+QMpt3NezoiMXkOSx3oPDw/XY489pkcffVQ7duzQ0qVLUwyDltFt6enpmSX75bVr19S0aVM9/fTTOnDggD755BPVr19fTzzxxC3nHTx4sL7++mu1atVK/fv3V5EiRTRjxgwdOXJE3333XYquZ0WKFFH9+vXVrVs3RUdHa/z48Spbtqx9+OOKFSuqTJkyGjRokE6cOCFPT0999913aXZ7cHd317Jly9S1a1eFhIRo6dKl+umnnzR06NA77vJTpkwZeXt7a8qUKSpUqJAKFCigkJAQe9/3fPnyqWPHjpo4caJcXFxSfeg8Ne+++65atWqlOnXqqHv37vahBr28vG77V6nvu+8+DRgwQO+++64SEhL00EMPaeHChVq3bp1mz57t0K1qyJAh9m2U/O1AmzZt1LRpU4WHh+vs2bOqXr26Fi5cqPXr1+vTTz/N8h+tun79eqrXEenfsblvdff/1Vdf1bfffqvx48fbb5K0bNlShw8f1muvvab169c7DEfq5+eXuaFnMzM0SvLQOckvV1dX4+/vb5o3b24++ugjh+F9bhQREWG6dOli/P39Tb58+Uzx4sXNY489ZubPn+9Qb8eOHaZBgwbGzc3N3HfffSY8PNxMmDDBSDJRUVH2eqkNf5bs4sWLZsiQIaZs2bLG1dXVFCtWzNStW9e89957DkMdGWPMZ599ZmrVqmU8PDxMoUKFTLVq1cxrr71mTp48maHPY9u2beaZZ54xgYGBJl++fKZw4cKmadOmZsaMGfbhjzKzrLTWK7Xh6j7//HNTunRp4+Li4jD0UHqfzeLFi839999v3N3dTXBwsHn77bfN1KlTbzkcUmpDkV2/ft3069fP+Pj4GJvNluqwgy+++KKRZObMmZPGJ5jSlStXTP/+/U3RokVNgQIFzOOPP27+/vvvWw7jtH37dtOpUydTokQJ4+bmZnx9fc1jjz1mtm7d6tD+hg0bTK1atYyrq6tDm8lDwqUmraEG3333XfP++++boKAg4+bmZho0aOAwFFmyWbNmmdKlSxtXV1dTo0YN8/PPP6doM73Ybh5q0BhjEhISzKhRo0ypUqVMvnz5TFBQkBkyZIjDkJ7GZG6fSk1a80dHR5tu3bqZYsWKGVdXV1OtWrUUw2Xd+DllVHpDDd74eaW3vTK6Dxnz734TGhpqChYsaPLnz2+aNGliNmzY4FBn7Nixpnbt2sbb29t4eHiYihUrmjfffDPF+SQ16cUZERFhXFxcHIaA+/XXX01oaKjx8vIy7u7upkyZMiYsLMxhP06rzdT2k2TpHYsZHWrQmKw5R2f0PJTcxs8//2zuv/9+4+bmZipWrJhiWLS0hsBNHkbsVsOyGWPMH3/8YSSZSpUqOZSPHTvWSDLDhg1LMc/NQw0ak/nzckaPQ2Mydg1JTEw0o0aNMgEBAcbDw8M0btzY7N27N9VYM7otjcnYfpma5G2zZs0a06tXL1O4cGFTsGBB07lzZ4dh8NL7jIz591h56qmnjLe3t3F3dze1a9c2P/74Y4oYJZmvv/7aDBkyxPj6+hoPDw/TunVrh+EDjTHmzz//NM2aNTMFCxY0xYoVMz179rQPI3zjcZB8rEVERJgWLVqY/PnzGz8/PzNixIgU1/hbXaOMSX17L1q0yFSuXNnkzZs31eNwy5YtRpJp0aJFqp9NWlasWGHq1atnPDw8jKenp3n88cfNn3/+mepnlpGhBo35d/966623TMmSJY2rq6upUqWKw5CzyZKH+rtx3Y35Nz976aWXjL+/v/26kdr8dyq9oQZvjOtW69+4cWPj6elpH640vTYzehwns/3/Bu9aAwYM0Keffqq4uLhs/zlxZK2XX35ZX375paKiom75gzUAsk92HovZdY4ODg5W1apV9eOPP2ZZm0hfVm/L5B8G+v333/Xggw9mQYS5z65du1SjRg199dVXtzVKEe5O2T9UQCbcPE7kuXPnNHPmTNWvX5/E+x5z9epVzZo1S+3atSPxBpwoK49FztE5B9vy3vD555+rYMGC9l8+Rs6Q5eN834k6deqocePGqlSpkqKjo/Xll18qNjY2zTHCcfc5ffq0VqxYofnz5+vcuXMpfmocgDWy41jkHJ1zsC3vbj/88IP+/PNPffbZZ+rbt+9tjVCCu9ddlXw/+uijmj9/vj777DPZbDbVrFlTX3755S2HeMLd488//1Tnzp3l6+urCRMm3HL4IQDZIzuORc7ROQfb8u7Wr18/RUdH69FHH9WoUaOcHQ6y2F3f5xsAAADIKe6qPt8AAABATkbyDQAAAFjkrurzjayVlJSkkydPqlChQtn208cAACBrGWN08eJFBQYGpvghIdz7SL5zsJMnTyooKMjZYQAAgNvw999/67777nN2GMhiJN85WPLPfP/999/y9PR0cjQAACAjYmNjFRQUZL+OI2ch+c7BkruaeHp6knwDAHCPoctozkRHIgAAAMAiJN8AAACARUi+AQAAAIuQfAMAAAAWIfkGAAAALELyDQAAAFiE5BsAAACwCMk3AAAAYBGSbwAAAMAiJN8AAACARUi+AQAAAIuQfN+h8PBwPfTQQypUqJB8fX3Vtm1bHThwwKHO1atX1adPHxUtWlQFCxZUu3btFB0dnW67xhgNHz5cAQEB8vDwULNmzXTw4MHsXBUAAABkM5LvO7RmzRr16dNHmzZt0vLly5WQkKAWLVro0qVL9jovv/yyfvjhB82bN09r1qzRyZMn9Z///Cfddt955x1NmDBBU6ZM0ebNm1WgQAGFhobq6tWr2b1KAAAAyCY2Y4xxdhA5yZkzZ+Tr66s1a9aoYcOGiomJkY+Pj+bMmaOnnnpKkrR//35VqlRJGzdu1MMPP5yiDWOMAgMD9corr2jQoEGSpJiYGPn5+Wn69Onq2LFjhmKJjY2Vl5eXYmJi5OnpmXUrCQAAsg3X75yNO99ZLCYmRpJUpEgRSdK2bduUkJCgZs2a2etUrFhRJUqU0MaNG1Nt48iRI4qKinKYx8vLSyEhIWnOI0nx8fGKjY11eAEAAODukdfZAeQkSUlJGjBggOrVq6eqVatKkqKiouTq6ipvb2+Hun5+foqKikq1neRyPz+/DM8j/dv/fNSoUXewBkDuFTz4J2eHkGmR41o7OwQAQCZx5zsL9enTR3v37tU333zjlOUPGTJEMTEx9tfff//tlDgAAACQOpLvLNK3b1/9+OOP+vXXX3XffffZy/39/XXt2jVduHDBoX50dLT8/f1TbSu5/OYRUdKbR5Lc3Nzk6enp8AIAAMDdg+T7Dhlj1LdvX33//fdatWqVSpUq5TC9Vq1aypcvn1auXGkvO3DggI4dO6Y6deqk2mapUqXk7+/vME9sbKw2b96c5jwAAAC4+5F836E+ffpo1qxZmjNnjgoVKqSoqChFRUXpypUrkv59ULJ79+4aOHCgfv31V23btk3dunVTnTp1HEY6qVixor7//ntJks1m04ABAzR27FgtXrxYe/bsUZcuXRQYGKi2bds6YzUBAACQBXjg8g5NnjxZktS4cWOH8mnTpiksLEyS9OGHHypPnjxq166d4uPjFRoaqk8++cSh/oEDB+wjpUjSa6+9pkuXLqlXr166cOGC6tevr2XLlsnd3T1b1wcAAADZh3G+czDGCQUyjtFOANwtuH7nbHQ7AQAAACxC8g0AAABYhOQbAAAAsAjJNwAAAGARkm8AAADAIiTfAAAAgEVIvgEAAACLkHwDAAAAFiH5BgAAACxC8g0AAABYhOQbAAAAsAjJNwAAAGARkm8AAADAIiTfAAAAgEVIvgEAAACLkHwDAAAAFiH5BgAAACxC8g0AAABYhOQbAAAAsAjJNwAAAGARkm8AAADAIiTfAAAAgEVIvgEAAACLkHwDAAAAFiH5BgAAACxC8g0AAABYhOQbAAAAsAjJNwAAAGCRvM4OAACQewQP/snZIWRa5LjWzg4BQA7CnW8AAADAIiTfAAAAgEVIvgEAAACLkHwDAAAAFiH5zgJr167V448/rsDAQNlsNi1cuNBhus1mS/X17rvvptnmyJEjU9SvWLFiNq8JAAAAshPJdxa4dOmSqlevrkmTJqU6/dSpUw6vqVOnymazqV27dum2W6VKFYf51q9fnx3hAwAAwCIMNZgFWrVqpVatWqU53d/f3+H9okWL1KRJE5UuXTrddvPmzZtiXgAAANy7uPNtsejoaP3000/q3r37LesePHhQgYGBKl26tDp37qxjx46lWz8+Pl6xsbEOLwAAANw9SL4tNmPGDBUqVEj/+c9/0q0XEhKi6dOna9myZZo8ebKOHDmiBg0a6OLFi2nOEx4eLi8vL/srKCgoq8MHAADAHSD5ttjUqVPVuXNnubu7p1uvVatWat++ve6//36FhoZqyZIlunDhgr799ts05xkyZIhiYmLsr7///jurwwcAAMAdoM+3hdatW6cDBw5o7ty5mZ7X29tb5cuX16FDh9Ks4+bmJjc3tzsJEQAAANmIO98W+vLLL1WrVi1Vr1490/PGxcUpIiJCAQEB2RAZAAAArEDynQXi4uK0c+dO7dy5U5J05MgR7dy50+EBydjYWM2bN089evRItY2mTZtq4sSJ9veDBg3SmjVrFBkZqQ0bNujJJ5+Ui4uLOnXqlK3rAgAAgOxDt5MssHXrVjVp0sT+fuDAgZKkrl27avr06ZKkb775RsaYNJPniIgInT171v7++PHj6tSpk86dOycfHx/Vr19fmzZtko+PT/atCAAAALIVyXcWaNy4sYwx6dbp1auXevXqleb0yMhIh/fffPNNVoQGAACAuwjdTgAAAACLkHwDAAAAFiH5BgAAACxC8g0AAABYhOQbAAAAsAjJNwAAAGARkm8AAADAIiTfAAAAgEVIvgEAAACLkHwDAAAAFiH5BgAAACxC8g0AAABYhOQbAAAAsAjJNwAAAGARkm8AAADAIiTfAAAAgEVIvgEAAACLkHwDAAAAFiH5BgAAACyS19kBAABuT/Dgn5wdAgAgk7jzDQAAAFiE5BsAAACwCMk3AAAAYBGSbwAAAMAiJN8AAACARUi+AQAAAIuQfAMAAAAWIfkGAAAALELyDQAAAFiE5BsAAACwCMk3AAAAYBGSbwAAAMAiJN8AAACARUi+s8DatWv1+OOPKzAwUDabTQsXLnSYHhYWJpvN5vBq2bLlLdudNGmSgoOD5e7urpCQEG3ZsiWb1gAAAABWIPnOApcuXVL16tU1adKkNOu0bNlSp06dsr++/vrrdNucO3euBg4cqBEjRmj79u2qXr26QkNDdfr06awOHwAAABbJ6+wAcoJWrVqpVatW6dZxc3OTv79/htv84IMP1LNnT3Xr1k2SNGXKFP3000+aOnWqBg8efEfxAgAAwDm4822R1atXy9fXVxUqVFDv3r117ty5NOteu3ZN27ZtU7NmzexlefLkUbNmzbRx48Y054uPj1dsbKzDCwAAAHcP7nxboGXLlvrPf/6jUqVKKSIiQkOHDlWrVq20ceNGubi4pKh/9uxZJSYmys/Pz6Hcz89P+/fvT3M54eHhGjVqVJbHD2RW8OCfnB0CAAB3JZJvC3Ts2NH+/2rVqun+++9XmTJltHr1ajVt2jTLljNkyBANHDjQ/j42NlZBQUFZ1j4AAADuDN1OnKB06dIqVqyYDh06lOr0YsWKycXFRdHR0Q7l0dHR6fYbd3Nzk6enp8MLAAAAdw+Sbyc4fvy4zp07p4CAgFSnu7q6qlatWlq5cqW9LCkpSStXrlSdOnWsChMAAABZjOQ7C8TFxWnnzp3auXOnJOnIkSPauXOnjh07pri4OL366qvatGmTIiMjtXLlSrVp00Zly5ZVaGiovY2mTZtq4sSJ9vcDBw7U559/rhkzZmjfvn3q3bu3Ll26ZB/9BAAAAPce+nxnga1bt6pJkyb298n9rrt27arJkydr9+7dmjFjhi5cuKDAwEC1aNFCY8aMkZubm32eiIgInT171v6+Q4cOOnPmjIYPH66oqCjVqFFDy5YtS/EQJgAAAO4dNmOMcXYQyB6xsbHy8vJSTEwM/b9hKUY7QU4SOa61s0NALsP1O2ej2wkAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALBIrk2+t2/frj179tjfL1q0SG3bttXQoUN17do1J0YGAACAnCrXJt8vvPCC/vrrL0nS4cOH1bFjR+XPn1/z5s3Ta6+9lqm21q5dq8cff1yBgYGy2WxauHChfVpCQoJef/11VatWTQUKFFBgYKC6dOmikydPptvmyJEjZbPZHF4VK1bM9HoCAADg7pFrk++//vpLNWrUkCTNmzdPDRs21Jw5czR9+nR99913mWrr0qVLql69uiZNmpRi2uXLl7V9+3YNGzZM27dv14IFC3TgwAE98cQTt2y3SpUqOnXqlP21fv36TMUFAACAu0teZwfgLMYYJSUlSZJWrFihxx57TJIUFBSks2fPZqqtVq1aqVWrVqlO8/Ly0vLlyx3KJk6cqNq1a+vYsWMqUaJEmu3mzZtX/v7+mYoFAAAAd69ce+f7wQcf1NixYzVz5kytWbNGrVu3liQdOXJEfn5+2brsmJgY2Ww2eXt7p1vv4MGDCgwMVOnSpdW5c2cdO3Ys3frx8fGKjY11eAEAAODukWuT7/Hjx2v79u3q27ev/ve//6ls2bKSpPnz56tu3brZttyrV6/q9ddfV6dOneTp6ZlmvZCQEE2fPl3Lli3T5MmTdeTIETVo0EAXL15Mc57w8HB5eXnZX0FBQdmxCgAAALhNNmOMcXYQd5OrV6/KxcVF+fLlu635bTabvv/+e7Vt2zbFtISEBLVr107Hjx/X6tWr002+b3bhwgWVLFlSH3zwgbp3755qnfj4eMXHx9vfx8bGKigoSDExMZlaFnCnggf/5OwQgCwTOa61s0NALhMbGysvLy+u3zlUru3zLf2b0M6fP18RERF69dVXVaRIEf3555/y8/NT8eLFs3RZCQkJevrpp3X06FGtWrUq0weTt7e3ypcvr0OHDqVZx83NTW5ubncaKgAAALJJru12snv3bpUrV05vv/223nvvPV24cEGStGDBAg0ZMiRLl5WceB88eFArVqxQ0aJFM91GXFycIiIiFBAQkKWxAQAAwDq5NvkeOHCgunXrpoMHD8rd3d1e/uijj2rt2rWZaisuLk47d+7Uzp07Jf370ObOnTt17NgxJSQk6KmnntLWrVs1e/ZsJSYmKioqSlFRUQ4/5tO0aVNNnDjR/n7QoEFas2aNIiMjtWHDBj355JNycXFRp06d7mzFAQAA4DS5ttvJ77//rk8//TRFefHixRUVFZWptrZu3aomTZrY3w8cOFCS1LVrV40cOVKLFy+WJPu44sl+/fVXNW7cWJIUERHhMMTh8ePH1alTJ507d04+Pj6qX7++Nm3aJB8fn0zFBgAAgLtHrk2+3dzcUh2K76+//sp0gtu4cWOl99xqRp5pjYyMdHj/zTffZCoGAAAA3P1ybbeTJ554QqNHj1ZCQoKkf0cpOXbsmF5//XW1a9fOydEBAAAgJ8q1yff777+vuLg4+fr66sqVK2rUqJHKli2rQoUK6c0333R2eAAAAMiBcm23k+Sfff/tt9+0a9cuxcXFqWbNmmrWrJmzQwMAAEAOlWuT72T16tVTvXr1nB0GAAAAcoFc2+2kf//+mjBhQoryiRMnasCAAdYHBAAAgBwv1ybf3333Xap3vOvWrav58+c7ISIAAADkdLk2+T537py8vLxSlHt6ejqMtw0AAABklVybfJctW1bLli1LUb506VKVLl3aCREBAAAgp8u1D1wOHDhQffv21ZkzZ/TII49IklauXKn3339f48ePd25wAAAAyJFybfL9/PPPKz4+Xm+++abGjBkjSQoODtbkyZPVpUsXJ0cHAACAnCjXJt+S1Lt3b/Xu3VtnzpyRh4eHChYs6OyQAAAAkIPl6uQ7mY+Pj7NDAAAAQC6Qax+4jI6O1nPPPafAwEDlzZtXLi4uDi8AAAAgq+XaO99hYWE6duyYhg0bpoCAANlsNmeHBAAAgBwu1ybf69ev17p161SjRg1nhwIAAIBcItd2OwkKCpIxxtlhAAAAIBfJtcn3+PHjNXjwYEVGRjo7FAAAAOQSubbbSYcOHXT58mWVKVNG+fPnV758+Rymnz9/3kmRAQAAIKfKtck3v2IJAAAAq+Xa5Ltr167ODgEAcA8IHvyTs0PItMhxrZ0dAoA05No+35IUERGhN954Q506ddLp06clSUuXLtUff/zh5MgAAACQE+Xa5HvNmjWqVq2aNm/erAULFiguLk6StGvXLo0YMcLJ0QEAACAnyrXJ9+DBgzV27FgtX75crq6u9vJHHnlEmzZtcmJkAAAAyKlybfK9Z88ePfnkkynKfX19dfbsWSdEBAAAgJwu1ybf3t7eOnXqVIryHTt2qHjx4k6ICAAAADldrk2+O3bsqNdff11RUVGy2WxKSkrSb7/9pkGDBqlLly7ODg8AAAA5UK5Nvt966y1VrFhRQUFBiouLU+XKldWwYUPVrVtXb7zxhrPDAwAAQA6UK8f5NsYoKipKEyZM0PDhw7Vnzx7FxcXpgQceULly5ZwdHgAAAHKoXJt8ly1bVn/88YfKlSunoKAgZ4cEAACAXCBXdjvJkyePypUrp3Pnzjk7FAAAAOQiuTL5lqRx48bp1Vdf1d69e50dCgAAAHKJXNntRJK6dOmiy5cvq3r16nJ1dZWHh4fD9PPnzzspMgAAAORUuTb5Hj9+vLNDAAAAQC6TK7udJCQkaM2aNWrYsKG6du2a6isz1q5dq8cff1yBgYGy2WxauHChw3RjjIYPH66AgAB5eHioWbNmOnjw4C3bnTRpkoKDg+Xu7q6QkBBt2bIlU3EBAADg7pIrk+98+fLpu+++y7L2Ll26pOrVq2vSpEmpTn/nnXc0YcIETZkyRZs3b1aBAgUUGhqqq1evptnm3LlzNXDgQI0YMULbt29X9erVFRoaqtOnT2dZ3AAAALBWrky+Jalt27Yp7lDfrlatWmns2LF68sknU0wzxmj8+PF644031KZNG91///366quvdPLkyXSX/8EHH6hnz57q1q2bKleurClTpih//vyaOnVqlsQMAAAA6+XaPt/lypXT6NGj9dtvv6lWrVoqUKCAw/T+/ftnyXKOHDmiqKgoNWvWzF7m5eWlkJAQbdy4UR07dkwxz7Vr17Rt2zYNGTLEXpYnTx41a9ZMGzduTHNZ8fHxio+Pt7+PjY3NknUAAABA1si1yfeXX34pb29vbdu2Tdu2bXOYZrPZsiz5joqKkiT5+fk5lPv5+dmn3ezs2bNKTExMdZ79+/enuazw8HCNGjXqDiMGAABAdsm1yfeRI0ecHUKWGzJkiAYOHGh/Hxsby693AgAA3EVybZ9vq/j7+0uSoqOjHcqjo6Pt025WrFgxubi4ZGoeSXJzc5Onp6fDCwAAAHePXHvn+/nnn093elY92FiqVCn5+/tr5cqVqlGjhqR/70hv3rxZvXv3TnUeV1dX1apVSytXrlTbtm0lSUlJSVq5cqX69u2bJXEBAADAerk2+f7nn38c3ickJGjv3r26cOGCHnnkkUy1FRcXp0OHDtnfHzlyRDt37lSRIkVUokQJDRgwQGPHjlW5cuVUqlQpDRs2TIGBgfbEWpKaNm2qJ5980p5cDxw4UF27dtWDDz6o2rVra/z48bp06ZK6det2+ysNAAAAp8q1yff333+foiwpKUm9e/dWmTJlMtXW1q1b1aRJE/v75H7XXbt21fTp0/Xaa6/p0qVL6tWrly5cuKD69etr2bJlcnd3t88TERGhs2fP2t936NBBZ86c0fDhwxUVFaUaNWpo2bJlKR7CBAAAwL3DZowxzg7ibnLgwAE1btxYp06dcnYodyw2NlZeXl6KiYmh/zcsFTz4J2eHAORqkeNaOzsE3AGu3zkbD1zeJCIiQtevX3d2GAAAAMiBcm23kxuH5JP+/SXKU6dO6aefflLXrl2dFBUAAAByslybfO/YscPhfZ48eeTj46P333//liOhAAAAALcj1ybfv/76q7NDAAAAQC6Ta/t8HzlyRAcPHkxRfvDgQUVGRlofEAAAAHK8XJt8h4WFacOGDSnKN2/erLCwMOsDAgAAQI6Xa5PvHTt2qF69einKH374Ye3cudP6gAAAAJDj5drk22az6eLFiynKY2JilJiY6ISIAAAAkNPl2uS7YcOGCg8Pd0i0ExMTFR4ervr16zsxMgAAAORUuXa0k7ffflsNGzZUhQoV1KBBA0nSunXrFBsbq1WrVjk5OgAAAOREufbOd+XKlbV79249/fTTOn36tC5evKguXbpo//79qlq1qrPDAwAAQA6Ua+98S1JgYKDeeustZ4cBAACAXCLX3vmeNm2a5s2bl6J83rx5mjFjhhMiAgAAQE6Xa5Pv8PBwFStWLEW5r68vd8MBAACQLXJt8n3s2DGVKlUqRXnJkiV17NgxJ0QEAACAnC7XJt++vr7avXt3ivJdu3apaNGiTogIAAAAOV2uTb47deqk/v3769dff1ViYqISExO1atUqvfTSS+rYsaOzwwMAAEAOlGtHOxkzZowiIyPVtGlT5c3778eQmJiorl270ucbAAAA2SLXJt+urq6aO3euBg0apMjISHl4eKhatWoqWbKks0MDAABADpUrk+8LFy7of//7n+bOnat//vlHklS4cGF17NhRY8eOlbe3t3MDBAAAQI6U65Lv8+fPq06dOjpx4oQ6d+6sSpUqSZL+/PNPTZ8+XStXrtSGDRtUuHBhJ0cKAACAnCbXJd+jR4+Wq6urIiIi5Ofnl2JaixYtNHr0aH344YdOihAAAAA5Va4b7WThwoV67733UiTekuTv76933nlH33//vRMiAwAAQE6X65LvU6dOqUqVKmlOr1q1qqKioiyMCAAAALlFrku+ixUrpsjIyDSnHzlyREWKFLEuIAAAAOQauS75Dg0N1f/+9z9du3YtxbT4+HgNGzZMLVu2dEJkAAAAyOly5QOXDz74oMqVK6c+ffqoYsWKMsZo3759+uSTTxQfH6+ZM2c6O0wAAADkQLku+b7vvvu0ceNGvfjiixoyZIiMMZIkm82m5s2ba+LEiQoKCnJylAAAAMiJcl3yLUmlSpXS0qVL9c8//+jgwYOSpLJly9LXGwAAANkqVybfyQoXLqzatWs7OwwAAADkErnugUsAAADAWUi+AQAAAIuQfAMAAAAWIfm2QHBwsGw2W4pXnz59Uq0/ffr0FHXd3d0tjhoAAABZLVc/cGmV33//XYmJifb3e/fuVfPmzdW+ffs05/H09NSBAwfs7202W7bGCAAAgOxH8m0BHx8fh/fjxo1TmTJl1KhRozTnsdls8vf3z+7QAAAAYCG6nVjs2rVrmjVrlp5//vl072bHxcWpZMmSCgoKUps2bfTHH3/csu34+HjFxsY6vAAAAHD3IPm22MKFC3XhwgWFhYWlWadChQqaOnWqFi1apFmzZikpKUl169bV8ePH0207PDxcXl5e9he/1AkAAHB3sZnk31eHJUJDQ+Xq6qoffvghw/MkJCSoUqVK6tSpk8aMGZNmvfj4eMXHx9vfx8bGKigoSDExMfL09LyjuIHMCB78k7NDAHK1yHGtnR0C7kBsbKy8vLy4fudQ9Pm20NGjR7VixQotWLAgU/Ply5dPDzzwgA4dOpRuPTc3N7m5ud1JiAAAAMhGdDux0LRp0+Tr66vWrTN3RyIxMVF79uxRQEBANkUGAAAAK5B8WyQpKUnTpk1T165dlTev4xcOXbp00ZAhQ+zvR48erV9++UWHDx/W9u3b9eyzz+ro0aPq0aOH1WEDAAAgC9HtxCIrVqzQsWPH9Pzzz6eYduzYMeXJ839/B/3zzz/q2bOnoqKiVLhwYdWqVUsbNmxQ5cqVrQwZAAAAWYwHLnMwHtiAs/DAJeBcPHB5b+P6nbPR7QQAAACwCMk3AAAAYBH6fAMAkMPci12/6CqD3II73wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCJ5nR0AgLQFD/7J2SEAAIAsxJ1vAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvJtgZEjR8pmszm8KlasmO488+bNU8WKFeXu7q5q1appyZIlFkULAACA7ELybZEqVaro1KlT9tf69evTrLthwwZ16tRJ3bt3144dO9S2bVu1bdtWe/futTBiAAAAZDWSb4vkzZtX/v7+9lexYsXSrPvRRx+pZcuWevXVV1WpUiWNGTNGNWvW1MSJEy2MGAAAAFmN5NsiBw8eVGBgoEqXLq3OnTvr2LFjadbduHGjmjVr5lAWGhqqjRs3pruM+Ph4xcbGOrwAAABw98jr7AByg5CQEE2fPl0VKlTQqVOnNGrUKDVo0EB79+5VoUKFUtSPioqSn5+fQ5mfn5+ioqLSXU54eLhGjRqVpbEDAGCF4ME/OTuETIsc19rZIeAexJ1vC7Rq1Urt27fX/fffr9DQUC1ZskQXLlzQt99+m6XLGTJkiGJiYuyvv//+O0vbBwAAwJ3hzrcTeHt7q3z58jp06FCq0/39/RUdHe1QFh0dLX9//3TbdXNzk5ubW5bFCQAAgKzFnW8niIuLU0REhAICAlKdXqdOHa1cudKhbPny5apTp44V4QEAACCbkHxbYNCgQVqzZo0iIyO1YcMGPfnkk3JxcVGnTp0kSV26dNGQIUPs9V966SUtW7ZM77//vvbv36+RI0dq69at6tu3r7NWAQAAAFmAbicWOH78uDp16qRz587Jx8dH9evX16ZNm+Tj4yNJOnbsmPLk+b+/g+rWras5c+bojTfe0NChQ1WuXDktXLhQVatWddYqAAAAIAvYjDHG2UEge8TGxsrLy0sxMTHy9PR0dji4Dffi0/8AkFtk12gnXL9zNrqdAAAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+bZAeHi4HnroIRUqVEi+vr5q27atDhw4kO4806dPl81mc3i5u7tbFDEAAACyA8m3BdasWaM+ffpo06ZNWr58uRISEtSiRQtdunQp3fk8PT116tQp++vo0aMWRQwAAIDskNfZAeQGy5Ytc3g/ffp0+fr6atu2bWrYsGGa89lsNvn7+2d3eAAAALAId76dICYmRpJUpEiRdOvFxcWpZMmSCgoKUps2bfTHH3+kWz8+Pl6xsbEOLwAAANw9SL4tlpSUpAEDBqhevXqqWrVqmvUqVKigqVOnatGiRZo1a5aSkpJUt25dHT9+PM15wsPD5eXlZX8FBQVlxyoAAADgNtmMMcbZQeQmvXv31tKlS7V+/Xrdd999GZ4vISFBlSpVUqdOnTRmzJhU68THxys+Pt7+PjY2VkFBQYqJiZGnp+cdxw7rBQ/+ydkhAADSEDmudba0GxsbKy8vL67fORR9vi3Ut29f/fjjj1q7dm2mEm9Jypcvnx544AEdOnQozTpubm5yc3O70zABAACQTeh2YgFjjPr27avvv/9eq1atUqlSpTLdRmJiovbs2aOAgIBsiBAAAABW4M63Bfr06aM5c+Zo0aJFKlSokKKioiRJXl5e8vDwkCR16dJFxYsXV3h4uCRp9OjRevjhh1W2bFlduHBB7777ro4ePaoePXo4bT0AAABwZ0i+LTB58mRJUuPGjR3Kp02bprCwMEnSsWPHlCfP/30R8c8//6hnz56KiopS4cKFVatWLW3YsEGVK1e2KmwAAABkMR64zMF4YOPexwOXAHD34oFL3A76fAMAAAAWIfkGAAAALELyDQAAAFiE5BsAAACwCMk3AAAAYBGSbwAAAMAiJN8AAACARUi+AQAAAIuQfAMAAAAWIfkGAAAALELyDQAAAFiE5BsAAACwCMk3AAAAYBGSbwAAAMAiJN8AAACARUi+AQAAAIuQfAMAAAAWIfkGAAAALELyDQAAAFgkr7MDwL0pePBPzg4BAADgnsOdbwAAAMAiJN8AAACARUi+AQAAAIuQfAMAAAAWIfkGAAAALELyDQAAAFiE5BsAAACwCMk3AAAAYBGSbwAAAMAiJN8AAACARUi+AQAAAIuQfAMAAAAWIfkGAAAALELybaFJkyYpODhY7u7uCgkJ0ZYtW9KtP2/ePFWsWFHu7u6qVq2alixZYlGkAAAAyA4k3xaZO3euBg4cqBEjRmj79u2qXr26QkNDdfr06VTrb9iwQZ06dVL37t21Y8cOtW3bVm3bttXevXstjhwAAABZxWaMMc4OIjcICQnRQw89pIkTJ0qSkpKSFBQUpH79+mnw4MEp6nfo0EGXLl3Sjz/+aC97+OGHVaNGDU2ZMiVDy4yNjZWXl5diYmLk6emZNSvy/wUP/ilL2wMA4F4TOa51trSbnddvOF9eZweQG1y7dk3btm3TkCFD7GV58uRRs2bNtHHjxlTn2bhxowYOHOhQFhoaqoULF6a5nPj4eMXHx9vfx8TESPr3IM5qSfGXs7xNAADuJdlxfb2xXe6P5kwk3xY4e/asEhMT5efn51Du5+en/fv3pzpPVFRUqvWjoqLSXE54eLhGjRqVojwoKOg2ogYAAOnxGp+97V+8eFFeXl7ZuxBYjuQ7BxkyZIjD3fKkpCSdP39eRYsWlc1mc2Jkd5/Y2FgFBQXp77//5is9J2EbOB/bwPnYBs53N24DY4wuXryowMBAZ4eCbEDybYFixYrJxcVF0dHRDuXR0dHy9/dPdR5/f/9M1ZckNzc3ubm5OZR5e3vfXtC5hKen511zss2t2AbOxzZwPraB891t24A73jkXo51YwNXVVbVq1dLKlSvtZUlJSVq5cqXq1KmT6jx16tRxqC9Jy5cvT7M+AAAA7n7c+bbIwIED1bVrVz344IOqXbu2xo8fr0uXLqlbt26SpC5duqh48eIKDw+XJL300ktq1KiR3n//fbVu3VrffPONtm7dqs8++8yZqwEAAIA7QPJtkQ4dOujMmTMaPny4oqKiVKNGDS1btsz+UOWxY8eUJ8//fRFRt25dzZkzR2+88YaGDh2qcuXKaeHChapataqzViFHcXNz04gRI1J004F12AbOxzZwPraB87ENYDXG+QYAAAAsQp9vAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+UaOMWnSJAUHB8vd3V0hISHasmVLmnWnT58um83m8HJ3d3eoY4zR8OHDFRAQIA8PDzVr1kwHDx7M7tW4p2X1NggLC0tRp2XLltm9Gve0zGwDSbpw4YL69OmjgIAAubm5qXz58lqyZMkdtZnbZfU2GDlyZIrjoGLFitm9Gve0zGyDxo0bp/h8bTabWrduba/D9QBZieQbOcLcuXM1cOBAjRgxQtu3b1f16tUVGhqq06dPpzmPp6enTp06ZX8dPXrUYfo777yjCRMmaMqUKdq8ebMKFCig0NBQXb16NbtX556UHdtAklq2bOlQ5+uvv87O1binZXYbXLt2Tc2bN1dkZKTmz5+vAwcO6PPPP1fx4sVvu83cLju2gSRVqVLF4ThYv369FatzT8rsNliwYIHDZ7t37165uLioffv29jpcD5ClDJAD1K5d2/Tp08f+PjEx0QQGBprw8PBU60+bNs14eXml2V5SUpLx9/c37777rr3swoULxs3NzXz99ddZFndOktXbwBhjunbtatq0aZOFUeZsmd0GkydPNqVLlzbXrl3LsjZzu+zYBiNGjDDVq1fP6lBzrDvdZz/88ENTqFAhExcXZ4zheoCsx51v3POuXbumbdu2qVmzZvayPHnyqFmzZtq4cWOa88XFxalkyZIKCgpSmzZt9Mcff9inHTlyRFFRUQ5tenl5KSQkJN02c6vs2AbJVq9eLV9fX1WoUEG9e/fWuXPnsmUd7nW3sw0WL16sOnXqqE+fPvLz81PVqlX11ltvKTEx8bbbzM2yYxskO3jwoAIDA1W6dGl17txZx44dy9Z1uVdlxT775ZdfqmPHjipQoIAkrgfIeiTfuOedPXtWiYmJ9l8LTebn56eoqKhU56lQoYKmTp2qRYsWadasWUpKSlLdunV1/PhxSbLPl5k2c7Ps2AbSv11OvvrqK61cuVJvv/221qxZo1atWqVITHB72+Dw4cOaP3++EhMTtWTJEg0bNkzvv/++xo4de9tt5mbZsQ0kKSQkRNOnT9eyZcs0efJkHTlyRA0aNNDFixezdX3uRXe6z27ZskV79+5Vjx497GVcD5DV+Hl55Ep16tRRnTp17O/r1q2rSpUq6dNPP9WYMWOcGFnukZFt0LFjR/v0atWq6f7771eZMmW0evVqNW3a1PKYc5qkpCT5+vrqs88+k4uLi2rVqqUTJ07o3Xff1YgRI5wdXq6QkW3QqlUre/37779fISEhKlmypL799lt1797dWaHnSF9++aWqVaum2rVrOzsU5GDc+cY9r1ixYnJxcVF0dLRDeXR0tPz9/TPURr58+fTAAw/o0KFDkmSf707azE2yYxukpnTp0ipWrFi6dXKr29kGAQEBKl++vFxcXOxllSpVUlRUlK5du5Yl2zU3yY5tkBpvb2+VL1+e4yAVd7LPXrp0Sd98802KP2i4HiCrkXzjnufq6qpatWpp5cqV9rKkpCStXLnS4c5qehITE7Vnzx4FBARIkkqVKiV/f3+HNmNjY7V58+YMt5mbZMc2SM3x48d17ty5dOvkVrezDerVq6dDhw4pKSnJXvbXX38pICBArq6uWbJdc5Ps2AapiYuLU0REBMdBKu5kn503b57i4+P17LPPOpRzPUCWc/YTn0BW+Oabb4ybm5uZPn26+fPPP02vXr2Mt7e3iYqKMsYY89xzz5nBgwfb648aNcr8/PPPJiIiwmzbts107NjRuLu7mz/++MNeZ9y4ccbb29ssWrTI7N6927Rp08aUKlXKXLlyxfL1uxdk9Ta4ePGiGTRokNm4caM5cuSIWbFihalZs6YpV66cuXr1qlPW8W6X2W1w7NgxU6hQIdO3b19z4MAB8+OPPxpfX18zduzYDLcJR9mxDV555RWzevVqc+TIEfPbb7+ZZs2amWLFipnTp09bvn73gsxug2T169c3HTp0SLVNrgfISiTfyDE+/vhjU6JECePq6mpq165tNm3aZJ/WqFEj07VrV/v7AQMG2Ov6+fmZRx991Gzfvt2hvaSkJDNs2DDj5+dn3NzcTNOmTc2BAwesWp17UlZug8uXL5sWLVoYHx8fky9fPlOyZEnTs2dPkr5byMw2MMaYDRs2mJCQEOPm5mZKly5t3nzzTXP9+vUMt4mUsnobdOjQwQQEBBhXV1dTvHhx06FDB3Po0CGrVueelNltsH//fiPJ/PLLL6m2x/UAWclmjDHOvvsOAAAA5Ab0+QYAAAAsQvINAAAAWITkGwAAALAIyTcAAABgEZJvAAAAwCIk3wAAAIBFSL4BAAAAi5B8AwAAABYh+QYAZJvg4GCNHz/e/t5ms2nhwoVOiwcAnI3kG0COEBYWJpvNJpvNpnz58snPz0/NmzfX1KlTlZSU5Ozw7lhUVJT69eun0qVLy83NTUFBQXr88ce1cuXKLF1O48aNNWDAgCxt80anTp1Sq1atJEmRkZGy2WzauXNnti0PAO42JN8AcoyWLVvq1KlTioyM1NKlS9WkSRO99NJLeuyxx3T9+vVsXfa1a9eyre3IyEjVqlVLq1at0rvvvqs9e/Zo2bJlatKkifr06ZNty02LMea2P09/f3+5ubllcUQAcO8g+QaQY7i5ucnf31/FixdXzZo1NXToUC1atEhLly7V9OnT7fUuXLigHj16yMfHR56ennrkkUe0a9cuh7bGjh0rX19fFSpUSD169NDgwYNVo0YN+/SwsDC1bdtWb775pgIDA1WhQgVJ0t9//62nn35a3t7eKlKkiNq0aaPIyEiHtr/44gtVqlRJ7u7uqlixoj755JN01+vFF1+UzWbTli1b1K5dO5UvX15VqlTRwIEDtWnTpgyv18iRI1WjRg3NnDlTwcHB8vLyUseOHXXx4kX7Oq1Zs0YfffSR/VuEyMhIrV69WjabTUuXLlWtWrXk5uam9evXKyIiQm3atJGfn58KFiyohx56SCtWrEh3XW7sdlKqVClJ0gMPPCCbzabGjRtr7dq1ypcvn6KiohzmGzBggBo0aJBu2wBwLyD5BpCjPfLII6pevboWLFhgL2vfvr1Onz6tpUuXatu2bapZs6aaNm2q8+fPS5Jmz56tN998U2+//ba2bdumEiVKaPLkySnaXrlypQ4cOKDly5frxx9/VEJCgkJDQ1WoUCGtW7dOv/32mwoWLKiWLVva74zPnj1bw4cP15tvvql9+/bprbfe0rBhwzRjxoxU4z9//ryWLVumPn36qECBAimme3t7Z3i9JCkiIkILFy7Ujz/+qB9//FFr1qzRuHHjJEkfffSR6tSpo549e+rUqVM6deqUgoKC7PMOHjxY48aN0759+3T//fcrLi5Ojz76qFauXKkdO3aoZcuWevzxx3Xs2LEMbZstW7ZIklasWKFTp05pwYIFatiwoUqXLq2ZM2fa6yUkJGj27Nl6/vnnM9QuANzVDADkAF27djVt2rRJdVqHDh1MpUqVjDHGrFu3znh6epqrV6861ClTpoz59NNPjTHGhISEmD59+jhMr1evnqlevbrD8vz8/Ex8fLy9bObMmaZChQomKSnJXhYfH288PDzMzz//bF/OnDlzHNoeM2aMqVOnTqqxb9682UgyCxYsSGftM7ZeI0aMMPnz5zexsbH26a+++qoJCQmxv2/UqJF56aWXHNr49ddfjSSzcOHCdGMwxpgqVaqYjz/+2P6+ZMmS5sMPP7S/l2S+//57Y4wxR44cMZLMjh07HNp4++237dvLGGO+++47U7BgQRMXF3fL5QPA3Y473wByPGOMbDabJGnXrl2Ki4tT0aJFVbBgQfvryJEjioiIkCQdOHBAtWvXdmjj5veSVK1aNbm6utrf79q1S4cOHVKhQoXs7RYpUkRXr15VRESELl26pIiICHXv3t1h2WPHjrUvO7XYMyIj6yX9O/pIoUKF7O8DAgJ0+vTpDC3jwQcfdHgfFxenQYMGqVKlSvL29lbBggW1b9++DN/5TktYWJgOHTpk71Izffp0Pf3006ne+QeAe01eZwcAANlt37599v7FcXFxCggI0OrVq1PUu7ELR0bcnAzGxcWpVq1amj17doq6Pj4+iouLkyR9/vnnCgkJcZju4uKS6jLKlSsnm82m/fv3pxtLRtcrX758DtNsNluGR4O5eX0HDRqk5cuX67333lPZsmXl4eGhp5566o4fPvX19dXjjz+uadOmqVSpUlq6dGmq6wUA9yKSbwA52qpVq7Rnzx69/PLLkqSaNWsqKipKefPmVXBwcKrzVKhQQb///ru6dOliL/v9999vuayaNWtq7ty58vX1laenZ4rpXl5eCgwM1OHDh9W5c+cMxV+kSBGFhoZq0qRJ6t+/f4oE+MKFC/L29s7QemWEq6urEhMTM1T3t99+U1hYmJ588klJ//4BcPPDpbdalqRUl9ejRw916tRJ9913n8qUKaN69epluF0AuJvR7QRAjhEfH6+oqCidOHFC27dv11tvvaU2bdrosccesyfSzZo1U506ddS2bVv98ssvioyM1IYNG/S///1PW7dulST169dPX375pWbMmKGDBw9q7Nix2r17t73rSlo6d+6sYsWKqU2bNlq3bp2OHDmi1atXq3///jp+/LgkadSoUQoPD9eECRP0119/ac+ePZo2bZo++OCDNNudNGmSEhMTVbt2bX333Xc6ePCg9u3bpwkTJqhOnToZXq+MCA4O1ubNmxUZGamzZ8+me1e8XLlyWrBggXbu3Kldu3bpmWeeydSY6r6+vvLw8NCyZcsUHR2tmJgY+7TQ0FB5enpq7Nix6tatW4bbBIC7Hck3gBxj2bJlCggIUHBwsFq2bKlff/1VEyZM0KJFi+zdOmw2m5YsWaKGDRuqW7duKl++vDp27KijR4/Kz89P0r9J9JAhQzRo0CDVrFlTR44cUVhYmNzd3dNdfv78+bV27VqVKFFC//nPf1SpUiV1795dV69etd8J79Gjh7744gtNmzZN1apVU6NGjTR9+nR7t5jUlC5dWtu3b1eTJk30yiuvqGrVqmrevLlWrlxpH4UlI+uVEYMGDZKLi4sqV64sHx+fdPtvf/DBBypcuLDq1q2rxx9/XKGhoapZs2aGl5U3b15NmDBBn376qQIDA9WmTRv7tDx58igsLEyJiYkO30AAwL3OZjL6NA8A5GLNmzeXv7+/wxB4yF7du3fXmTNntHjxYmeHAgBZhj7fAHCTy5cva8qUKQoNDZWLi4u+/vprrVixQsuXL3d2aLlCTEyM9uzZozlz5pB4A8hxSL4B4CbJXTjefPNNXb16VRUqVNB3332nZs2aOTu0XKFNmzbasmWL/vvf/6p58+bODgcAshTdTgAAAACL8MAlAAAAYBGSbwAAAMAiJN8AAACARUi+AQAAAIuQfAMAAAAWIfkGAAAALELyDQAAAFiE5BsAAACwyP8D6Yr+9zmRxloAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Change the edge probability of the erdos-reyni graph to 0.6 and plot the degree centrality distribution again.\n", + "ER2 = nx.erdos_renyi_graph(100,0.6) \n", + "ER2_DC = nx.degree_centrality(ER2) \n", + "plt.hist(list(ER2_DC.values())) \n", + "plt.title(\"Degree Centrality distribution for Erdős-Rényi graph with edge probability of 0.6 - ER2\")\n", + "plt.xlabel(\"Degree Centrality\")\n", + "plt.ylabel(\"Occurrences\")\n", + "plt.show() " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Why does the degree centrality distribution change? Infer the changes in the plots.\n", + "\n", + "The *degree centrality* ([reference](https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.centrality.degree_centrality.html#networkx.algorithms.centrality.degree_centrality)) for a node is the fraction of nodes connected to it. Therefore, higher the number of edges associated with a node, the higher degree centrality. To increase the degree centrality for a given node, we would either need to increase the number of edges in the graph while keeping the same number of nodes, or increase the number of nodes while keeping the same number of edges.\n", + "\n", + "We can observe that for **ER1**, the range of degree centrality is from ~0.20 to ~0.45 and peaks at ~0.3 (the set egde probablity). Similarly, for **ER2**, the range of degree centrality is from ~0.48 to ~0.73 and peaks at ~0.6 (the set edge probablity). The peaks on both these histograms represents the most common degree centrality from nodes of the respective graph.\n", + "\n", + "Based on the above observations, the degree centrality values of **ER2** are higher than that of **ER1**. Since both these graph have the same number of nodes i.e. 100, and egde probablities of 0.3 and 0.6 respectively, we can expect the number of edges in **ER2** to be greater than **ER1**. \n", + "\n", + "To verify this inference, we can compare the total number of edges in **ER1** and **ER2**." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total number of nodes in ER1 are: 1472\n", + "Total number of nodes in ER2 are: 2984\n" + ] + } + ], + "source": [ + "print(\"Total number of nodes in ER1 are: \", ER1.number_of_edges())\n", + "print(\"Total number of nodes in ER2 are: \", ER2.number_of_edges())" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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EcmEQYyIiIhIJgxiRERERDJhECMiIiKSCYMYERERkUwYxIiIiIhkwiBGREREJBMGMSIiIiKZMIgRERERyYRBjIiIiEgmDGJEREREMmEQIyIiIpIJgxgRERGRTBjEiIiIiGTCIEZEREQkEwYxIiIiIpkwiBERERHJRNYgFhISgrfffhvm5uawt7dHv379cPXqVZV5cnNzERgYCFtbW5iZmcHPzw+pqakyVUxERESkP7IGsZiYGAQGBiIuLg4HDx5Efn4+3nnnHTx69EiaZ9q0adi7dy+ioqIQExODe/fuoX///jJWTURERKQfleVc+P79+1Xub9y4Efb29oiPj0fHjh2RmZmJDRs2IDIyEl26dAEAREREoGHDhoiLi0ObNm3kKJuIiIhIL8rVGLHMzEwAgI2NDQAgPj4e+fn58PHxkeZp0KABatWqhdjYWI195OXlISsrS+VGREREVB6VmyBWWFiIqVOnol27dmjSpAkAICUlBUZGRrCyslKZ18HBASkpKRr7CQkJgaWlpXRzdnYu69KJiIiIdFJuglhgYCD++OMPfP/996XqJzg4GJmZmdLt9u3beqqQiIiISL9kHSOmNGnSJPz00084evQoatasKbU7Ojri6dOnyMjIUNkrlpqaCkdHR419GRsbw9jYuKxLJiIiIio1WfeICSEwadIk7Ny5E4cPH4abm5vKdA8PDxgaGiI6Olpqu3r1Km7dugUvL69XXS4RERGRXsm6RywwMBCRkZHYvXs3zM3NpXFflpaWMDU1haWlJUaPHo2goCDY2NjAwsICkydPhpeXF8+YJCIioteerEFszZo1AIBOnTqptEdERCAgIAAAsGLFChgYGMDPzw95eXnw9fXF6tWrX3GlRERERPonaxATQrx0HhMTE6xatQqrVq16BRURERERvTrl5qxJIiIiojcNgxgRERGRTBjEiIiIiGTCIEZEREQkEwYxIiIiIpkwiBERERHJhEGMiIiISCYMYkREREQyYRAjIiIikgmDGBEREZFMGMSIiIiIZMIgRkRERCQTBjEiIiIimTCIEREREcmEQYyIiIhIJgxiRERERDJhECMiIiKSCYMYERERkUwYxIiIiIhkwiBGREREJBMGMSIiIiKZMIgRERERyYRBjIiIiEgmDGJEREREMmEQIyIiIpIJgxgRERGRTBjEiIiIiGTCIEZEREQkEwYxIiIiIpkwiBERERHJhEGMiIiISCYMYkREREQyYRAjIiIikgmDGBEREZFMGMSIiIiIZMIgRkRERCQTBjEiIiIimTCIEREREclE9iB29OhR9O7dG05OTlAoFNi1a5fKdCEE5syZg+rVq8PU1BQ+Pj5ISEiQp1giIiIiPZI9iD169AjNmzfHqlWrNE5ftmwZwsPD8dVXX+HkyZOoWrUqfH19kZub+4orJSIiItKvynIX0KNHD/To0UPjNCEEwsLC8Nlnn6Fv374AgG+//RYODg7YtWsX/P39X2WpRERERHol+x6x4iQmJiIlJQU+Pj5Sm6WlJTw9PREbG6vxMXl5ecjKylK5EREREZVHsu8RK05KSgoAwMHBQaXdwcFBmvaikJAQzJ8/v8xre525zvxZ7hJKLCm0p9wlEBER6V253iOmi+DgYGRmZkq327dvy10SERERkUblOog5OjoCAFJTU1XaU1NTpWkvMjY2hoWFhcqNiIiIqDwq10HMzc0Njo6OiI6OltqysrJw8uRJeHl5yVgZERERUenJPkYsJycH169fl+4nJibi/PnzsLGxQa1atTB16lQsWrQIdevWhZubG2bPng0nJyf069dPvqKJiIiI9ED2IHbmzBl07txZuh8UFAQAGDFiBDZu3IiPP/4Yjx49wrhx45CRkYH27dtj//79MDExkatkIiIiIr1QCCGE3EWUpaysLFhaWiIzM7NMxou9jmcgvo541iQR0ZulrL+/y4tyPUaMiIiIqCJjECMiIiKSCYMYERERkUwYxIiIiIhkwiBGREREJBMGMSIiIiKZMIgRERERyYRBjIiIiEgmsl9Zn6iieh0v9ssL5xIRvVrcI0ZEREQkEwYxIiIiIpkwiBERERHJhEGMiIiISCYMYkREREQyYRAjIiIikgmDGBEREZFMGMSIiIiIZMIgRkRERCQTBjEiIiIimTCIEREREcmEQYyIiIhIJgxiRERERDJhECMiIiKSCYMYERERkUwYxIiIiIhkwiBGREREJBMGMSIiIiKZMIgRERERyaSy3AUQacN15s9yl0BE9Eq8jp93SaE95S7htcU9YkREREQyYRAjIiIikgmDGBEREZFMGMSIiIiIZMLB+kQkeR0HCb+uOLiZiADuESMiIiKSDYMYERERkUwYxIiIiIhkwiBGREREJBMO1icikgFPjHg1eFIElXevzR6x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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create a random barabasi_albert_graph with 100 nodes and attach 3 edges to a new node in the graph (m=3). Plot the degree_centrality distribution.\n", + "BA = nx.barabasi_albert_graph(n= 100, m=3) \n", + "BA_DC = nx.degree_centrality(BA) \n", + "plt.hist(list(BA_DC.values())) \n", + "plt.title(\"Degree Centrality distribution for Barabási–Albert graph with m=3 - BA\")\n", + "plt.xlabel(\"Degree Centrality\")\n", + "plt.ylabel(\"Occurrences\")\n", + "plt.show() " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Why does the degree centrality distribution change between these 2 random graph generators? Infer the changes in the plots.\n", + "\n", + "On comparing the degree centrality distribution of these graph generators, we see that both are drastically different in nature. \n", + "\n", + "*Erdos-Renyi* graph has its distribution similar to a normal distribution (bell curve), showing that data near the mean (in our case the edge probablity) are more frequent in occurrence than data far from the mean. \n", + "\n", + "Whereas, *Barabasi-Albert* graph has its distribution similar to power law distribution (Pareto distribution) where maximum nodes take up a low degree centrality and a small fraction of nodes have large degree centrality values. \n", + "\n", + "The reason behind these differences lies in how they are generated. \n", + "- *Erdos-Renyi graph*: A graph having a fixed probability of an egde being present or absent for any two given nodes. \n", + "- *Barabasi-Albert graph*: A graph of nodes grown by attaching new nodes each with edges that are preferentially attached to existing nodes with high degree.\n", + "\n", + "Based on these points, the observations made earlier hold true. In the degree centrality distribution of *Erdos-Renyi* graph, most nodes have a similar degree. And for *Barabasi-Albert* graph, most nodes have a lower degree and very few have higher degree values." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.7 64-bit", + "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.10.7" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "3aace9338d95a7d022d939fc78457f31d885bd00a409a68bc28d3f5860276098" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}