{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Block averages (standard deviation, standard error)\n", "\n", "It is typically useful to divide an MD trajectory into non-overlapping segments, and to calculate properties for each segment individually.\n", "\n", "You can then calculate the average and standard deviation or standard error of any calculated quantity.\n", "\n", "This might be useful to determine if equilibration has been reached, or to get error bars on any calculated quantity.\n", "\n", "``lionanalysis`` includes a utility called ``blocklionanalysis.sh`` which is located in the ``utils/`` folder of the source tree. It divides the trajectory into N non-overlapping segments and runs the analysis for each segment. All outputs are saved for later analysis.\n", "\n", "To proceed, make sure ``blocklionanalysis.sh`` is in your PATH." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "olblock.sh -h\n", " show help\n", "olblock.sh -d -c -n [-N ] [-X ]\n", "olblock.sh -d -c -s [-N ] [-X ]\n", " -n : give the number of blocks (program finds out size of each block)\n", " -s : give the size of teach block (program finds out the number of blocks)\n", " -t : run total as well\n", " -N : specify the total number of frames in (default is to find out, but can take some time for large dumpfiles)\n", " -X : the contains a single word with the number of frames in \n" ] } ], "source": [ "%%sh\n", "blocklionanalysis.sh -h" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 5001 frames in trajectories/NaOH.xyz\n", "#blocks: 4 ; #frames per block: 1250 (block 4: 1251 ); I will start at block 1 and stop at block 4\n", "olflags: \n", "AT BLOCK 1 (size 1250); startbyte 0\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: DumpFile trajectories/NaOH.xyz specified in config file.\n", "WARNING: I will NOT use this file but instead the one specified on command line: trajectories/NaOH.xyz\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "StartByte 0\n", "DumpFile trajectories/NaOH.xyz\n", "MinTimestep 0\n", "MaxTimestep 1250\n", "Suffix _4_1\n", "Overwrite\n", "Threads 1\n", "CoutFrequency 200\n", "DefineGroup Na ATOMICNUMBER Na\n", "DefineGroup O ATOMICNUMBER O\n", "RDF Na Na rdf_na_na.txt Resolution 0.2 MaxDist 6.0\n", "RDF Na O rdf_na_o.txt Resolution 0.1 MaxDist 6.0\n", "###########################################################\n", "Running on 1 threads on host .SCMCoffee1\n", "There are 3 groups and 5 actions.\n", "I am lionanalysis version 8:10M\n", "Opening dumpfile trajectories/NaOH.xyz at byte 0 : 0\n", " -999 (1) ( 0 ps) (0.000216961 s) ( 0.0201 %)\n", " -800 (200) ( 199 ps) (0.091712952 s) ( 4 %)\n", " -600 (400) ( 399 ps) (0.1808629 s) ( 8 %)\n", " -400 (600) ( 599 ps) (0.26924992 s) ( 12 %)\n", " -200 (800) ( 799 ps) (0.35710692 s) ( 16 %)\n", " 0 (1000) ( 999 ps) (0.44463396 s) ( 20 %)\n", " 200 (1200) ( 1199 ps) (0.53194404 s) ( 24 %)\n", "Closing dumpfile trajectories/NaOH.xyz at byte 6260265\n", "Finished reading dump file... 1250 frames... Writing output....\n", "FIRST TIMESTEP: -999\n", "LAST TIMESTEP: 250\n", "Total time: 0.55458498 s; 0.00044366798 s/timestep\n", "Goodbye!\n", "AT BLOCK 2 (size 1250); startbyte 6260265\n", "StartByte 6260265\n", "DumpFile trajectories/NaOH.xyz\n", "MinTimestep 0\n", "MaxTimestep 1250\n", "Suffix _4_2\n", "Overwrite\n", "Threads 1\n", "CoutFrequency 200\n", "DefineGroup Na ATOMICNUMBER Na\n", "DefineGroup O ATOMICNUMBER O\n", "RDF Na Na rdf_na_na.txt Resolution 0.2 MaxDist 6.0\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: DumpFile trajectories/NaOH.xyz specified in config file.\n", "WARNING: I will NOT use this file but instead the one specified on command line: trajectories/NaOH.xyz\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "RDF Na O rdf_na_o.txt Resolution 0.1 MaxDist 6.0\n", "###########################################################\n", "Running on 1 threads on host .SCMCoffee1\n", "There are 3 groups and 5 actions.\n", "I am lionanalysis version 8:10M\n", "Opening dumpfile trajectories/NaOH.xyz at byte 6260265 : 6260265\n", " -999 (1) ( 0 ps) (0.000211 s) ( 25 %)\n", " -800 (200) ( 199 ps) (0.088485003 s) ( 29 %)\n", " -600 (400) ( 399 ps) (0.177001 s) ( 33 %)\n", " -400 (600) ( 599 ps) (0.26565289 s) ( 37 %)\n", " -200 (800) ( 799 ps) (0.35426211 s) ( 41 %)\n", " 0 (1000) ( 999 ps) (0.44262195 s) ( 45 %)\n", " 200 (1200) ( 1199 ps) (0.53090692 s) ( 49 %)\n", "Closing dumpfile trajectories/NaOH.xyz at byte 12518905\n", "Finished reading dump file... 1250 frames... Writing output....\n", "FIRST TIMESTEP: -999\n", "LAST TIMESTEP: 250\n", "Total time: 0.55390191 s; 0.00044312153 s/timestep\n", "Goodbye!\n", "AT BLOCK 3 (size 1250); startbyte 12518905\n", "StartByte 12518905\n", "DumpFile trajectories/NaOH.xyz\n", "MinTimestep 0\n", "MaxTimestep 1250\n", "Suffix _4_3\n", "Overwrite\n", "Threads 1\n", "CoutFrequency 200\n", "DefineGroup Na ATOMICNUMBER Na\n", "DefineGroup O ATOMICNUMBER O\n", "RDF Na Na rdf_na_na.txt Resolution 0.2 MaxDist 6.0\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: DumpFile trajectories/NaOH.xyz specified in config file.\n", "WARNING: I will NOT use this file but instead the one specified on command line: trajectories/NaOH.xyz\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "RDF Na O rdf_na_o.txt Resolution 0.1 MaxDist 6.0\n", "###########################################################\n", "Running on 1 threads on host .SCMCoffee1\n", "There are 3 groups and 5 actions.\n", "I am lionanalysis version 8:10M\n", "Opening dumpfile trajectories/NaOH.xyz at byte 12518905 : 12518905\n", " -999 (1) ( 0 ps) (0.000208855 s) ( 50 %)\n", " -800 (200) ( 199 ps) (0.088582993 s) ( 54 %)\n", " -600 (400) ( 399 ps) (0.17657089 s) ( 58 %)\n", " -400 (600) ( 599 ps) (0.26465487 s) ( 62 %)\n", " -200 (800) ( 799 ps) (0.35317087 s) ( 66 %)\n", " 0 (1000) ( 999 ps) (0.44119096 s) ( 70 %)\n", " 200 (1200) ( 1199 ps) (0.52900982 s) ( 74 %)\n", "Closing dumpfile trajectories/NaOH.xyz at byte 18777733\n", "Finished reading dump file... 1250 frames... Writing output....\n", "FIRST TIMESTEP: -999\n", "LAST TIMESTEP: 250\n", "Total time: 0.55171084 s; 0.00044136868 s/timestep\n", "Goodbye!\n", "AT BLOCK 4 (size 1251); startbyte 18777733\n", "StartByte 18777733\n", "DumpFile trajectories/NaOH.xyz\n", "MinTimestep 0\n", "Suffix _4_4\n", "Overwrite\n", "Threads 1\n", "CoutFrequency 200\n", "DefineGroup Na ATOMICNUMBER Na\n", "DefineGroup O ATOMICNUMBER O\n", "RDF Na Na rdf_na_na.txt Resolution 0.2 MaxDist 6.0\n", "RDF Na O rdf_na_o.txt Resolution 0.1 MaxDist 6.0\n", "###########################################################\n", "Running on 1 threads on host .SCMCoffee1\n", "There are 3 groups and 5 actions.\n", "I am lionanalysis version 8:10M\n", "Opening dumpfile trajectories/NaOH.xyz at byte 18777733 : 18777733\n", " -999 (1) ( 0 ps) (0.000233889 s) ( 75 %)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: DumpFile trajectories/NaOH.xyz specified in config file.\n", "WARNING: I will NOT use this file but instead the one specified on command line: trajectories/NaOH.xyz\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " -800 (200) ( 199 ps) (0.089896917 s) ( 79 %)\n", " -600 (400) ( 399 ps) (0.17751789 s) ( 83 %)\n", " -400 (600) ( 599 ps) (0.266675 s) ( 87 %)\n", " -200 (800) ( 799 ps) (0.35485387 s) ( 91 %)\n", " 0 (1000) ( 999 ps) (0.44257784 s) ( 95 %)\n", " 200 (1200) ( 1199 ps) (0.53165197 s) ( 99 %)\n", "Closing dumpfile trajectories/NaOH.xyz at byte -1\n", "Finished reading dump file... 1251 frames... Writing output....\n", "FIRST TIMESTEP: -999\n", "LAST TIMESTEP: 251\n", "Total time: 0.55490279 s; 0.00044356738 s/timestep\n", "Goodbye!\n" ] } ], "source": [ "%%sh\n", "cat > ba1.config <" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from pathlib import Path\n", "from common import rdf2df\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "\n", "rdf_files = list(Path(\".\").glob(\"rdf_na_o.txt_*_*\"))\n", "dfs = [rdf2df(x) for x in rdf_files]\n", "\n", "fig, ax = plt.subplots()\n", "for df in dfs:\n", " df.plot(x=0, y=1, ax=ax, xlabel=\"r (ang.)\", ylabel=\"g(r)\")\n", "\n", "ax.legend(rdf_files);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With seaborn it is easy to plot the 95% confidence interval as a shaded area:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGzCAYAAAABsTylAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABYyklEQVR4nO3deZzddX0v/td3P/s5sy+ZyWQne1gCFBBRQW2kLNar1qVF7G21DXXh4b02XURv1XDv/Wm11eJWpb3WgraCG4sIAlKIkEAgO1nJJLNvZ/9+z3f7/XHO98wkJDBJZub7PSev5+MxwkxOMh+HzJnX+Xzen/dbcF3XBREREVEAiX4vgIiIiOh0GFSIiIgosBhUiIiIKLAYVIiIiCiwGFSIiIgosBhUiIiIKLAYVIiIiCiwGFSIiIgosBhUiIiIKLAYVIiIiCiwZD8/+Wc/+1l87nOfO+FjF1xwAfbu3Tut3+84Dvr6+hCPxyEIwmwskYiIiGaY67rIZrPo7OyEKL72nomvQQUAVq1ahV/96lfV92V5+kvq6+tDd3f3bCyLiIiIZllvby+6urpe8zG+BxVZltHe3n5WvzcejwMo/x9NJBIzuSwiIiKaJZlMBt3d3dWf46/F96Cyf/9+dHZ2IhQK4YorrsDmzZsxf/78Uz7WMAwYhlF9P5vNAgASiQSDChERUY2ZTtmGr8W0l19+Oe6++2489NBDuOuuu3D48GFcffXV1QByss2bNyOZTFbfeOxDRERU3wTXdV2/F+GZmJhAT08PvvzlL+OP//iPX/XrJ++oeFtH6XSaOypEREQ1IpPJIJlMTuvnt+9HP1OlUiksW7YMBw4cOOWva5oGTdPmeFVERETkl0D1Ucnlcjh48CA6Ojr8XgoREREFgK9B5VOf+hSeeOIJHDlyBE8//TTe+c53QpIkvO997/NzWURERBQQvh79HDt2DO973/swOjqKlpYWvOENb8CWLVvQ0tLi57KIiIgoIHwNKvfcc4+fn56IiIgCLlA1KkRERERTMagQERFRYDGoEBERUWAxqBAREVFgMagQERFRYDGoEBERUWAxqBCdJ3TT9nsJRERnjEGF6DxQshzsHcgiq5t+L4WI6IwwqBCdByzHQdGwkTe4q0JEtYVBheg8YDkuCpbFHRUiqjkMKkTnAcdx4djAeKEE13X9Xg4R0bQxqBCdByzHhe06KJRsFFlUS0Q1hEGF6DyQLpoolCwYJutUiKi2MKgQnQdu/d5z+Jv7d6FYcpA3WKdCRLWDQYWozummjaNjBRRKNvrTRYwXGFSIqHYwqBDVuXRxMpj0pXXkDAuGxeMfIqoNDCpEdW5iyg7K0dEC9JKDAutUiKhGMKgQ1bmJQqn674dG87BdB/mS5eOKiIimj0GFqM5NTDn6OT5egOO6SLNOhYhqBIMKUZ2buqPiuMBw1kC6aMKyHR9XRUQ0PQwqRHXu5Fs+x8d1FC0b+RLrVIgo+BhUiOrceL50wvtHRvOwLAdFBhUiqgEMKkR1zrv105kKAQAODechCiIHFBJRTWBQIapz48XyjsrqziSA8o6KLAGj+RIchwMKiSjYGFSI6px3w2dxSxRhRYLluBjJlaCbHFBIRMHHoEJU57zOtImwgvmNYQDAsbFCeUAh+6kQUcAxqBDVucmgImNBUxQAcHAkD0BAwWBQIaJgY1AhqnOZSlBpiGhY1FIOKoeG89BkEWOF0mv9ViIi3zGoENUx03aq/VKaYypWdpQLag+P5KEpInK6DZ11KkQUYLLfCyCi2ZOZ0j6/IaKiMaJCkQQUTRtjeROqJKJQshFSJB9XSUR0etxRIapj3pyfkCIipEiIhRR0NUQAAEdG8nDgIs86FSIKMAYVojrmNXuLqjJEUUBIETG/sRxUDo3kIIsCJoqsUyGi4GJQIapj6UoIiWoSJEFASJGwsLkcVA4O5xFWJGSKFgcUElFgMagQ1bGJfGVHRZMhiQI0WcTStjgA4OBwDposomhyQCERBReDClEd864fR9VyUBEEASvbExAFIKtbSBct2I6LAhu/EVFAMagQ1TFvcnKssqMCAE0xDZ2pcofag8M5iIKAbJFBhYiCiUGFqI6NV279xEKTQSWkiNWbP4eGcwgrEsYKHFBIRMHEoEJUx7xbPzFNhiSUg4qmSFjQNFlQq8ki9BIHFBJRMDGoENWxdKVGJX7SjsqS1hiA8hVlTRZh2A4HFBJRIDGoENWx9CmOfjRZwtK2clAZyZWQ0csBJa8zqBBR8DCoENWx6uTkkFINKgDQngihLa4BKBfUKqLIHRUiCiQGFaI65u2WpMLKCR+PajK6vA61w3nIogDDYtM3IgoeBhWiOuU4LrJ6eUelIaqe8GshRaq20j84nIMkCihZLlyXN3+IKFgYVIjqVNaw4N04boi8Oqgsap68oiyJAmzHgWkzqBBRsMh+L4CIZke6cjVZlURENemEXwvJIpa0llvp96V1GJYNF4DNXipEFDDcUSGqU95U5IgqQZVODCqyJKI9GUJjpFy7cmysCNt1YTqsUyGiYGFQIapT3o2fiCZBPMV3ejw0WVB7ZDQP23Zh8eiHiAKGQYWoTo3lJwcSyqdIKhFVRrdXUDuShwvA4o4KEQUMgwpRnaoGFU0+5Y5KSJHQ0zhZUCsA3FEhosBhUCGqU+OFKZOTBeFVvx5SRCxuiQIAjo4VULIcBhUiChwGFaI6NXUg4amOfkKyhI5EGDFNhuMC/WkdJZuDCYkoWBhUiOqUF1SipymmFUUBsbBcbfx2fKIInROUiShgGFSI6pR3PXnq5OSTJUIyuhrCAIDesQJ0k8W0RBQsDCpEdSpdPfpRThtUwqqMlni5a+1EwYRpuXDY9I2IAoRBhahOeQMJE+FTF9MCgCaLSIbVyuNN2K4Di0GFiAKEQYWoTnkN3+Kh0++ohBQJTZWBhemiCctx2UuFiAKFQYWoDrnu5OTkVFiB8Bo7Kk1xDcDUoMIdFSIKDgYVojpUNO3qJOSTJydPJQgCulPlYlrDcpDXLfZSIaJAYVAhqkPe1WRJFBAPSa/52NZECKpUfirIGhYsm0c/RBQcgQkqd955JwRBwCc+8Qm/l0JU87ygElElaMprBxVNEZEIywCATLEEk0c/RBQggQgqzz33HL75zW9i7dq1fi+FqC6kKz1UIqoERXrtb/OQIiERVgCUbwrZPPohogDxPajkcjl84AMfwLe//W00NDT4vRyiuuANJIyoMsTTFNJ6QrKEhkpQyeoWDIvdaYkoOHwPKhs3bsT111+P66677nUfaxgGMpnMCW9E9GqTk5MlyNJrBxVVFtFYuaKcMywU2UafiAJE9vOT33PPPXj++efx3HPPTevxmzdvxuc+97lZXhVR7RufMpDwdM3epmpNhACUd1RKFotpiSg4fNtR6e3txcc//nH827/9G0Kh0LR+z6ZNm5BOp6tvvb29s7xKoto0XqjsqKgyxNM0e5uqNVHupZLV2UafiILFtx2Vbdu2YWhoCBdffHH1Y7Zt48knn8TXvvY1GIYBSTrxtoKmadA0ba6XSlRz0lN2VORpBJWWWPn7KlO0YLkOTMeBJr72bSEiorngW1C59tprsWPHjhM+duutt2L58uX49Kc//aqQQkTTN1Fpnx8LTW9HpWVKd1rbdmFzR4WIAsK3oBKPx7F69eoTPhaNRtHU1PSqjxPRmanO+ZlujUq8fPw6USzBct1qV1siIr/5fuuHiGZeesqOyukGEk7VVqlR0U0HxZLN7rREFBi+3vo52eOPP+73EojqQsbbUQmffnLyVMmwAkUSYNoussUSj36IKDC4o0JUhzKVyclJTZnW0Y8qS0hWmr6ldYtt9IkoMBhUiOqMYdnQzfLRTSIyvWJaSRSqQSWjczAhEQUHgwpRnfHqUwQAqbA67d9X7U6rW9DZnZaIAoJBhajOePUpYVWCKr/+boqnaUobfYPdaYkoIBhUiOrM5EBCCerrTE6eqjk22Z2WQYWIgoJBhajOTJ2crMrTb5zY5HWn1S2YlsM2+kQUCAwqRHXGG0gY1aRpXU32eN1pM0UTluPCdLirQkT+Y1AhqjPj+cmBhGcSVJpj5RqVTNGE47iw2J2WiAKAQYWozng7KtPtSutpq7bRL++oMKgQURAwqBDVmYmCt6MiQZxGszdPa6WNfqFkQ7dsWDz6IaIAYFAhqjNeH5WoJkM+gx2Vxqha3YHJ6uVdFSIivzGoENWZqQMJp9OV1qPKEhKh8vivTNGCye60RBQADCpEdcYLKvEz3FGRRAGpSLmgNqubHExIRIHAoEJUZzJTgsqZFNMCQGOEbfSJKFgYVIjqTEa3AACJsHJGxbTA5LyfrGFVBxsSEfmJQYWojtiOi5xRDirxkHJGRz/AZC+VrG7BsLijQkT+Y1AhqiNZ3az+ezx8ZsW0ANAc9+b9WLBsl3UqROQ7BhWiOjJRafYWkkVE1OnP+fF4gwnTXht93vwhIp8xqBDVkakDCWXxzL+9W715P7oJ23G4o0JEvmNQIaojo3kDABDRJKjy2QSVShv9ggnbAdvoE5HvGFSI6oh39BNVJajSWQSVShv9nGGhZDucoExEvmNQIaoj1aMf7eyOfpqiKrz6WzZ9I6IgYFAhqiPeQMKYJkOSzuzGDwBoioREWAEAZApso09E/mNQIaojE95AQlWGdIbN3oBKG30vqOgmTItBhYj8xaBCVEe8GpWIJp1x+3xPQ6U7bc6woDOoEJHPGFSI6kh66o7KWQaVxilBpcSgQkQ+Y1AhqiPVgYShszv6AYDm6GQbfQ4mJCK/MagQ1ZH01KByFsW0wNQ2+uXutBYLaonIRwwqRHXEm5wc085hRyXmdae1YDkOLF5RJiIfMagQ1QnXnZycnAgrOIs2KgCAlvjkvB/HcRlUiMhXDCpEdSJfsqsN2hIh5awavgFAW7WNfqnSRp9HP0TkHwYVojoxXulKq0gCwurZX09uSXg1KhZKls0dFSLyFYMKUZ0Y8wYSqjLkswwpANAS0yAIgIvyLg0HExKRnxhUiOrEWH7KQMKzmJzsCSkS4poMoFynwjb6ROQnBhWiOjFemfMT1WQoZzE52SOJAlKRyV4qrFEhIj8xqBDVCS+oRFQZyln2UPE0RMrzfthGn4j8xqBCVCfGK0c/MU2CKknn9GdV2+jrJgyTQYWI/MOgQlQnvMnJEVU+6x4qHq/pW9awoVtso09E/mFQIaoTae/o5xwmJ3ua45UalaIJm230ichHDCpEdaI6OVk7+8nJnuZouelbRjfZRp+IfMWgQlQnvKASU6WznvPjaUmo1T/TZht9IvIRgwpRnZgcSKic845Ka6y8o5IumrBtttEnIv8wqBDViYy3oxI+9xqV1sTkYELLsWGyOy0R+YRBhahOeJOT4zOwo+JNUHbcSht9hzsqROQPBhWiOqCbNoxKY7ZESIF4jjUqEVVGrNJGP1M0Oe+HiHzDoEJUB7xCWlEoX08+l6GEgNdGv9KdVrc574eIfMOgQlQHJgqTzd5kUTznox8AaPDm/RgmdJNN34jIHwwqRHVgciChBFkSIJzj0Q8wpY2+MXmsREQ01xhUiOrAeH5yIKF6DpOTp2qOeROUTRiWA9dlnQoRzT0GFaI6MFadnCyd8+RkjzfvJ1M0YbHpGxH5hEGFqA54NSpRVYIyYzsqlaCiW7BtBzaDChH5gEGFqA54t35CigRVnplva6+XSrpownZd3vwhIl8wqBDVgVylfX5Elc+5h4qndWpQscEdFSLyBYMKUR3wutKG1XNvn+9pYRt9IgoABhWiOlANKop4zs3ePG3x8mBC23FRNFmjQkT+YFAhqgP5SlDRFAniDAWViCohokoAgHTB5LwfIvIFgwpRHfCCSkSRIc1QjYosiUiFy230s7rFeT9E5AsGFaI6kC+VW9yHVRHSDPVRAYCGandaC4bFNvpENPcYVIjqgLejElNnbkcFmNpG32QbfSLyha9B5a677sLatWuRSCSQSCRwxRVX4MEHH/RzSUQ1qeDtqGgzd+sHAJqjXht9i0GFiHzha1Dp6urCnXfeiW3btmHr1q14y1vegptuugm7du3yc1lENcV1XRRK5R2V6AxeTwaApvhkd1rLcuHw5g8RzTHZz09+ww03nPD+F77wBdx1113YsmULVq1a5dOqiGpL0bTh5Yeoqszo0Y/XRj+rm7BdB5bjQp3BIERE9Hp8DSpT2baNH/3oR8jn87jiiitO+RjDMGAYRvX9TCYzV8sjCiyvK60glItpZ+p6MnBiG33LcdlLhYjmnO/FtDt27EAsFoOmafjoRz+K++67DytXrjzlYzdv3oxkMll96+7unuPVEgWP1+xNk0VoijSjf3Zr7KR5P+ylQkRzzPegcsEFF2D79u347W9/iz/7sz/DLbfcgt27d5/ysZs2bUI6na6+9fb2zvFqiYLHCyohRYIyg1eTAaA1Ue5OO1EwYVsubPZSIaI55vvRj6qqWLJkCQDgkksuwXPPPYevfvWr+OY3v/mqx2qaBk3T5nqJRIE2uaMiQZFm9rVHW2Xej+W4yJsWLB79ENEc831H5WSO45xQh0JEry2rezsq4owHlZgmI1w5TsoULbbRJ6I55+uOyqZNm7BhwwbMnz8f2WwWP/jBD/D444/j4Ycf9nNZRDWlGlRkCbI4s0FFlkQkwwqKpo2cbrKNPhHNOV+DytDQEP7oj/4I/f39SCaTWLt2LR5++GG89a1v9XNZRDUlq5sAyjsqM5xTAAANEQUDGb3cS8XmjgoRzS1fg8o///M/+/npierC5NHPzDZ781Tn/egWdHanJaI5FrgaFSI6M14xbViVZrTZm6c5NjmYsMSgQkRzjEGFqMZ5Rz9hRYIwC0GlMVrpTmtYKPHoh4jmGIMKUY3LG5WBhDM858dTbaNfNGFaDuf9ENGcYlAhqnFeC/2wMktHP/Hy0U9Gt9idlojmHIMKUY3LVSYnR1RpVm79nNBGn/N+iGiOMagQ1bh8pZg2Mku3frw2+t5gQnanJaK5xKBCVOO8oBLWJIizcPTTWpmgXDRtGKbNpm9ENKcYVIhqXL5ULqaNqPKsBJWGiAK5slOT0dlGn4jmFoMKUY0rVHZUoqo8K0c/iiwhGVYAAJlKnQoR0VxhUCGqYa7rolDdUZEwCzkFAJCKlINKlvN+iGiOMagQ1bBCyYYXG+IheVYavgFAQ2TyirLJpm9ENIcYVIhqmNc+XxDKRz+zpWlKG32DbfSJaA4xqBDVMC+ohGQJsjRL5z4Amipt9HM65/0Q0dxiUCGqYV5XWk0Rociz9+3cXLminNVN6KY9a5+HiOhkDCpENSw/dUdltippATRFy0c/Wd1id1oimlMMKkQ1LGtM2VGRZu/b2Wv6Ntmdlsc/RDQ3GFSIali2cvQTUmanK62npRJUMroFx3F5RZmI5gyDClENy+omACCsiLPS7M3TVpn3k9FNlGyH836IaM4wqBDVsLnaUWmOqRAAuO7kFGUiornAoEJUwyZ3VCSIs/jdHFIkxEJy5XNasNj0jYjmCIMKUQ3LG+WrwmFFgjSLOyqCIFTb6Gd0k0c/RDRnGFSIaljWKO+oRGZpIOFUXhv9bNHi0Q8RzRkGFaIaltfLOyohVZy1OT8er5dKzmB3WiKaOwwqRDXMa6EfUaVZ31Fpik12pzUsdqclornBoEJUw/KlclAJK/Ks1qgAk4MJs4aFksWjHyKaG2cUVD7zmc+gUChU3x8fH5/xBRHR9Hk7KlF1dm/9ACe20de5o0JEc+SMntq+8IUvIJfLVd/v6enBoUOHZnxRRDQ93qyfsDb7Oyqt8UrTt0ofFV5RJqK5cEZBxXXd13yfiOZWoVTe2Ygp8qw2fAOA5nh5RyWjV4IKb/4Q0RxgjQpRjXIctxpUwpoIcZaLadsrOyrpognLtnlFmYjmhHwmDxYEAdlsFqFQCK7rQhAE5HI5ZDKZEx6XSCRmdJFE9GoFc7JOJBE+o2/ls9Jamfdj2i7yBuf9ENHcOKNnN9d1sWzZshPev+iii054XxAE2DYL7YhmW64y50cUgIgy+0ElHpIRUkTopoOJYok1KkQ0J87o2e3Xv/71bK2DiM6Qd+MnpEhQ5dk/xRUEAcmwAt00kNU5mJCI5sYZBZVrrrlmttZBRGfICyqaLEKR5qbcrCGiYjBjIM15P0Q0R85qvzidTuORRx7BkSNHIAgCFi5ciOuuu461KURzKD9lR0We5UJaT7WXStGGZTOoENHsO+Og8v3vfx+33Xbbqwpok8kkvvGNb+C9733vjC2OiE4vq0/uqMhztKPSGK200TcslFiLRkRz4Iye3Z5//nnceuutuPnmm/HCCy+gWCyiUChg69atuOGGG/CHf/iHePHFF2drrUQ0RU4vT04OKRJmuYVKVXOljX5Ot2BwMCERzYEz2lH5x3/8R9x88824++67T/j4xRdfjH/9139FoVDAV7/6VXz3u9+dyTUS0SlkdG/Oz+wPJPRU5/1wMCERzZEz2lH5r//6L3zkIx857a9/9KMfxVNPPXXOiyKi15czKjsqqjjr7fM9LV4bfb08mJDdqYlotp1RUOnr6zuhj8rJli1bhuPHj5/zoojo9WWn7KjMdldaT8uUNvqW4/KKMhHNujMKKoVCAaFQ6LS/rmkadF0/50UR0evzrieH52DOj6c1Xi6mLQ8mZHdaIpp9Z3zr5+GHH0YymTzlr01MTJzreohomqbuqMzV0Y83QblQsmGYNoMKEc26Mw4qt9xyy2ysg4jOkNdHJaxJEOdovGhTVIUkCLBdFxMFCzZ7qRDRLDujoOI4r38dsVAonPViiGj6vKOfyBze+pEkEcmwjLGCWZ73M43nBCKiczFjr8MMw8CXv/xlLFq0aKb+SCJ6DXmjfD04okpzVqMCAKno5BVlHv0Q0Ww7o6BiGAY2bdqE9evX48orr8T9998PAPjud7+LhQsX4u///u/xyU9+cjbWSUQn8Y5+5jqoNEa8oGIxqBDRrDujo5/PfOYz+OY3v4nrrrsOTz/9NN797nfj1ltvxZYtW/DlL38Z7373uyFJ0mytlYimyJe8oCLP2dEPMNn0LV1kjQoRzb4zCio/+tGP8K//+q+48cYbsXPnTqxduxaWZeHFF1+EMIev6IgIyJe8ox8Zc5hT0BQrX1HOGRa70xLRrDujo59jx47hkksuAQCsXr0amqbhk5/8JEMK0RxzHBfFSlCJh+U5/R5sjrKNPhHNnTMKKrZtQ1XV6vuyLCMWi834oojotXnHPgAQ1864y8A5afZ2VDiYkIjmwBk9w7muiw996EPQtPITla7r+OhHP4poNHrC43784x/P3AqJ6FW8Gz+iAISVOWqiUtFc6U6bLprVeT/cVSWi2XJGQeXkZm8f/OAHZ3QxRDQ91YGEigRVmdsC9mobfd2C7bqwHBeKxKBCRLPjjILK9773vdlaBxGdgVxlR0WTRchzWUkLoDXhBRUTpm3DdlzMcVYiovPI3O4ZE9GMyFXm/IQUCYo0t9/GbZV5P65bPv5hLxUimk0MKkQ1aOrRz1w2ewMATZEQqxTwpgsWLJsFtUQ0exhUiGrQ5I6KOKfN3jypiAIASBdK3FEholnFoEJUgzL65I6KH0HFa6Of0S3YDCpENIsYVIhqULayoxJWJPhxM9hro18uqOXRDxHNHgYVohqUMyaLaSUfkkpjdHIwIXdUiGg2MagQ1SBvRyWi+nP043WnzeoWSuxOS0SzyNegsnnzZlx66aWIx+NobW3FzTffjH379vm5JKKa4O2ohBUJog9BxTv6yRkWiibn/RDR7PE1qDzxxBPYuHEjtmzZgkceeQSmaeJtb3sb8vm8n8siCry8MbmjMtfXkwGgtdJLJVM0uaNCRLNqbqeZneShhx464f27774bra2t2LZtG974xjf6tCqi4Mt6OyqqPzUqk230TZg25/0Q0ezxNaicLJ1OAwAaGxtP+euGYcAwjOr7mUxmTtZFFDTeUMKIKkP0YV+0xQsqRQuWbXPeDxHNmsAU0zqOg0984hO46qqrsHr16lM+ZvPmzUgmk9W37u7uOV4lUTBMPfrxY0elPVk++inZDvIlG5bNmz9ENDsCE1Q2btyInTt34p577jntYzZt2oR0Ol196+3tncMVEgVHoVQOKlFV9uXWTzykQJPLTx8ThRIsh3UqRDQ7AnH0c9ttt+HnP/85nnzySXR1dZ32cZqmQdO0OVwZUTBVj340ybfakFREwWDGwHievVSIaPb4uqPiui5uu+023HfffXjsscewcOFCP5dDVBNsx61eCY6H/Hutkaq20S/B5NEPEc0SX3dUNm7ciB/84Af4yU9+gng8joGBAQBAMplEOBz2c2lEgZWvHPsAQCKk+LaOpijn/RDR7PN1R+Wuu+5COp3Gm970JnR0dFTf7r33Xj+XRRRoXiGtJAoIK/59C1fb6Bct1qgQ0azxdUfFdfkqjOhM5Srt8zVZhCpLvq3Da6OfMUze+iGiWROYWz9END1TBxLKPtz48TR7bfR1C4bFNvpENDsYVIhqjBdUNFmELPn3Lew1fcvq1gl1M0REM4lBhajG5KcMJPSza33LlDb6eslhQS0RzQoGFaIak9W9ox/Rl2ZvnhMGE9oOj3+IaFYwqBDVmMmg4k/7fE9boryjki/Z0Es2pygT0axgUCGqMVndBFA++hF93FFpimrwPn1aL8FgUCGiWcCgQlRjvGLasE8DCT2iKCAZLjecy+gWd1SIaFYwqBDVGO/oJ6xIEP2spgXQUGmjn9ftaoAiIppJDCpENWbqjoro83ew1502b1jV20hERDOJQYWoxnidaSOK5OutH2BKUCnZ0C0Hps3jHyKaWQwqRDXGa64W1vw/+mmqdKfNGiYsy2GdChHNOAYVohrjHf1EFNn3oFKd91O0Kr1UGFSIaGYxqBDVGC+oRDX/j366GyIAgIGMDgDcUSGiGcegQlRjCka5A2xYlX0PKguay0Glf6IIF2B3WiKacQwqRDXGq1FJhGSfVwIsao4B8Pqo2Lz5Q0QzjkGFqIbYjgvdLB+vxDTF59UAyYhSbfo2li+xlwoRzTgGFaIaMjUIJMKSjyspk0UB7YnycMLRXAkl3vwhohnGoEJUQ7yjFUkUEFb9P/oRBAHzGspBZShrcIoyEc04BhWiGuLtqIRkEYrfbWkruio3fwYzOizb5Y4KEc2oYDzTEdG0VIOKIkGW/L3x4+lpqtz8SeuVmz8MKkQ0cxhUiGqI1z5fU0Tfm715FjRFAQB9E0UIAAyTRz9ENHMYVIhqSH7KjorfPVQ83o5KRrdgWg5yJd78IaKZw6BCVEOy1RqV4ASVhoiKRLhc2DuaLyFv2HBd1+dVEVG9YFAhqiHZytFPWPV/IKFHlUW0xcs3f0ZyRvmKMqcoE9EMYVAhqiHZogkACCsSArKhAlUW0Z6cvKJsOhxOSEQzh0GFqIZ4t37CAapRUSURnckwgMoVZTZ9I6IZxKBCVEOqNSqqCDEgQUUQhBOuKEPgFWUimjkMKkQ1xLueHFUlSAGpUQGARS2TV5RFiCjy5g8RzRAGFaIaMnn0IwemmBYAFjWXg8rkFGX2UiGimcGgQlRDvD4qEU1CQDroAwBS0ckrymP5EgolG47DK8pEdO4C9FRHRK+nuqOiyoE6+tEkqXpFeThXQsm2eUX5PKCbNvb0p3F0NM9gSrPG//GrRDRt+UrtRzRAt36AySvK+4dyGM7qMG0XhuUgpEh+L41myXi+hP1DWYzmSpBEAbrpYGFLFIrE1780sxhUiGqIV/sR0SQIAdpRUWURnZVeKgMZHbbjwrBsAIq/C6MZ5zgujk8UcXA4B8t20ZkKo2Q5ODSSg27ZWNYWZ0ClGcWgQlRDCpUdFa8eJCgkUUB3Y/mKct+EDgDspVKHdNPG4ZEceseKiKoymqLlIBpSJLTGQ+gbL6JkOVjWHkcixJBKM4N7dEQ1wrId6Gb5h39cC94PAe/mT3+6CFEQUCzx5k89mSiUsPN4Gq+MFtAYVREPyXj28Ci+/ZtD2D+YhSKJ6EiFMZYvYcexNEZyht9LpjoRrJdlRHRa+Sk/+IMYVBa3xgBUriibvKJcL1zXRV9ax4GhLEzLRUcyjH0DWdz99BHs7s8AAH76Yh8u6k7h3eu7saojjrGCiZ3H01jaFkdnMhSoY0qqPQwqRDXCu/EjiQIiWvBqAFIRFYmQjIxuYaxQQkNUhe24gSr6pTPjOC4Oj+RxaCSHsCIjb5vY/OAebDk0BqBcm7S6M4ntveN4oXcCL/ROYEVHAu+5pAtLWmPY3ZdBsWShLRFCTJMZWOisMKgQ1Qivh0pIEQN5s0KVRLQlQsjoOYzkSpjfWJ75E1aDF6ro9Xkh5eBwDrbj4v9tewWP7B6A4wKiAFy3og3vv2w+mmIaBjI6fvz8MfxqzyD29GfwuZ/vxsLmKG5a1wnTsnFsrIhkREFrIoRUWEFU448emj7+bSGqEdlK+/yQHKyryR5VFtGW0LB/KIehjHdF2WZQqUFeSHl5MItf7RnEz17qrxZH/86iRvzR7yyoFk8DQHsihD9/0xL8waXzcf/243hwZz8Oj+TxlUf3oz0RwnUrWnHZwkYMZnSEFQkNURWt8RCSYYV/P+h1MagQ1YipOypBGUg4lSqL6EyVpygPZHTYrsubPzXICym7+9L4l2dewdZXxgEAK9rj+NBVC7GyI3Ha39sYVfHhqxbi3Zd04ecv9eOnL/ZhIKPj+789inu39uKqJc24bnkbTNtBf7qIsCJDlcu7g6JQHnApABBFQIAATRGxoCmKiMofVecz/tcnqhG5alCREMCcAkUSMa8SVMpXlF1OUa4xjuPi0EgOO45N4JtPHsbegSxUScTHrl2KNy5tnnaNSTyk4D3ru7FhdTueOjCCR/cM4cBwDo/vG8bj+4axsDmKDavbcfnCRlh2uaOt61b+WfkfF0AxYyFTtLC8PY5URJ2d/9MUeAwqRDXCm5wcUoI1OXmqhc2VXirpIiRBrPZ9oeDzQsrzR8bxtccP4uhYAVFVwt9cvxKr5yVP+/tc14Vpl3fPDGtydIIoCFBkAVcuacLFPQ1IF0r45e5BPPnyCA6P5PFPjx/E3U8fwZsvaMWG1e3oaYqe4s9WMJwz8NKxNC5oj6MtEZq1//8UXAwqRDUiq5sAgLAiBfLoBwCWtMQBlOtpTMup1tVQsHkh5ZmDI/jHxw5iKGugIaLgczeuwsLmGHTThuW4sGyn8k8XjuvCy8uKJECVJaQiKpJhGWFVRkgREVIkmLaDQ8N5wHXxJ1cvwoevWohH9wzhwZ396Evr+MWOfvxiRz9WdCTwjtXtuHJxc/U4SBAEtMZDGM+XsON4Grppo7shEti//zQ7GFSIakSm8kM/HOAdFW+KcqZoYTRfQiKiwLIdyAG8pURlrluuSXls7xC+/uuDSBdNdCRD+F83rkZLXENfughNEqHIIjRFRFKREFElaLIEVRYhiwI0RUJIFk/53zmkSFjZmUBMk3F4NA9ZEHDThZ248cJOvHQsjQd39mPLoVHs6c9gT38G3/rNIVy3og2/u6q9WvPUEFWRMyzs7c9ANx0s4kyh8wqDClGNqNaoqMHdUVFlEa3xEDLFHIZzOroawjAsBpUgG8oaeHBnP77+64MomjYWNUfx2RtXISRLGMgU0Z4IYWFLDFFVOuv/jookYnFrDPGwjENDefRnimiJhXBhdwoXdqcwmjPwyJ5BPLxrACO5Eu574Tjue+E4rlzchD9/0xIkwwpimgxZFHB4JA/dLM8U4o2h8wODClGN8I5+Imowi2mBySnKB4ZyGMoa1dqFqOb3yuhUsrqJH27txVd/tR+W42LNvCT++h0rULIcZHQTS1pj6Gmaud2L1ni58duBoRz6JvRqAGmKafiDS+fj3Zd0Y9srY3hw5wC2vTKOpw+OYu9AFp966zKs6UohpEhoi2voTxdRsh0sa4sjGQ5el2aaWXyZQ1QjclOPfgKaVFRJREel4LE/rcPlzZ/AMm0Hj+8dwtceOwDLcXHFoib87fUrkdZNiJKANV1JLG6JzfgRS0SVsaozieXtMeimhaHKtG2g3HX5soVNuOOGVfjqH1yIroby7KC/vn8nvv/bV2A7LmRJREcyjHTBxJ6+DNIFc0bXR8HDoEJUI7KVo5+wKkEMaI2KOuWKcv+EDtflFOUgcl0Xu/vS+PwDe2BYDtbOS+Iv3rIEYwUDbXEN67qSaEvM3oweSRSwoDmGtV0ppKIKBjJFZIonBo6FzTH8/XsuxFtXtMEFcO9zvfir+3ZgOGtAFAS0xjXkSxZ29qUxUSjNyjopGBhUiGqEV6MSVYO7oyKKAhZUpij3pYuQJQE5g694g2Yoo+NzP9uNwYyB5piKP33jIhRKNpa0xrBqXhLx0NwcpzTFNKztSmFFRwK266JvonhCsA0pEj527VJ86m0XIKxI2N2fwcfueQHPHBqFIAhoiWnQSzZ29mUwnmdYqVcMKkQ1wjv6iahyYHdUAGBxSzmoZHULJcs5Yeoz+S9nWPj7X+3H80cnIIsCPv6WZYhqElbPm52jntejSCJ6mqK4aH4K8xrCGM0bGM0ZcCoN4ADgmmUt+OofXIglrTHkDAtffGAPvvHEQViOi9ZECIZpY1dfGmMMK3WJQYWoRnjN0yJacHdUAFR6aZRfkY/lSzBMm8c/AWHaDn687Rju3doLAPjjNyxES0LF4pYY2pOzd9QzHfGQgpUdCaztSiGkSuhPF09oGNiRDOP/vGst3nnRPADAL3b04+9+vhuGZaM1HkLJcrGrL42RnOHX/wWaJQwqRDUib5R3JmIBnzyrySJa4uVrPsNZA6btVLuVkr+2HhnD/3l4H1wXuHZ5Ky7sTmJ+UwRdDZHX/81zQBQFtCfL15YXt8SQK1kYzRnV9vqKJOLDVy3EHb+3Epos4oXeCfyvn++GbtpoiWuwbBe7+zIYzjKs1BMGFaIaUTDLQSUxR/UDZ0uVRbRXbv4MZctTlIs8/vHdsbEC/uq+ncgZFha3RPGui7vQEg9hUXMscH15QoqEpW1xrJmXhCKL6J9yMwgA1i9oxOduXIWwIuGlY2l89me7UChZaI5pcBwXu/vTGMrqPv4/oJnEoEJUA/TS5PFJPBTsJldeLxUA6EuXb/7oJoOKn7K6ic/8dBcOj+QR12T8+ZuWIB6WsbQtjpAS3L9PrfEQ1nWn0BbXMJDRT/h7tKozif910ypEVQm7+jK446e7kDcsNMU0wBWw83gaLw9kq1PHqXYxqBDVgOPpAgBAFgU0BHyKrCqJ6ExVeqlM6JAlAekiixz9ktVNfP3XB/DY3iEIAP7iLUuRDCtY2lobzdJimoyVnUksao5ivFBCeso15uXtCXz+5jWIaTL2DmTxNz/ZiaxuojGqIqrKODSSx7ZXxnF4OMewXMMYVIhqwPHx8jZ2KqJAkYL7ChgAZEnE/IbJKcohWUK2aJ+wdU9zI6ub+PHzx/Gd3xwGALzvsm70NIWxoDmCtkTttAtWZRFLWmNY2ZmA5TgYyujVupUlrTF88Z2rkQiVO97+zf07kS6aiKgy5qXCkEUB+waz2PbKOHrHCizsrkEMKkQ1oG+iCABoiKg1MYxtUUsMQGWKsuPAsGy+op1jWd3EQzsH8L8f2gvLcXH5wkZcvawZ7ckwepqivt7wORuiKKCrIYK1XSlEQzL60kWYlSLthc0xfPGda5CKKDg0ksdf37cD45UmcPGQgs5kGI5TvhX0/NFx9KeLDM41JPjPeESEvnR5R6UhoqIWfr40x7TqscJI1kDJdlBgQe2cyegmnnh5GF98YA8KJRvL2+P40JUL0BDRsLRt7nulzKTGqIp1XSl0psIYyurVQu2epig2v3MNGqMqXhkr4C/+/QV85zeHcHgkB0EQkIqoaE+EoZdsvNQ7gX0DGVi8jVYTavdvK9F5ZCBd2VGJKoHuoeIpT1EuHy30s6B2TmV0E88eGsMXfrEH4wUT3Q1hfPK6pQgp5eOTiBrs6+3TEVYlrOxIYHFLDGm9VG2/39UQweZ3rkFHMoR00cRPXuzDx+7Zjo/d8wLu334cGd1EU0xDcyyEo2MFHBrOw+HOSuD5GlSefPJJ3HDDDejs7IQgCLj//vv9XA5RYA1V+kKkwmpNBhVFEllQOwcyuontRydw54N70J/W0RRVsWnDCgiCgCWtMTTHaqcu5fXIUjl4rehIwLQdjFT6rXSmwvin91+Mv71+Ba5a3ARZFHB4JI9/fuowPvS9Z/G5n+3Cc0fG0BBRcXg0j8Mj+Wq9CwWTr9E6n89j3bp1+PCHP4zf//3f93MpRIE2mKkU00aVQLfP95x4RbkITRarBbW1ELRqUUY3seNYGl/65T4cGM4jqkn42+tXQBSBBU1RzEsFo6nbTBKEct1KSJGwfzCL/oyOtngIsiTisoVNuGxhE7K6id/sH8Fje4ewbzCLra+MY+sr43jj0mZ89JrFODCcgywJmN8Yqbm6nfOFr0Flw4YN2LBhg59LIKoJXqfNhrCKWvg5f/IUZU0RkdMtFE078J11a1G6aGJ3XxrfePwgXjyWhiIJ+Ot3rEBIldCRDGNhSzRwTd1mUnNMgyaLeHkwi4FMEa3xULUOJx5S8I41HXjHmg70jhfw2J4h3L/9OJ7cPwLHBT5yzSLsH8xBqhTrUvDUVI2KYRjIZDInvBHVO9txq8PWmmO1cfSjSALmNZSDSt9EEaokwrBsdqidBROFEnb3pfFvW47iNwdGIArA/3j7crQlQmiMqljWFq/p4tnpiocUrOpMYn5jBENZ44Q5QZ7uhghuuXIBNm1YDlkU8NSBEXzj8YNQpPIV5oE0u9kGUU397d28eTOSyWT1rbu72+8lEc26wYwOxwVEAUiElZp4ZSwIAhY2V6YoGxZyhgUILKidaWP5Enb2ZfDAjgH8fEc/AODPrlmC5e3lcLKsLY6wGuy+OzMppEi4oD2Bpa0xFEoW+tJF9KeLGMrqSBdNFEvl48fLFjbhr96xArIo4L8OjuIbTxyC6AJ7BzKv2XrfdV2ULIcFuHOspvZgN23ahNtvv736fiaTYVihundsvNyVNhVRoUgCpBo5R2+OaWiMqhjLl3BwOI95qTAmiiV0g9vrM2EkZ2BPfwYvD+Tw788eBQC8/7L5uHppM3KGhdXzkkgFvIvxbJBEAYtaomiOazBMG7rpIGeYyOgWipaFjO7CcR0sao7ir69fgS8+sAfPHBqF47r4kzcsxL6BLERBQEiRULLKPYBKloOsbiJv2CjZDhoiKi5oPz92qoKgpoKKpmnQtPqpWieajuMT5Vd4jREVkihClmojqGiKhGVtMWw5NIYXeyewqDmKHAtqZ8RQRseegQxyRQvf+s1BWI6LKxY14fcvmofRQgnLWmPVYubzkSAI5T4+U0YEuK4Lw3KgmzYKJRsHh3PoaYzib96xEp9/YDd+e3gMrgt8+A0LsPNYGi5cmLYLb+9EEUUokgBZEnFsvABRAJa1xSEzrMw6foWJAs7rStsYLXelVWvkiVGVRCxviwMAXjo+AU0RoVvlglo6ewNpHbv7M3Ad4N+ePYrBjIHWuIaNb16CkbyB7sYw5jdF/V5m4AiVXZJUREVnKoyVHQmosoCuxjD+5vqVUCURzx4Zw3d+cxiKJCIRUtGeCKEzGUZnMoyWuIZUREVMk9FS6cNyYChXtx1uDcvGYEbHi73jODiU9XUtvu6o5HI5HDhwoPr+4cOHsX37djQ2NmL+/Pk+rowoOPorzd5SEQVhRaqZK5SqLGLlvCQA4MBQDiXLQclyUCzx5s/Z6psoYt9ABpIo4r8OjuDpg6OQRQGf/t3lyJcstCVCWNwS447VNDTFNKzsTGJ3fwZdqTD+9vdW4u9+sRtbXxnH//iPFzGvIYxUREVDREVDREFDREUqoqAlrqE1HkJzTMMrY3mIgoDFrfXxNbcdF+miidGcgYGMji2HRvGzF/vx3ku7sbE17tu6fH222Lp1K9785jdX3/fqT2655RbcfffdPq2KKFiGMuWrycmwgrBaG7spAKDJItoSGjqSIfSndezqy2B+U5gFtWdpJGdg70AGqiRhKKPjn58qDxq89aqFaEuE4MLFktYYNPn8KZ49V41RFas6Etjdn0FnMoS/vX4FPv+LPehL69WxFaeyYXU7PvLGxWiMaDg0kocolOdb1UKh+6nkDAvj+RL600WkCya2H5vAAzsGcHgkDwD48fPH8OdvWuzbiyRfg8qb3vQmdgQkeh1es7dkWEFYqZ2dCFUSoYrlVuf9aR0vHpvA4pYYC2rPguO4ODZWgOsAkiLgfz+8t1qXsmFVG4ZyJazqTCAeUl7/D6MTNERVrOpMYHdfBp2pML71wUtwYDiP8UIJE4USxgsmxiv/nCiUMJDW8eDOAYzkDPzPty9HY0TFweFc9aZbrYQVx3ExXihhMKNjKGugaFp4uT+Hn77Uh4PD5YASUkS8+YJW/NEVPb7u5NbOsx7Recprn98QVaHItfEkCJSn3YZVCcvb43h07xBeOpbG+y6dj2zRYkHtGRrJGxjOGWiMqPjSIy9X61I+du1SjBZKaK/sXNHZSUVUrOpMYnd/GnnDxqULGk77g/mZgyP4/375Mp47Mo5N9+3AZ35vJVKVsCIKwILmYE+mLlkORvMG+iaKGM+bcFwHBwbz+M8Xjp0QUK5f04m3r2yD7bpoift7iYVBhSjAXNfFSK4y5yei1Nx1yKgmYUlrHAKAo2MFFE0bkgh2qD0DtuOid6wASRDxy92DJ9SlAIAiiVjYHOPtk3OUjChY2ZHEnv4MhrIGUhHllMdoVyxuxhfeqeLvfr4bB4Zy+NSPXsRnb1yFpqiKA8M5CEK5+ZztunBdwHFdOG55B8N1AVEs93vRZBEhRTrn72nbcZEpmsgZFgQBkCs3A5XKP2VJgCyK0E0bw1kdfRM6MrqFkayBl45N4OlDozg2Xq6DCykifm9NJ25Y2wHTcSGLArobI+hu9HcHlM8URAE2XjBh2uXj0aaoClWurR9GIUVCWBWxsCWKQ8N57OnPYFlbjAW1Z2AkZ2A0V0K6YJ5Ql7K4JYaBTBEXtMWRjPDIZyYkIwpWdCawfyiLbNHEqGVAEkVEVAkRVa7uAi5vT+D//rd1+OzPdqE/reN//sdL+JvrV6CnKYo9lT4sACDAhQsBggDARfWqs4By92ZFlhBRRSRCCiKqjJAiIaSI0GTpNXccHcdF1rAwUTm6yRQtWI4DofK5XACSIEASUW5pIAowbQcHh3PYcTyD546MVcMJMBlQbr6wExAE5EsW2hMh9DRFAtGLh88URAF2bKzc7C0RkhFWpJq5muzRZBGiAKydl8Kh4TxeOp7GsvYYW+lPk2U76B0rwHJcfOmRl6t1KTes7cBw1kBzTMM8zqeZUcmwgou7G5AvlTsqjxdKGM+bGMkZsBwXIVlEPKSgMxXG//1v6/B3P9+NfYNZ/O1PduL2t16ANyxpft3P4brlHi0l20G2aGM0a8KBCwHl23KaJCGiSeXve1VGSCnvvpi2g4mCicGMjrRuwrRcRFSp2rpgKttxy7tx43n8Zv8Ifnv4xHAiiwIunt+Aq5Y04/KFjZAlASM5AzFNxqrOBDqS4cAczzKoEAXY8crV5IaIClkSa+7oR5FECBCxtiuJ+7cfx4u9E3jfpfOR1ksAC2pf10iuhNGcgV/vHcJARq/WpRRNGxCBhc3RmttlqwWiKCAeUhAPKehIhmHaDnJ6ObiM5AwMZw1EVBnJsILP37waX3pkH7YcGsP/fmgvdq7pQHdDGMmIimRYQSqsIBlWEAvJkzstggBVFsr/7aaUfziVFv0ly8FYvoSBjA64LiRRhCILcB1At2yEZAmp0Ol3WLO6iacOlCdG7x2Y7IFycjiJajJM20G6aMIyXMxvjKCnKYpowHY7g7UaIjpBX+UVUENUhSaLgXmFM12qXO7mubSt3GdiKGsgXSwhpIgsqH0dpu3g6FgeBcPGT17sAwD896sXIaJK6E8XsbglhqYYO3XPBUUS0RBV0RBVMS8VRn9Gx4HBLAYzOlriGv7yd1fgO08dws9f6scvKjOXTiYK5evQ1yxrwc0XzjvlkYrXuj+knFgbYzvlACMIOO1/c9N2sO2VcTy2dwjPHRmDVWlEJwrAhd0NuGZZywnhJKdbmCgWocgCkiEF8xsjaIlrgSwEZlAhCrD+Si+HhoiCSA0Ol9NkEYosQgBwQVscu/sz2DeQQyqisKD2dQxnDYzlTfxiZz9KloMVHQn8zsJGjOVLSEVU3wscz1eiKGBeKoyoKmH/UA796SKaYxr+9OpFWNmRwI7jaaSLJtJFExOF8j9zhgXHLe+Q/efzx/Gzl/rxu6va8fsXzZtW2JQqN+hONpozsON4GjuOp/HMoVFk9cmJ0Qubo3jLBa1447IWNEZVlCwHOcPCRKEARSnXxfQ0R5AKq4iH5EBfq+azBFGADVR6qKTC5a60tUaWRDTHVBwdK2BtV7kL6K7+NC6an0ShZDGonEbJcnB0rIDRnIHH9g4BAD585QIYlgPTcbGyOfqqV900t1IRFWvmJXF4JIfesSKiqoyrl7bg6qUtr3qsaTvIFE3sH8rhR9t68fJgDj99sQ8P7OjHW1e24V0Xd6Et8frXy71gsrMSTk5uStcQUXDNsla8ZXkLFjbHqp+7L12ELAlIhBQsqJFwMhWfJYgCzAsqyYgCtUZ/MDXFNBwdK2DNvCTuea4XO46l4V7uQi85fi8tsIZz5SOy+144DscFrljUhAva4+hL6+hpCvve14LKQoqEC9rKjfYODuWqR0HiSccniiSiKaahKabh8oWN2N47gXu39mJXXwYP7hzAL3cP4k3LWnDl4ibkDBsZ3URWt5ApmsjoJjJFEyO5UvX5wCMKwKLmGFbPS+Ki7hTWdaeqx6mu62KiYEK3bHQkQ5jfGEEipNRMOJmKQYUowLz2+Q0RFUqNTE0+WTKsIKYqUFIiVFnERNHEUKaEzlQJ81lQ+yqGZaN3tIAjIwVsfWUcogDccsUCpIsmYiEZPU3Bbih2vhFFAV0NEURVGQeGy0dBmly+oafK5bepwUUQBFw0vwEXzW/AzuNp3Lu1F9t7J/Do3iE8Wtk9O+3nmhJM1sxLYmVn4pS7krppYzRnIBlRsLQ9ibZ4qCYDiodBhSjAhitdaZtiWs1dTfYokojWhIYDw1ms6kjghd4J7B/KYklrjAW1pzCUMTBeMPAf244BAH53dQfakyEMZHSs6UoiovJpO4gaoirWqEkMpItIFy0UDBv5koXxggPXBQShPFYiqsnVY7vV85JYPS+JfQNZ/PiFYxjI6EiElPJbWK78u4xEWEEirGBxS+w1j0ttx8Vo3oCL8uyh7sbIKWtbag3/xhMFVFY3y9dQAbScok9CLWmMqpBGRKyel8QLvRPY05/FW5a3olCyOJ9mCt200TtWwK7jGewfyiGsSPiDS7sxmjfQElfRxiOfQAspEhZUakNsx4Vh2dBNB7ppo1gqH+mM5EoIWw6S4cm/9xe0x7Fpw4qz/ryu6yJv2EjrJTTHNCxojqIpqtbNzhuDClFADVQK5SKqhGhIrul+GeVXhDKWtJSfxHf3Z1Ao2SiaNoPKFIMZHWP5Ev7j+eMAgN+/eB4iqoSJgoP5jVG2ya8hkiggosqYegvZdV30p3XsH8qetp5luhzXRaFkI29YsF0XYaU8V6szFanp54pTYVAhCqhj4+WutKmIUpPN3qaSRAFtiRBGsuXOlznDqhTYpvxeWmAMZw0cHsnj2cNjGMjoaIgouPnCeRjNldDVEEZzzP9W5nRuBEFAZyqMiCrh5cEs+tJFtMVD0/7eth0XecNCwbTguuUXMZ0NITRFNSRCSl0c85wKgwpRQB2fqPRQCas12UPlZKmIipAqYWVnAs8eHsP+wRwmlrCgFgAmCiXsG8igYFi4b3t5N+X9l/WUW7YrIrqbInWzjU/e1eYU9g9l0TdRRENEPW3tkWU7yFd2TkRRQFSVsKApilRERSIsn3JwYr1hUCEKqL6JclfaVI02eztZIlRuOb6sNYZnD49h32AWOd2CZTvn9ZFGVjextz8L3XTw633DyOoWuhrCuG5FKwazOpa2xpHg8VjdCasSVnYkEFElHB4poGQ51W61pu1Ud04kQUQsJGNJawypSLmotpZ3V88GgwpRQHk9E8rt82s/qAhC+fhnSWscAPDyYLZaMBw/z554PcWSjX0DWWR0E7Io4Cfby63yP3TlAmQNC8mwgnkNYZ9XSbNFlkQsbokhqsnYP1i+2uy4LmSxHE6WNcSRipSbs53PYZ5BhSigBqe0z6+X4riGiIqepjAaIgrGCyb2DGRxUU/DeVlQa1g29g1kMJIz0J4I4UuPvIyS7WBVZwKXzG/AUM7AktYkO9DWOUEQ0JEMI6xIODpWQCIkV8KJwqv7FQwqRAE1eEKzt/oIKlFNRmNUwwXtcWw5NIZ9A9nzskOtaTvYP5jDQEZHeyKM+7cfx2/2j0AUgA9ftRBj+RJaYhpaeR35vJGKqKccVEhAfTz7EdWhoWx5R6U5rtVsV9pTaUuEcEF7+fhn30AWQ1kdln3+hBXbcXFwKIdj4wW0xkN47sgY/uXpIwCAP716EeY3RuACmN8UOa+3+4k8/C4gCiDdtJGpTEJtiWl1s6MClIuD13WlAABHRvM4Nl7EUKUDb71zXRdHRvJ4ZayA5piG3rECvvTIPrgA3rGmA9ev7cRYvoTOVAhNUb66JgIYVIgCyWv2psoikiGlZtvnn0pIkbC8I47WuAbHBY6M5HF0tAC90oW3nvWndRwaySEVVlAwbPzdL/ZANx1c2J3Cn7xhIXK6hZAqoruR15GJPPXz7EdUR/rTlavJYQVhTarpgWKn0hzTsNw7/hnMYqJoor9yHbtepYsmDgzlEFZkyKKILzywByM5A/NSYXz67cshCALSuonuhsh5WVxMdDoMKkQBdHxiMqjUQw+Vk6XCKi5f1AQAeHTvECzbwdHxArK66fPKZkfJcnBoOAfDspEIyfiHx/Zj32AWMU3GZ35vJSKahIFMER3JELoa2ACPaCoGFaIA6hsvH/2kIgrCSv1dzlNlEW9d0YqlrTGULAc/fuE4dNPGsfECXNf1e3kzynVdHB3LYyCtoyUWwg+39uKJl4chiQL+csNydKbCGM4aaIyqWNoWq5ur6EQzhd8RRAHUnynvqDRGVShyfR37eJpiGt69vhsA8NjeIUzkTfSldYwX6mtXZThr4MhIAY1RFVsOjeL7vz0KAPjIGxdhXVcKozkDIVXCBe2J07ZRJzqfMagQBVB/pZi2MVpfN36mSoYVrO1K4orKEdD3f3sUju2id6wA26mPXZW8YeHAUA6yKODgcB5f/tXLAIAb13Viw+oOpIvlUHZBWxzJMOtSiE6lPp8BiWrcYMYLKvXT7O1ksiSiLa7h99Z2QJEE7DiexsHhPAYzOobr4Lqy7bg4OJxD1jBxZDSPz/50F0qWg0t6GvDhqxaiULJQNG0sbY+jhY3diE6rPp8BiWrcUKUrbUtMraurySdrSYQwvymC313dAQD4f1tegSgAr4zmUbJquwlc71gefRM6Dg8X8Plf7EHJdrC+pwF/tWEFLMfBeMHEouYoOpMhv5dKFGj1+wxIVKNM28FYvgSg/IO8nrrSniymyehpjODa5S1IhhUcnyhiy6ExTBRKGEjX7nXl0ZyBwyN57OpL4/88vBeW4+KqxU34q3esgCgAI7kSeprCWNAcZb8UotfBoEIUMENZAy4ASRTQFFPrvo16RyqM7sYIblxb3lW5d2svAAFHxwoolCx/F3cWdNPGweEcnnx5BF977AAcF3jzBS34H29fDkkUMJjV0ZEMYXFLnEPniKahvp8BiWqQt5OQDCuI1mEPlZMpkoiepijesKwFXQ1hZHULD+3sR063cGystnZVCiULB4dz+PHzx/G9p4/ABfD2Ve34xHXLAJQ7DjfFNCxri/MaMtE08TuFKGD6JsqFtOWgcn5cV22KquhpjOCmC+cBAH72Uj9M20HvRAEHh3JIF8xA91exHRfHJ4p44egE/vk3h3HPc70Ayrd7Nr5pMRzHxUC6iJa4hpUdCYTPgwBKNFMYVIgCxutK2xBRoCrnxw80QRAwvymC31nUiNWdCViOi3u3HkNYlnBgOIutR8fwQu84+iaKgZsJlC6Y2Hk8jV/tHsC3njyEH79wHADwnvXd+O9vWAjTdjGYNdDZEMbKzgSi2vkRPolmCr9jiALGm/NTvpp8/tQwRFQZC5ujuPmiedjVl8FTB0Zw47pOrOhIoGQ5yBRMDGcmEFZltMY1tMQ1pCKqb3UehmWjd7SAR/cM4cFd/XixNw1vz+cPf6cH71nfDd20MVYwML8xgiWtPO4hOhsMKkQB4zV7a45pdX01+VTaEyFc0tOAq5Y046kDI/jOU4fw+ZvWIKxKaIppcF0X+ZKN3vECescLiIcUdCRDSEVUJELynNygcV0X/eki/v3ZXvxkex+OjhWqv7a+pwHvvGge1nalkDcspIslLGqJYWFztO6LoolmC4MKUcAMVoJKUx03ezsduVJY+86LO/HckTG8PJjDn35/K/7g0vl4+8o2yJKImCYjpsmwbAdZw8Ke/ixUWUBDREVrIoSGiDJrreiPjxfx7d8cwv3bj2Oi0upflUS8ZXkrbrywE92VgYKZoomCaeOC9jjmN0brbvo10VxiUCEKmEGv2Vu8ftvnv5bGqIo1nSl85I2L8MOtxzCQ0fGNJw7iJ9uP44OX9+ANS5shCgJkSURDREVDpHwMM1EwMZjRy7svUQ2tcQ2N0Zm53j2Y1nHXEwfxo629yJfKNTINEQXXr+nA767uQDwkw7Jd5A0LumnDgYsVHXHMS4XZJ4XoHDGoEAWI47gYzk0NKufnD7nuxgguX9SEC7tTePbwGO55rhf9aR3/95f78OMXjuGWKxbgovkN1cdrsgQtJsF1XRRNGwNpHcfHC2iKaehujKA5pp1VLctI1sBdTxzAPc9OBpTOVAgbVnXgkp4GSKKAQslEsWRDlspXrSOajJ6mCNoS7DhLNBMYVIgCZCRvwHZcCALQkTx/X42HVQkLm6N46dgErlvZhrcsb8NPXjyOHz9/HAeH8/jMT3dhXVcSly5oRDKsIBVRkQorSEYUJEIKIgkZtuNivFDCi70TaI1r6GqMoCmqTutrOpY38I0nDuHffvsK8saUgLK6A1csakRLPISoJpUDkixCkUSolX8qknDe/ncjmg0MKkQBMlCpT0mEFMRD5/e3Z1sihPmNERyfKEIWRbz7km5sWN2BH27txQM7+vHisTRePJZ+1e8TAMRDMjpTYVy3og1XLm7CaK6EkVwJrQkN3Q0RpCLKCWHCsGwUSzb2D+Xwn9uO4Wcv9U0GlGQIG9Z04HcWNWJeKozOVBjJsMIwQjRHzu9nQqKA8W78JMMKQudJD5XTkUQBy9sTaI5pODKax0CmiLim4E+uXoQb13XiwZ0DGM7qmCiYmCiaSBdNZIomXAAZ3UJmIIu9A1l8978O49rlrbhuRRsGM+WjtY5kCM1RDYWSheFsCb/ZP4xH9wxhd3+mesW4MxXCO9Z04PKFjehMhjGvgQGFyA8MKkQB0j/h9VBR2HMDgCgKaE2Urx/3p4t4ZbSA4xMFNEU1fOjKBa96vO24yOgmJgomtveO48GdA+hP6/jZS/342Uv9WNuVxFtXtMEoOdh6ZBxP7R/BlkOjyOiTM4XWzkviyiVNuKSnAR3JMLoYUIh8xaBCFCB9lR2Vxuj5eePndFS5fG25KaahdyyP4xM6MkUTDVEVsjhZEyKJQuUmkIqFzVHcdOE8bO+dwAM7+vHckTG8dCyNl46lEdNk5IzJcNIQUXDt8jZcurABjVEVbYnQKY+IiGjuMagQBYi3o9IUO7+60k5XTJOxvD2BlngIr4zmMVYowXFcuG65ANmFALiAIJTb8odkEWvmJXHx/AYMZXU8vGsQv9w1gImiCQHAJT0NeNvKNixrj8OwbDRGNfQ0RdAc1dj7hCggGFSIAqT/PG72Nl2CIKA5piEVVpAv2XAcF7brVv9p2S4c10XJcjCaL2G8WIJpO9AkCe+6eB7eu74L+wZzaEtoiGkyxgslyJKIxS0xtCdD/LoTBQyDClGADGbKQaU1Fjrv2uefKVkSkQy/9tdokeMiZ1jI6iZGcyVMFEsolhy0xDTYjotiycbilhi6GiKcaEwUUAwqRAHhui6GsuVmb+0pHj3MBEkUkAwrSIYVdDVEUCzZyOomxvIl2I6LroYIkhHF72US0WtgUCEKiHTRhGE5AIB5qYjPq6lPYVVCWJXQyq6xRDWDe8tEAXFsvDyFN6bJSPFVPhERAAYVosDYN5AFAKQi7KFCROThsyFRAJi2g72VoNIQUXjzhIiogs+GRAEwlDWw43h5bg2bvRERTeKzIZHPDMvGj57rxZZDYwCAKxY18moyEVEFnw2JfLb96AS+8eRBAMCN6zqxpivFrrRERBUMKkQ+yhRNbLpvB3TTwYr2OG6+qBOqLELmjgoREQAGFSJfff4Xu3FoOI+YJuNTb78AcAWEFX5bEhF5+IxI5JMHd/Tjh1uPAQA+du1SJEIKDMtGTGMfRiIiD4MKkQ/600V8+j9fAgDcsLYDKzsSGC+UsLglhk52pSUiqgpEUPn617+OBQsWIBQK4fLLL8ezzz7r95KIZo1lO7jtBy8go1tY0BTB9Ws6YDsOVs1LYmlbjM3eiIim8P0Z8d5778Xtt9+OO+64A88//zzWrVuHt7/97RgaGvJ7aUSz4h8e3Y9tr4xDk0XcetUCNERVrO1KYV4qDEHgbR8ioqkE13VdPxdw+eWX49JLL8XXvvY1AIDjOOju7sZf/MVf4C//8i9f8/dmMhkkk0mk02kkEokZW1OhZGEsX5qxP4/Is7svg4/8v21wAdx6ZQ/eeXEXlrbGEVYlv5dGRDRnzuTnt69Ve6VSCdu2bcOmTZuqHxNFEddddx2eeeaZVz3eMAwYhlF9P5PJzMq6frVnCB/79xdm5c8mAoCrlzbjg7+zAD1NEV5FJiJ6Db4GlZGREdi2jba2thM+3tbWhr17977q8Zs3b8bnPve5WV+XJAjlOgFf95qoXq3tSuIvNyzHopYoj3qIiF5HTd2D3LRpE26//fbq+5lMBt3d3TP+ea5f24Hr13agULLg78EY1SNJFBBSeNRDRDQdvgaV5uZmSJKEwcHBEz4+ODiI9vb2Vz1e0zRomjZXy0NErakcR0REVHd8PRxXVRWXXHIJHn300erHHMfBo48+iiuuuMLHlREREVEQ+L5lcPvtt+OWW27B+vXrcdlll+ErX/kK8vk8br31Vr+XRkRERD7zPai8973vxfDwMD7zmc9gYGAAF154IR566KFXFdgSERHR+cf3PirnYrb6qBAREdHsOZOf32zgQERERIHFoEJERESBxaBCREREgcWgQkRERIHFoEJERESBxaBCREREgcWgQkRERIHFoEJERESBxaBCREREgeV7C/1z4TXVzWQyPq+EiIiIpsv7uT2d5vg1HVSy2SwAoLu72+eVEBER0ZnKZrNIJpOv+ZianvXjOA76+voQj8chCMI5/VmZTAbd3d3o7e3l3KDXwa/V9PFrNX38Wp0Zfr2mj1+r6Zurr5Xrushms+js7IQovnYVSk3vqIiiiK6urhn9MxOJBP8iTxO/VtPHr9X08Wt1Zvj1mj5+raZvLr5Wr7eT4mExLREREQUWgwoREREFFoNKhaZpuOOOO6Bpmt9LCTx+raaPX6vp49fqzPDrNX38Wk1fEL9WNV1MS0RERPWNOypEREQUWAwqREREFFgMKkRERBRYDCpEREQUWAwqAL7+9a9jwYIFCIVCuPzyy/Hss8/6vaRAevLJJ3HDDTegs7MTgiDg/vvv93tJgbV582ZceumliMfjaG1txc0334x9+/b5vaxAuuuuu7B27dpqg6krrrgCDz74oN/Lqgl33nknBEHAJz7xCb+XEjif/exnIQjCCW/Lly/3e1mBdfz4cXzwgx9EU1MTwuEw1qxZg61bt/q9LAAMKrj33ntx++2344477sDzzz+PdevW4e1vfzuGhob8Xlrg5PN5rFu3Dl//+tf9XkrgPfHEE9i4cSO2bNmCRx55BKZp4m1vexvy+bzfSwucrq4u3Hnnndi2bRu2bt2Kt7zlLbjpppuwa9cuv5cWaM899xy++c1vYu3atX4vJbBWrVqF/v7+6ttTTz3l95ICaXx8HFdddRUURcGDDz6I3bt340tf+hIaGhr8XlqZe5677LLL3I0bN1bft23b7ezsdDdv3uzjqoIPgHvffff5vYyaMTQ05AJwn3jiCb+XUhMaGhrc73znO34vI7Cy2ay7dOlS95FHHnGvueYa9+Mf/7jfSwqcO+64w123bp3fy6gJn/70p903vOENfi/jtM7rHZVSqYRt27bhuuuuq35MFEVcd911eOaZZ3xcGdWbdDoNAGhsbPR5JcFm2zbuuece5PN5XHHFFX4vJ7A2btyI66+//oTnLnq1/fv3o7OzE4sWLcIHPvABHD161O8lBdJPf/pTrF+/Hu9+97vR2tqKiy66CN/+9rf9XlbVeR1URkZGYNs22traTvh4W1sbBgYGfFoV1RvHcfCJT3wCV111FVavXu33cgJpx44diMVi0DQNH/3oR3Hfffdh5cqVfi8rkO655x48//zz2Lx5s99LCbTLL78cd999Nx566CHcddddOHz4MK6++mpks1m/lxY4hw4dwl133YWlS5fi4Ycfxp/92Z/hYx/7GP7lX/7F76UBqPHpyUS1YOPGjdi5cyfPx1/DBRdcgO3btyOdTuM//uM/cMstt+CJJ55gWDlJb28vPv7xj+ORRx5BKBTyezmBtmHDhuq/r127Fpdffjl6enrwwx/+EH/8x3/s48qCx3EcrF+/Hl/84hcBABdddBF27tyJb3zjG7jlllt8Xt15vqPS3NwMSZIwODh4wscHBwfR3t7u06qontx22234+c9/jl//+tfo6uryezmBpaoqlixZgksuuQSbN2/GunXr8NWvftXvZQXOtm3bMDQ0hIsvvhiyLEOWZTzxxBP4h3/4B8iyDNu2/V5iYKVSKSxbtgwHDhzweymB09HR8aoXBStWrAjMUdl5HVRUVcUll1yCRx99tPoxx3Hw6KOP8nyczonrurjttttw33334bHHHsPChQv9XlJNcRwHhmH4vYzAufbaa7Fjxw5s3769+rZ+/Xp84AMfwPbt2yFJkt9LDKxcLoeDBw+io6PD76UEzlVXXfWq9gkvv/wyenp6fFrRic77o5/bb78dt9xyC9avX4/LLrsMX/nKV5DP53Hrrbf6vbTAyeVyJ7waOXz4MLZv347GxkbMnz/fx5UFz8aNG/GDH/wAP/nJTxCPx6s1T8lkEuFw2OfVBcumTZuwYcMGzJ8/H9lsFj/4wQ/w+OOP4+GHH/Z7aYETj8dfVecUjUbR1NTE+qeTfOpTn8INN9yAnp4e9PX14Y477oAkSXjf+97n99IC55Of/CSuvPJKfPGLX8R73vMePPvss/jWt76Fb33rW34vrczva0dB8I//+I/u/PnzXVVV3csuu8zdsmWL30sKpF//+tcugFe93XLLLX4vLXBO9XUC4H7ve9/ze2mB8+EPf9jt6elxVVV1W1pa3Guvvdb95S9/6feyagavJ5/ae9/7Xrejo8NVVdWdN2+e+973vtc9cOCA38sKrJ/97Gfu6tWrXU3T3OXLl7vf+ta3/F5SleC6rutTRiIiIiJ6Ted1jQoREREFG4MKERERBRaDChEREQUWgwoREREFFoMKERERBRaDChEREQUWgwoREREFFoMKERERBRaDChEREQUWgwoRBcbw8DBUVUU+n4dpmohGo4GZ4EpE/mBQIaLAeOaZZ7Bu3TpEo1E8//zzrzvw0jTNOVwdEfmBQYWIAuPpp5/GVVddBQB46qmnqv/uEQQBd911F2688UZEo1F84Qtf8GOZRDSHOJSQiHx19OhRrF27FgBQKBQgSRI0TUOxWIQgCAiFQnj/+9+Pf/qnf4IgCGhtbcWdd96Ja665BrIsv+aOCxHVPtnvBRDR+a2zsxPbt29HJpPB+vXr8dvf/hbRaBQXXnghfvGLX2D+/PmIxWLVx7///e/Hrbfe6uOKiWgu8eiHiHwlyzIWLFiAvXv34tJLL8XatWsxMDCAtrY2vPGNb8SCBQvQ3Nxcffz69et9XC0RzTXuqBCRr1atWoVXXnkFpmnCcRzEYjFYlgXLshCLxdDT04Ndu3ZVHx+NRn1cLRHNNe6oEJGvHnjgAWzfvh3t7e34/ve/j+3bt2P16tX4yle+gu3bt+OBBx7we4lE5CPuqBCRr3p6ejAwMIDBwUHcdNNNEAQBu3btwrve9S50dHT4vTwi8hl3VIjId48//jguvfRShEIhPPvss+jq6mJIISIAvJ5MREREAcYdFSIiIgosBhUiIiIKLAYVIiIiCiwGFSIiIgosBhUiIiIKLAYVIiIiCiwGFSIiIgosBhUiIiIKLAYVIiIiCiwGFSIiIgosBhUiIiIKrP8f4EHpgrQBz9MAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "aggregated_df = pd.concat(dfs)\n", "\n", "sns.lineplot(aggregated_df, x=\"#r\", y=\"RDF\");\n", "# sns.lineplot(aggregated_df, x=\"#r\", y=\"RDF\", err_style=\"bars\");" ] } ], "metadata": { "kernelspec": { "display_name": "openmm", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.0" } }, "nbformat": 4, "nbformat_minor": 2 }