{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# SRUP Experiment – Combined Results Analysis" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "MQTT_EXPERIMENTS = [1,2,3,5,9]\n", "SRUP_EXPERIMENTS = list(range(1,11))\n", "DEVICES = 5" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
12345
Experiment
12.3284802.2872172.3679202.2590362.295755
249.29394449.33473147.33223749.57448848.804452
395.81011296.57570396.49530096.31997295.644064
5127.700608127.738265131.494173125.442380126.971284
9154.159200152.587232146.957924141.882181146.866044
\n", "
" ], "text/plain": [ " 1 2 3 4 5\n", "Experiment \n", "1 2.328480 2.287217 2.367920 2.259036 2.295755\n", "2 49.293944 49.334731 47.332237 49.574488 48.804452\n", "3 95.810112 96.575703 96.495300 96.319972 95.644064\n", "5 127.700608 127.738265 131.494173 125.442380 126.971284\n", "9 154.159200 152.587232 146.957924 141.882181 146.866044" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mqtt_df = pd.read_csv(\"mqtt_summary.csv\")\n", "mqtt_df.set_index(\"Experiment\", inplace=True)\n", "mqtt_df.head()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
12345
Experiment
158.77894058.45522158.53685658.48790857.941856
2103.118228104.624200102.651864104.075241104.311508
3147.072711149.890420147.119080147.996508146.240472
4152.934552163.394008153.887815158.206960155.585476
5169.181652178.415176178.912554177.977600167.744532
\n", "
" ], "text/plain": [ " 1 2 3 4 5\n", "Experiment \n", "1 58.778940 58.455221 58.536856 58.487908 57.941856\n", "2 103.118228 104.624200 102.651864 104.075241 104.311508\n", "3 147.072711 149.890420 147.119080 147.996508 146.240472\n", "4 152.934552 163.394008 153.887815 158.206960 155.585476\n", "5 169.181652 178.415176 178.912554 177.977600 167.744532" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "srup_df = pd.read_csv(\"srup_summary.csv\")\n", "srup_df.set_index(\"Experiment\", inplace=True)\n", "srup_df.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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hg4dyoABAzjttNN4+eWXARg9ejR33XUXhx9+OD169Nhku+eddx4rVqxgwIABDB48mDvuuIM+ffowdepUjjvuOAYNGsTw4cN55JFHNln3Rz/6Ef369eNXv/oVRx11VIs9i5IkSZKqIzKz0TVstaampmx+zbj58+dz4IEHNqii7Z+PnyRJkrT9iIj7MrPFa7XZsydJkiRJFWTYkyRJkqQKMuxJkiRJUgUZ9iRJkiSpggx7kiRJklRBhj1JkiRJqiDDXh1069Ztw3X2Bg8ezCWXXMK6deu2altz5szhrLPO6nBN55xzDgcccACDBg3iPe95D88++2yHtylJkiRp29W90QXU3fm9O3l7z7W5SK9evXjggQcAWLp0KRMmTOD555/nggsu2OLmmpqaaGpq8bIZW2TUqFF84QtfoHv37nzqU5/iC1/4Al/60pc6vF1JkiRJ26bqh70G69u3L5MnT+aQQw7h/PPPZ926dZx77rnceeedrF69mjPOOIPTTjuN8ePHc8IJJ3DUUUcBcNJJJ3H00Uez++6785WvfIWbb76ZlStX8pGPfIQ5c+YQEUycOJH3ve99zJw5k4kTJ7J69Wre/OY3M2XKFHbZZZeN6hg9evSG28OGDWPGjBld+jhIkiRt7/qfe0uXtLP4i0d1STuqPodxdoH999+ftWvXsnTpUq6++mp69+7N7NmzmT17NldddRWLFi1i3LhxXH/99QC89NJL3H777RuC33oXXnghvXv3Zt68ecydO5eRI0eyfPlyLrroImbNmsX9999PU1MTl1566Wbr+c53vsMRRxxRt/2VJEmS1Hj27HWxmTNnMnfu3A09a8899xyPPvooRxxxBGeffTarV6/m1ltv5bDDDqNXr14brTtr1iyuvfbaDfd32203br75Zh5++GEOPfRQoAiKw4cPb7X9iy++mO7du3P88cfXYe8kSZIkbSsMe13g8ccfp1u3bvTt25fM5LLLLmPMmDGbLDdixAhuu+02rrvuOsaPH9+ubWcmo0aNYvr06W0uO3XqVG6++WZuv/12ImKL90OSJEnS9sNhnHW2bNkyTj/9dM4880wigjFjxnDFFVewZs0aABYsWMCqVasAGDduHFOmTOHuu+9m7Nixm2xr1KhRTJo0acP9FStWMGzYMO655x4WLlwIwKpVq1iwYMEm69566618+ctf5qabbuLVr351PXZVkiRJ0jbEnr06ePHFFxkyZAhr1qyhe/funHDCCXzsYx8D4JRTTmHx4sUMHTqUzKRPnz78+Mc/BoqTqJxwwgkcc8wx9OjRY5PtnnfeeZxxxhkMGDCAbt26MXHiRN773vcydepUjjvuOFavXg3ARRddxNve9raN1j3zzDNZvXo1o0aNAoqTtFx55ZV1fBQkSZK0VTr7bPItttH2Gea1/YvMbHQNW62pqSnnzJmz0bT58+dz4IEHNqii7Z+PnyRJUsu67GycPSfUvxHDXmVExH2Z2eK12hzGKUmSJEkVZNiTJEmSpAoy7EmSJElSBRn2JEmSJKmCDHuSJEmSVEGGPUmSJEmqIMNeHXTr1o0hQ4Zw8MEHM3jwYC655BLWrVu3VduaM2cOZ511Vodr+q//+i8GDRrEkCFDGD16NH/60586vE1JkiRJ267KX1R94LSBnbq9eSfOa3OZXr168cADDwCwdOlSJkyYwPPPP88FF1ywxe01NTXR1NTiZTO2yDnnnMOFF14IwDe+8Q0+97nPeVF1SZIkqcLs2auzvn37MnnyZC6//HIyk7Vr13LOOedwyCGHMGjQIL71rW8BMH78eG655ZULdZ500knMmDGDO++8k6OPPhqAlStXcvLJJzNw4EAGDRrEDTfcAMDMmTMZPnw4Q4cO5dhjj2XlypWb1PHa1752w+1Vq1YREfXcbUmSJEkNZtjrAvvvvz9r165l6dKlXH311fTu3ZvZs2cze/ZsrrrqKhYtWsS4ceO4/vrrAXjppZe4/fbbOeqoozbazoUXXkjv3r2ZN28ec+fOZeTIkSxfvpyLLrqIWbNmcf/999PU1MSll17aYh2f/exn2Xvvvfne977H5z73ubrvtyRJkqTGMex1sZkzZ3LNNdcwZMgQ3vnOd/LMM8/w6KOPcsQRR3DHHXewevVqfvazn3HYYYfRq1evjdadNWsWZ5xxxob7u+22G/feey8PP/wwhx56KEOGDGHatGk88cQTLbZ98cUX8+STT3L88cdz+eWX13U/JUmSJDVW5Y/Z2xY8/vjjdOvWjb59+5KZXHbZZYwZM2aT5UaMGMFtt93Gddddx/jx49u17cxk1KhRTJ8+vd31HH/88Rx55JFbdQyhJEmSpO2DPXt1tmzZMk4//XTOPPNMIoIxY8ZwxRVXsGbNGgAWLFjAqlWrABg3bhxTpkzh7rvvZuzYsZtsa9SoUUyaNGnD/RUrVjBs2DDuueceFi5cCBTH4y1YsGCTdR999NENt2+88UYOOOCATt1PSZIkSdsWe/bq4MUXX2TIkCGsWbOG7t27c8IJJ/Cxj30MgFNOOYXFixczdOhQMpM+ffrw4x//GIDRo0dzwgkncMwxx9CjR49NtnveeedxxhlnMGDAALp168bEiRN573vfy9SpUznuuONYvXo1ABdddBFve9vbNlr33HPP5fe//z077bQT++67r2filCRJkiouMrPRNWy1pqamnDNnzkbT5s+fz4EHHtigirZ/Pn6SJEkt63/uLW0v1AkW95xQ/0bOf67+bahLRMR9mdnitdocxilJkiRJFWTYkyRJkqQK8pg9SZIkaQczcNrAurcx78R5dW9j0um/qHsbAGdcObJL2uls9uxJkiRJUgUZ9iRJkiSpggx7kiRJklRBhr066NatG0OGDOHggw9m8ODBXHLJJaxbt26rtjVnzhzOOuusTqvtkksuISJYvnx5p21TkiRJ0ran8idomX9A514z7sBH5re5TK9evXjggQcAWLp0KRMmTOD555/nggsu2OL2mpqaaGpq8bIZW+zJJ59k5syZ7LPPPp2yPUmSJEnbLnv26qxv375MnjyZyy+/nMxk7dq1nHPOORxyyCEMGjSIb33rWwCMHz+eW2555UKdJ510EjNmzODOO+/k6KOPBmDlypWcfPLJDBw4kEGDBnHDDTcAMHPmTIYPH87QoUM59thjWblyZYu1fPSjH+XLX/4yEVHnvZYkSZLUaIa9LrD//vuzdu1ali5dytVXX03v3r2ZPXs2s2fP5qqrrmLRokWMGzeO66+/HoCXXnqJ22+/naOOOmqj7Vx44YX07t2befPmMXfuXEaOHMny5cu56KKLmDVrFvfffz9NTU1ceumlm9Rw4403stdeezF48OAu2WdJkiRJjVX5YZzbmpkzZzJ37lxmzJgBwHPPPcejjz7KEUccwdlnn83q1au59dZbOeyww+jVq9dG686aNYtrr712w/3ddtuNm2++mYcffphDDz0UKILi8OHDN1rvhRde4POf/zwzZ86s895JkiRJ2lYY9rrA448/Trdu3ejbty+ZyWWXXcaYMWM2WW7EiBHcdtttXHfddYwfP75d285MRo0axfTp01td5rHHHmPRokUbevWWLFnC0KFD+c1vfsMb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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = mqtt_df.plot(kind='bar', figsize=(15,10), width=0.8)\n", "ax.legend(['Device 1', 'Device 2', 'Device 3', 'Device 4', 'Device 5'])\n", "plt.ylabel(\"Mean Duration (ms)\")\n", "plt.title('Mean network & processing delay by device for MQTT Experiments')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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wEaw8qxcAEwyXc/c37XW1jassVe6Xs97kryxtXb1JlDPtzIYOnnlBq5njwx6uV7R/Mfca1V1eAYnivnlia4F6D89ewBs0rrho8/vhpT+eQbHza2up22jqqrfymBo6tpOoDOa9TwjgxP0/I2gB8B42nyiCwCAdZiXwbDDlUPbfmOih4ZV1TUZDCl90zrO1riu9UzPYGjjf2RwjBcAjBvDOAEAAHrIME4AAIAeEvYAAAB6aFIfs/eiF72obb/99hNdBgAAwIT42te+dl9rbevVzZvUYW/77bfPokVrutwXAABAv1XVt9c0zzBOAACAHhL2AAAAekjYAwAA6KFJfcze6jz66KO555578pOf/GSiS5l0ttxyy2y77bZ5xjOeMdGlAAAAG6h3Ye+ee+7Jc5/73Gy//fapqokuZ9JoreX+++/PPffck1e+8pUTXQ4AALCBejeM8yc/+Ule+MIXCnpjVFV54QtfqEcUAAB6ondhL4mgt57sNwAA6I9ehr2JNmXKlMyePTs777xzZs2aldNOOy2PP/74eq1r0aJFOfbYYze4po9//OPZeeeds9lmm7k2IQAAPA307pi9VW1//OXjur673nvAOpeZOnVqbrjhhiTJkiVLcthhh+XBBx/MySefPObnmzt3bubOnTvmdqvaZZdd8olPfCJve9vbNnhdAADApk/P3pBts802Ofvss3PGGWektZYVK1bkuOOOy6677pqZM2fmIx/5SJLkkEMOyeWX/zSYHn744bn00ktzzTXX5MADD0ySLFu2LEcccURmzJiRmTNn5rLLLkuSLFiwIPPmzcucOXNy0EEHZdmyZU+pY/r06fn5n//5jbDFAADApkDY2wh22GGHrFixIkuWLMm5556badOmZeHChVm4cGHOOeec3HnnnTn44INzySWXJEkeeeSRXHXVVTnggCf3Ip5yyimZNm1abrrpptx4443Za6+9ct999+XUU0/NlVdemeuvvz5z587N6aefPhGbCQAAbEJ6P4xzU7NgwYLceOONufTSS5MkDzzwQG677bbsv//+efvb356HH344n//857PHHntk6tSpT2p75ZVX5mMf+9gTj7faaqt85jOfyc0335zdd989ySAozps3b+NtEAAAsEkS9jaCO+64I1OmTMk222yT1lo+9KEPZd99933KcnvuuWeuuOKKXHzxxTnkkENGte7WWubPn5+LLrpovMsGAAAmMcM4h+zee+/NUUcdlWOOOSZVlX333TdnnXVWHn300STJrbfemuXLlydJDj744Jx33nm57rrrst9++z1lXfPnz8+ZZ575xOOlS5dmt912yxe/+MXcfvvtSZLly5fn1ltv3QhbBgAAbMqEvSF46KGHnrj0wt5775199tknJ554YpLkyCOPzE477ZQ5c+Zkl112ydve9rY89thjSZJ99tkn1157bfbee+9sscUWT1nvCSeckKVLl2aXXXbJrFmzcvXVV2frrbfO+eefn0MPPTQzZ87MvHnzcssttzyl7Sc/+clsu+22+bd/+7cccMABq+1ZBAAA+qNaaxNdw3qbO3duW/WacYsXL8706dMnqKLJz/4DAIDJo6q+1lpb7bXa9OwBAAD0kLAHAADQQ8IeAABADwl7AAAAPSTsAQAA9JCwBwAA0EPC3hBMmTLlievszZo1K6eddloef/zx9VrXokWLcuyxx25wTccdd1x23HHHzJw5M7/5m7+ZH/7whxu8TgAAYNO1+UQXMHQnTRvn9T2wzkWmTp2aG264IUmyZMmSHHbYYXnwwQdz8sknj/np5s6dm7lzV3vZjDGZP39+3vOe92TzzTfPn/7pn+Y973lP3ve+923wegEAYFMz44IZY25z05tvGkIlE0vP3pBts802Ofvss3PGGWektZYVK1bkuOOOy6677pqZM2fmIx/5SJLkkEMOyeWXX/5Eu8MPPzyXXnpprrnmmhx44IFJkmXLluWII47IjBkzMnPmzFx22WVJkgULFmTevHmZM2dODjrooCxbtuwpdeyzzz7ZfPNBtt9tt91yzz33DHvTAQCACSTsbQQ77LBDVqxYkSVLluTcc8/NtGnTsnDhwixcuDDnnHNO7rzzzhx88MG55JJLkiSPPPJIrrrqqhxwwAFPWs8pp5ySadOm5aabbsqNN96YvfbaK/fdd19OPfXUXHnllbn++uszd+7cnH766Wut56Mf/Wj233//oW0vAAAw8fo/jHMTs2DBgtx444259NJLkyQPPPBAbrvttuy///55+9vfnocffjif//zns8cee2Tq1KlPanvllVfmYx/72BOPt9pqq3zmM5/JzTffnN133z3JICjOmzdvjc//7ne/O5tvvnne+MY3DmHrAACATYWwtxHccccdmTJlSrbZZpu01vKhD30o++6771OW23PPPXPFFVfk4osvziGHHDKqdbfWMn/+/Fx00UXrXPb888/PZz7zmVx11VWpqjFvBwAAMHkYxjlk9957b4466qgcc8wxqarsu+++Oeuss/Loo48mSW699dYsX748SXLwwQfnvPPOy3XXXZf99tvvKeuaP39+zjzzzCceL126NLvttlu++MUv5vbbb0+SLF++PLfeeutT2n7+85/P+9///nz605/Os571rGFsKgAAsAkR9obgoYceeuLSC3vvvXf22WefnHjiiUmSI488MjvttFPmzJmTXXbZJW9729vy2GOPJRmcROXaa6/N3nvvnS222OIp6z3hhBOydOnS7LLLLpk1a1auvvrqbL311jn//PNz6KGHZubMmZk3b15uueWWp7Q95phj8qMf/Sjz58/P7Nmzc9RRRw13JwAAABOqWmsTXcN6mzt3blu0aNGTpi1evDjTp0+foIomP/sPAIDJ7ul06YWq+lprbbXXatOzBwAA0EPCHgAAQA8JewAAAD0k7AEAAPSQsAcAANBDwh4AAEAPCXtDMGXKlCeuszdr1qycdtppefzxx9drXYsWLcqxxx67wTX9r//1vzJz5szMnj07++yzT7773e9u8DoBAIBN1+YTXcCwrc81NtZmNNffmDp1am644YYkyZIlS3LYYYflwQcfzMknnzzm55s7d27mzl3tZTPG5Ljjjsspp5ySJPngBz+Yd73rXfnwhz+8wesFAAA2TXr2hmybbbbJ2WefnTPOOCOttaxYsSLHHXdcdt1118ycOTMf+chHkiSHHHJILr/88ifaHX744bn00ktzzTXX5MADD0ySLFu2LEcccURmzJiRmTNn5rLLLkuSLFiwIPPmzcucOXNy0EEHZdmyZU+p43nPe94T95cvX56qGuZmAwAAE0zY2wh22GGHrFixIkuWLMm5556badOmZeHChVm4cGHOOeec3HnnnTn44INzySWXJEkeeeSRXHXVVTnggAOetJ5TTjkl06ZNy0033ZQbb7wxe+21V+67776ceuqpufLKK3P99ddn7ty5Of3001dbx1/8xV/k5S9/ef7+7/8+73rXu4a+3QAAwMQR9jayBQsW5MILL8zs2bPz2te+Nvfff39uu+227L///rn66qvz8MMP53Of+1z22GOPTJ069Ultr7zyyhx99NFPPN5qq63y5S9/OTfffHN23333zJ49OxdccEG+/e1vr/a53/3ud+fuu+/OG9/4xpxxxhlD3U4AAGBi9f6YvU3BHXfckSlTpmSbbbZJay0f+tCHsu+++z5luT333DNXXHFFLr744hxyyCGjWndrLfPnz89FF1006nre+MY35nWve916HUMIAAB9tHjH6WNuM/2WxUOoZPzo2Ruye++9N0cddVSOOeaYVFX23XffnHXWWXn00UeTJLfeemuWL1+eJDn44INz3nnn5brrrst+++33lHXNnz8/Z5555hOPly5dmt122y1f/OIXc/vttycZHI936623PqXtbbfd9sT9T33qU9lxxx3HdTsBAIBNi569IXjooYcye/bsPProo9l8883zpje9KX/0R3+UJDnyyCNz1113Zc6cOWmtZeutt84//uM/Jkn22WefvOlNb8rrX//6bLHFFk9Z7wknnJCjjz46u+yyS6ZMmZITTzwxb3jDG3L++efn0EMPzcMPP5wkOfXUU/PqV7/6SW2PP/74fPOb38xmm22WV7ziFc7ECQAAPVettYmuYb3NnTu3LVq06EnTFi9enOnTx94Fy4D9BwDAZLc+l1+75D2PjbnNpjCMs6q+1lpb7bXaDOMEAADoIWEPAACgh4Q9AACAHhL2AAAAekjYAwAA6CFhDwAAoIeEvSGYMmVKZs+enZ133jmzZs3Kaaedlscff3y91rVo0aIce+yx41bbaaedlqrKfffdN27rBAAANj29v6j64h3H95pxo7mWxtSpU3PDDTckSZYsWZLDDjssDz74YE4++eQxP9/cuXMzd+5qL5sxZnfffXcWLFiQ7bbbblzWBwAAbLr07A3ZNttsk7PPPjtnnHFGWmtZsWJFjjvuuOy6666ZOXNmPvKRjyRJDjnkkFx++eVPtDv88MNz6aWX5pprrsmBBx6YJFm2bFmOOOKIzJgxIzNnzsxll12WJFmwYEHmzZuXOXPm5KCDDsqyZctWW8s73vGOvP/9709VDXmrAQCAiSbsbQQ77LBDVqxYkSVLluTcc8/NtGnTsnDhwixcuDDnnHNO7rzzzhx88MG55JJLkiSPPPJIrrrqqhxwwAFPWs8pp5ySadOm5aabbsqNN96YvfbaK/fdd19OPfXUXHnllbn++uszd+7cnH766U+p4VOf+lRe9rKXZdasWRtlmwEAgInV+2Gcm5oFCxbkxhtvzKWXXpokeeCBB3Lbbbdl//33z9vf/vY8/PDD+fznP5899tgjU6dOfVLbK6+8Mh/72MeeeLzVVlvlM5/5TG6++ebsvvvuSQZBcd68eU9q9+Mf/zj/5//8nyxYsGDIWwcAAGwqhL2N4I477siUKVOyzTbbpLWWD33oQ9l3332fstyee+6ZK664IhdffHEOOeSQUa27tZb58+fnoosuWuMy3/rWt3LnnXc+0at3zz33ZM6cOfnqV7+an/mZn1m/jQIAADZphnEO2b333pujjjoqxxxzTKoq++67b84666w8+uijSZJbb701y5cvT5IcfPDBOe+883Lddddlv/32e8q65s+fnzPPPPOJx0uXLs1uu+2WL37xi7n99tuTJMuXL8+tt976pHYzZszIkiVLctddd+Wuu+7Ktttum+uvv17QAwCAHhP2huChhx564tILe++9d/bZZ5+ceOKJSZIjjzwyO+20U+bMmZNddtklb3vb2/LYY48lSfbZZ59ce+212XvvvbPFFls8Zb0nnHBCli5dml122SWzZs3K1Vdfna233jrnn39+Dj300MycOTPz5s3LLbfcslG3FwAA2PRUa22ia1hvc+fObYsWLXrStMWLF2f69PG93MLTif0HAMBkN+OCGWNuc8l7Hhtzm9Fclm3YquprrbXVXqvNMXsAAMCm66RpY2/zSteVTgzjBAAA6CVhDwAAoIeEPQAAgB4S9gAAAHpI2AMAAOghYW8IpkyZ8sR19mbNmpXTTjstjz/++Hqta9GiRTn22GM3uKaTTjopL3vZyzJ79uzMnj07n/3sZzd4nQAAwKar95deOPOoL4zr+o7+8F7rXGbq1Km54YYbkiRLlizJYYcdlgcffDAnn3zymJ9v7ty5mTt3tZfNGLN3vOMd+eM//uNxWRcAALBp07M3ZNtss03OPvvsnHHGGWmtZcWKFTnuuOOy6667ZubMmfnIRz6SJDnkkENy+eWXP9Hu8MMPz6WXXpprrrkmBx54YJJk2bJlOeKIIzJjxozMnDkzl112WZJkwYIFmTdvXubMmZODDjooy5Yt2/gbCgAAbFKEvY1ghx12yIoVK7JkyZKce+65mTZtWhYuXJiFCxfmnHPOyZ133pmDDz44l1xySZLkkUceyVVXXZUDDjjgSes55ZRTMm3atNx000258cYbs9dee+W+++7LqaeemiuvvDLXX3995s6dm9NP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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = srup_df.plot(kind='bar', figsize=(15,10), width=0.8)\n", "ax.legend(['Device 1', 'Device 2', 'Device 3', 'Device 4', 'Device 5'])\n", "plt.ylabel(\"Mean Duration (ms)\")\n", "plt.title('Mean network & processing delay by device for SRUP Experiments')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t = mqtt_df.stack().reset_index()\n", "t.columns = ['Experiment', 'Device', 'Mean']\n", "mqtt_ave_df = t.groupby(['Experiment'])['Mean'].agg([np.average])\n", "mqtt_ave_df.plot(kind='bar', figsize=(15,10), width=0.8, legend=False)\n", "plt.ylabel(\"Mean Duration (ms)\")\n", "plt.title('Mean network & processing delay for MQTT Experiments')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t = srup_df.stack().reset_index()\n", "t.columns = ['Experiment', 'Device', 'Mean']\n", "srup_ave_df = t.groupby(['Experiment'])['Mean'].agg([np.average])\n", "srup_ave_df.plot(kind='bar', figsize=(15,10), width=0.8, legend=False)\n", "plt.ylabel(\"Mean Duration (ms)\")\n", "plt.title('Mean network & processing delay for SRUP Experiments')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mqtt_ave_df['Type'] = pd.Series(['MQTT' for _ in range(len(mqtt_ave_df.index))], index=mqtt_ave_df.index)\n", "srup_ave_df['Type'] = pd.Series(['SRUP' for _ in range(len(srup_ave_df.index))], index=srup_ave_df.index)\n", "\n", "comb_ave_df = pd.merge(mqtt_ave_df, srup_ave_df, on='Experiment', how='inner')\n", "\n", "ax = comb_ave_df.plot(kind='bar', figsize=(15,10), width=0.8)\n", "ax.legend(['MQTT', 'SRUP'])\n", "plt.ylabel(\"Mean Duration (ms)\")\n", "plt.title('Comparison of mean network & processing delay')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Experiment 1:\n", "=============\n", "Total MQTT Delay: 2.3077\n", "Total SRUP Delay: 58.4402\n", "Difference = 56.1325\n", "Overhead Cost: 2432.42%\n", "\n", "Experiment 3:\n", "=============\n", "Total MQTT Delay: 96.1690\n", "Total SRUP Delay: 147.6638\n", "Difference = 51.4948\n", "Overhead Cost: 53.55%\n" ] } ], "source": [ "r1m = comb_ave_df.iloc[[0]].average_x\n", "r1s = comb_ave_df.iloc[[0]].average_y\n", "d1m = r1m.loc[1]\n", "d1s = r1s.loc[1]\n", "print(f\"Experiment 1:\\n=============\\nTotal MQTT Delay: {d1m:.4f}\\nTotal SRUP Delay: {d1s:.4f}\")\n", "print(f\"Difference = {(d1s - d1m):.4f}\\nOverhead Cost: {(((d1s - d1m)/d1m) * 100):.2f}%\")\n", "print()\n", "\n", "r3m = comb_ave_df.iloc[[2]].average_x\n", "r3s = comb_ave_df.iloc[[2]].average_y\n", "d3m = r3m.loc[3]\n", "d3s = r3s.loc[3]\n", "print(f\"Experiment 3:\\n=============\\nTotal MQTT Delay: {d3m:.4f}\\nTotal SRUP Delay: {d3s:.4f}\")\n", "print(f\"Difference = {(d3s - d3m):.4f}\\nOverhead Cost: {(((d3s - d3m)/d3m) * 100):.2f}%\")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3UAAAJZCAYAAAAOFxzZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3debxkd13n//eHJCyyQ9qQBWgISwwzEjSGCPgDwYUxbIOAEIyBCUQdEVlU4g/9sQzzE5zxBzIwYDSQ6EyQgDAEw5YfAgrKkkAGEmJkMQghIc0WSIJAOp/5o07Dpe2+t27oupXv7efz8biPW3VOVZ1P3VuP7n71OXWqujsAAACM6QbLHgAAAIDrTtQBAAAMTNQBAAAMTNQBAAAMTNQBAAAMTNQBAAAMTNQB7AWq6tSqesEq67uq7rLK+guq6gELGe6729g6zbHvIrez0arqlVX1e8ue4/ux1utnD2/r4qr6qY3YFsBmsan+4gTY21TVu5PcM8ntuvube+gxT03yue7+3R3Luvsee+Kx90bd/SvLngGAzc2eOoBBVdXWJD+RpJM8bKnDXM9str19y+RnCXD9J+oAxvVLSd6f5NQkx69cUVX3qqoPV9XXq+q1SW680/rfqqpLq+rzVfUfViw/Mcnjk/x2VV1ZVW+eln/nkLiqulFVvWS67+enyzea1j2gqj5XVc+sqsunbTxxxeMfU1UfqaqvVdVnq+q58z7ZaYbfqaqPV9VXqurVVXXjnbb7rKq6LMmrV5tzus/Dq+q8aZZPVdWDp+W3rKpTptkvqaoXVNU+07q7VNV7quqKqvri9LNNzbx4es5fq6qPVdW/mdZ959DFOX4+t62qN0+P8aFp2+9d5WfysOnQ2K9W1bur6oem5c+qqtfvdNs/qqqXzvEcn1BV75uez5eS7Pgd3bqqzppeUx+oqkNXPPZhVXV2VX25qi6qqsfM+zuvquOq6jNV9aWqevZcLwYAvoeoAxjXLyX5n9PXz1bVAUlSVTdM8r+S/HmS2yR5XZKf33GnKV5+M8lPJ7lrku+8f6m7T54e7w+6+2bd/dBdbPfZSY5OckRmh34eleR3V6y/XZJbJjk4yQlJXl5Vt57WXTXNfaskxyT51ap6xDqe8+OT/GySQ5PcbRfbvU2SOyY5cbU5q+qoJH+W5LemWf6vJBdPj3NqkmuS3CXJvZL8TJInTev+U5J3JLl1kkOS/Ldp+c9Mj3G36bk/JsmXdvMcVvv5vDyzn9HtMgv143f5CLPncLckr0nytCRbkrwlyZun3/9fJPm5qrr5dNt9pplOn+M5Jsm9k3w6yQFJ/vO07LFJnjc990/uWF5VN01y9vTYPzjd7r9X1eHT/Xb7O59u84okxyU5KMltM/u5ArAOog5gQFV1v8zi5YzuPjfJp5IcO60+Osl+SV7S3d/u7tcn+dCKuz8myau7+/zuvirf3RMzr8cneX53X97d2zL7h/5xK9Z/e1r/7e5+S5Irk9w9Sbr73d39se6+trs/mlmU3H8d235Zd3+2u7+cWVQ8bsW6a5M8p7u/2d3fWGPOE5K8qrvPnma5pLv/YQrjn0vytO6+qrsvT/LizEJlx3O7Y5KDuvtfuvu9K5bfPMlhSaq7L+zuS3fzHHb585nC6+en53B1d388yWmr/Cx+IclZ03P4dpL/muQmSe7T3Z9J8uEk/3667QOTXN3d75/jOSbJ57v7v3X3NdPPMkne2N0f7O5rMgv/I6blD0lycXe/err9R5L8ZZJHJ2v+zh+V5K+6+2+m94T+Xma/RwDWQdQBjOn4JO/o7i9O10/Pd/fqHJTkku7uFbf/zIrLByX57G7WzeOgne7zmWnZDl+a/uG/w9VJbpYkVXXvqnpXVW2rqiuS/EqS/dex7Z3nXrndbd39L3POefvMQnhnd8wsiC+dDmn8apI/zmwPVJL8dpJK8sHpsMf/kCTd/ddJXpbZnrbLq+rkqrrFbp7D7n4+WzI7gdnK57jy8s6+5/l197XT7Q+eFp2e70bvsfnuXrq1nuPutnvZLmbe8Xj33vFY0+M9PrO9jWv9zr/ntTj9J8Pu9nACsBuiDmAwVXWTzPa23b+qLpveQ/b0JPesqnsmuTTJwVVVK+52hxWXL80sana1LpmdeGU1n8/sH/Ir7//5Occ/PcmZSW7f3bdM8srMImleO8+9crs7z73anJ/N7BDOnX02yTeT7N/dt5q+brHj7J/dfVl3P7m7D0ryy5kdZniXad1Lu/tHkxye2WGYv7WO55Uk2zI7JHLl4Ye3381t/9Xzm37ft09yybTodUkeUFWHZLbHbkfUrfocJ2u9Blb6bJL3rHisW02H7v7qtH613/n3vBar6gcyOwQTgHUQdQDjeUSS7ZnFwxHT1w8l+dvM3rv095nFwVOrar+qemRm7yfb4YwkT6iqw6d/RD9np8f/QpI7r7L91yT53araUlX7J/l/kvyPOWe/eZIvd/e/TO9rO3atO+zk16rqkKq6TWbvmXvtdZzzlCRPrKoHVdUNqurgqjpsOmTyHUn+sKpuMa07tKrunyRV9egpkpLkK5nFz7VV9WPTHqn9MnsP2b9knYcRdvf2JG9I8tyq+oGqOiyz3+funJHkmOk57JfkmZnF2t9Nj7ctybuTvDrJP3X3hdPyVZ/jdfBXSe42nfBkv+nrx3actCWr/85fn+QhVXW/6b2Az49/mwCsmz84AcZzfGbvifvnac/RZd19WWaH/z0+s5h4ZJInJPlyZu+9esOOO3f3W5O8JMlfZ3bCi7/e6fFPSXL4dCjd/9rF9l+Q5JwkH03ysczeuzXvB1P/xyTPr6qvZxZZZ8x5vx1OzyxIPp3Z4ZOrbXe3c3b3B5M8MbP3kl2R5D357l6vX0pywyQfzyzcXp/kwGndjyX5QFVdmdnep9/o7k8nuUWSP5lu/5nMDiH8L+t8bknylMxOonJZZie6eU1mofavdPdFSX4xs5O1fDHJQ5M8tLu/teJmp2d2IpzTd7r7as9xXbr765mdaOWxme09vCzJi5LsONPobn/n3X1Bkl+b5rt0muVz12UOgL1Zfe9bLgDg+qmqLk7ypO7+/5c9y0apqhdl9sHyuz0LJgDYUwcA1xPT5739cM0cldlZOt+47LkAuH7bd9kDAADfcfPMDrk8KLP3Nv5hkjctdSIArvccfgkAADAwh18CAAAMTNQBAAAMbIj31O2///69devWZY8BAACwFOeee+4Xu3vLrtYNEXVbt27NOeecs+wxAAAAlqKqPrO7dQ6/BAAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGJioAwAAGNi+yx5gdFtPOmvZI7AkF7/wmGWPAAAA9tQBAACMTNQBAAAMTNQBAAAMTNQBAAAMTNQBAAAMTNQBAAAMTNQBAAAMTNQBAAAMTNQBAAAMTNQBAAAMbN9lDwCs39aTzlr2CCzJxS88ZtkjAADXM/bUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADEzUAQAADGzfZQ8AwBi2nnTWskdgCS5+4THLHgGANdhTBwAAMDBRBwAAMDBRBwAAMDBRBwAAMDBRBwAAMDBRBwAAMDBRBwAAMDBRBwAAMDBRBwAAMDBRBwAAMLB9F/ngVXVxkq8n2Z7kmu4+sqpuk+S1SbYmuTjJY7r7K4ucAwAAYLPaiD11P9ndR3T3kdP1k5K8s7vvmuSd03UAAACug2UcfvnwJKdNl09L8oglzAAAALApLDrqOsk7qurcqjpxWnZAd186Xb4syQG7umNVnVhV51TVOdu2bVvwmAAAAGNa6Hvqktyvuy+pqh9McnZV/cPKld3dVdW7umN3n5zk5CQ58sgjd3kbAACAvd1C99R19yXT98uTvDHJUUm+UFUHJsn0/fJFzgAAALCZLSzqquqmVXXzHZeT/EyS85OcmeT46WbHJ3nTomYAAADY7BZ5+OUBSd5YVTu2c3p3v62qPpTkjKo6IclnkjxmgTMAAABsaguLuu7+dJJ77mL5l5I8aFHbBQAA2Jss4yMNAAAA2ENEHQAAwMBEHQAAwMBEHQAAwMAW/eHjAAAwlK0nnbXsEViCi194zLJHuM7sqQMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABiYqAMAABjYvsseAABgd7aedNayR2AJLn7hMcseAYZiTx0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDARB0AAMDAFh51VbVPVX2kqv5qun6nqvpAVX2yql5bVTdc9AwAAACb1UbsqfuNJBeuuP6iJC/u7rsk+UqSEzZgBgAAgE1poVFXVYckOSbJn07XK8kDk7x+uslpSR6xyBkAAAA2s0XvqXtJkt9Ocu10/bZJvtrd10zXP5fk4AXPAAAAsGktLOqq6iFJLu/uc6/j/U+sqnOq6pxt27bt4ekAAAA2h0XuqbtvkodV1cVJ/iKzwy7/KMmtqmrf6TaHJLlkV3fu7pO7+8juPnLLli0LHBMAAGBcC4u67v6d7j6ku7cmeWySv+7uxyd5V5JHTTc7PsmbFjUDAADAZreMz6l7VpJnVNUnM3uP3SlLmAEAAGBT2Hftm3z/uvvdSd49Xf50kqM2YrsAAACb3TL21AEAALCHiDoAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICBiToAAICB7TvPjarqBknumeSgJN9Icn53X77IwQAAAFjbqlFXVYcmeVaSn0ryiSTbktw4yd2q6uokf5zktO6+dtGDAgAA8K+ttafuBUlekeSXu7tXrqiqH0xybJLjkpy2mPEAAABYzapR192PW2Xd5UlesscnAgAAYG5znSilqh5dVTefLv9eVb2hqn5ksaMBAACwlnnPfvl73f31qrpfkgclOSWz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JE/r7q+tXNfdnaR3c78Tq+qcqjpn27Ztix4TAABgSAuNuqraL7Og+5/d/YZp8Req6sBp/YFJLt/Vfbv75O4+sruP3LJlyyLHBAAAGNYiz35ZSU5JcmF3/38rVp2Z5Pjp8vFJ3rSoGQAAADa7fRf42PdNclySj1XVedOy/zvJC5OcUVUnJPlMkscscAYAAIBNbWFR193vTVK7Wf2gRW0XAABgb7IhZ78EAABgMUQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwEQdAADAwBYWdVX1qqq6vKrOX7HsNlV1dlV9Yvp+60VtHwAAYG+wyD11pyZ58E7LTkryzu6+a5J3TtcBAAC4jhYWdd39N0m+vNPihyc5bbp8WpJHLGr7AAAAe4ONfk/dAd196XT5siQH7O6GVXViVZ1TVeds27ZtY6YDAAAYzNJOlNLdnaRXWX9ydx/Z3Udu2bJlAycDAAAYx0ZH3Req6sAkmb5fvsHbBwAA2FQ2OurOTHL8dPn4JG/a4O0DAABsKov8SIPXJPn7JHevqs9V1QlJXpjkp6vqE0l+aroOAADAdbTvoh64ux+3m1UP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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "comb_ave_df['Difference'] = comb_ave_df.apply(lambda row: (row.average_y-row.average_x), axis=1)\n", "comb_ave_df.head()\n", "ax = comb_ave_df['Difference'].plot(kind='bar', figsize=(15,10), width=0.8, legend=False)\n", "plt.ylabel(\"Mean Difference (ms)\")\n", "plt.title('Addtional processing overhead')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3sAAAJcCAYAAABAE73ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzde9hcZ10v/O+PpkClpQWKEdraIlRNacULwkGt7oSinKnbAzacisRd3RsKKryc4rsBNa8FDxxUcFcCbRVTOUrlICDmKbtqgRZBDgEphdoWSuVMOKfc7x9rhU6fPqckM89MVj6f65orM2utWfObNfdM5vvc97qnWmsBAABgWG4x7QIAAAAYP2EPAABggIQ9AACAARL2AAAABkjYAwAAGCBhDwAAYICEPYAxqqrHV9Ul065jFlXVrqr6oVV4nA1Vdc0Kt31uVf31BGo4r6p+f9z77fc9V1W/Nob9fLiqNoyhpNF9rq2qd1XVV6vqj8e5bxZWVW+tqjOnXQcwm4Q9YEFV9amq+nZVHT1v+b9VVauqE6ZT2d7bmy//q62q7lVVl/dB6D+q6oHTrmlSWmuHt9aunHYddFprd2+tzY15t2cl+VyS27bWnrq/O+v/eNKq6oXzlp/eLz9vZNmtquoPquo/q+obVfXxqnpaVVW//sP9+2xXVd1QVd8cud1Grn+n/+zbc/svFqnrhpFt9lzuvL/PeW+11h7cWjt/tR93b/6g0f9R5bkTLglYgLAHLOWTSTbtuVFVpyT5vumVM9uqas0+3O3Pkrw1yRFJHphkrKG0qg4Z5/5gGccn+Uhrre3tHZd4/3wiySPnrT8zyX/M2+41SU5L8pB076fHJvn1JH+cfC/cHt5aOzzJ/03ypD23W2s1su5VSV4wsu43FqnrX0e22XP59N4+731VHd/jgCX5kACW8ldJHjdy+8wkF4xu0P81/Y/6v6Z/tqr+oqoO69fdrqreVFX/VVVf7K8fO3Lfuar6var6537Y19vn9ySObLuhqq6pqqdW1fVV9Zmq+tXl6qiq26QLU3ce/et7/5f/o/v7bqmq3VV12/7271XVi/rrR1bVBf1zuKqqfmfPF6z+r/v/XFUvrKrPJ3nuAnX/YVVdUlVHLnKMv5Pkqtb5ZGvtw0u9ICPH4dlV9bm+B/bRI+vPq6qXVdVbquprSTZW1br+WH+p7914xMj2h1XVH/fP7ct9rXtev/tV1b/09/tAjQz565/7lf3r9sk9NVTV3arq4n5fn6uqvx25T6uqu43U+edV9eZ+H++uqruObPtzVfWxfj8v7fe54NDF/jmc17exjyS597z1d66q1/Wv4Ser6slLHN/XVNV1/eO+q6ru3i+/d9+uDhnZ9heq6gNLvFxHV9U7+ud3cVUd39/vz2veEMequqiqfmuRmn62qj7a1/RnSWre+idU1c7++b9t5HFeVlV/NG/bN1bVb/fXP1VVD+ivH9K3qU/09V5eVcf16360fx5f6F+TRy5S53npPiOeXt377AHVvS9fVFWf7i8vqqpb9dvvacvPqKrrkrxykeN4XZIPpvtjSKrq9kl+MslFI499WpKfS/KLrbUPtdZ2t9YuTfKYJE+pVRg+PFLLXftjdc/+9p37trehvz1XXQ/ke6rqK/1rcvuR+y/1vpurqq1V9c9Jvp7kh2pkWG/d9DPpS/179Cf75VdX99l55sj+lvr8XvQzt6rOSvLo3Pha/32//BlVdW3fhj7Wvy7AFAl7wFIuTXLb6sLCIUnOSDL//KZzkvxwkh9PcrckxyT53/26W6T7And8kh9M8o10PVmjHpXkV5N8f5JbJnnaEvX8QJIj+8fYnOTPq+p2S9XRWvtakgcn+fS8v76/N8l/6+/735JcleSnRm5f3F//0/4xf6hf/ri+3j3um+TKJGuTbN2zsKpuUVV/meTHkvxca+3Lizyn9yZ5wZ4vhiv0A0mO7p/jmUnOraofGVn/qL6WI5K8O8nfJ3l7umN8dpJXjWz/R0nule7L8+2TPD3Jd6vqmCRvTvL7/fKnJXldVd2xugD9kiQPbq0d0d/3/f3+fq9/rNslOTbd8VvMGUme1297RV9zqgvhr03yrCR3SPKx/jEW85wkd+0vD+yPSfp93aJ//h/oj9dpSX6zFh8u+9YkJ6Y7Vu9L18uT1tp7k3w+XaDY47GZ98ePeR6d7ngcne74vKpffn6STXXjHw2OTvKAJH8zfwf9utcn+Z1+P5/Ije00VXV6kmcn+YUkd0zXY7W9X709ya9UfW8Y4+36+i9coNbfTteL/5Akt03yhCRf71/rd/S1fX+61+ylVXXS/B201h6fm/aK/WOSLUnul+59eY8k9+mfyx4/kK59HZ9uCOhiLsiNf3g6I8kbk3xrZP3PJnl3a+3qeTW9O11v+aqFjtbaJ5I8I8lfV9X3pfsMPH/ekNnHpTvGd0qyO937KUu970bu+9h0x+qIdJ9b8903yb+ne+/8TbrX+97pPhcfk+TPqurwftulPr+TRT5zW2vn5qav9cP7z5QnJbl3/7nwwCSf6o/Jc1trz13B4QPGrbXm4uLicrNLuv+kH5Dui9kfJHlQui99a5K0JCek62H4WpK7jtzvJ5J8cpF9/niSL47cnkvyOyO3/1eSf1jkvhvShcU1I8uuT/dFcsk6+vteM29/v5fuC9aadD0HT0n3xefW/ePcIckhSb6d5KSR+/16krn++uOT/Oe8/T4+XcD62ySvS3LLJY7xGekCxYOTXJvknv3yByS5fInjsDvJbUaWvTrJ/9tfPy/JBSPrfrp/frcYWbY9XS/kLfrneo8FHucZSf5q3rK3pQtSt0nypSS/mOSwedtckOTcJMcusM+W5G4jdb58ZN1Dkny0v/64dEPk9qyrJFcn+bVFjsmVSR40cvusPa93ui++81+jZyV5ZX/9uUn+epH9HtXXfOTIMXlVf/326XpW7rTIfc9LcuHI7cOT3JDkuP72ziQ/219/UpK3LLKfxyW5dN6xuGbPsUgXTjePrL9FX9fx/bb/meRn+nX/I8k/zX+P99c/luT0BR7/V5L833nL/k+S5yzxvH9/5PYnkjxk5PYDk3xqpC1/O8mtl3iPPD7JJUkOS/LZdMHj0nSB9/eTnNdv9/LR4z1vH5cmefa8ZXNLtKebPIcl6tqd7n2w5/KJedtclK5H8t+T3GreY58zcvuk/jgckiXedyP3/d3Fnktf18dH1p2Srg2vHVn2+XSfxSv53FzwM3eR1/pu/foHJDl0qePn4uKyehc9e8By/ipdT9Hjc/NejDumO4fv8n7I0JeS/EO/PFX1fVX1f6obIviVJO9KclTd9Dyy60aufz3dl+LFfL61tnuB7ZesYxEXp/syc890X8jeka7n7n5JrmitfT5dT8qhuelfz69K91fuPW7Sk9C7W5LTkzyvtfbtJWp4SpI/bK29NV2IfGvfw/dTSf5pift9sXU9lqM1jU4MMVrTnZNc3Vr77gLP4eh04fYTCzzG8Ul+ec/x7I/pqenCzdfShYDfSPKZ6oZi/mh/v6en+xL5nuqGjD5hieex2Gt/59Hn0FprWfpcxptsn5u+XsenG8I7+jyena4n9iaqG8p4TnVDGb+Svlci3XFKul7th/e9XY9MF4I+s0Rdo89hV5Iv5MbX6fx0vSzp//2rlTy3/liMPtfjk7x45Ll9Id3xP6bf9sLceN7to3Jj7+J8x2XxdnDfecfv0el6fFbizrn5+2e0rf5Xa+2by+2ktfaNdD1ev5PkDq21f563yefS9ZIt5E79+nG7tLV21MjlrvPW/2WSk5P8aWvtW/PWzW+vh6ZrZ4u+7xa570I+O3L9G0nSWpu/bKWfm4t95t5Ma+2KJL+Z7g8o11fVhTWFCWuAmxL2gCW11q5KN1HLQ9INJxv1uXRfHO4+8oXnyNZNcpAkT03yI0nu21q7bZKf6ZdXxmu5OhaaLOJf+tr+e5KLW2sfSTfU9CG5cQjn59KdU3f8yP1+MF0v3B4L7XtnuqGeb503vHK+Nem+5KW19qZ0Q+nenm541/zhrqNu1weO0ZpGJ4YYrenTSY6rm07ksOc5fC7JN9MNf5zv6nQ9DKNfZm/TWjunr/dtrbWfTfcl9KPpvtimtXZda+1/tNbunC7AvrT68/T2wmfSDQFN0k1EMXp7ke2Pm/f8Rp/HJ+c9jyNaaw9ZYD+PShfSH5CuB+mEPSUkSWvt2iT/mm7I5GOzeEDb43s19cPmbp8bX6e/TnJ6Vd0jybokf7eS59Yfi9HnenWSX5/3/A5rrf1Lv357kl+q7jy++6brbV7I1Vm8HVw8b/+Ht9b+5xLPe9Snc/P3z2JtdTkXpPtMWeinMv4xXSgdPTapqvv2j3nxAveZmP71flGSbUmeO3pOXm9+e/1Ouvfjku+73l5PfrOI5T43l3OzOlprf9NaOzXda96SPH9MtQL7SNgDVmJzkvvP601K31v0l0leWFXfn3TnnIycD3VEui8TX+q/7DxnEsWtoI7PJrlDjUyS0lr7epLLkzwxN34R/Jd0vVUX99vckG6I5NaqOqL/wvzbWfjL5vyatqfrQfrHGpl4ZJ7XJPnfVXWPPoz9R7q/nB+2gqf9vKq6ZVX9dJKH9ftayLv7fT69qg6tbrKHh6cb8vbdJK9I8ifVTSJxSFX9RHUTaOzpxXpgv/zW/YQNx1b3W2qn94HzW0l2JfluklTVL9eNk/B8Md0Xvu9m77w5ySlV9fPVzcD4xCzdk/TqJM+qbkKgY9Odl7jHe5J8tZ844rD+uZxcVfdeYD9H9M/n8+l6PP6/Bba5IF3v5Sm5+R8/5ntIVZ1aVbdMN2z40tafU9Zauybd+Zp/leR1fc/VQt6c5O7VTQazJsmTc9Nj8Rf9c98zkcyRVfXLe1a21v4t3Zf6lyd5W2vtS4s8zsuT/F5VnVidH6uqOyR5U5IfrqrH9u3n0Oomq1m3zHPfY3uS36nuXM+j050Ptq+/a3hxunPzbnYeaOvOD3xnuvPb7t6/zvfrH+uC1trH9vEx99WLk1zWWvu1dK/h/J9veExVndSf0/e7SV7bf94s+r4bd4Er+NxczmfTncuc/r4/UlX37z8/vpnus39v3/vAmAl7wLJaa59orV22yOpnpJtc49J+6Ns/pusxS7q/bB+W7svmpemGCE3KonW01j6a7kvnlf1wpT1Diy5O17P2npHbR6QbbrrH2enOa7ky3blDf5MuIC2rdb999btJ/qkW/l3CP+r39YYkX013rttT0w3xe3MtPoPndemC1KfTDcv7jf45LlTDt9OFuwenex1emuRxI9s/Ld0w1vemGwL4/HTn912drpfr2Un+K12Pw/+T7v+NW6QLvZ/u7/Pfkuzp6bl3kndX1a505yw9pe3lb+u11j6X5JeTvCBd8DopyWW56YQco56XbijcJ9P1jH6vx63/Av2wdOcofTI3Bp+Fju0F/X6uTfKRdG12vjek67V4Q/8Hg6X8Tbo/cHwh3SQ4j5m3/vx0oXHRHsKRY3FOumNxYpJ/Hln/hnSv2YV9u/9Qutd6fh0LTgAz4k/Shea3J/lKuh6pw1prX003qcsZ6V7v6/rHu9US+xr1++leu39P187e1y/ba63zztbaFxbZ5BeT7Ej3OfPNdL2w/5ClJ37ZHz9RN/+dvXtXN2nOg3Lje+K3k9yzRmbNTfean5fueN46XYjPMu+7SVjq83s525Kc1H+m/l26NnFOuvfYdekm9HnW+EsG9kZ1Q/oBOBD0PXN/3Vob+1/6Z1Xf63lNkke31nbMQD2fSDd08h/3cz8/k64n5/jmP+Oxq6rz050f+NBlzp1dVVU1l+49/PJp1wIMn549AGZOP4ztqH5I2LPTnTe3UE/bqqqqX0w3NHWpCXRWsp9D003Q83JBb2J+LV1P1d78rAnAoKyZdgEAsICfSDfs8JbphlT+/BLnta2KvkfmpCSPnTe76d7uZ126oY0fyE1/s5Exaq19JyYIAQ5yhnECAAAMkGGcAAAAA3RAD+M8+uij2wknnDDtMgbja1/7Wm5zm9ssvyGsMm2TWaZ9Mqu0TWaZ9jk+l19++edaa3dcaN0BHfZOOOGEXHbZYrPBs7fm5uayYcOGaZcBN6NtMsu0T2aVtsks0z7Hp6quWmydYZwAAAADNLGwV1WvqKrrq+pD85afXVUfraoPV9ULRpY/q6quqKqPVdUDJ1UXAADAwWCSwzjPS/JnSS7Ys6CqNiY5Pck9Wmvfqqrv75eflOSMJHdP9wOo/1hVP9xau2GC9QEAAAzWxHr2WmvvSvKFeYv/Z5JzWmvf6re5vl9+epILW2vfaq19MskVSe4zqdoAAACGbrUnaPnhJD9dVVuTfDPJ01pr701yTJJLR7a7pl92M1V1VpKzkmTt2rWZm5ubaMEHk127djmezCRtk1mmfTKrtE1mmfa5OlY77K1Jcvsk90ty7ySvrqof2psdtNbOTXJukqxfv76ZxWd8zIrErNI2mWXaJ7NK22SWaZ+rY7Vn47wmyetb5z1Jvpvk6CTXJjluZLtj+2UAAADsg9UOe3+XZGOSVNUPJ7llks8luSjJGVV1q6q6S5ITk7xnlWsDAAAYjIkN46yq7Uk2JDm6qq5J8pwkr0jyiv7nGL6d5MzWWkvy4ap6dZKPJNmd5Ilm4gQAANh3Ewt7rbVNi6x6zCLbb02ydVL1AAAAHExWexgnAAAAq0DYAwAAGCBhDwAAYICEPQAAgAES9gAAAAZI2AMAABggYQ8AAGCAhD0AAIABEvYAAAAGSNgDAAAYIGEPAABggIQ9AACAARL2AAAABmjNtAsAAABmV1VNu4QVaa1Nu4SZo2cPAABYVGtt7Jfjn/Gmse+TmxP2AAAABkjYAwAAGCBhDwAAYIBM0AIAAANxj+e9PV/+xnemXcaKnPDMN0+7hCUdedih+cBzfm7aZewXYQ8AAAbiy9/4Tj51zkOnXcay5ubmsmHDhmmXsaRZD6MrYRgnAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEBrpl0AAAAwHkese2ZOOf+Z0y5jZc6fdgFLO2Jdkjx02mXsF2EPAAAG4qs7z5l2CYNx5GGHTruE/SbsAQDAQHzqnAOjJ+qEZ775gKn1QOacPQAAgAES9gAAAAZI2AMAABggYQ8AAGCAhD0AAIABEvYAAAAGSNgDAAAYIGEPAABggIQ9AACAARL2AAAABkjYAwAAGCBhDwAAYICEPQAAgAES9gAAAAZozbQLAAAAZldVTWa/zx/v/lpr493hAOjZAwAAFtVaG/tlx44dY98nNyfsAQAADNDEwl5VvaKqrq+qDy2w7qlV1arq6P52VdVLquqKqvr3qrrnpOoCAAA4GEyyZ++8JA+av7Cqjkvyc0n+c2Txg5Oc2F/OSvKyCdYFAAAweBMLe621dyX5wgKrXpjk6UlGB9aenuSC1rk0yVFVdadJ1QYAADB0qzobZ1WdnuTa1toH5s3qc0ySq0duX9Mv+8wC+zgrXe9f1q5dm7m5uYnVe7DZtWuX48lM0jaZZdons0rbZJZpn6tj1cJeVX1fkmenG8K5z1pr5yY5N0nWr1/fNmzYsP/FkSSZm5uL48ks0jaZZdons0rbZJZpn6tjNXv27prkLkn29Oodm+R9VXWfJNcmOW5k22P7ZQAAAOyDVfvphdbaB1tr399aO6G1dkK6oZr3bK1dl+SiJI/rZ+W8X5Ivt9ZuNoQTAACAlZnkTy9sT/KvSX6kqq6pqs1LbP6WJFcmuSLJXyb5X5OqCwAA4GAwsWGcrbVNy6w/YeR6S/LESdUCAABwsFm1YZwAAACsHmEPAABggIQ9AACAARL2AAAABkjYAwAAGCBhDwAAYICEPQAAgAES9gAAAAZI2AMAABggYQ8AAGCAhD0AAIABEvYAAAAGSNgDAAAYIGEPAABggIQ9AACAARL2AAAABkjYAwAAGCBhDwAAYICEPQAAgAES9gAABmT79u05+eSTc9ppp+Xkk0/O9u3bp10SMCVrpl0AAADjsX379mzZsiXbtm3LDTfckEMOOSSbN29OkmzatGnK1QGrTc8eAMBAbN26Ndu2bcvGjRuzZs2abNy4Mdu2bcvWrVunXRowBcIeAMBA7Ny5M6eeeupNlp166qnZuXPnlCoCpknYAwAYiHXr1uWSSy65ybJLLrkk69atm1JFwDQJewAAA7Fly5Zs3rw5O3bsyO7du7Njx45s3rw5W7ZsmXZpwBSYoAUAYCD2TMJy9tlnZ+fOnVm3bl22bt1qchY4SAl7AAADsmnTpmzatClzc3PZsGHDtMsBpsgwTgAAgAES9gAAAAZI2AMAABggYQ8AAGCAhD0AAIABEvYAAAAGSNgDAAAYIL+zBwCwF045/5Rpl7By50+7gJX54JkfnHYJMEjCHgDAXvjqznPyqXMeOu0ylnWg/Kj6Cc9887RLgMES9gAA9tK4A8pVz3/YWPc3Scc/401j3d+Rhx061v0BNxL2AAD2wkR69c5pY9/lgdKzB0yOCVoAAAZk+/btOfnkk3Paaafl5JNPzvbt26ddEjAlevYAAAZi+/bt2bJlS7Zt25YbbrghhxxySDZv3pwk2bRp05SrA1abnj0AgIHYunVrtm3blo0bN2bNmjXZuHFjtm3blq1bt067NGAKhD0AgIHYuXNnTj311JssO/XUU7Nz584pVQRMk7AHADAQ69atyyWXXHKTZZdccknWrVs3pYqAaRL2AAAGYsuWLdm8eXN27NiR3bt3Z8eOHdm8eXO2bNky7dKAKTBBCwDAQOyZhOXss8/Ozp07s27dumzdutXkLHCQEvYAAAZk06ZN2bRpk9/ZAwzjBAAAGCJhDwAAYICEPQAAgAES9gAAAAZI2AMAABggYQ8AAGCAhD0AAIABEvYAAAAGSNgDAAAYIGEPAABggCYW9qrqFVV1fVV9aGTZH1bVR6vq36vqDVV11Mi6Z1XVFVX1sap64KTqAgAAOBhMsmfvvCQPmrfsHUlObq39WJL/SPKsJKmqk5KckeTu/X1eWlWHTLA2AACAQZtY2GutvSvJF+Yte3trbXd/89Ikx/bXT09yYWvtW621Tya5Isl9JlUbAADA0K2Z4mM/Icnf9tePSRf+9rimX3YzVXVWkrOSZO3atZmbm5tgiQeXXbt2OZ7MJG2TWaZ9Mqu0TWaZ9rk6phL2qmpLkt1JXrW3922tnZvk3CRZv35927Bhw3iLO4jNzc3F8WQWaZvMMu2TWaVtMsu0z9Wx6mGvqh6f5GFJTmuttX7xtUmOG9ns2H4ZAAAA+2BVf3qhqh6U5OlJHtFa+/rIqouSnFFVt6qquyQ5Mcl7VrM2AACAIZlYz15VbU+yIcnRVXVNkuekm33zVkneUVVJcmlr7Tdaax+uqlcn+Ui64Z1PbK3dMKnaAAAAhm5iYa+1tmmBxduW2H5rkq2TqgcAAOBgsqrDOAEAAFgdwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADNDEwl5VvaKqrq+qD40su31VvaOqPt7/e7t+eVXVS6rqiqr696q656TqAgAAOBhMsmfvvCQPmrfsmUne2Vo7Mck7+9tJ8uAkJ/aXs5K8bIJ1AQAADN7Ewl5r7V1JvjBv8elJzu+vn5/k50eWX9A6lyY5qqruNKnaAAAAhm7NKj/e2tbaZ/rr1yVZ218/JsnVI9td0y/7TOapqrPS9f5l7dq1mZubm1ixB5tdu3Y5nswkbZNZpn0yq7RNZpn2uTpWO+x9T2utVVXbh/udm+TcJFm/fn3bsGHDuEs7aM3NzcXxZBZpm8wy7ZNZpW0yy7TP1bHas3F+ds/wzP7f6/vl1yY5bmS7Y/tlAAAA7IPVDnsXJTmzv35mkjeOLH9cPyvn/ZJ8eWS4JwAAAHtpYsM4q2p7kg1Jjq6qa5I8J8k5SV5dVZuTXJXkkf3mb0nykCRXJPl6kl+dVF0AAAAHg4mFvdbapkVWnbbAti3JEydVCwAAwMFmtYdxAgAAsAqEPQAAgAES9gAAAAZI2AMAABggYQ8AAGCAJjYbJwDMmqqadgkr1k1UDQD7TtgDYCadcv4pY9/nyeedPPZ9Tsoknv8Hz/zg2PcJwOwS9gCYSV/deU4+dc5Dp13Gsubm5rJhw4Zpl7GsE5755mmXAMAqE/YAmFnjDihXPf9hY93fJB3/jDeNdX9HHnboWPcHwOwT9gCYSRPp1Ttn/OfBHSg9ewAcfMzGCQAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAM0LI/ql5VxyY5I8lPJ7lzkm8k+VCSNyd5a2vtuxOtEAAAgL22ZNirqlcmOSbJm5I8P8n1SW6d5IeTPCjJlqp6ZmvtXZMuFAAAgJVbrmfvj1trH1pg+YeSvL6qbpnkB8dfFgAAAPtjyXP2Fgp6VXW7qvqxfv23W2tXTKo4AAAA9s2KJmipqrmqum1V3T7J+5L8ZVW9cLKlAQAAsK9WOhvnka21ryT5hSQXtNbum+S0yZUFAADA/lhp2FtTVXdK8sh0k7UAAAAww1Ya9n43yduSXNFae29V/VCSj0+uLAAAAPbHsr+zlySttdckec3I7SuT/OKkigIAAGD/rCjsVT9wVoQAABmjSURBVNVdkpyd5ITR+7TWHjGZsgAAANgfKwp7Sf4uybYkf5/ku5MrBwAAgHFYadj7ZmvtJROtBAAAgLFZadh7cVU9J8nbk3xrz8LW2vsmUhUAAAD7ZaVh75Qkj01y/9w4jLP1twEAAJgxKw17v5zkh1pr355kMQAAAIzHSn9n70NJjppkIQAAAIzPSnv2jkry0ap6b256zp6fXgAAAJhBKw17z5loFQAAAIzVkmGvqqp1Ll5um/GXBgAAwL5a7py9HVV1dlX94OjCqrplVd2/qs5PcubkygMAAGBfLDeM80FJnpBke1XdJcmXkhyWLiS+PcmLWmv/NtkSAQAA2FtLhr3W2jeTvDTJS6vq0CRHJ/lGa+1Lq1EcAAAA+2alE7SktfadJJ+ZYC0AAACMyUp/Zw8AAIADiLAHAAAwQMIeAADAAK0o7FXVL1TVx6vqy1X1lar6alV9ZdLFAQAAsG9WOkHLC5I8vLW2c5LFAAAAMB4rHcb5WUEPAADgwLHSnr3Lqupvk/xdkm/tWdhae/1EqgIAAGC/rDTs3TbJ15P83MiylkTYAwAAmEErCnuttV+ddCEAAACMz0pn4zy2qt5QVdf3l9dV1bGTLg4AAIB9s9IJWl6Z5KIkd+4vf98vAwAAYAatNOzdsbX2ytba7v5yXpI7TrAuAAAA9sNKw97nq+oxVXVIf3lMks9PsjAAAAD23UrD3hOSPDLJdUk+k+SXkpi0BQAAYEatdDbOq5I8YsK1AAAAMCZLhr2qenpr7QVV9afpflfvJlprT96XB62q30rya/0+P5iul/BOSS5Mcocklyd5bGvt2/uyfwAAgIPdcj17O/t/LxvXA1bVMUmenOSk1to3qurVSc5I8pAkL2ytXVhVf5Fkc5KXjetxAQAADiZLhr3W2t/3V7/eWnvN6Lqq+uX9fNzDquo7Sb4v3XmA90/yqH79+UmeG2EPAABgn1RrNxudefONqt7XWrvncstW/KBVT0myNck3krw9yVOSXNpau1u//rgkb22tnbzAfc9KclaSrF279l4XXnjhvpTAAnbt2pXDDz982mXAzWibzDLtk1mlbTLLtM/x2bhx4+WttfULrVvunL0HpxteeUxVvWRk1W2T7N6XYqrqdklOT3KXJF9K8pokD1rp/Vtr5yY5N0nWr1/fNmzYsC9lsIC5ubk4nswibZNZpn0yq7RNZpn2uTqWO2fv0+nO13tEuklT9vhqkt/ax8d8QJJPttb+K0mq6vVJfirJUVW1prW2O8mxSa7dx/0DAAAc9JY7Z+8DST5QVX/TWvvOmB7zP5Pcr6q+L90wztPSBcod6X6/78IkZyZ545geDwAA4KCz0h9VP6GqXltVH6mqK/dc9uUBW2vvTvLaJO9L97MLt0g3LPMZSX67qq5I9/ML2/Zl/wAAAKzwR9WTvDLJc5K8MMnGdL+Lt9KgeDOttef0+xt1ZZL77Os+AQAAuNFKA9thrbV3ppu986rW2nOTPHRyZQEAALA/Vtqz962qukWSj1fVk9JNnmKuVAAAgBm10p69p6T78fMnJ7lXksekm0QFAACAGbRsz15VHZLkV1prT0uyK935egAAAMywZXv2Wms3JDl1FWoBAABgTFZ6zt6/VdVFSV6T5Gt7FrbWXj+RqgAAANgvKw17t07y+ST3H1nWkgh7AAAAM2hFYa+15jw9AACAA8iKwl5VvTJdT95NtNaeMPaKAAAA2G8rHcb5ppHrt07y35N8evzlAAAAMA4rHcb5utHbVbU9ySUTqQgAAID9ttIfVZ/vxCTfP85CAAAAGJ+VnrP31XTn7FX/73VJnjHBugAAANgPKx3GecSkCwEAAGB8lg17VbUmyYOT/Gi/6CNJ3tZa2z3JwgAAANh3S56zV1XHJPlwkqcmuXOSY5I8PcmHq+rOky8PAACAfbFcz97WJC9rrb1odGFVPTnJHyQ5c1KFAQAAsO+WC3v3a609fv7C1tpLqupjkykJAACA/bXcTy98Y4l1Xx9nIQAAAIzPcj17R1bVLyywvJLcdgL1AAAAMAbLhb2Lkzx8kXXvGnMtAAAAjMmSYa+19qurVQgAAADjs9w5ewAAAByAhD0AAIABEvYAAAAGaLkJWr6nqn4yyQmj92mtXTCBmgAAANhPKwp7VfVXSe6a5P1JbugXtyTCHgAAwAxaac/e+iQntdbaJIsBAABgPFZ6zt6HkvzAJAsBAABgfFbas3d0ko9U1XuSfGvPwtbaIyZSFQAAAPtlpWHvuZMsAgAAgPFaUdhrrV086UIAAAAYnxWds1dV96uq91bVrqr6dlXdUFVfmXRxAAAA7JuVTtDyZ0k2Jfl4ksOS/FqSP59UUQAAAOyflYa9tNauSHJIa+2G1torkzxocmUBAACwP1Y6QcvXq+qWSd5fVS9I8pnsRVAEAABgda00sD223/ZJSb6W5LgkvzipogAAANg/K52N86qqOizJnVprz5twTQAAAOynlc7G+fAk70/yD/3tH6+qiyZZGAAAAPtupcM4n5vkPkm+lCSttfcnucuEagIAAGA/rTTsfae19uV5y9q4iwEAAGA8Vjob54er6lFJDqmqE5M8Ocm/TK4sAAAA9sdKe/bOTnL3JN9Ksj3JV5L85qSKAgAAYP+sdDbOryfZ0l8AAACYcUuGveVm3GytPWK85QAAADAOy/Xs/USSq9MN3Xx3kpp4RQAAAOy35cLeDyT52SSbkjwqyZuTbG+tfXjShQEAALDvlpygpbV2Q2vtH1prZya5X5IrksxV1ZNWpToAAAD2ybITtFTVrZI8NF3v3glJXpLkDZMtCwAAgP2x3AQtFyQ5OclbkjyvtfahVakKAACA/bJcz95jknwtyVOSPLnqe/OzVJLWWrvtBGsDAABgHy0Z9lprK/3RdQAAAGaIMAcAADBAwh4AAMAACXsAAAADJOwBAAAM0FTCXlUdVVWvraqPVtXOqvqJqrp9Vb2jqj7e/3u7adQGAAAwBNPq2Xtxkn9orf1oknsk2ZnkmUne2Vo7Mck7+9sAAADsg1UPe1V1ZJKfSbItSVpr326tfSnJ6UnO7zc7P8nPr3ZtAAAAQ1GttdV9wKofT3Juko+k69W7PN2Ptl/bWjuq36aSfHHP7Xn3PyvJWUmydu3ae1144YWrVfrg7dq1K4cffvi0y4Cb0TaZZdons0rbZJZpn+OzcePGy1tr6xdaN42wtz7JpUl+qrX27qp6cZKvJDl7NNxV1Rdba0uet7d+/fp22WWXTbbgg8jc3Fw2bNgw7TLgZrRNZpn2yazSNpll2uf4VNWiYW8a5+xdk+Sa1tq7+9uvTXLPJJ+tqjslSf/v9VOoDQAAYBBWPey11q5LcnVV/Ui/6LR0QzovSnJmv+zMJG9c7doAAACGYs2UHvfsJK+qqlsmuTLJr6YLnq+uqs1JrkryyCnVBgAAcMCbSthrrb0/yULjSk9b7VoAAACGaFq/swcAAMAECXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQGumXQAwLFU17RJWrLU27RIAACZG2IOD2CnnnzL2fZ583slj3+ekTOL5f/DMD459nwAA+0LYg4PYV3eek0+d89Bpl7Gsubm5bNiwYdplLOuEZ7552iUAAHyPsAcHuXEHlKue/7Cx7m+Sjn/Gm8a6vyMPO3Ss+wMA2B/CHhzEJtKrd874zoPbvn17tm7dmp07d2bdunXZsmVLNm3aNLb9AwAMmbAHzKTt27dny5Yt2bZtW2644YYccsgh2bx5c5IIfAAAK+CnF4CZtHXr1mzbti0bN27MmjVrsnHjxmzbti1bt26ddmkAAAcEYQ+YSTt37sypp556k2Wnnnpqdu7cOaWKAAAOLMIeMJPWrVuXSy655CbLLrnkkqxbt25KFQEAHFiEPWAmbdmyJZs3b86OHTuye/fu7NixI5s3b86WLVumXRoAwAHBBC3ATNozCcvZZ5/9vdk4t27danIWAIAVEvaAmbVp06Zs2rTpgPlRdQCAWWIYJwAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAUwt7VXVIVf1bVb2pv32Xqnp3VV1RVX9bVbecVm0AAAAHumn27D0lyc6R289P8sLW2t2SfDHJ5qlUBQAAMABTCXtVdWyShyZ5eX+7ktw/yWv7Tc5P8vPTqA0AAGAIqrW2+g9a9dokf5DkiCRPS/L4JJf2vXqpquOSvLW1dvIC9z0ryVlJsnbt2ntdeOGFq1X24O3atSuHH374tMuAm9E2mWXaJ7NK22SWaZ/js3Hjxstba+sXWrdmtYupqoclub61dnlVbdjb+7fWzk1ybpKsX7++bdiw17tgEXNzc3E8mUXaJrNM+2RWaZvMMu1zdax62EvyU0keUVUPSXLrJLdN8uIkR1XVmtba7iTHJrl2CrUBAAAMwqqfs9dae1Zr7djW2glJzkjyT621RyfZkeSX+s3OTPLG1a4NAABgKGbpd/aekeS3q+qKJHdIsm3K9QAAABywpjGM83taa3NJ5vrrVya5zzTrAQAAGIpZ6tkDAABgTIQ9AACAARL2AAAABkjYAwAAGCBhDwAAYICEPQAAgAES9gAAAAZI2AMAABggYQ8AAGCAhD0AAIABEvYAAAAGSNgDAAAYIGEPAABggIQ9AACAARL2AAAABkjYAwAAGCBhDwAAYICEPQAAgAES9gAAAAZI2AMAABggYQ8AAGCAhD0AAIABEvYAAAAGSNgDAAAYIGEPAABggIQ9AACAARL2AAAABkjYAwAAGCBhDwAAYICEPQAAgAES9gAAAAZI2AMAABggYQ8AAGCAhD0AAIABEvYAAAAGSNgDAAAYIGEPAABggIQ9AACAARL2AAAABkjYAwAAGCBhDwAAYICEPQAAgAES9gAAAAZI2AMAABggYQ8AAGCAhD0AAIABEvYAAAAGSNgDAAAYIGEPAABggIQ9AACAARL2AAAABkjYAwAAGCBhDwAAYICEPQAAgAES9gAAAAZI2AMAABigVQ97VXVcVe2oqo9U1Yer6in98ttX1Tuq6uP9v7db7doAAACGYho9e7uTPLW1dlKS+yV5YlWdlOSZSd7ZWjsxyTv72wAAAOyDVQ97rbXPtNbe11//apKdSY5JcnqS8/vNzk/y86tdGwAAwFBUa216D151QpJ3JTk5yX+21o7ql1eSL+65Pe8+ZyU5K0nWrl17rwsvvHDV6h26Xbt25fDDD592GXAz2iazTPtkVmmbzDLtc3w2btx4eWtt/ULrphb2qurwJBcn2dpae31VfWk03FXVF1trS563t379+nbZZZdNutSDxtzcXDZs2DDtMuBmtE1mmfbJrNI2mWXa5/hU1aJhbyqzcVbVoUlel+RVrbXX94s/W1V36tffKcn106gNAABgCKYxG2cl2ZZkZ2vtT0ZWXZTkzP76mUneuNq1AQAADMWaKTzmTyV5bJIPVtX7+2XPTnJOkldX1eYkVyV55BRqAwAAGIRVD3uttUuS1CKrT1vNWgAAAIZqKufsAQAAMFnCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAyQsAcAADBAwh4AAMAACXsAAAADJOwBAAAMkLAHAAAwQMIeAADAAAl7AAAAAyTsAQAADJCwBwAAMEDCHgAAwAAJewAAAAMk7AEAAAzQmmkXcDA45fxTpl3Cyp0/7QJW5oNnfnDaJQAAwEwT9lbBgRJM5ubmsmHDhmmXAQAAjIFhnAAAAAMk7AEAAAzQzIW9qnpQVX2sqq6oqmdOux4AAIAD0UyFvao6JMmfJ3lwkpOSbKqqk6ZbFQAAwIFnpsJekvskuaK1dmVr7dtJLkxy+pRrAgAAOODM2mycxyS5euT2NUnuO7pBVZ2V5KwkWbt2bebm5latuKHbtWuX48lM0jaZZdons0rbZJZpn6tj1sLeslpr5yY5N0nWr1/f/FTA+PjpBWaVtsks0z6ZVdoms0z7XB2zNozz2iTHjdw+tl8GAADAXpi1sPfeJCdW1V2q6pZJzkhy0ZRrAgAAOODM1DDO1truqnpSkrclOSTJK1prH55yWQAAAAecmQp7SdJae0uSt0y7DgAAgAPZrA3jBAAAYAyEPQAAgAES9vj/27v/ULvrOo7jz5dulW1S4laMsgZFzVy4UoRmikRJ9Ec/pKiMQOgHQsVc+UdEYPZXRbR/KsWYrShXjU3IiOEI8Ue4xTZm25xF1AIlmlKmV6Py+u6P87lxuNx5Se/u9+xznw84nO/5nPM9n9e9fLj3vu/n8zlfSZIkSR2y2JMkSZKkDlnsSZIkSVKHLPYkSZIkqUMWe5IkSZLUIYs9SZIkSeqQxZ4kSZIkdchiT5IkSZI6ZLEnSZIkSR2y2JMkSZKkDqWqhs7wvCV5FPjz0Dk6sgp4bOgQ0hwcm5pkjk9NKsemJpnjc+G8tqpWz/XEaV3saWEl2V9VFw+dQ5rNsalJ5vjUpHJsapI5PheHyzglSZIkqUMWe5IkSZLUIYs9jbtl6ADSSTg2Nckcn5pUjk1NMsfnInDPniRJkiR1yJk9SZIkSeqQxZ4kSZIkdchiTyS5NcmJJEeGziKNS3JekruSPJjkaJJNQ2eSAJK8JMlvkjzQxuaNQ2eSxiU5nuRwkkNJ9g+dR5qRZFOSI+1n53VD5+mde/ZEksuBKeCHVbV+6DzSjCRrgDVVdTDJ2cAB4P1V9eDA0bTEJQmwoqqmkiwH7gM2VdXegaNJwKjYAy6uKi9arYmRZD3wE+AS4N/AbuDaqvrDoME65syeqKp7gL8NnUOarar+UlUH2/GTwDHgVcOmkqBGptrD5e3mf08l6bmdD+yrqqer6hngbuCqgTN1zWJP0mkhyVrgLcC+YZNII0nOTHIIOAHsqSrHpiZJAXcmOZDk00OHkZojwGVJzk3yUuA9wHkDZ+rasqEDSNJ8kqwEdgLXVdUTQ+eRAKpqGtiQ5OXA7UnWV5V7nzUp3l5VjyR5BbAnyUNtJY80mKo6luTrwJ3AU8AhYHrYVH1zZk/SRGv7oXYCP66qXUPnkWarqseBu4B3D51FmlFVj7T7E8DtjPZISYOrqq1VdVFVXQ78Hfj90Jl6ZrEnaWK1D8HYChyrqm8NnUeakWR1m9EjyVnAu4CHhk0ljSRZ0T7UiiQrgCsZLZ+TBtdmm0nyGkb79W4bNlHfXMYpkmwHrgBWJXkYuKGqtg6bSgLgUuDjwOG2NwrgS1X1ywEzSQBrgB8kOZPRP05/VlW/GDiTNOOVjJYWw+hvvduqavewkaT/2ZnkXOA/wGfa6gidIl56QZIkSZI65DJOSZIkSeqQxZ4kSZIkdchiT5IkSZI6ZLEnSZIkSR2y2JMkSZKkDlnsSZK6kmQ6yaGx2xdPcX/vXYQ+rkiy8VT2IUnqj5dekCR1JclUVa1cpL6WVdUzi9DPV4Cpqvrmqe5LktQPZ/YkSd1L8rIkv0vyxvZ4e5JPteOpJFuSHE3yqySrW/vrkuxOciDJvUnWtfZtSW5Osg/4RpJrknx77LmbkuxN8sc2I3drkmNJto3luTLJ/UkOJtmRZGVrP57kxtZ+OMm6JGuBa4HNbabyssX7zkmSTmcWe5Kk3pw1axnnh6vqH8BngW1JPgKcU1Xfa69fAeyvqguAu4EbWvstwOeq6iLgeuC7Y328GthYVZ+fo/9zgLcBm4GfA1uAC4A3J9mQZBXwZeCdVfVWYD8w/j6PtfabgOur6jhwM7ClqjZU1b0v5JsjSVo6lg0dQJKkBfbPqtowu7Gq9iT5EPAd4MKxp54FftqOfwTsajNtG4EdSWZe9+Kxc3ZU1fRJ+r+jqirJYeCvVXUYIMlRYC2jQvFNwK/be78IuH/s/F3t/gBw1fxfriRJc7PYkyQtCUnOAM4HnmY0+/bwSV5ajFa+PD5X0dg89Rxd/avdPzt2PPN4GTAN7Kmqj85z/jT+npYkvQAu45QkLRWbgWPA1cD3kyxv7WcAH2zHVwP3VdUTwJ/aTCAZuXD2Gz5Pe4FLk7y+vfeKJG+Y55wngbMXqH9J0hJhsSdJ6s3sPXtfax/M8kngC23P2z2M9s3BaJbukiRHgHcAX23tHwM+keQB4CjwvoUIV1WPAtcA25P8ltESznXznHYH8AE/oEWS9P/w0guSpCVtMS/VIEnSYnJmT5IkSZI65MyeJEmSJHXImT1JkiRJ6pDFniRJkiR1yGJPkiRJkjpksSdJkiRJHbLYkyRJkqQO/RcDqGna7RAYVwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pm = mqtt_df.stack().reset_index()\n", "pm.columns = ['Experiment', 'Device', 'Mean']\n", "pm = pm.pivot(index = \"Device\", columns = 'Experiment', values = 'Mean')\n", "#pm.head()\n", "\n", "pm.boxplot(figsize=(15,10))\n", "plt.ylabel(\"Mean Duration (ms)\")\n", "plt.xlabel(\"Experiment\")\n", "plt.title(\"Mean network & processing delay by device for MQTT Experiments'\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ps = srup_df.stack().reset_index()\n", "ps.columns = ['Experiment', 'Device', 'Mean']\n", "ps = ps.pivot(index = \"Device\", columns = 'Experiment', values = 'Mean')\n", "ps.head()\n", "\n", "ps.boxplot(figsize=(15,10))\n", "plt.ylabel(\"Mean Duration (ms)\")\n", "plt.xlabel(\"Experiment\")\n", "plt.title(\"Mean network & processing delay by device for SRUP Experiments'\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAEICAYAAABGaK+TAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAATWklEQVR4nO3dfZRkdX3n8fcHiKg8GXagIQPMBHnQmLOwsaPG4IGJIxozSrIPyB4IoGFnY3Zd14ioARM2GzcSH3BX14SJMRoNCSZxYlYNMm1k1SRGBhciMYo4O4gDiEM0MorgMN/9497OFkXPdNVM9XT/hvfrnD596z787vdWV3/qV7+qWzdVhSSpPfstdgGSpN1jgEtSowxwSWqUAS5JjTLAJalRBrgkNcoAf5RK8ltJXjehto5Lsi3J/v3t65NcNIm2+/b+PMkFk2pvjP3+WpKtSe4ecf1KckI//bD7N8lLk3ytv5/+WZIfT/Kl/vZPL9QxaN8WPwe+70myGZgCtgMPAZ8Hfg9YV1U7dqOti6pqZoxtrgfeV1XvHGdf/baXAydU1XnjbjtJSY4DvgisqKp7RtymgBOr6rah+d8HfAt4RlXd3M/7GPBnVfXfJ1u5Hk3sge+7XlBVhwArgDcArwZ+Z9I7SXLApNtcIo4D7h01vOcxBTwW+LuBeSuGbo9sH77PNa6q8mcf+wE2A6uH5j0N2AH8cH/73cCv9dPLgA8B3wT+Afgk3ZP7e/tt7ge2AZcAK4ECfg74CvCJgXkH9O1dD/w68Bm6nucHgcP7ZWcAX52rXuB5wIPA9/r93TzQ3kX99H7AZcDtwD10rywO65fN1nFBX9tW4NJd3E+H9dt/vW/vsr791f0x7+jrePdOtn8VcBdwJ/CSft8nDN6/wEnAt/tl24C/AL48dL8e2NfyO317W/pt9+/buhD4S+BK4N5+2YHAm/rj/BrwW8DjBu9j4JX9fXQX8OKBuh8HvLk/5n8EPjWw7TOAv6J7LNwMnDGw3YXAJuA+4P8C5y72Y/3R/mMP/FGiqj5D90/9rDkWv7JfdgRdb/GXuk3qZ+kC4gVVdXBV/cbANqcDTwaeu5Ndnk8XakfTDeX8jxFqvBb4b8A1/f5OmWO1C/ufVcDxwMHA24fWOQ04GXg28MtJnryTXb6NLjiP74/nfLqgmwF+Erizr+PC4Q2TPA+4GHgOcCJd6M91TLcCT+lvPqGqfqKqnsjD79cH6AJ/O3AC8C+AM4HB9xGeTheeU8Dr6V5VnQSc2m+zHPjlgfWP6o9tOd2T7f9M8v39sjcBTwWeCRxO98S8I8ly4MN0TxCH98f3J0mOSHIQ3d/wJ6t7ZfdM4KY571XtNQb4o8uddP+Yw75HF7Qrqup7VfXJ6rtcu3B5VX27qu7fyfL3VtUtVfVt4HXA2bNvcu6hc4G3VNWmqtoGvBY4Z2hY4b9U1f3VjTffDDziiaCv5RzgtVV1X1VtpuuV/uyIdZwN/O7AMV6+uweUZAp4PvCf+/v0Hrre9jkDq91ZVW+rqu3Ad4G1wCuq6h+q6j66J77B9b8H/Gr/9/wIXU//5CT70T2xvryqtlTVQ1X1V/2TyHnAR6rqI1W1o6o2ABv72qB/BZfkcVV1V1Xt1hCQJscAf3RZTjdEMuyNwG3AdUk2JXnNCG3dMcby24Hvoxuq2VM/0Lc32PYBdD3TWYOfGvkOXS992LK+puG2lo9Rx/Ax7q4VfS13Jflmkm8CVwFHDqwzuK8jgMcDNw6sf20/f9a9fdjPmr0fltGNx395J3X8m9k2+3ZPA47un6ReBPx8X+eHkzxpD45ZE2CAP0ok+VG6cPrU8LK+B/rKqjoeeCHwi0mePbt4J03O10M/dmD6OLoe4Va68eDHD9S1Pw8PnvnavZMuaAbb3k43DjyOrX1Nw21tGXH7u3jkMe6uO4AHgGVV9YT+59CqesrAOoP3y1a68fOnDKx/WFXN9UQ1bCtdD/6JO6njvQNtPqGqDqqqNwBU1Uer6jl0r9a+APz2+IeqSTLA93FJDk2yBvhDuo/2fW6OddYkOSFJ6N7Ueoju5TJ0wXj8buz6vCQ/lOTxwK8Cf1xVDwG3Ao9N8lP9x+suo3tDbtbXgJX9S/25/AHwiiQ/mORg/v+Y+fadrD+nvpb3A69PckiSFcAvAu8bsYn3AxcOHOOvjLP/oVruAq4D3tz/vfZL8sQkp+9k/R104XllkiMBkixPsrP3I4a3fRfwliQ/kGT/JD+W5EC6Y39Bkuf28x+b5IwkxySZSnJWPxb+AN2QzFgfSdXkGeD7rv+V5D66XtWlwFuAF+9k3ROBGbp/yr8G3lFVH++X/TpwWf+S+uIx9v9eujfm7qZ7yf6fAKrqH4FfAN5J19v9Nt0bqLP+qP99b5LPztHuu/q2P0H3SYjvAi8bo65BL+v3v4nulcnVffvzqqo/B95K96mS2/rfe+J84DF0n9n/BvDHdD3dnXl1v99PJ/kW3d/v5BH3dTHwOeAGuiG1K4D9quoO4Cy6N7G/TvfYeRVdTuxH9wR3Z7/N6cBLRz88LQRP5JGkRtkDl6RGGeCS1CgDXJIaZYBLUqP26pfiLFu2rFauXLk3dymNZNu2bRx88Cgfo5b2vhtvvHFrVR0xPH+vBvjKlSvZuHHj3tylNJKZmRlWr57z60ykRZdkzjN9HUKRpEYZ4JLUKANckhplgEtSowxwSWqUAS5JjTLAJalRBrgkNWqkE3mSbKa7EvVDwPaqmu7nvwz4D/38D1fVJQtUpzSW7toUC8+vY9ZiGudMzFVVtXX2RpJVdF/+fkpVPTB7ZRBpKRg3WJMYxmrOngyhvBR4Q381a/oraUuS9pJRe+BFd8XyAq6qqnXAScCzkrye7rJWF1fVDcMbJlkLrAWYmppiZmZmMpVLE+ZjU60Z6ZJqSZZX1ZZ+mGQD3bUE3wF8nO5ahz8KXAMcX7tocHp6uvwyKy1FDqFoKUty4+x7j4NGGkKpqi3973uA9cDT6C5E+4HqfIbuCtXLJleyJGlX5g3wJAclOWR2GjgTuAX4U2BVP/8kuitqb91ZO5KkyRplDHwKWN9/LOsA4OqqujbJY4B3JbkFeBC4YFfDJ5KkyZo3wKtqE3DKHPMfBM5biKIkSfPzTExJapQBLkmNMsAlqVEGuCQ1ygCXpEYZ4JLUKANckhplgEtSowxwSWqUAS5JjTLAJalRBrgkNcoAl6RGGeCS1CgDXJIaZYBLUqMMcElqlAGuJe/oY44jyYL+AAu+j6OPOW6R70nta0a5Jqa0qO7ecgcrXv2hxS5jj91+xZrFLkH7GHvgktQoA1ySGmWAS1KjDHBJapQBLkmNMsAlqVEGuCQ1ygCXpEYZ4JLUKANckhplgEtSowxwSWqUAS5JjRopwJNsTvK5JDcl2Ti07JVJKsmyhSlRkjSXcb5OdlVVbR2ckeRY4EzgKxOtSpI0rz0dQrkSuASoCdQiSRrDqD3wAq5LUsBVVbUuyVnAlqq6efaKJnNJshZYCzA1NcXMzMye1iw1y8e/JmnUAD+tqrYkORLYkOQLwC/RDZ/sUlWtA9YBTE9P1+rVq3e7WKl1Pv41SSMNoVTVlv73PcB64HTgB4Gbk2wGjgE+m+SoBapTkjRk3gBPclCSQ2an6XrdN1TVkVW1sqpWAl8FfqSq7l7QaiVJ/2SUIZQpYH0/zn0AcHVVXbugVUmS5jVvgFfVJuCUedZZOamCJEmj8UxMSWqUAS5JjTLAJalRBrgkNcoAl6RGGeCS1CgDXJIaZYBLUqMMcElqlAEuSY0ywCWpUQa4JDXKAJekRhngktQoA1ySGmWAS1KjDHBJapQBLkmNMsAlqVEGuCQ1ygCXpEYZ4JLUKANckhplgEtSowxwSWqUAS5JjTLAJalRBrgkNcoAl6RGGeCS1CgDXJIaZYBLUqMMcElq1AGjrJRkM3Af8BCwvaqmk7wReAHwIPBl4MVV9c2FKlSS9HDj9MBXVdWpVTXd394A/HBV/XPgVuC1E69OkrRTuz2EUlXXVdX2/uangWMmU5IkaRQjDaEABVyXpICrqmrd0PKXANfMtWGStcBagKmpKWZmZna3Vql5Pv41SaMG+GlVtSXJkcCGJF+oqk8AJLkU2A78/lwb9mG/DmB6erpWr149gbKlNvn41ySNNIRSVVv63/cA64GnASS5EFgDnFtVtUA1SpLmMG+AJzkoySGz08CZwC1JngdcArywqr6zsGVKkoaNMoQyBaxPMrv+1VV1bZLbgAPphlQAPl1VP79glUqSHmbeAK+qTcApc8w/YUEqkiSNxDMxJalRBrgkNcoAl6RGGeCS1KhRT+SRFk0BXLFmscuQlhwDXEtegBWv/tBil7HHbr9iDZ7tpklyCEWSGmWAS1KjDHBJapQBLkmNMsAlqVEGuCQ1ygCXpEYZ4JLUKANckhplgEtSowxwSWqUAS5JjTLAJalRBrgkNcoAl6RGGeCS1CgDXJIaZYBLUqMMcElqlAEuSY0ywCWpUQa4JDXKAJekRhngktQoA1ySGmWAS1KjDhhlpSSbgfuAh4DtVTWd5HDgGmAlsBk4u6q+sTBlSpKGjdMDX1VVp1bVdH/7NcDHqupE4GP9bUnSXrInQyhnAe/pp98D/PSelyNJGtVIQyhAAdclKeCqqloHTFXVXf3yu4GpuTZMshZYCzA1NcXMzMweliy1y8e/JmnUAD+tqrYkORLYkOQLgwurqvpwf4Q+7NcBTE9P1+rVq/eoYKllPv41SSMNoVTVlv73PcB64GnA15IcDdD/vmehipQkPdK8AZ7koCSHzE4DZwK3AH8GXNCvdgHwwYUqUpL0SKMMoUwB65PMrn91VV2b5Abg/Ul+DrgdOHvhypQkDZs3wKtqE3DKHPPvBZ69EEVJkubnmZiS1CgDXJIaZYBLUqMMcElqlAEuSY0ywCWpUQa4JDXKAJekRhngktQoA1ySGmWAS1KjDHBJapQBLkmNMsAlqVEGuCQ1ygCXpEYZ4JLUqFGvSi8tmqOWH8vtV6xZ7DL22FHLj13sErSPMcC15N311a8s+D6SUFULvh9pkhxCkaRGGeCS1CgDXJIaZYBLUqMMcElqlAEuSY0ywCWpUQa4JDXKAJekRhngktQoA1ySGmWAS1KjDHBJatTIAZ5k/yT/J8mH+tvPTvLZJDcl+VSSExauTEnSsHF64C8H/n7g9m8C51bVqcDVwGWTLEyStGsjBXiSY4CfAt45MLuAQ/vpw4A7J1uaJGlXRr2gw1uBS4BDBuZdBHwkyf3At4BnzLVhkrXAWoCpqSlmZmZ2v1ppAfnYVGsy31VIkqwBnl9Vv5DkDODiqlqT5APAFVX1N0leBZxcVRftqq3p6enauHHjpGqXJsYr8mgpS3JjVU0Pzx+lB/7jwAuTPB94LHBokg8DT6qqv+nXuQa4dmLVSpLmNe8YeFW9tqqOqaqVwDnAXwBnAYclOalf7Tk8/A1OSdIC262LGlfV9iT/DviTJDuAbwAvmWhlkqRdGivAq+p64Pp+ej2wfvIlSZJG4ZmYktQoA1ySGmWAS1KjDHBJapQBLkmNMsAlqVEGuCQ1ygCXpEYZ4JLUKANckhplgEtSowxwSWqUAS5JjTLAJalRBrgkNcoAl6RGGeCS1CgDXJIaZYBLUqMMcElqlAEuSY0ywCWpUQa4JDXKAJekRh2w2AVICyHJXtmmqsbeRpoUe+DaJ1XVWD8bNmwYexvDW4vNAJekRhngktQoA1ySGmWAS1KjDHBJapQBLkmNMsAlqVEGuCQ1KnvzZIQkXwdu32s7lEa3DNi62EVIO7Giqo4YnrlXA1xaqpJsrKrpxa5DGodDKJLUKANckhplgEuddYtdgDQux8AlqVH2wCWpUQa4JDXKANeSkeTSJH+X5G+T3JTk6f3865N8McnNSW5IcurANtuG2rgwydv76cuTbOnbuiXJC8es591JvpPkkIF5b01SSZb1t49J8sEkX0qyKcnbkxyY5Ln9fm9Ksq2v/6YkdwzMfzDJ5/rpN+zJfadHJy+ppiUhyY8Ba4AfqaoH+oB8zMAq51bVxiQvBt4IPGfEpq+sqjcleTLwySRHVtWOMUq7DTgLeF+S/YCfALb0NQf4APCbVXVWkv3p3gz9jap6OfDRfr3rgYurauPQMW8GVlWVJxBpt9gD11JxNLC1qh4AqKqtVXXnHOv9NbB83Mar6u+B7XRnXI7jD4EX9dNnAH/ZtwNdmH+3qn6338dDwCuA85McPG6N0rgMcC0V1wHHJrk1yTuSnL6T9Z4H/Om4jffDMTuAr4+56a3AEUm+H/i3dIE+6ynAjYMrV9W3gM3ACePWKI3LIRQtCVW1LclTgWcBq4Brkrymqt7dr/L7SR4DHAycupNm/qm5gelXJDkPuA94Ue3e52Y/AJwDPB3497uxvbQg7IFryaiqh6rq+qr6FeA/Av9qYPG5wPHAe4C3Dcy/vw/2WYfz8C+lurKqTq2qZ1XVJ4f3meSj/ZuI79xFadcA/xXYMDR+/nngqUPtHQocBXxxF+1JE2GAa0lIcnKSEwdmncrQN1f2vefXAc9I8qR+9v8GzuvbeBxwNvDxUfdbVc/tA/6iXaxzO3Ap8I6hRR8DHp/k/H7/+wNvBt5eVfePWoO0uwxwLRUHA+9J8vkkfwv8EHD58Ep9ML4ZeFU/6+XAv0xyE/Bp4I+q6hOTLq6qrqqqLw/NK+BngH+d5EvAvcCOqnr9pPcvzcVT6aUJSfJM4A+An6mqzy52Pdr3GeCS1CiHUCSpUQa4JDXKAJekRhngktQoA1ySGmWAS1Kj/h8/kMMQxRHQswAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "box = plt.boxplot(comb_ave_df['Difference'], labels=['SRUP - MQTT'], patch_artist=True)\n", "plt.grid(b=True, which='major', color='#AAAAAA', linestyle='-')\n", "for median in box['medians']: \n", " median.set(color ='red', linewidth = 1) \n", " \n", "colors = ['tab:blue']\n", "for patch, color in zip(box['boxes'], colors):\n", " patch.set_facecolor(color)\n", " \n", "plt.title(\"Distribution of differences\")\n", "plt.show(block=True)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean processing overhead for SRUP = 51.600805633413664ms\n" ] } ], "source": [ "print(\"Mean processing overhead for SRUP = {}ms\".format(np.average(comb_ave_df['Difference'])))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.4" } }, "nbformat": 4, "nbformat_minor": 2 }