{ "cells": [ { "cell_type": "markdown", "id": "0c49e4aa", "metadata": {}, "source": [ "\n", "*This notebook contains material from [CBE60499](https://ndcbe.github.io/CBE60499);\n", "content is available [on Github](git@github.com:ndcbe/CBE60499.git).*\n" ] }, { "cell_type": "markdown", "id": "2049b87f", "metadata": {}, "source": [ "\n", "< [2.8 Parameter estimation with `parmest`](https://ndcbe.github.io/CBE60499/02.08-Parmest-tutorial.html) | [Contents](toc.html) | [Tag Index](tag_index.html) | [2.10 Pyomo Homework 1](https://ndcbe.github.io/CBE60499/02.10-Pyomo1.html) >
"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 1,
"link": "[2.9 Supplementary material: data for parmest tutorial](https://ndcbe.github.io/CBE60499/02.09-Parmest-generate-data.html#2.9-Supplementary-material:-data-for-parmest-tutorial)",
"section": "2.9 Supplementary material: data for parmest tutorial"
}
},
"source": [
"# 2.9 Supplementary material: data for parmest tutorial\n",
"\n",
"Created by [Kanishka Ghosh](https://github.com/kanishka-ghosh), [Jialu Wang](https://github.com/jialuw96), and [Prof. Alex Dowling](https://github.com/adowling2/) at the University of Notre Dame."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"nbpages": {
"level": 1,
"link": "[2.9 Supplementary material: data for parmest tutorial](https://ndcbe.github.io/CBE60499/02.09-Parmest-generate-data.html#2.9-Supplementary-material:-data-for-parmest-tutorial)",
"section": "2.9 Supplementary material: data for parmest tutorial"
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"from pyomo.environ import *\n",
"\n",
"# Define the directory to save/read the data files\n",
"data_dir = './data/parmest_tutorial/'"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 1,
"link": "[2.9 Supplementary material: data for parmest tutorial](https://ndcbe.github.io/CBE60499/02.09-Parmest-generate-data.html#2.9-Supplementary-material:-data-for-parmest-tutorial)",
"section": "2.9 Supplementary material: data for parmest tutorial"
}
},
"source": [
"The **purpose of this notebook** is to generate data files used for the parmest tutorial."
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[2.9.1 Reaction Kinetics Example](https://ndcbe.github.io/CBE60499/02.09-Parmest-generate-data.html#2.9.1-Reaction-Kinetics-Example)",
"section": "2.9.1 Reaction Kinetics Example"
}
},
"source": [
"## 2.9.1 Reaction Kinetics Example"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[2.9.1 Reaction Kinetics Example](https://ndcbe.github.io/CBE60499/02.09-Parmest-generate-data.html#2.9.1-Reaction-Kinetics-Example)",
"section": "2.9.1 Reaction Kinetics Example"
}
},
"source": [
"The following code calculates the concentrations $C_A$, $C_B$, and $C_C$ as a function of time for experimental conditions $T$ and $C_{A0}$ given model parameters $A_1$, $A_2$, $E_1$, and $E_2$. See the parmest tutorial notebook for a full description of the mathematical model."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"nbpages": {
"level": 2,
"link": "[2.9.1 Reaction Kinetics Example](https://ndcbe.github.io/CBE60499/02.09-Parmest-generate-data.html#2.9.1-Reaction-Kinetics-Example)",
"section": "2.9.1 Reaction Kinetics Example"
}
},
"outputs": [],
"source": [
"def kinetics(A, E, T):\n",
" ''' Computes kinetics from Arrhenius equation\n",
" \n",
" Arguments:\n",
" A: pre-exponential factor, [1 / hr]\n",
" E: activation energy, [kJ / mol]\n",
" T: temperature, [K]\n",
" \n",
" Returns:\n",
" k: reaction rate coefficient, [1 / hr]\n",
" \n",
" '''\n",
" R = 8.31446261815324 # J / K / mole\n",
" \n",
" return A * np.exp(-E*1000/(R*T))\n",
"\n",
"def concentrations(t,k,CA0):\n",
" '''\n",
" Returns concentrations at time t\n",
" \n",
" Arguments:\n",
" t: time, [hr]\n",
" k: reaction rate coefficient, [1 / hr]\n",
" CA0: initial concentration of A, [mol / L]\n",
" \n",
" Returns:\n",
" CA, CB, CC: concentrations of A, B, and C at time t, [mol / L]\n",
" '''\n",
" CA = CA0 * np.exp(-k[0]*t);\n",
" CB = k[0]*CA0/(k[1]-k[0]) * (np.exp(-k[0]*t) - np.exp(-k[1]*t));\n",
" CC = CA0 - CA - CB;\n",
" \n",
" return CA, CB, CC"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"nbpages": {
"level": 2,
"link": "[2.9.1 Reaction Kinetics Example](https://ndcbe.github.io/CBE60499/02.09-Parmest-generate-data.html#2.9.1-Reaction-Kinetics-Example)",
"section": "2.9.1 Reaction Kinetics Example"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAABF3UlEQVR4nO3dd3gU5fbA8e9JCITQQu8QmjRFpDcFL1JFsQBWFBURexe9NrD8bFfFKygqIhexYkFQiihFpQhIL9JbACHUACGQ8v7+OBsSQkg2YTebZM/neeZJdnZ25wxlzrxdnHMYY4wJXiGBDsAYY0xgWSIwxpggZ4nAGGOCnCUCY4wJcpYIjDEmyFkiMMaYIGeJwOR7IrJVRC4LdBwFgYiMFZGXvDzW/twLCEsExi88N4njInJURA6KyE8iUt3Lz0aJiBORQn6Ia4CIJHniihWR5SLSy9fnSXfOTiIS7ePvHOD5M3or3f6rPPvH+vJ8pmCzRGD86QrnXHGgMrAHeDfA8aSY74krEngP+FJEIgMaUSYySYibgOvSvX8LsN7/UZmCxBKB8TvnXDzwDdAoZZ+IXC4iSz1P5TtEZGiaj/zm+XnI8+Te1vOZO0VkrYgcEZE1ItIszWeaisgKETksIl+JSLgXcSUDnwLFgHqecxQRkf+IyHYR2SMio0SkqOe90iLyo4jEeEo5P4pItTTXVEZEPhGRXZ73J4pIMWAqUMVzLUdFpIrnPMM9x+7y/F7E8z2dRCRaRIaIyD/AJ2e5hH+AlUC3lPMD7YBJaQ8SkStFZLWIHBKR2SLSMM17F4nIEs+f6VdAeLrP9hKRZZ7PzhORJln9uZr8xxKB8TsRiQCuAxak2X0MfXqNBC4H7haRqzzvXeL5GemcK+6cmy8ifYGhns+UBK4E9qf5vn5Ad6AW0AQY4EVcocBtQAKwzbP7NeA8oClQF6gKPOd5LwS9KdcEagDHgRFpvvJTIAJoDFQA3nbOHQN6ALs811LcObcLeBpo4znPhUAr4Jk031UJKOM516BMLmMc+mcCcD3wA3AizTWeB3wBPASUB6YAk0WksIgUBiZ64i4DTACuTfPZZsAY4C6gLPABMCklYZkCxDlnm20+34CtwFHgEJAI7AIuyOT44eiNEyAKcEChNO9PBx7M5Fw3p3n9OjDqLMcO8MRzCE0Ax4F+nvcETVB10hzfFthylu9qChz0/F4ZSAZKZ3BcJyA63b5NQM80r7sBW9McfxIIz+TPawDwB1AUrXYrhSba9sBLwFjPcc8CX6f5XAiw03OOSzx/L5Lm/XnAS57f3wdeTHfedUDHNH/ulwX635pt575ZicD401XOuUigCHAfMEdEKgGISGsRmeWpZjkMDAbKZfJd1dGb59n8k+b3OKB4Jscu8MRVGq1Gudizvzz6RP+XpyrkEDDNsx8RiRCRD0Rkm4jEolVYkZ6SRXXggHPuYCbnTasKqaUQPL9XSfM6xmmVWqacc8eBn9DSRDnn3NzMzuO0OmwHWtKpAux0nrt6mjhS1AQeTfmz8Px5VE8XpykALBEYv3POJTnnvgOSgA6e3Z+jN+HqzrlSwCj0iRy0NJDeDqCOj+M6CtwD9BeRi4B9aAmhsXMu0rOVctqwDPAoUB9o7ZwrSWoVlnjiK3OWRueMrmcXeqNNUcOzL7PPnM04T2yfZnUeERH0Zr4T2A1U9exLG0eKHcDLaf4sIp1zEc65L7IRm8kHLBEYvxPVG30CX+vZXQJ9go4XkVbAjWk+EoNWs9ROs2808JiINPd8X10RSXsjzRHn3H7Pdz/neVr+CHhbRCp4Yq8qIt3SxHwcbcQuAzyf5nt2o43C73kalcNEJCVR7AHKikipNKf+AnhGRMqLSDm0HWJ8Di9jDtCFjHtlfQ1cLiKdRSQMTRgn0Cqg+Wg12QMiUkhErkHbKlJ8BAz2lN5ERIqJNvKXyGGcJo+yRGD8abKIHAVigZeBW51zqz3v3QO8ICJH0Jvg1ykfcs7FeY6f66mSaOOcm+DZ9zlwBG3kLOOjOIcDPT09YoYAG4EFnuqfX9BSQMpxRdGSwwK02iit/mi7w9/AXrSBFufc3+iNf7Pneqqg9fiLgRVoz58lnn3Z5tSvzrkDGby3DrgZTRL7gCvQbr0nnXMngWvQ9oaDaIP+d2k+uxi4E20QP+j5cxmQkxhN3ianVw8aY4wJNlYiMMaYIGeJwBhjgpwlAmOMCXKWCIwxJsj5fHZHfytXrpyLiooKdBjGGJOv/PXXX/ucc+Uzei/fJYKoqCgWL14c6DCMMSZfEZFtZ3vPqoaMMSbIWSIwxpggZ4nAGGOCXL5rIzDGGH9JSEggOjqa+PgsJ37Ns8LDw6lWrRphYWFef8YSgTHGeERHR1OiRAmioqI4fVLW/ME5x/79+4mOjqZWrVpef85vVUMiMkZE9orIqrO8LyLyXxHZKLrEYLOMjjPGmNwSHx9P2bJl82USABARypYtm+0SjT/bCMaiSweeTQ90ndh66FJ87/sxFmOM8Up+TQIpchK/3xKBc+434IxpcdPoDYzzTKG7AF3pqbK/4tm0CR56CBIS/HUGY4zJnwLZa6gqugJSimjPvjOIyCARWSwii2NiYnJ0srVr4Z13YMyYHH3cGGMKrEAmgozKLxkujuCc+9A518I516J8+QxHSGfp8suhfXt44QU4fjxHX2GMMQVSIBNBNLp2aopqnL5mq0+JwCuvwK5dMGKEv85ijDG+MWHCBFq3bk2TJk2oW7cuw4YN89u5ApkIJgG3eHoPtQEOe9Z99ZuLL4YePTQhHDrkzzMZY0zO/e9//+O1117j22+/ZcWKFSxbtoyIiAi/nc+f3Ue/QBfHri8i0SJyh4gMFpHBnkOmAJvRdVA/Qtew9bv/+z84eBD+85/cOJsxxmRPbGwsjzzyCF9//TXVqlUDoHjx4jz++ON+O6ffBpQ5527I4n0H3Ouv859N06Zw/fXw9ttw331QqVJuR2CMyQ8eegiWLfPtdzZtCsOHZ37M999/T+vWraldu7ZvT56JoJxr6IUX4MQJePnlQEdijDGnW716NU2bNj3r+9dddx1vvvmmT88ZlFNM1KsHAwfCBx/AI49ANkZiG2OCRFZP7v5SrFgxjp+la+MPP/xAr169+OWXX3x6zqAsEQA8+yyEhsLzzwc6EmOMSdWzZ08mTJjAnj17ADhx4gQfffQR8fHxTJgwgf79+3P48GGfnjNoE0HVqnD//TB+PKzKcDYkY4zJfS1btmTo0KF069aNCy64gKZNm7J3717eeOMNjh49yuDBg1m9evVZSw05EbSJAODJJ6FkSXj66UBHYowxqfr378+yZctYuXIla9eupX///mzdupWJEycyatQobr75ZlasWOGz8wV1IihTBh5/HCZNgrlzAx2NMcZkrEaNGnz88cenXj///PO0bt3aZ98f1IkAtItYlSrw6KPgMpzgwhhjCragTwTFimk30j//hK++CnQ0xhiT+4I+EQDccosO9BgyxCakM8YEH0sEQEgIvPkmbN+uU1UbY0wwsUTg8a9/wZVX6lxEe/cGOhpjjMk9lgjSeP11rRqyQWbGmGBiiSCN+vXh7rvhww9h9epAR2OMMbnDEkE6zz+vg8weeyzQkRhjTO6wRJBO2bI6D9G0aTB9eqCjMcYY/7NEkIF774U6dXSQWWJioKMxxgSjYFmqMs8qUgRee03bCT76KNDRGGOCTW4vVSkun82r0KJFC7d48WK/n8c56NxZVyhavx7KlfP7KY0xAbZ27VoaNmwY0BhiY2OpVasWixYtyvEqZRldh4j85ZxrkdHxQbkwjTdE4N13dcTxv/+tPYmMMcGl09hOWR7T67xePNbusVPHD2g6gAFNB7Avbh99vu5z2rGzB8zO8vtsqco8pnFjeOABGD0aFi0KdDTGmGCQ2VKVLVq04N5776Vjx46s9mEfdysRZOH55+Hzz7UBecECnY7CGBMcvHmCP9vx5SLKZfvzcPalKnfs2EGrVq0YOXIkb731FtHR0TRu3Djb358Ru61loWRJeOMNLRGMGRPoaIwxBd3Zlqr866+/WL9+PbfffjszZ86kW7duPjunJQIv3HQTdOigK5odOBDoaIwxBdnZlqr866+/ePPNNxkzZgxFihTh2LFjPjunVQ15QQRGjIBmzXSw2ciRgY7IGFOQ9e/fn/79+5+2r2fPnuzbt4+QkBAaNmxIsWLFfHY+SwReuvBCuOceeO89GDgQLroo0BEZY4LJlClT/PbdVjWUDS++qFNQ3HsvJCcHOhpjjPENSwTZEBmpI47nz4f//S/Q0RhjjG9YIsimW2+Fdu10dtKYmEBHY4wx584SQTaFhOj8Q0eOwCOPBDoaY4w5d5YIcqBRI3jqKRg/Hn7+OdDRGGPMubFEkENPPaUrmg0eDD7szmuMMbnOr4lARLqLyDoR2SgiT2bwfikRmSwiy0VktYjc5s94fCk8HD74ALZsAT9OE26MMX7nt0QgIqHASKAH0Ai4QUQapTvsXmCNc+5CoBPwpogU9ldMvtaxo44peOstWLo00NEYY0zO+LNE0ArY6Jzb7Jw7CXwJ9E53jANKiIgAxYEDQL5aE+z113WtgjvvhKSkQEdjjDHZ589EUBXYkeZ1tGdfWiOAhsAuYCXwoHPujKFaIjJIRBaLyOKYPNZns3RpeOcd+OsvXb/AGGN8oaAsVSkZ7Eu/HFo3YBlQBWgKjBCRkmd8yLkPnXMtnHMtypcv7+s4z1m/ftCzJzzzDGzbFuhojDH5XW4vVenPuYaigeppXldDn/zTug141el6mRtFZAvQAFjox7h8TkTnIGrcGAYNgmnTdJ8xJp/r1OnMff366cRjcXH6BJjegAG67dsHfU5foYzZs7M8ZWxsLI888giLFi2iWrVqABQvXpzHH388u9F7zZ8lgkVAPRGp5WkAvh6YlO6Y7UBnABGpCNQHNvsxJr+pWVPbC37+WVc0M8aYnAjEUpV+KxE45xJF5D5gOhAKjHHOrRaRwZ73RwEvAmNFZCValTTEObfPXzH52+DB8N13OuK4a1dNDsaYfCyzJ/iIiMzfL1fOqxJAepktVfnVV18xd+5ckpOTKVasGK+99lq2vz8jfp2G2jk3BZiSbt+oNL/vArr6M4bcFBICH38M558Pt98OM2bY0pbGmOw521KV8+fP588//+S///0vACdPnvTZOTO9TYlIGS+2SJ9FUwDUrKnjCmbO1AFnxhiTHWdbqnLs2LE89NBDp44rXNh3Q66yKhHs8myZNX2GAjV8FlEBMHAgfPMNPP44dOsGuVjVZ4zJ59IuVZmUlERiYiI333wz8fHxFCqUestOSkoiNDTUJ+fMKhGsdc5luhaXiNiY2nREtME4pYpo5kyrIjLGeC+jpSpXr17No48+Svny5Tly5Ahvv/02kZGRPjlfVomgrRff4c0xQad6dRg+XBPBiBHwwAOBjsgYk581btyYL774wi/fnelzqnMu/mzvicj2rI4JdgMGaDfjJ5+EDRsCHY0xxmTsXCosbMhUFkR0EZsiRaB/f0hICHRExhhzpnNJBOmnizAZqFIFRo2CP/+EF18MdDTGGHOmTNsIRORsizGmzBZqvHDddTB1Krz8MnTpAhdfHOiIjDFn45xD8vEcMTpjT/ZkVSIocZatOPBOts8WxN59F6Ki4Oab4dChQEdjjMlIeHg4+/fvz9HNNC9wzrF//37Cw8Oz9bmseg1tAKY75/bnODIDQIkS8Pnn0L69zlf12Wc2MZ0xeU21atWIjo4mr013nx3h4eGnJqvzVlaJoAYwQUTCgF+BqcBCl1/TZYC1bg1Dh8Kzz0KPHtqAbIzJO8LCwqhVq1agw8h14s09XURKAJcB3dGVx9YC09DSwh6/RphOixYt3OLFi3PzlD6VlKQz2y5fDsuW2ahjY0zuEJG/nHMtMnrPq15DzrkjzrnvnXN3eUYavwSUB8b5MM6gEBoK48frSOObboLEfLUwpzGmIMpq0rlmGW1AODDLOdctd8IsWGrW1C6lCxbACy8EOhpjTLDLqo3gzUzec8C/fBhLULn+el3J7KWXtDtply6BjsgYE6wyTQTOuUtzK5BgNHIkLF6sVURLl0LVqoGOyBgTjLxqIxCRMBF5QES+8Wz3eXoSmXNQrBhMmKBLn15/vbUXGGMCw9spJt4HmgPvebbmnn3mHDVsCB9+CH/8Ac88E+hojDHByNulKls65y5M83qmiCz3R0DB6MYb4bff4LXXoEMH6NUr0BEZY4KJtyWCJBGpk/JCRGoDSf4JKTgNHw5Nm8Itt8C2bYGOxhgTTLxNBI8Ds0RktojMAWYCj/ovrOATHq7tBUlJ0K8f+HBdamOMyZS3A8p+BeoBD3i2+s65Wf4MLBjVrQtjxsDChfDYY4GOxhgTLLxqIxCRUKAbEOX5TGcRwTn3lh9jC0rXXgsPPaRVRS1aaFWRMcb4k7eNxZOBeGAlkOy/cAzA66/rXESDBkGjRpoQjDHGX7xNBNWcc038Gok5JSwMvvoKWraEq6/WQWcVKwY6KpNbnHPEJcRx+MRhDsUfOm07cuIIcQlx1C5dm94NegNw/5T7aVu9LTdecCPxifH0ndCXhKQETiadJMklnZpb3+FO/d6nUR8eavMQJxJP0PvL3txx0R30bdyXvcf28vD0hwkPDSe80Olb8cLFKVa4GMULF6d55ebUL1efk0kn2XRgE9VLVad4YVurKr/yNhFMFZGuzrmf/RqNOaV8efj+e12/oE8f+PVXKFw40FGZcxGfGM/O2J3sPLKTpOQkLq2lA/efmPEEZYqW4ckOTwJQ4T8V2Be3L9PvuqbhNacSwaytsygbURYAQdgZu5Ow0DAKhxYmVEIJCQlBPEuMiwiCUDhU/zElu2QOxR8iPjEegLiEOP6M/pP4xHhOJJ0gPjGe+MR4EpNPH+34Rpc3qF+uPtsObaPRe4349OpPubnJzfyx/Q96f9mbyPBIyhQtk7qF68+yEWUpF1GOjjU7Ur1UdRKSEkhySYQXyt5CKsa3vE0EC4DvRSQESECXqnTOuZJ+i8xw0UXw8cc6zuDhh3VKCpP3zd8xn5V7V7LpwCY2HdzE5oOb2RG747Sb+wUVLmDF3SsA2HxwM8dOHjv13mNtH0NEKFWkFJHhkae2UuGlKFmkJBFhERQLK3bq+FX3rDr1e5FCRVhy1xKvYy0aVpQFAxeceh0VGcXGBzaecVxiciLHTh7j6MmjHEs4RpmiZQCoUKwCX1z7BW2qtQGgXEQ5rm98PYdPHObA8QMcOH6ALQe3sP/4fg4eP4jzLHX+bb9vqV6qOrO2zqLb+G7MvX0u7aq3Y8amGXy45EMqFatEpeK6VS5RmaolqlK1ZFXKFi2br5eRzKu8XY9gM3AVsDLQi9Lk9/UIcuKJJ+CNN+Cjj2DgwEBHY04knmDTwU00Kt8IgDfnvcnsbbOZfMNkALp+2pUZm2cQFhJGrdK1qF26NjVL1aRayWqnthqlanBe2fMCeRm5LqX0sS9uH5WKV6JkkZJs2L+Br1d/zcBmA6lYvCJfrfqKoXOG8s/RfzgUf+iM7ygcWpgqJaow7aZp1C9Xn4U7FzJvxzzuan4XRcOKEpcQR3ihcELE257xwSOz9Qi8LRFsAFYFOgkEq1de0cbje+7RxuN27QIdUfCIPRHL8n+Ws2T3Epb8s4Slu5eyJmYNSS6JQ0MOUSq8FGGhYYSFhJ1a9HxEzxGEFwqnaomqhIaEBvoS8owQCTlVVZSiXtl6PH3J06deX3f+dVx3/nWAVqXtObqHXUd2sevILnYe2XnqZ0pV2PSN03l+9vPc0/IeAIbMGMIHf31A9VLVqVmqJjUja+rPUjWJioyiVulaVCtZjUIh3t76goO3JYKxQG10qcoTKfsD0X00GEsEAAcOaOPxsWM6zqBGjUBHVHDN2zGPUYtHsSB6ARsObDi1v2KxijSv0pymFZtyfoXzubL+lRQrXCyTbzL+5pzjYPzBU8ll6oapzNk2h22Ht7Ht0Da2Hd7G7iO7T1VJAUSERXDkqSOESAifLv+Ug/EHeaD1AwAcO3mMiLCIAln95IsSwRbPVtizeXvi7sA7QCgw2jn3agbHdAKGA2HAPudcR2+/P5iUKQOTJ0PbtjoX0R9/QElrofGJNTFreGjaQ7x62as0q9yMXUd28fOmn2lTrQ23XHgLzSo346JKF1G5ROVAh2rSEZHTShg96vWgR70epx1zMukkOw7vYOuhrWw5tIVD8YdOVR1NXj+Z7Ye3n0oEHcd2ZMOBDdQpXYe6Zeqe2uqVqUfdMnWpVLxSwUwS/qrt8QxCWw90AaKBRcANzrk1aY6JBOYB3Z1z20WkgnNub2bfG6wlghQzZujC9126aGIoZCVcryUlJ/HX7r/4dfOvzNw6kz4N+3BXi7vYdWQXPT/ryZtd36Rz7c4kJScRIiEF8j+8OVNicuKpqqIPFn/Ayr0r2XxwMxsPbGTLoS2n9ZgqFlaMvo378knvTwCYtG4SdcvUPdVelJfluEQgIkOdc0NzeEwrYKNzbrPnuC+B3sCaNMfcCHznnNsOkFUSMJoA3n9fB5s9+CCMGAF2vzq7mGMxTNkwhR83/MiMTTM4fOIwAOdXOP/Uf/4qJaqwbPCyU5+xev3gkra94K4Wd532XmJyItsPb2fD/g1sPLCRDQc2EBUZBWi11A3f3sCgZoN4u/vbnEg8QedxnalXth71y9anQbkG1C9bnzpl6pzqrptXZfU8OVBEYjN5X4DrgaEZvFcV2JHmdTTQOt0x5wFhIjIbKAG845wbd8ZJRAYBgwBqWOU4d94JGzZoT6J69XRKCnO6t+e/zYQ1E1gQvQCHo3LxyvRp1IfLal/GpVGXUrG4jdAzWSsUUojapWtTu3RtunHmEu1L71pKkdAiAByMP0hYaBjTN05n7LKxp44JlVBql65Ng3INaFiuIdc2upZWVVvl1iV4JatE8BF6g87qmIxk9Jyavh6qELrITWegKDBfRBY459af9iHnPgQ+BK0ayiKeoPDqq7BxIzzyCNSpA1dcEeiIAmtNzBpmbZnFva3uBWDm1pkkJCcwtNNQep3Xi4sqXWRVPcanROS0LsCVildi1q06F2fsiVjW71/Pun3r+Hvf3/y9/2/Wxqxl2sZp1C1Tl1ZVW7Fyz0q6je/GZ9d8xqW1LmXXkV2s27eORuUbUaFYhVz995rVmsXDzuG7o4HqaV5XA3ZlcMw+59wx4JiI/AZciLYtmEyEhMD48dCxI9xwA/z+uw5ACxbOOVbtXUWdMnWICItg4t8TeX728/Rr3I/yxcrzXb/vCAu11VRNYJQsUpIWVVrQosrpVfKJyYkkJetSLmGhYXSr241qJasBMGXDFO6cfCcAZYqWoXH5xjQq3yj1Z4XGVCpeyS/x+rOxuBB6Q+8M7EQbi290zq1Oc0xDYAQ6s2lhYCFwvXNu1ZnfqIK9sTi93buhdWtd73j+fKhZM9AR+dfeY3sZv2I8nyz7hFV7V/F1n6/p27gvB44fINklUy6iXKBDNCZH9sftZ8nuJayJWcOamDWsjlnN6pjVpwbWpR2NnhO+6D6abc65RBG5D5iOdh8d45xbLSKDPe+Pcs6tFZFpwAp0VtPRmSUBc6bKlWHKFLj4YujWTbuVlitg98KEpASmbpzKJ8s+4cf1P5KYnEjrqq0Z2XMknaI6AZzWhdCY/KhsRFm61OlClzpdTu1zzvHP0X9YE7OGk0n+W63KbyUCf7ESQcZ+/x26doUmTXSCuuIFYCLIbYe28f7i9xm7bCx7ju2hYrGK9G/Sn9suui1fdNczJi855xKBiJQH7iR1YRoAnHO3+yJAc+4uvhi+/BKuuUZnK508Waezzs/6TOjD0t1LuaL+Fdze9Ha61+1u9f7G+IG3VUM/AL8Dv2CL1udZvXvDBx9o99LbboNx47RROb+YtWUWT/76JNNvnk5keCTvX/4+FYtVpHqp6ll/2BiTY94mggjn3BC/RmJ8YuBA2LsXnn4aKlSAN9/M2wPO9sXt40TiCaqWrEqp8FIkJiey68guIsMjz+hxYYzxD2+fF38UkZ5+jcT4zFNPwf33w9tv66CzvCg6NpqHpz1MzeE1efJXXZClWeVmLL5zsdX/G5PLvC0RPAj8W0ROogvTgC1Mk2eJwPDhWjIYMkQnpxs8ONBRqQ37N/Da3NcYt3wcyS6Zm5rcxJD2qYVNG/RlTO7zKhE457IaXWzymJAQbSM4ehTuvhuKFoVbbw1cPNsPb+eFOS8wdtlYwkLDGNR8EI+1e+zUvC3GmMDxehyBiFwJXOJ5Ods596N/QjK+UrgwfPONTj9x++0QHg7XXZe7MeyL28dLv73E+4vfB+D+VvfzZIcnba4fY/IQb7uPvgq0BD7z7HpQRDo45570W2TGJ8LDYeJEnbr6ppugSBG46qrcO/+xk8f4aMlH9G/Sn+c6PkeNUjZpoDF5jbcrlK0Amjrnkj2vQ4Glzrkmfo7vDDagLGeOHNEprJcuhR9+gO7d/XeuscvG8vOmn/n82s8BHTqfsrSgMSYwMhtQlp1e5pFpfi91ThGZXFeiBEydqmseX301zJzpv3MdOH6A3Ud3E5cQB2BJwJg8zttE8AqwVETGisj/gL+A//NfWMYfSpfWFc5Spq2eM8c337vt0Db6TujLp8s/BeDB1g8y85aZRIRF+OYExhi/8ioROOe+ANoA33m2ts65L/0ZmPGPcuXgl18gKkrbDX79NeffFZ8Yz9DZQ2kwsgE/rf/p1OpfoSGh1g3UmHwk00QgIg08P5sBldH1A3YAVTz7TD5UqRLMmgV160KvXjB9eva/Y87WOVw46kKGzRnG1Q2uZt1967iv1X2+D9YY43dZ9Rp6BF0i8s0M3nPAv3wekckVFSpoO0GXLnDllfDtt5oUsnIo/hBPzHiCj5Z8RO3StZnRfwaX1b7M/wEbY/wmqxXKBnl+7eGci0/7noiE+y0qkyvKldOqoW7ddNbSr7/OvGvpd2u/474p97Hn2B4eb/c4QzsNtXYAYwoAbxuL53m5z+QzZcpom0Hz5tC3L0yYkPFxicmJPD/7eSoVr8SiOxfxepfXLQkYU0BkWiIQkUpAVaCoiFxE6oL0JQG7CxQQpUppO8Hll+v6x3FxqdNRTN0wlfY12lOySEmm3jSVSsUrUSjEbwvbGWMCIKv/0d2AAejC82+l2X8E+LefYjIBULKkjjO45hoYMAD274erbttMry968czFzzDs0mGnFtk2xhQsWbUR/A/4n4hc65z7NpdiMgFSvLiubHbtbdE8+mg1YmJq89PtU7i0VqdAh2aM8SNvZx/9VkQuBxoD4Wn2v+CvwEzuS0xO5PUFr/Bzwxfpdf80Xn31X+zb140uowIdmTHGn7yddG4U2iZwKTAa6AMs9GNcJpftObqHG769gVlbZ3HjBTcyokcz3ioFL70EBw7AZ5/pBHbGmILH215D7ZxztwAHnXPDgLaALSRbQPyx/Q+afdiM+dHzGXPlGD675jNKF43kxRd1lbPvvtOG5NjYQEdqjPEHbxNByhiCOBGpgq5SVss/IZnc4pzj7flv02lsJ4oWKsr8O+Zz20W3nXbMQw/pAje//QYdOkB0dGBiNcb4j7eJYLKIRAJvAEuArcAXforJ5ILYE7H0+6Yfj/z8CFfUv4LFgxbTtFLTDI/t3x9++gm2boXWrWHZstyM1Bjjb1kmAhEJAX51zh3y9ByqCTRwzj3n9+iM3/T+sjffr/2e1y97ne/6fUdkeGSmx3ftCnPnQmgoXHyxdjU1xhQM3i5MM9851zYX4smSLUzjG3O3zyXJJXFJzUuyPjiNXbt0TqIVK2DkSLjrLj8FaIzxKV8sTPOziFwrNrdwvjZy4Uien/U8AO1rtM92EgCoUkXbC7p1g8GDYcgQSE72daTGmNzk7VwBjwDFgEQRiUenmnDOuZJ+i8z4lHOOZf8sY2/cXpKSkwgNCc3xdxUvrstdPvAAvP46rF+vDcolSvgwYGNMrvF2QJn9F8+nDscfJiYuhrpl6vLe5e8RIiHnlARSFCqkVUP168Mjj0C7dpocatf2QdDGmFzlVdWQiJyxjlVG+0zesvXQVtqNaUevz3uRmJxIWGiYT5JAChF48EGdsG7nTmjZ0r9rIRtj/COrFcrCRaQMUE5ESotIGc8WBVTJlQhNjqzcs5J2H7dj95HdvH/5+36dMfSyy2DhQl35rGtXGDECvOiDYIzJI7IqEdyFLlTfwPMzZfsBGJnVl4tIdxFZJyIbReTJTI5rKSJJItLH+9DN2czdPpdLxl5CiITw+22/c2mtS/1+zrp1Yf586NkT7r8fBg2Ckyf9flpjjA9kmgicc+8452oBjznnajvnanm2C51zIzL7rIiEosmiB9AIuEFEGp3luNeAHKyca9L7af1PdPm0CxWKVWDu7XNpXKFxrp27ZEmYOBGefhpGj4ZLLoEdO3Lt9MaYHPKqjcA5966ItBORG0XklpQti4+1AjY65zY7504CXwK9MzjufuBbYG+2IjdnGL9iPL2/7E2j8o3447Y/qBlZM9djCAnRieq++QbWrIGLLoKff871MIwx2eBtY/GnwH+ADkBLz5bhwIQ0qgJpnwejPfvSfm9V4Gog04mORWSQiCwWkcUxMTHehBx0hi8YTv/v+9MxqiMzb51J+WLlAxrPtdfC4sU67qB7dxg2zMYbGJNXeduC2AJo5LwZhpwqo8Fn6T8/HBjinEvKbKyac+5D4EPQkcXZiCFobD+8nWsaXsNn13xGeKG8MV/0eefBggVw990wdKi2IYwfD+XKBToyY0xa3iaCVUAlYHc2vjua06eqrgbsSndMC+BLTxIoB/QUkUTn3MRsnCeo7YvbR7mIcvyn639wzvm0e6gvRETA2LE6c+n990OzZvD119CmTaAjM8ak8HaKiXLAGhGZLiKTUrYsPrMIqCcitUSkMHA9cNpnPA3PUc65KOAb4B5LAt57Y+4bNHm/CdGx0T4bKOYPInDnnTBvng5E69AB/u//ICkp0JEZY8D7EsHQ7H6xcy5RRO5DewOFAmOcc6tFZLDnfVsA8Rz1rNeTPcf2UKVE/hjS0awZLF2qcxQ9/TT88gt8+ilUrZr1Z40x/uPV7KMAIlITqOec+0VEIoBQ59wRv0aXAZt9FH7Z/Auda3Umv84B6Bz8739w331QpAiMGQO9M+pPZozR/zDr18OePdonO4fOefZREbkTrbr5wLOrKjAxxxGZHBs6eyhdPu3Ct2u/DXQoOSYCAwbAkiUQFQVXXQX33gvHjwc4MGPymscegxo1oEEDv8757m0bwb1AeyAWwDm3Aajgr6BMxl6c8yLD5gzjtqa3cU3DawIdzjk77zxtN3j0UXjvPWjeXLucGhN0jh3T1Z4eeUSH56c4fhzatoUPPoAff/Tb6b1tIzjhnDuZUhUhIoU4syuo8aMRC0fw3OznuPXCWxl95WhCxNscnrcVKQL/+Y/OUXT77dqb6JlntA0hLCzQ0RnjZz/9BG+8oU9ECQn6H6JDBzh6VOd7H5nlTD4+4e3dZI6I/BsoKiJdgAnAZP+FZdL6YuUXPDD1AXrX712gkkBaXbvCypVwww06+KxNG1i9OtBRGeNDmzfrk32fPrB2re47dgxiY+Ghh3QI/sGD2ouiePFcDc3bpSpDgDuAruhAsenA6GwOMPOJYGssnrZxGld8cQXtq7dn6k1TKRpWNNAh+d1332nPothYna7i4Yd1rWRj8p3du+GFF2DGDNi0SfdVr66TcXXtmquhZNZY7G0iKAbEO+eSPK9DgSLOuTifRuqFYEoE83fM57JPL+O8sucx+9bZlAovFeiQcs3evdo2NnGiLnozejQ0bBjoqIzJRGIiLFqkT/Z16sDNN8Phw9oj4uKLoUsX3erX1x4TucwXaxb/CqR9FC0K/HKugZmzS3bJDJw8kColqjDtpmlBlQQAKlTQksG4cfD339C0qT5Y2dTWJs/55BOdXKtcOX1qGTZM6/wBSpWCfftg0iQdWt+gQUCSQFa8LREsc841zWpfbgimEsHmg5sRhFqlawU6lIDau1erUL/4Aho31tKBTVFhAuLIEZg9W59OHn9c9112mfbz79oVunWDzp2hTJmAhpkRX5QIjolIszRf2BywXt9+cPD4Qd6c9ybJLpnapWsHfRIALR18/jlMnqwl7XbtdInMo0cDHZkJCuvXwyuvQKdOeoO/8kp48UWI89SMf/cdbNumTyh9++bJJJAVbxPBQ8AEEfldRH4HvgLu81tUQWz8ivE89etTrN5rXWbS69VL1zi49154911tM/j2W1sW0/jYnj0698m+ffp62jT497/1KeTRR+HXXyEmRmdUBF2RKQ9W92RHdqaYCAPqo72G/nbOJfgzsLMp6FVDzjnW7ltLo/JnLOZm0pg3T6e3XrFCS+Pvvgv16gU6KpMvJSTA3LkwfbpuS5fq/s8/1/7MBw/CiRO6KHc+ds69hjxf0g6IIs0gNOfcOF8EmB0FNRGMXjKattXa5urSkvldYqKOt3n2Wf1/OmQIPPUUFC34PWzNudqyBeLjtVi5dSvUqqVT47Zrp08W3btrD4WQgjNmxxdzDeVkhTLjpYl/T2TQ5EG8Of/NQIeSrxQqpG0F69bpGJ0XX9TG5MmTrbrIpBMXp1M4PPigdt+sXRuef17fi4rS9/bvhzlztBqoWbMClQSy4m2vobVkf4UyvyhoJYIlu5dw8ScX07h8Y2YPmE1EWESgQ8q3Zs/W9oM1a7S79ltvwfnnBzoqExDO6WCuKp4p2lu21ImswsPh0kv1qb9HD53wKkhkViLw5wplJgs7Y3dyxRdXULZoWSbdMMmSwDnq1AmWLYP339elMS+8UAelDRsG5QO7hLPJDUeOwKxZ+nQ/bZo29u7fD4ULw3PP6c9LLrG6wwx4mwhSVihbCJxI2emcu9IvUQWB+MR4rvrqKmJPxDL39rlUKp6/G6LyirAweOABuOkmTQDvvadtfs8+q+N5ChcOdITGZ5zTLSREu27ec482/BYvrn37u3dPXQbviisCG2se523VUMeM9jvn5vg8oiwUlKqhgZMG8vHSj5l43UR6N7BVWfxl7Vqd2XfaNB31//LL2tU7iKp/C5bYWJ2ULeWp/+OPdSDXkiXw1Vd682/f3jJ+Bs65sdhzw/8bKOHZ1gYiCRQUo5eM5uOlH/P0xU9bEvCzhg31njFlitYIXH89tGql9xKTj+zZo3X7ZcvqdA5ff61/kSVL6vvNmsFrr+kxlgSyzdteQ/2AhUBfoB/wp4j08WdgBdW2Q9u4d8q9dKndhWGdhgU6nKDRo4e2H4wdq2OBunRJfZA0ecyRIzrb4KBBOsEU6Dw+zumArtmztf7/229trhEf8bZqaDnQxTm31/O6PPCLc+5CP8d3hoJQNfT5ys/pWqcr5SLKBTqUoBQfrw3KL7+sbYnXXaeNyw0aBDqyIDd6tE4o9fvvWtdfogTcdhu8806gIysQfDHXUEhKEvDYn43PGiApOYl1+9YBcOMFN1oSCKDwcF3jYNMmXQntxx91/MHNN+u0MiYXHDumAz6efDJ10Mcff+gMgw8/rL1/9u2zJJBLvC0RvAE0Ab7w7LoOWOmce8KPsWUov5YIXvn9FV747QVW3b2KOmXqBDock0ZMjK4WOHKklhZuvll7GdWtG+jICpjoaPjmG22wmTNH5xQvVkxn8qxWTUsBtj6p3/iisfhx4AM0GVwIfBiIJJCf3X7R7bzS+RVLAnlQ+fLw+uu6kuBDD2k7ZIMGWiuxYUOgo8vHjh/Xnj3bt+vrP//Up/3oaO3L+8svWjdXrZq+b0kgYDItEYhIXaCic25uuv2XADudc5v8HN8Z8luJYH/cfiLDIwkNsbUW84t//tEOKKNG6UNrnz46h1HTpoGOLB/Ytk2f+H/6CWbO1GTwyitaBRQXp71/atnU6oFwLiWC4cCRDPbHed4zmUhMTuTKL6/k6q+uDnQoJhsqVYK339a5yJ54QrufXnQRXH65TlJp0khIgB079Pe4OJ2y4Z57dADHwIGp8/uATttsSSBPyioRRDnnVqTf6ZxbjM5EajLx4pwXmbdjHjecf0OgQzE5ULGiPsxu3649jBYuhA4ddJaCyZMhOTnQEQbIP/9oP9y+fbVb5/XX6/6ICBg/Xuv8N26E//5XB3jZlA55XlaJIDyT9+xvNxO/b/udl35/iVsvvJUbLrBEkJ9FRuqElNu2aSeWrVt1kapGjeCDD1IXqiqw0lYfP/AAVK6sDSjz5kG/fjr/d4q+fQO2OLvJuawSwSIRuTP9ThG5A/jLPyHlfwePH+Sm726idunavNvj3UCHY3wkIkLvg5s2aXf3EiVg8GCoUUPnNNuzJ9AR+tChQzplw6236gyeMTG6v2NHeOklXbwlOho++kizosnXsmosrgh8D5wk9cbfAigMXO2c+8fvEaaT1xuLnXP0ndCXSesmMe+OebSoYss2FFTO6dinN9/UqqKwMK0luf9+aJFf/9qXLtU6/XnzdMK2MmV0WPaLL1r9fj6X48Zi59we51w7YBiw1bMNc861DUQSyA9GLxnNt2u/5eV/vWxJoIAT0faCH37QavE779R1zFu21JkPxo/XldPyrJRBXXffrYEDlC6tUzw8+aS2jO/dqxdiSaBA83qpyhx9uUh34B0gFBjtnHs13fs3ASkVjEeBu51zyzP7zrxcIlgbs5bmHzanfY32TL95OiFig6+DTWwsjBsHI0boymnly2uCGDQIatYMdHRoMWbkSO3eOWuWZqpixXS1rscfD3R0xo98McVETk4aCowEegCNgBtEJP2K7FuAjs65JsCLwIf+iic3vLfoPYoVLsa4q8ZZEghSJUvCffdp78kZM3QJ3Fdf1Qfqnj11LrWEhFwM6ORJveGPHauvRbSFe9MmLQn8/LMO6rIkENT8ViIQkbbAUOdcN8/rpwCcc6+c5fjSwCrnXNXMvjcvlwiSkpPYfHAz9crWC3QoJg/Ztg3GjNGp83fuTO10M3Cgn2pc9uxJHdT1889a1VO2rO4PDdWG4MhIP5zY5GUBKREAVYEdaV5He/adzR3A1IzeEJFBIrJYRBbHpPReyEPWxqxl95HdhIaEWhIwZ6hZU1dL27oVJk2C5s21lFCnji6kNX78OXZBTU7WQQ4pDRLvvAO33w4LFmjr9cSJevJQz+h2SwImHX+WCPoC3ZxzAz2v+wOtnHP3Z3DspcB7QAfn3P7MvjevlQicc7T5uA1xCXGsGLwCsf7TxgvR0VpKGDsWtmzRrqj9+sGAAbrAVpb/jA4dgunT9cl/6lTt3jl9ui6ysG0bHDyoizbbv0fj4YvF63MiGqie5nU1YFf6g0SkCTAa6JFVEsiLRIRxV41j77G9lgSM16pV07EHzzyjsy+PHQtffqnVR3XqQP/+cOONUC+lgOmcTo1atCisWqUTH6V07+zeXRsgWrXSY2vWzCMt0ya/8GeJoBCwHugM7AQWATc651anOaYGMBO4xTk3z5vvzUslgoPHDxIZHmkJwPjE0aPai3PsWF2Eq6g7xl31ZjKg/BQabZtCoauvhHff1QTw0ku6zFrr1qlVPsZkIrMSgb+7j/ZEJ6cLBcY4514WkcEAzrlRIjIauBbY5vlI4tkCTZFXEsGJxBM0/7A5l0Zdyrs9bfSw8a24a/tT+IevKZR0kqMU4xe6sPz8m6j6YB+uvlrbfo3JjkBVDeGcmwJMSbdvVJrfBwID/RmDvwybM4zVMat5o8sbgQ7F5GcnTsBvv2kPn5UrdY5+ESIa1oSa98Lll7OzfAeWfluEzz+HjXfqtBb/+pdO63P11TrvmzHnwq8lAn/ICyWCRTsX0ebjNtx64a2M6T0moLGYfGrOHHjrLfj1Vx3hW6QIXHqpzu9TsmSGH3EOli3ThXMmTNChAKGh+rE+fXTKn8qVc/cyTP4RqO6jBdKJxBMM+GEAlYtX5q1ubwU6HJMfJCRopf8TT+hcFKDr8S5frpO6/fgjHDigvX/OkgRAOwBddJFOjb1hAyxZol+5dauWEqpUgbZtdVGddety5cpMAWElgmx66beXeHbWs/x040/0rNczYHGYPO7YMe0GNGWKVvfExuqsdJ98AjfdpH3/RXzSvdM5WL1ahwtMnAh/eaaHbNAAeveGXr107qNCfq0INnldwBqL/SGQiWDjgY2c/975XFn/Sr7u+3VAYjB5VEICzJ8PiYlagZ8ymrdiRZ29s2dP6NxZBwz42fbtOnDt+++1+SExUeeS695dk0L37trr1AQXSwQ+4Jyj+2fdWRC9gLX3rqVKiSq5HoPJY6KjdXH2adN0YqHYWLj4Yr37go4Ui4oK6KCuw4d1lomfftLCSUwMhIRoFVK3bro1b249UIOBJQIf+H7t91zz9TW82+Nd7mt1X66f3+QBJ09qvX7Llvq6e3cdzVutmv7eo4fOGZFJPX8gJSfDokWaFKZO1Sok57R00KWLJoWuXaFqprN9mfzKEoEPHE84zsdLP+buFncTGmKPT0Fjyxa92U+bltrDZ88enV/6r7+0t0/jxvlyKoeYGG2+mD5dt388K4w0aKC1W507Q6dOVo1UUFgiOEeJyYkUCrGWtqCQMvtbRAR8+inccou+jorSJ/7u3fWxOTyz5bzzH+d0GMPPP2u+++03/aMQgWbNNDF06gQdOuTZAo/JgiWCc7Bw50Ju/PZGvr/uey6oeEGundfkEudgzZrUp/7ffoNRo3T2tx07dM6H7t3hvPPy5VN/Tp08qROa/vqrbgsWaHt4SIh2Ye3YUbeLL9aGaJP3BWxkcUHgnCMqMoqakTaJV4GRlKSto7GxWq0THa37GzWCe+/VCd0AqlfX9XuDUOHC+vTfoYMuXhYXp52i5szRbeRIHQ8non+E7dunbrVqBVXOLBCsRGAKvoQEfaSdPl3rPmrUgG++0fceflgTQPfueuM3XomPhz//1ALU3LmaJGJj9b3KlTUhtG2r4xeaNStwNWn5kpUIcmBn7E6GLxjOcx2fo0QR//f9Nn7y2GO6NOPRo1oKaN1a71Ap3n47cLHlY+HhqdVDoIWsVas0KaRsKbk2LEwLWW3a6B9/q1Y61XaIzWuQZ1iJ4CxunXgrX676kjX3rKFOmTp+P585RzExWpk9Y4behZYt07vV8OE630LXrjopj63OlWv++UdLDQsW6LZokXa6AihVClq00K1lS/1Zo4ZVKfmTlQiyaeHOhYxbPo4h7YdYEsjrZszQCXeWLdPXkZHaxeXAAZ1856GHAhhccKtUSae46N1bXycmarv8okW6LV6s7QwJCfp+2bLaEN2sWerPunWt5JAbrESQjnOO9mPas/ngZjbcv8GqhfKKhAS9e6R0Y3nySa3X//NP/b1LFx3MZcNk85X4eFixQv9qly7VifRWrUpNDsWLQ5Mmuupmynb++brfZI+VCLLhi1VfMD96Ph9f+bElgbzg4EHtyz9njs7fI6IVzidP6vutW8OsWQEN0eRceLi2GaSssgn6V7t6dWpiWL4cPvsM3n9f3xfRNoYmTTQpnH++9lyqV0/bI0z2WYkgjWMnj9FgZAMqFKvAojsXESJWJs01zmld/syZemOvXVvnU05O1i4oTZvqUNdLL7XluYKQc7BtmyaFFSv056pVOh13crIeExamo6IbN4aGDXVr1EgTROHCgY0/L7ASgZfemPcG0bHRfH7N55YEctNjj8Hnn8Pu3fq6evXUVdtDQrRvoglqIjq4Oyoqtc0BtGrp7781KaxapaOjFyzQGcBThIZqCaJhQ6hf//TNVndTlgg8dhzewetzX6df435cXPPiQIdT8KQ88f/2my7SsnatlvtF9H9qp066de6spQHrPmK8EB6uhcWUMYAp4uL0n9uaNfpPbc0aTRhTpqS2P4DOo3TeefrcUa+eNk6n/F6qVG5eSWBZIvCYtG4SDsfrl70e6FAKhpTyekgIjB0LQ4bA3r26r3JlvekfParz87/2WqCiNAVURIT2PLrootP3JyZqFdO6danb+vVaG/npp6cfW66cPpPUqaNbyu+1a2uHtILUm8naCNLYGbuTqiVtDt4cOXFCu3788Yduc+fqXMdt2ugUl+PGwSWX6Favnj3xmzzn+HFdB3rDBt02boTNm3Xf9u2pzzagbQ41auh0GlFRqT9r1tStcuW8lyisjSATyS6ZjQc2cl7Z8ywJZMe+ffo/o0IFreJp106TAWhlbJ8+qX38LrtMN2PysKJFU3shpZeQoCWJzZt127JF14reskWXB42JOf34sDBdpiIlMVSvrlu1aqm/lyqVd56Hgj4RfLnqS275/hbm3TGPVlVbZf2BYOScVrTOm5e6rVsH//43vPyydtW47z6dirJdO52r35gCJCxM2w/q1s34/WPHNDFs364JI2Xbvl2HvezadXqJAvQ5qWrV07dq1fRnlSq6VayYO11ig75qKOZYDGOWjuHx9o9bT6EU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\n",
"text/plain": [
"
"
]
}
],
"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.8.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}