{
"cells": [
{
"cell_type": "markdown",
"id": "3bbe8002-bdf3-490c-bde0-80dd3713a3d0",
"metadata": {},
"source": [
"## A simple `A <-> B` reaction between 2 species\n",
"with 1st-order kinetics in both directions, taken to equilibrium\n",
"\n",
"See also the experiment _\"1D/reactions/reaction_1\"_ ; this is the \"single-compartment\" version of it.\n",
"\n",
"LAST REVISED: Feb. 5, 2023"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "13e55c1d-609f-4bf0-a004-6c45bcfcbc99",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Added 'D:\\Docs\\- MY CODE\\BioSimulations\\life123-Win7' to sys.path\n"
]
}
],
"source": [
"# Extend the sys.path variable, to contain the project's root directory\n",
"import set_path\n",
"set_path.add_ancestor_dir_to_syspath(2) # The number of levels to go up \n",
" # to reach the project's home, from the folder containing this notebook"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "bdad128a-9214-46f5-aeb9-a7b77c81aa3e",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"from experiments.get_notebook_info import get_notebook_basename\n",
"\n",
"from src.modules.reactions.reaction_data import ReactionData as chem\n",
"from src.modules.reactions.reaction_dynamics import ReactionDynamics\n",
"\n",
"import numpy as np\n",
"import plotly.express as px\n",
"from src.modules.visualization.graphic_log import GraphicLog"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "83c3cc5f-de21-4f66-9988-2806fbf0666d",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-> Output will be LOGGED into the file 'react_1.log.htm'\n"
]
}
],
"source": [
"# Initialize the HTML logging (for the graphics)\n",
"log_file = get_notebook_basename() + \".log.htm\" # Use the notebook base filename for the log file\n",
"\n",
"# Set up the use of some specified graphic (Vue) components\n",
"GraphicLog.config(filename=log_file,\n",
" components=[\"vue_cytoscape_1\"],\n",
" extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")"
]
},
{
"cell_type": "markdown",
"id": "9329208b-070f-4902-8f37-0f11ddf75ed6",
"metadata": {},
"source": [
"# Initialize the System"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "72b4245c-de4e-480d-a501-3495b7ed8bc4",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of reactions: 1\n"
]
}
],
"source": [
"# Initialize the reaction\n",
"chem_data = chem(names=[\"A\", \"B\"])\n",
"\n",
"# Reaction A <-> B , with 1st-order kinetics in both directions\n",
"chem_data.add_reaction(reactants=[\"A\"], products=[\"B\"], forward_rate=3., reverse_rate=2.)\n",
"\n",
"print(\"Number of reactions: \", chem_data.number_of_reactions())"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "00ea560d-9a49-4041-b119-6de11bfcc7af",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of reactions: 1 (at temp. 25 C)\n",
"0: A <-> B (kF = 3 / kR = 2 / Delta_G = -1,005.13 / K = 1.5) | 1st order in all reactants & products\n"
]
}
],
"source": [
"chem_data.describe_reactions()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "cb582868-431c-4022-aa0e-a2f554f80d6c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[GRAPHIC ELEMENT SENT TO LOG FILE `react_1.log.htm`]\n"
]
}
],
"source": [
"# Send a plot of the network of reactions to the HTML log file\n",
"graph_data = chem_data.prepare_graph_network()\n",
"GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")"
]
},
{
"cell_type": "markdown",
"id": "98a9fbe5-2090-4d38-9c5f-94fbf7c3eae2",
"metadata": {},
"source": [
"# Start the simulation"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "c2f4a554-807b-49f9-8ca2-8d929fe6eeef",
"metadata": {},
"outputs": [],
"source": [
"dynamics = ReactionDynamics(reaction_data=chem_data)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "ae304704-c8d9-4cef-9e0b-2587bb3909ef",
"metadata": {},
"outputs": [],
"source": [
"# Initial concentrations of all the chemicals, in index order\n",
"dynamics.set_conc([10., 50.], snapshot=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "a605dacf-2c67-403e-9aa9-5be25fc9f481",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0:\n",
"2 species:\n",
" Species 0 (A). Conc: 10.0\n",
" Species 1 (B). Conc: 50.0\n"
]
}
],
"source": [
"dynamics.describe_state()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "0ff2c242-a15b-456d-ad56-0ba1041c0b4c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 10.0 | \n",
" 50.0 | \n",
" Initial state | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.0 10.0 50.0 Initial state"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_history()"
]
},
{
"cell_type": "markdown",
"id": "fc516ca2-e62d-4784-b826-5372ff7f4c75",
"metadata": {
"tags": []
},
"source": [
"## Start the reaction"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "50c7e478-ad0e-4aeb-9cea-dfed47cded21",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 total step(s) taken\n"
]
}
],
"source": [
"# First step of reaction\n",
"dynamics.single_compartment_react(time_step=0.1, n_steps=1,\n",
" snapshots={\"initial_caption\": \"first reaction step\"})"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c9115720-e66e-44f3-bb0a-fabec5b96673",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 10.0 | \n",
" 50.0 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.1 | \n",
" 17.0 | \n",
" 43.0 | \n",
" first reaction step | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.0 10.0 50.0 Initial state\n",
"1 0.1 17.0 43.0 first reaction step"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_history()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "2502cd11-0df9-4303-8895-98401a1df7b8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"11 total step(s) taken\n"
]
}
],
"source": [
"# Numerous more steps\n",
"dynamics.single_compartment_react(time_step=0.1, n_steps=10,\n",
" snapshots={\"initial_caption\": \"2nd reaction step\",\n",
" \"final_caption\": \"last reaction step\"})"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "80fbaee3-bd6f-4197-9270-23374d46a4a7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 10.000000 | \n",
" 50.000000 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.1 | \n",
" 17.000000 | \n",
" 43.000000 | \n",
" first reaction step | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.2 | \n",
" 20.500000 | \n",
" 39.500000 | \n",
" 2nd reaction step | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.3 | \n",
" 22.250000 | \n",
" 37.750000 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.4 | \n",
" 23.125000 | \n",
" 36.875000 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.5 | \n",
" 23.562500 | \n",
" 36.437500 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.6 | \n",
" 23.781250 | \n",
" 36.218750 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.7 | \n",
" 23.890625 | \n",
" 36.109375 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.8 | \n",
" 23.945312 | \n",
" 36.054688 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.9 | \n",
" 23.972656 | \n",
" 36.027344 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 1.0 | \n",
" 23.986328 | \n",
" 36.013672 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 1.1 | \n",
" 23.993164 | \n",
" 36.006836 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 1.2 | \n",
" 23.996582 | \n",
" 36.003418 | \n",
" last reaction step | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.0 10.000000 50.000000 Initial state\n",
"1 0.1 17.000000 43.000000 first reaction step\n",
"2 0.2 20.500000 39.500000 2nd reaction step\n",
"3 0.3 22.250000 37.750000 \n",
"4 0.4 23.125000 36.875000 \n",
"5 0.5 23.562500 36.437500 \n",
"6 0.6 23.781250 36.218750 \n",
"7 0.7 23.890625 36.109375 \n",
"8 0.8 23.945312 36.054688 \n",
"9 0.9 23.972656 36.027344 \n",
"10 1.0 23.986328 36.013672 \n",
"11 1.1 23.993164 36.006836 \n",
"12 1.2 23.996582 36.003418 last reaction step"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_history()"
]
},
{
"cell_type": "markdown",
"id": "c034956a-683c-4c3d-8134-ecac9e19a45c",
"metadata": {},
"source": [
"### Check the final equilibrium"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "b139f5e4-625f-4a5e-8f57-8f00244dced4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([23.99658203, 36.00341797])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dynamics.get_system_conc()"
]
},
{
"cell_type": "markdown",
"id": "d25eedf3-89f8-4f8c-a49a-d2689103528b",
"metadata": {},
"source": [
"NOTE: Consistent with the 3/2 ratio of forward/reverse rates (and the 1st order reactions),\n",
" the systems settles in the following equilibrium:\n",
"\n",
"[A] = 23.99316406\n",
" \n",
"[B] = 36.00683594\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "765f6f39-4b2e-4a86-b6a9-ace9d1941663",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"A <-> B\n",
"Final concentrations: [B] = 36 ; [A] = 24\n",
"1. Ratio of reactant/product concentrations, adjusted for reaction orders: 1.50036\n",
" Formula used: [B] / [A]\n",
"2. Ratio of forward/reverse reaction rates: 1.5\n",
"Discrepancy between the two values: 0.02374 %\n",
"Reaction IS in equilibrium (within 1% tolerance)\n",
"\n"
]
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Verify that the reaction has reached equilibrium\n",
"dynamics.is_in_equilibrium()"
]
},
{
"cell_type": "markdown",
"id": "905adfdd-6d70-4dfc-bb34-c547c4d604b9",
"metadata": {},
"source": [
"#### Note that, because of the high initial concentration of B relative to A, the overall reaction has proceeded **in reverse**"
]
},
{
"cell_type": "markdown",
"id": "6ac3dd4e-9dd0-4d3a-aa83-76102bd79524",
"metadata": {
"tags": []
},
"source": [
"## Plots of changes of concentration with time"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "1020f9bc-eb0c-4bc6-9ebd-d5dbc23a8bd1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
" \n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
concentration=%{y}",
"legendgroup": "A",
"line": {
"color": "navy",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.1,
0.2,
0.30000000000000004,
0.4,
0.5,
0.6,
0.7,
0.7999999999999999,
0.8999999999999999,
0.9999999999999999,
1.0999999999999999,
1.2
],
"xaxis": "x",
"y": [
10,
17,
20.5,
22.25,
23.125,
23.5625,
23.78125,
23.890625,
23.9453125,
23.97265625,
23.986328125,
23.9931640625,
23.99658203125
],
"yaxis": "y"
},
{
"hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}",
"legendgroup": "B",
"line": {
"color": "darkorange",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "B",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.1,
0.2,
0.30000000000000004,
0.4,
0.5,
0.6,
0.7,
0.7999999999999999,
0.8999999999999999,
0.9999999999999999,
1.0999999999999999,
1.2
],
"xaxis": "x",
"y": [
50,
43,
39.5,
37.75,
36.875,
36.4375,
36.21875,
36.109375,
36.0546875,
36.02734375,
36.013671875,
36.0068359375,
36.00341796875
],
"yaxis": "y"
}
],
"layout": {
"autosize": true,
"legend": {
"title": {
"text": "Chemical"
},
"tracegroupgap": 0
},
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"fillpattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"autotypenumbers": "strict",
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"text": "Reaction A <-> B . Changes in concentrations with time"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
0,
1.2
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
7.777777777777778,
52.22222222222222
],
"title": {
"text": "concentration"
},
"type": "linear"
}
}
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA20AAAFoCAYAAADEoBNQAAAgAElEQVR4Xu29CZAl1Xmge2rp7uoVeoFmb8SqZpEEPAtZBgvGsoQsg9pEjITfPM0wwChgxkw8ofcCIV4wM4SRRMyAIwaPYTBimEeMDThGapBtYZ4ssGBkg220tBBCIMQOjehu6Ka3Wl/+eevczsrOe28uJ/P8eeq7ER3VVZX5n/98f1ZVfvcsOTQTvQwvCEAAAhCAAAQgAAEIQAACEFBJYAhpU1kXkoIABCAAAQhAAAIQgAAEIBATQNq4ECAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pQQACEIAABCAAAQhAAAIQQNq4BiAAAQhAAAIQgAAEIAABCCgmgLQpLg6pzW8Cv/Hpq8whB68y/+MP/5/5DYLeQyAAAk/97AXz6c/9e3PxZ84z//cVFwXQI7oAAQhAAAJNEmiltP3HW+8xd937YCanpx65q0l+Pds6+ZyLzSf+yZnmP113xZxjbO5X/5vfNf/8n37ca67/1/W3mm995/E4By3cXAL5f//sr8yN/+VPM0Nm1cZl24NiyfWRfqVzQtr2Efpnv/f75gc/fs7cd/u/NyefcPQgvHw/g4D93VMXQ/v7JP27xMrKB045Lrg3IGyf/+A//BvzsY/8SkxdrtU33txq/vq+m+dUwYW02d9pyfZsI/yM8GMPAQhAIGwCrZa29B8uucmVP5ZZf9CaLmMbpC0pDq4l0t5AFK1F1k1Q2drZG5x03x76m783n/93/yVTqsu2lfc827+0oNkbuqRAI21IW97rKs9xSFseSsWOQdqK8eJoCEAAAhAoTyAoabM3vr5HUaQcvaStfKncnpl8x1YExtW74MnRu7Lv6CdjFJW+JKVe0tbv3XC3lOdG65dP8t1yOx0SaauzGvMvti9pm2+kfY20zTfO9BcCEIDAfCMwb6QtKQJS5CxJyZqy1ktm7GhN8oKxx2bFkbVJMl2m1/SW5EiLjZkWluS5/z2a+ifTxXodO+hCTt5YWDZlJUvaciFr6Zyryls/SRIhkld6CtMgblW+X7RNK23/IppGK2JtX1Wu3SIx03W1Pzdy3WWty7Ej3TbPrGOypjbnEfOsqXdF+9Krdlk5pXPP0zf7Rs371h8zZ1purzeR0r+TJL/0qLAdsba5p2PZ30Ny3o+efr473Tkdq9eUctueZfmlf/t/xOuu7EumOqZzSH7P/j+rL/I9W9teb2IN6p/EKMI1a0p0nlkEWfllXXPp399pEe7FSn63ysuuaZP/J6f451nn1mu6tz03K1/br7UHrcxsL123XqzyXP9VfjdyLgQgAAEIDCYQlLTZG5heN1zJtRZZN9DyBy4tLvK19E2y/UOdvtmUY20bvW5SsqQtSy76fS15M5S8sc67Li29tqIXt8GXTz2ylm63rBD2krY8I155+l7kmDKjwPZGKXn99VoXk/faLRLT3oAmryvLLvkzlrVmKau/WW8OZLWRxbWXtMl06Dx8etUqq335eZA3RWTEM6sfvWpp36xJilVSqpJrWLN+/whbES+7Dlbi2Td7bP7p30fJN4+SN9xZo2r9RtrsdZFuT9oVRh+P1msl88/i1mtNW1K8kmt8s3639vqaxBjENev3ct43pLJGx2w9k1zTfcxiOmikTfqS/Pnpt04tfd32O7aXtPVqL08eeX+2i/wu5FgIQAACEChHIChp6ydYaRmzf4wGvQtr/yjbG9e8i8mLSFuvaXDpP8K9/mD3ujHsdUlk3WgUHQVKvutbZYSuyGVbdOOUfhuRSLtN5S1tlRHjXtdFr5vCNMv0tSvfzxtz0Ihw8qazVz42huXcq23Jc9Buev1G2tK7a+blk+dmuZeIZJ3b62c+3e880xR7tWuvI/uGUa+f/azfU4OkrchOpek85NoqIm29csnqT16u/a7DM95/Yt8NbNL52DzkDYFDD17dFWlpQ172misjbVmjanmn05eRtl7rZ9N5ZF0zeX+2i/we51gIQAACEChHoNXSlu5yrx21snbyknPlD2X6D1evaT72xjPPjZ6NnTUtKn1+PwlMH+tK2rJunnuNHva6rMpIW5ZEZb2z36vNstKWJeZN7+LZhLQNunaLSFuvG/Cs67XXDWf6xt6OzpRZc1qHtPWTDHsN9hLNIhzSMfJI5aB27TXdlLT1egOk3yhU8uc4fY30Y5A+Nq+02XqWWZ+bfhNPYsnLTnVNzqAYNKI5aKTNt7T1+/uUl32WtJe7BeEsCEAAAhDIS6DV0mYlLWvnveRNl0hbr5e9gUxOM0pOB0u/k5rnXfIi0tZvlCw9jc+FtGWtxUuyKXpDXXbqYt4LVI4r28agaZBFRxeL5Jw+tsyOlXlHxfJeu0WkLe+NZ9ZazHTfkze5WWt+Bo12J6+B9BTnrNGhPFIkMfMc10sYsqZI5pWLPBvMZK2LTXK1N/5NSJvNJfmmWFa7RUba+jFIz5jIyzX9u8LyyrNezP5snHbK8fGomrSZXI8n16hca7K2NDlC38aRtrzSVvRnu8rvR86FAAQgAIHBBIKQNummvYlIj9ykp7P0QtLrhiP9R7ntI239bqzyri/KYlhWrPpdosmYeTarSMcaJG1V+jv4R2v/I4pKYl5py3vt1iFt9gYw741xmooVgkFTVefjSJsViH7XWt3SVuSNoiLSVsdIWxYnu1Yvz+8Pyf/7P3423gxG5My+QSC5yhRJ2czjwYefmLN5UcjSVvVnu8zvSM6BAAQgAIHeBIKRNumi/QOaHC3KOzLW6yYifX6/6YzJtTlys5B105V1E9TkmrasdX/28hgkOXl+kFzIW1VZy9ufohKVp//9jrHXUj/Bkb7bzRrySlvea7eItPX6uSmy7iXNItm3dI0G3VTXIW393oCxP8tNr2kb1G6aaRFpS68xTMbqt95QdjlMS3VWu1lrKG0b6dGyOta0ZV1fRdb7Wj7pdWy9vp78m5PkY+WvyMO1865p6zctMeta7RU379fzjEZX/b3I+RCAAAQgkI9AUNImXbZ/uJI3xvbd1vTuinKsrFmQXdGy1nTZr0nc9B/lb33n8TkP8U7fsBS52cvakS9LoIq8651V/jxS1k/q8l1SnaPsKNagm/GsG/s02yLtJo/t198i+SU3JUhvelE0N3tdVHm4dvpGqsi1m1cEpV9Z14L9WRq0e6TlIsf/59//t/EmEFm7IeYd7axD2qzEyvTp5O+G5Oh8kd3zikzjy2KRfqMn6xj7syWPgfhYtKNjEWnr94ZTr+siay1mrx0r+wlSFpus/mVdc3m5Zv2et9fNoJFc4ZqcDpi1M7Ack57KmyWfRTbx6SW1/X6v9OJRh7RlXf9ZP9tFfw9yPAQgAAEIFCcQnLQlhSG5ID05epPElLV+zX5fbkzllfVOc9bC/PSNgb2JkBiun9MmN2z2lffd5Dw3yEVucopfbs2eMWj3yLyPSHApbembwySRrEdV5F2zlXyDQWL2unaLSJvESa+tkptZmTqWtQ4teb3bfmVtx5/sc96NaOqSNskl/bshK6d034psJtGPefJZi1kbaGStAUzmV0TapK/pn4n0c9qy3pRIr4OVPO2zA3tJjK2xy+e0JR8XIPGzuGatBcz7c25jysf0KFmv34u9RgzT11T6OW3p3VLzjrRJbul65HlOW5pd3pE2W8dBP9vN/manNQhAAALzk0ArpW1+lopeQ8A/AXaN818DMoAABCAAAQhAYP4RQNrmX83pMQRyEZBRHjsNL/mOe5HneeVqiIMgAAEIQAACEIAABPoSQNq4QCAAgUwCWVPzij4SArQQgAAEIAABCEAAAtUJIG3VGRIBAhCAAAQgAAEIQAACEIBAbQSQttrQEhgCEIAABCAAAQhAAAIQgEB1AkhbdYZEgAAEIAABCEAAAhCAAAQgUBsBpK02tASGAAQgAAEIQAACEIAABCBQnQDSVp0hESAAAQhAAAIQgAAEIAABCNRGAGmrDS2BIQABCEAAAhCAAAQgAAEIVCeAtFVnSAQIQAACEIAABCAAAQhAAAK1EUDaakNLYAhAAAIQgAAEIAABCEAAAtUJIG3VGRIBAhCAAAQgAAEIQAACEIBAbQSQttrQEhgCEIAABCAAAQhAAAIQgEB1AkhbdYZEgAAEIAABCEAAAhCAAAQgUBsBpK02tASGAAQgAAEIQAACEIAABCBQnQDSVp0hESAAAQhAAAIQgAAEIAABCNRGAGmrDS2BIQABCEAAAhCAAAQgAAEIVCeAtFVnSAQIQAACEIAABCAAAQhAAAK1EUDaakNLYAhAAAIQgAAEIAABCEAAAtUJIG3VGRIBAhCAAAQgAAEIQAACEIBAbQSQttrQEhgCEIAABCAAAQhAAAIQgEB1AkhbdYZEgAAEIAABCEAAAhCAAAQgUBsBpK02tASGAAQgAAEIQAACEIAABCBQnQDSVp0hESAAAQhAAAIQgAAEIAABCNRGAGmrDS2BIQABCEAAAhCAAAQgAAEIVCeAtFVnSAQIQAACEIAABCAAAQhAAAK1EUDaakNLYAhAAAIQgAAEIAABCEAAAtUJIG3VGRIBAhCAAAQgAAEIQAACEIBAbQSQttrQEhgCEIAABCAAAQhAAAIQgEB1AkhbdYZEgAAEIAABCEAAAhCAAAQgUBsBpK02tASGAAQgAAEIQAACEIAABCBQnQDSVp0hESAAAQhAAAIQgAAEIAABCNRGAGmrDS2BIQABCEAAAhCAAAQgAAEIVCeAtFVnSAQIQAACEIAABCAAAQhAAAK1EUDaakNLYAhAAAIQgAAEIAABCEAAAtUJIG3VGRIBAhCAAAQgAAEIQAACEIBAbQSQttrQEhgCEIAABCAAAQhAAAIQgEB1AkhbdYZEgAAEIAABCEAAAhCAAAQgUBsBpK02tASGAAQgAAEIQAACEIAABCBQnQDSVp0hESAAAQhAAAIQgAAEIAABCNRGAGmrDS2BIQABCEAAAhCAAAQgAAEIVCeAtFVnSAQIQAACEIAABCAAAQhAAAK1EUDaakNLYAhAAAIQgAAEIAABCEAAAtUJIG3VGRIBAhCAAAQgAAEIQAACEIBAbQSQttrQEhgCEIAABCAAAQhAAAIQgEB1AkhbdYZEgAAEIAAB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",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = px.line(data_frame=dynamics.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"B\"], \n",
" title=\"Reaction A <-> B . Changes in concentrations with time\",\n",
" color_discrete_sequence = ['navy', 'darkorange'],\n",
" labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n",
"fig.show()"
]
},
{
"cell_type": "markdown",
"id": "dffad4cb-ec16-4ded-9766-b609244f4496",
"metadata": {},
"source": [
"### Note the raggedness of the left-side (early times) of the curves. In experiment \"react_2\" this simulation gets repeated with an adaptive variable time resolution that takes smaller steps at the beginning, when the reaction is proceeding faster"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "c78e828d-583a-45d0-b7d2-4fb979bdb586",
"metadata": {},
"outputs": [],
"source": [
"df = dynamics.get_history()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "abc91abe-83dd-446c-b074-0c8a486249f7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 10.000000 | \n",
" 50.000000 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.1 | \n",
" 17.000000 | \n",
" 43.000000 | \n",
" first reaction step | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.2 | \n",
" 20.500000 | \n",
" 39.500000 | \n",
" 2nd reaction step | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.3 | \n",
" 22.250000 | \n",
" 37.750000 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.4 | \n",
" 23.125000 | \n",
" 36.875000 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.5 | \n",
" 23.562500 | \n",
" 36.437500 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.6 | \n",
" 23.781250 | \n",
" 36.218750 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.7 | \n",
" 23.890625 | \n",
" 36.109375 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.8 | \n",
" 23.945312 | \n",
" 36.054688 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.9 | \n",
" 23.972656 | \n",
" 36.027344 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 1.0 | \n",
" 23.986328 | \n",
" 36.013672 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 1.1 | \n",
" 23.993164 | \n",
" 36.006836 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 1.2 | \n",
" 23.996582 | \n",
" 36.003418 | \n",
" last reaction step | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.0 10.000000 50.000000 Initial state\n",
"1 0.1 17.000000 43.000000 first reaction step\n",
"2 0.2 20.500000 39.500000 2nd reaction step\n",
"3 0.3 22.250000 37.750000 \n",
"4 0.4 23.125000 36.875000 \n",
"5 0.5 23.562500 36.437500 \n",
"6 0.6 23.781250 36.218750 \n",
"7 0.7 23.890625 36.109375 \n",
"8 0.8 23.945312 36.054688 \n",
"9 0.9 23.972656 36.027344 \n",
"10 1.0 23.986328 36.013672 \n",
"11 1.1 23.993164 36.006836 \n",
"12 1.2 23.996582 36.003418 last reaction step"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "markdown",
"id": "f72f4988-4e4b-4268-9f4a-e36300c9dcf1",
"metadata": {},
"source": [
"## Now investigate A_dot, i.e. d[A]/dt"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "5ee8ec14-442f-4e76-bc86-26b8791f7e70",
"metadata": {},
"outputs": [],
"source": [
"A = list(df.A)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "0b932baf-da6b-4fc3-a199-e0fe72ca268e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[10.0,\n",
" 17.0,\n",
" 20.5,\n",
" 22.25,\n",
" 23.125,\n",
" 23.5625,\n",
" 23.78125,\n",
" 23.890625,\n",
" 23.9453125,\n",
" 23.97265625,\n",
" 23.986328125,\n",
" 23.9931640625,\n",
" 23.99658203125]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "a390ed46-f014-414f-9b14-69f6da95dc41",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"13"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(A)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "b3b1b169-bae2-493b-b652-ce9e82b2ddab",
"metadata": {},
"outputs": [],
"source": [
"A_dot = np.gradient(A, 0.1) # 0.1 is the constant step size"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "35c7be1f-95ce-4bac-9fb3-02745a505f92",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([7.00000000e+01, 5.25000000e+01, 2.62500000e+01, 1.31250000e+01,\n",
" 6.56250000e+00, 3.28125000e+00, 1.64062500e+00, 8.20312500e-01,\n",
" 4.10156250e-01, 2.05078125e-01, 1.02539062e-01, 5.12695312e-02,\n",
" 3.41796875e-02])"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A_dot"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "f5fa1f8e-517f-4fd1-b3bf-51c12ab883f0",
"metadata": {},
"outputs": [],
"source": [
"df['A_dot'] = A_dot"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "e3773cfc-88ed-4565-a760-e90fa050d5b9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
" A_dot | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 10.000000 | \n",
" 50.000000 | \n",
" Initial state | \n",
" 70.000000 | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.1 | \n",
" 17.000000 | \n",
" 43.000000 | \n",
" first reaction step | \n",
" 52.500000 | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.2 | \n",
" 20.500000 | \n",
" 39.500000 | \n",
" 2nd reaction step | \n",
" 26.250000 | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.3 | \n",
" 22.250000 | \n",
" 37.750000 | \n",
" | \n",
" 13.125000 | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.4 | \n",
" 23.125000 | \n",
" 36.875000 | \n",
" | \n",
" 6.562500 | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.5 | \n",
" 23.562500 | \n",
" 36.437500 | \n",
" | \n",
" 3.281250 | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.6 | \n",
" 23.781250 | \n",
" 36.218750 | \n",
" | \n",
" 1.640625 | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.7 | \n",
" 23.890625 | \n",
" 36.109375 | \n",
" | \n",
" 0.820312 | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.8 | \n",
" 23.945312 | \n",
" 36.054688 | \n",
" | \n",
" 0.410156 | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.9 | \n",
" 23.972656 | \n",
" 36.027344 | \n",
" | \n",
" 0.205078 | \n",
"
\n",
" \n",
" | 10 | \n",
" 1.0 | \n",
" 23.986328 | \n",
" 36.013672 | \n",
" | \n",
" 0.102539 | \n",
"
\n",
" \n",
" | 11 | \n",
" 1.1 | \n",
" 23.993164 | \n",
" 36.006836 | \n",
" | \n",
" 0.051270 | \n",
"
\n",
" \n",
" | 12 | \n",
" 1.2 | \n",
" 23.996582 | \n",
" 36.003418 | \n",
" last reaction step | \n",
" 0.034180 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption A_dot\n",
"0 0.0 10.000000 50.000000 Initial state 70.000000\n",
"1 0.1 17.000000 43.000000 first reaction step 52.500000\n",
"2 0.2 20.500000 39.500000 2nd reaction step 26.250000\n",
"3 0.3 22.250000 37.750000 13.125000\n",
"4 0.4 23.125000 36.875000 6.562500\n",
"5 0.5 23.562500 36.437500 3.281250\n",
"6 0.6 23.781250 36.218750 1.640625\n",
"7 0.7 23.890625 36.109375 0.820312\n",
"8 0.8 23.945312 36.054688 0.410156\n",
"9 0.9 23.972656 36.027344 0.205078\n",
"10 1.0 23.986328 36.013672 0.102539\n",
"11 1.1 23.993164 36.006836 0.051270\n",
"12 1.2 23.996582 36.003418 last reaction step 0.034180"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "e55a1afb-0856-4f5e-997b-6277005eb03b",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
concentration (blue) /
concentration change per unit time (brown)=%{y}",
"legendgroup": "A",
"line": {
"color": "navy",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.1,
0.2,
0.30000000000000004,
0.4,
0.5,
0.6,
0.7,
0.7999999999999999,
0.8999999999999999,
0.9999999999999999,
1.0999999999999999,
1.2
],
"xaxis": "x",
"y": [
10,
17,
20.5,
22.25,
23.125,
23.5625,
23.78125,
23.890625,
23.9453125,
23.97265625,
23.986328125,
23.9931640625,
23.99658203125
],
"yaxis": "y"
},
{
"hovertemplate": "Chemical=A_dot
SYSTEM TIME=%{x}
concentration (blue) /
concentration change per unit time (brown)=%{y}",
"legendgroup": "A_dot",
"line": {
"color": "brown",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A_dot",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.1,
0.2,
0.30000000000000004,
0.4,
0.5,
0.6,
0.7,
0.7999999999999999,
0.8999999999999999,
0.9999999999999999,
1.0999999999999999,
1.2
],
"xaxis": "x",
"y": [
70,
52.5,
26.25,
13.125,
6.5625,
3.28125,
1.640625,
0.8203125,
0.41015625,
0.205078125,
0.1025390625,
0.05126953125,
0.0341796875
],
"yaxis": "y"
}
],
"layout": {
"autosize": true,
"legend": {
"title": {
"text": "Chemical"
},
"tracegroupgap": 0
},
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"fillpattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"autotypenumbers": "strict",
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"text": "Changes in concentration of A with time (blue) , and changes in its rate of change (brown)"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
0,
1.2
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
-3.8528103298611107,
73.88699001736111
],
"title": {
"text": "concentration (blue) /
concentration change per unit time (brown)"
},
"type": "linear"
}
}
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA20AAAFoCAYAAADEoBNQAAAgAElEQVR4Xu29C7QfRZ3vW3mQd0LYeZIAeYBIgDAKShCDiiDGOUOMjALjucwwgJxEJ64j3nt5zWLO4Z7wWPeKa8kRMogMM8w4EB0MMHOEDAieMCgIiEYICIQE8n7uZCfkndz+9U5tev/T/e/q/ldXV/f+9Fp7ZWf/u6t+9flWd/X3X69eB4NDcUAAAhCAAAQgAAEIQAACEICAlwR6Ydq81IWgIAABCEAAAhCAAAQgAAEIhAQwbVQECEAAAhCAAAQgAAEIQAACHhPAtHksDqFBAAIQgAAEIAABCEAAAhDAtFEHIAABCEAAAhCAAAQgAAEIeEwA0+axOIQGAQhAAAIQgAAEIAABCEAA00YdgAAEIAABCEAAAhCAAAQg4DEBTJvH4hAaBCAAAQhAAAIQgAAEIAABTBt1AAIQgAAEIAABCEAAAhCAgMcEMG0ei0NoEIAABCAAAQhAAAIQgAAEMG3UAQhAAAIQgAAEIAABCEAAAh4TwLR5LA6hQQACEIAABCAAAQhAAAIQwLRRByAAAQhAAAIQgAAEIAABCHhMANPmsTiEBgEIQAACEIAABCAAAQhAANNGHYAABCAAAQhAAAIQgAAEIOAxAUybx+IQGgQgAAEIQAACEIAABCAAAUwbdQACEIAABCAAAQhAAAIQgIDHBDBtHotDaBCAAAQgAAEIQAACEIAABDBt1AEIQAACEIAABCAAAQhAAAIeE8C0eSwOoUEAAhCAAAQgAAEIQAACEMC0UQcgAAEIQAACEIAABCAAAQh4TADT5rE4hAYBCEAAAhCAAAQgAAEIQADTRh2AAAQgAAEIQAACEIAABCDgMQFMm8fiEBoEIAABCEAAAhCAAAQgAAFMG3UAAhCAAAQgAAEIQAACEICAxwQwbR6LQ2gQgAAEIAABCEAAAhCAAAQwbdQBCEAAAhCAAAQgAAEIQAACHhPAtHksDqFBAAIQgAAEIAABCEAAAhDAtFEHIAABCEAAAhCAAAQgAAEIeEwA0+axOIQGAQhAAAIQgAAEIAABCEAA00YdgAAEIAABCEAAAhCAAAQg4DEBTJvH4hAaBCAAAQhAAAIQgAAEIAABTBt1AAIQgAAEIAABCEAAAhCAgMcEMG0ei0NoEIAABCAAAQhAAAIQgAAEMG3UAQhAAAIQgAAEIAABCEAAAh4TcG7arr/lHvXooudikcy84Gx16w1Xe4yL0CAAAQhAAAIQgAAEIAABCLgl4My0XXHN7er5l5eGpXv1mftjS3nKZy4P/z7t9CnqvjuudUuC3CAAAQhAAAIQgAAEIAABCHhIwIlpEzPWNnyoWrzwTiME58yaqza3dySaO6NEIif957/6H2rt+s3qqQV3ZL2U8yEAgZwE/uHHT6jbv//PXVd/979/Q13w6Y/nTM2fy+R59oXPTlP/301z/AnKUST/5813q5/9/Plu5f9/735Q3f/Q42rBPf9NnXLixKaRnHfxNWrs6Db1T//zrwuLOC7GwjJzlHAWxmkhvfqH5eriq/+buvySGer/mnNp2ul8DgFnBGy2GT21nuvOj2h7W7c2S9cTaUt62nu9E9MmvWxZe85Mr5GXADFk0eMjp57Q7aUA0/YBHf1CU5cXaGetSSQjmy9QcfFrjeJ6pOXhW4UH1aJf/Fp962++r/LUM31PN97HRWmt9bz2G3+m/vwrnw+zafbMaLUB1Gyi+emySb6v/P4tIwNUFI+kdHVD2fiyn+V+cGHaJH4daxxj19xs5JeFcVp+PfVlNolLEc/UrM+UNM2K/NyX+tBKmxHHx5dyFaldY9pJ7UerbZbLMpjmpfXtaV+gOjFtpiJkOU8/FONe7PQ3DfqbX0wbpi1L3Uo71+YLVF1NmxjP3/z+zczfgumGW3Mx6b1J0yvt86wvWK02gFU1bUmGK8v94Mq0aeMtBjhpOH5avfDp8yyM0+LuiS+zzZhg2vzoec3bZiRp29PqebN2pdU2K+2ZUtbn+rmY58vhsmJuNd9KmjZdOZsN75AHwF9e+oVwuA6mrdVqwvVRAjZfoLKatqooIfecHFmHwUV7gqWnrqwhXGX1tPmqr+65imscs9wPLk1bnV7asjBOq0N14pJWVp8+9/U9xJf6kLfNwLR1EiiyzfLpPmqMxWWb4gOHUkybnrMWB8DkW1HdBWxybrQyf+9/fDMcy6+PuGFmccMtk86Tv/9FMJxKXi71kTSkS7+MRs+Tb4HjXkobY4g7RzfiUYYm3zbENf660puWJanixsXUGLvWTqcR17WdNR4b+Ua/pfrd0mXhvB19RIdYxeUl5+lzog9O3eMrn0uP0d89+LNu6er0o71JjfVEn6O1TXpAFcE1See4uhw1Z3H3kOkQhug3gpKOHKZj1uPYxNX3xm8kGw1JI8tGnXSMp02Z3G3OnkkZG3sSG++DuKGxulyfD+YDRucI6vwa62SS0TWpI0maN3shiDL+5l9/r9tw9cZndKNGSd8ON3uRNHk+6nIU+aLcOP8m7nkhfzN9tkTZR58d8ndpa2QagGnPc1xsur5E2UraMh9RH411J6m+Np6XJU2dV6OO0nZKm9jYjum009q6uPvW5B2hsU7mKUvjfZP1mRLH2eQLq2jdWrdxS5eWorV8aR1934lrc+PYynlxU0xEm7g0kp4Z0b+nPXvythk9sZ7H8U4z3kltVmMdi9bbRb94set9JXpeWvuf9AVfXG9f4/M567ufsLD5hZZJXS77HOem7YuX36hGtA3LPMetsUHLMt9FPzAazVdcJZJKIy/g0QUT4l4e4+bdJN04cSYzbn6Ivj5atrhxu/qmiTbgpkY2ybTJC0FcviYNh2gTl780KH8fLEahX+iFd6NucX9rlW1cvnHaR2OJNppxJi3KutlDIto4Nb4wiG5jRh3VbfJ/nJbN5rTFGZMiuCY9mJLuBTk/aq7yvCw3PuyzDn1IMjxSt6P1uFG/uEYm7VtLKW/UpDUbmtLIstm5zcoQl59pHHFDwOLqTZLucm7SsyBqGtOeSa2YNtPnY7QMRTboUm+eCJ5x0S8s4ubSZXm2JM3TiHtOJGkVd66kK4Za7tHoi3pU07j7QGKXLwqi93bcSJcsaUrccXUvbr51XDsZxzjuuWRav5NMm8SZxidJgyzPlLjymD77onUryUhH26G4+mXywp/WfjZ7kTVtn7K2GT2xnqfVt6QvdfSXQHFtSFwdl3zi5gObtP9x9SlqrqP1sfEdPMu7n2aRpe0t23DZyN+5aROR5l13lZo1Y3qu+PNMPkx6GDR7OY4Gpytc9IZo1uMRXaky6VuHuIqdFGdj/s3mlqStBtasp61xKJvpQ7TZ0CnNMenlKe6Ga5VtVLskjRsnPWf5xj/NtGVZqVTXg+gDMotpK4JrWsOQ9E149OFvWneieTVek/Veb6yH0Zd8yUfX78a5E1lesPQLZ7Me4rQhoXlMW9yKi0nzFBr/bnoPJOkeV0dNjFHcM64V02b6fIzGZntxA5NGS8r40VM/1LW6aJZnS1IZTc2nyQtMs5d007kvjUPZsqSZVB/j7sOkeKL3cLO8hVtam9isp63xWlM+WZ4pze5PqW/NVtw10buxzjY+/5rxa/XZkaV9ytJmmJQ7S51Muq99qufNnj2ac7PttOLarEZ9m73LZXmXbbynJJ816zd160mPa1dM3/0aWTT7UtHkmV2lczBtwTC4xoqeNAQu+rJqWrmSHnpxD5SkBqHxxUP35pgMx2qsjEWYNhPzm9ZzES1Lq2yjZU5Kq/GBkeXFqhXTZjLcKItpK4Jr0gPMVlxx6WfppU77VlebR9HplVff6hrCrL90kTox49wzu17msrxg+WTakup2499N74EkrmnGp9n9kBZLlvvO9Pno2rQ1DmWU/ON68Ru/uc7SBpiaNpPz8rzMxg1fi/a+ZEkzqT423ofNXswbX1K1BnlWCy3btOmy5FkV2MS8JA331u89zbRr9dmRpX3KYtp6aj1v1jY3W/gr6dnZeM81M21Z2v+4+1Pen2Xk1dGjR4RfaOm8ou/fpu9+mDaHNlOGR55/zhlq7pUX5co1bohMWkKmPW3RIR7RXrW4imxauZLybnxQRvNOKk/jkuTRMeZyjUmDVYRpM3nYJvHSL8HRl5xW2Ub5xb1QRT/XL/hZXh7zmjb94hPVKa7BzPJwLIJrs28dk3oRG4dNmNSJaD5JX5Toc0zqtpwb/WZUYpJ5mrKMvzZqf3zeWeE8j+gXMHU3bab3gM+mLevzUZclzXCmtR3NPtf3aeOXZ3l7E9N6jEz2wjP5Ai2LwdL3Zdo2OlnSzPoC2UyDaDsdV89N5gCWbdqkfHHPP5MvZZuZNv1cazSDjXUkTbtm/NOmT2Rpn7K0GT25nsfp0dh7Gmdq4upTFtPWTJ/G9j/63JV3BjFrMsQ6atR071vjfPi4USVpdYOetlZaspRrFz7+rPrO/IeMN9qOS850/pa+1tS0Jb2MuzBt2rykPQST8OoGK62RKsK0mTxAs3zjZmraTPJtHKqU9mJq8m14HtOWxRRmMW1FcE1iZCuuuPSzNO7NHjFRbcSc6ftBNxB6MY/ot3t1N22m90AS17zDI/UzrVkvepb7Ik/DXKRpSzIfZZo22z0Qps/itBf/aB0wNW2taKevNem98sG0Nd57+h0n7cuqZqbN9L0nractOtQ366thlvYp7cU87ku+Zu87WepkVeu5ZpJ3eGTj88JWT1v0fXbdhi1hmNK7pjWRL01lrmx0xIucY6pDnCnN++6ctU6XfX4pwyObFdpktSddsZp9EyWVUb5Vb7bkf+NLaJax9qaVK6kRjXugmD60JE65AaKHybwyOb8I09Ysbz2nIMvYdlO2JvmaGDvhkuXlMW6OY9oXBFnGgzd7ADeyKYJr0v2ZpQymdTnKPumhqzVM+0Iimpb0DMihv8XT+jb+Xc6JK1ezby5NX9bzmKC4+pp0P5j+3fQeaPZcNlmIpFEfk/mqWe67LHWq8WXGpO5kaYzTXnSj3xZnKWOSpiZmrNlzTD/7ZY5WlpfZpLqeNP807h5uTCNtbmK0F9xkDpnwlW/zpUc9epjWe1emLemZEteeN9MoWsZmpi2pLsVxSbq/TRkm3TtZ2qcs93fa0Nk61vNmz6dm7yRynel9bGtOm+SpR700rgib9He5xvTdz/QeyPJMr8q5zk2bLTBJwzZ0BZV/0zbXTpqEGf12S1diSS/PnDYdT+PwEj1ULtrINRv6KefLlgViQuUGbPwG0bT3sQjTpm82aTijprtxEm9c3PK3ODamXeSaY9Z89UNFhs/JRO8sL1bNGtS04bDRLxqiQ76i9SBrQ1wE16T7NI5349AIzdZ0QZY0U6Z5mH6TljS/Je6ek1jjGqpmjVerpq1Z41SEadPPoLheB6mv+h5o9mxu9kKlnymNC9SY3ttJL80ST57nY7QcWV4E5bqkIY9xbOLqva5jeee06XqX1AaZmE/dFjRuJaLnvGQxbXHtiv5b3jltcfdz9FkYN3Q5bmVEvRqmTq/xS9y4+pekY7S9ycIn6Z7J8kyJ0yvpnmrMr1lbEfdc1X+TdBrbzKTndVz70th+Nnt2mLZPWe/VnlbPmzFOM/lx90JcHUv78t+0/ZdYk+ZqRt+p07aE0WU2aX9Mno3NGFbls8qaNg04bhx748PbdJhA9AVOpy9p6f2Y8po2/dIUrRSSluzvlrSsqjxAo0fccvzRz02GgURvpDwrYaZV6miDIOcmvSSm7feS9duWPPk2xpfFtMXVk7h92hp5Nc7LET5678DGl5LGOQ4292nLu0qoLk8j77jtN7I0wCYvV3EvyEn1MekLjKQXoaSGqrGc+p6xYdoa64J+ZhVl2vRLVuM8WNPnRlqvtsy30nuJRZ+djSMCku7t6HO82X0haesXh6Tno/572otMXP2Jeylp9txrjEXqiJiJvD1tSW2QbBViMqdNxxo3R8pk4Ym4uq3vJ522XlAg+pKf1eg0Lsik9zyVIVONL19J8xmTlipvVv+SNHdh2iTvpGdKXJ02eQlNW4ikMT9pp/Q+pI0vzNF7MG2ftqT2Pe2Z3EybLG1GT63nzZ5FaUNRG5/PklZjHUszbXF1OGn7rWZftia1+Vnf/XR7EPclf9r7alU/d27a9IOhlWX/qwo7Gncr4/XrUH7KAAEIVItAUoPqaylMRx+0YvJ8LXsV40qbl1PFMhEzBBoJFFXP0wx8HZUw7ZGuU9mdmzaBd8U1t6vnX17ajWPb8KEtLU7isyhxQ5Cq9gLkM19igwAEiieQdZhq8REl5xA3zDAtnqJeptLy7Ymfy5e3cZs+mw6B7onMKHP1CLiu52lTDapHMDli3QNvsspqncpdimlrBHj9LfeoRxc9F/7ZZCGSqgnQOLxE4u9pFa1qmhEvBCBwOIEsc77K4pc3RnlO6z2Eyoq9p+QbN60hbaXEnsKGctaHQBn1XOfZOMe4PlQ/mIduOry/TmUvxbQtWbpMXTrn5i6OMy84W916w9V14kpZIAABCEAAAhCAAAQgAAEIWCHg3LTpbwHq2KNmRRESgQAEIAABCEAAAhCAAAQgECHg3LTpvKPdxtNOn6Luu+NahIEABCAAAQhAAAIQgAAEIACBBgKlmbZoHHf+8GE1/4FHwz/RA0cdhQAEIAABCEAAAhCAAAQg8AEB56atcT6bDuWEiePVI/fPQxsIQAACEIAABCAAAQhAAAIQiBBwbtrYp436BwEIQAACEIAABCAAAQhAwJyAc9NmHhpnQgACEIAABCAAAQhAAAIQgACmjToAAQhAAAIQgAAEIAABCEDAYwKlmLaFjz+rbrzt3m5Y5l13lZo1Y7rHqAgNAhCAAAQgAAEIQAACEICAewLOTZteKfLBu29SU6dMDkusFyeZfdlMNffKi9xTIEcIQAACEIAABCAAAQhAAAKeEnBu2s6ZNVddfOG5h5kzMXMLHntaLV54p6eoCAsCEIAABCAAAQhAAAIQgIB7As5Nm6weGTcUUg+ZZJ8295WAHCEAAQhAAAIQgAAEIAABfwk4N230tPlbGYgMAhCAAAQgAAEIQAACEPCPgHPTxpw2/yoBEUEAAhCAAAQgAAEIQAAC/hJwbtoEBatH+lshiAwCEIAABCAAAQhAAAIQ8ItAKabNLwREAwEIQAACEIAABCAAAQhAwF8Czk1b0kIk/iIiMghAAAIQgAAEIAABCEAAAuURwLSVx56cIQABCEAAAhCAAAQgAAEIpBJwbtq+ePmN6vxzzmAT7VRpOAECEIAABCAAAQhAAAIQgIBSzk3bkqXL1Nev/y6baFP7IAABCEAAAhCAAAQgAAEIGBBwbtpkTluzg821DVTjFAhAAAIQgAAEIAABCECgxxBwbtp6DFkKCgEIQAACEIAABCAAAQhAwAIBTJsFiCQBAQhAAAIQgAAEIAABCECgKAKlmLY7f/iwmv/Ao93K9ODdN6mpUyYXVU7ShQAEIAABCEAAAhCAAAQgUEkCzk3b9bfcox5d9JyKzl2TxUkunXOzmnfdVWrWjOmVBEnQEIAABCAAAQhAAAIQgAAEiiDg3LSdM2uu+vbsSw4zZ9L7tuCxp1lVsgiVSRMCEIAABCAAAQhAAAIQqCwB56ZNVo+M61Fb+Piz6sbb7u3WA1dZqgQOAQhAAAIQgAAEIAABCEDAEgHnpi1pc21MmyVFSQYCEIAABCAAAQhAAAIQqBUB56ZNhkE+ufgl9cj987qBlLlu6zZuUffdcW2tAFMYCEAAAhCAAAQgAAEIQAACrRBwYtrSNtSOFoDNtVuRk2shAAEIQAACEIAABCAAgboRcGLa6gaN8kAAAhCAAAQgAAEIQAACEHBFANPmijT5QAACEIAABCAAAQhAAAIQyEHAiWm74prbM89Vy3NNjvJzCQQgAAEIQAACEIAABCAAAa8JODFtMqetbfhQ4z3YZC+3ze0dLP/vddUhOAhAAAIQgAAEIAABCEDABQEnpk0KIj1nz7+8NCxT0mIjesGSaadPydwz5wIWeUAAAhCAAAQgAAEIQAACEHBNwJlp0wWTJf/nP/BobDlnXzZTzb3yItcMyA8CEIAABCAAAQhAAAIQgIC3BJybNm9JEBgEIAABCEAAAhCAAAQgAAEPCWDaPBSFkCAAAQhAAAIQgAAEIAABCGgCmDbqAgQgAAEIQAACEIAABCAAAY8JYNo8FofQIAABCEAAAhCAAAQgAAEIYNqoAxCAAAQgAAEIQAACEIAABDwmgGnzWBxCgwAEIAABCEAAAhCAAAQggGmjDkAAAhCAAAQgAAEIQAACEPCYQCmm7YuX36jeWr4qxDLvuqvUrBnTlWyszabaHtcUQoMABCAAAQhAAAIQgAAESiHg3LSJYRvRNkzdd8e16pxZc9W3Z18SmjbZdHvBY0+rxQvvLAUEmUIAAhCAAAQgAAEIQAACEPCRgHPTJj1qD959k5o6ZXI307bw8WfVjbfdq1595n4fORETBCAAAQhAAAIQgAAEIACBUgg4N23Su3bXrd86zLTR01aK/mQKAQhAAAIQgAAEIAABCHhOwLlpu/6We9SzLywJh0Hq4ZHHTxinLp1zs5p5wdnq1huu9hzZ4eGt3rSzcjET8AcEhg7sG/6nY+c+sFSYADpWWLxI6OiIjvUgUI9ScD/WQ0cpxbgRA+tTmB5aEuemTTjroZBR5rMvm6nmXnlRJWXAtFVStq6gaZSqrZ+OHh3RsR4E6lEK7kd0rAeB+pQC01Z9LUsxbdXH1r0EmLZqK8rLRbX1w7TVQz90RMd6EahHaWgf66EjPW310BHTZkFHTJsFiCUmQaNUInyLWaOjRZglJoWOJcK3mDU6WoRZYlLoWCJ8y1nT02YZaAnJOTdtS5YuC+evJR1VXD0S01ZCzbWYJY2SRZglJoWOJcK3mDU6WoRZYlLoWCJ8i1mjo0WYJSeFaStZAAvZOzdtsvjI9DOnVnLBkSTemDYLNbHEJGiUSoRvMWt0tAizxKTQsUT4FrNGR4swS0wKHUuEbzlrTJtloCUk59y0yT5t8667KtxQuy4Hpq3aStIoVVs/HT06omM9CNSjFNyP6FgPAvUpBaat+lo6N23S03bxhedWdqXIOMkxbdW+EXi5qLZ+mLZ66IeO6FgvAvUoDe1jPXSUUrg0bV+8/EY1om2Yuu+OaysHUE/jevDum8I9pX06nJu26D5tPoHIG8vv589XfU87Uw378JS8SXBdyQRolEoWwFL26GgJZMnJoGPJAljKHh0tgSw5GXQsWQCL2ds0bVdcc7t6/uWl3aJrGz403INZjjJMm95OrNXRfJi2iKxxe7RFVa/aQiQ/OuUU1atPHzXxqjnquEsvC3/nqBYBGqVq6ZUULTqiYz0I1KMU3I/oWA8C9SmFLdMm05yiBk0TEiM3ZuRR4ZoVZZg2W0ph2iIk67YQyYvz5qk/PPigUgcOqNHnfV6N/9KX1ZGnfdRW3SEdBwR4uXAA2UEW6OgAsoMs0NEBZAdZoKMDyA6yQEcHkB1lYcO0iTF7c9nKrh61pNC1aZPPdY9cktGL9thFhyRqv/DsC0vU5vaOMKvZl81Ux44frW687d6urPU1cWarsUdQrp975UUqrqdQdxph2iKq1nEhkhfv+0e16qcL1I5lb6vBx5+gxs/6ihr3xT91dBuSTasEaJRaJejH9ejohw6tRoGOrRL043p09EOHVqNAx1YJ+nO9DdMm7/AzLzg7dQV4MW1vLV8VmiwxSXKICfvQ5GO65rmJcdq0eZt65P554ed3/vBhNf+BR5U2T3K+mDVtyvTnjcMw5VpJo9FsNRpM+fy7P/hxmL989q2vfaVrzprEm5SOPwoq5XxOW10XImn/3W/Ump/+RK176gnVq3dvNW7Wl4Net6+oQRMm+aQ3scQQoFGqR7VAR3SsB4F6lIL7ER3rQaA+pWjVtGlTZDJnLG54pKxp8dofVsQaLE056hEaR+bF9YBF18mIfi7pyZ7QJrFqw7jgsafDHkR62iJ1Xpzyk4tf6nLWdbgd9OqR+zo61Oqgx23lwp+oPRs3qOEf/Vho3EZ95rw6FLO2ZeDloh7SoiM61oNAPUrB/YiO9SBQn1L4ZNqarW+he+eSTFvUiImniDNbb69YHQ6hbLZOhu7Jiyos51fWtEk3aLRr00bVlTSbHVVbiETK0rjk/8bFz6hVgXHb8utfqX7Dj1LjAuMm5u2I4HcO/wjwcuGfJnkiQsc81Py7Bh390yRPROiYh5p/16Cjf5rkjahV0yb5Zhke2bjkf7SnTZu2NFM1/cypXUMx43r68po2Kce006d0DdWMDs2srGkTgaJOtIqGKm/lznJd3D5tO1e+Gxq3VT/9sTq4d68ade75oXEb/pEzsiTNuQ4I0Cg5gOwgC3R0ANlBFujoALKDLNDRAWQHWaCjA8iOsrBh2tIWIhFjlrR6ZNzwyGbDF1vpaROkScMj4wxjbUybrkvRrsyoO3VU17zOptnm2mseWxiYtx+r7W++oQZPnBz2usl8t169enldpp4UHI1SPdRGR3SsB4F6lIL7ER3rQaA+pbBh2oRG3JL/2iPoRUrS5rRJOnoFx2iHkBi7aaefrGbNmB52GuXtaZNNsSWGze3bula61AuRyAIkjYZOjwKs9PDIpKoaXSrTdJKfHmopK8M0O6rYm9fMtElZt/3+d2r1I/+i1j7xb2HRxbSNC1aYHDL5+Po8DSpcEl4uKixeJHR0RMd6EKhHKbgf0bEeBOpTClumLWq4onSifsDEtCWlE109shXTJunrVSx1nDpGMYePLnquK3yZCqZXrqz08Mi06srwycPntMUx27dje2jcVgfDJXetW6uG/9HpoXkbfd4FaYj5vGACvFwUDNhR8ujoCHTB2aBjwYAdJY+OjkAXnA06FgzYYfI2TZvDsMkqQsDakv+6azS6MV4c6aR92qKTCaumUFpPW7Q8m375bLjC5KZfPaeOOPLIsMdNhkz2bxtRtWLXJl4apXpIiY7oWA8C9SgF9yM61oNAfe47hjAAACAASURBVEqBaau+ltZMmymKJNNmspKMaR6uz8ti2iS2natXqdWHFik5sHuXGvWpc0PjdtQZZ7oOnfwCArxc1KMaoCM61oNAPUrB/YiO9SBQn1Jg2qqvpTemLbpBXtWwZjVtunxrf/ZYuLpkx+uvqUHHTuhcpCT46d2nT9UQVDpeXi4qLV9X8OiIjvUgUI9ScD+iYz0I1KcUmLbqa+nEtDXbRC+K0HRRE9+w5zVtUo5tgWGTeW5i4OQYd+GX1LiLLlZDjv+Qb8WsbTy8XNRDWnREx3oQqEcpuB/RsR4E6lMKTFv1tXRi2qKYkoZHVhllK6ZNyr0/GCK5RoZLPvxjtXPNKnXk1D8Ke9zGnD+jylgqEzsvF5WRqmmg6IiO9SBQj1JwP6JjPQjUpxSYtupr6dy0VR/Z4SVo1bTpFDc//8tguGSwSMlzi1WfIUPUMV+6OFxhsv+o0XXE5k2ZeLnwRoqWAkHHlvB5czE6eiNFS4GgY0v4vLkYHb2RouVAMG0tIyw9AUybBQlsmTYJZff6deE8N1moRLYJGDn902q8LFLy8bMsREoScQRolOpRL9ARHetBoB6l4H5Ex3oQqE8pMG3V19LYtDVuRBctut4Bvfo48pXApmnTEaxd9L9C4yYbcw8Yf2zQ6/aV0Lz1OuKIfEFyVSIBXi7qUTnQER3rQaAepeB+RMd6EKhPKTBt1dcy1bRdcc3t6vmXl4Yl1buUNxZb5qnJMe30Keq+O66tJBVdBgledkafe+VFXeWI7qh+wsTx6pH753UrYxGmTTLY/uYb4XDJNf/6SJjfuAtnhfu6DfnQhyvJ2NegebnwVZlscaFjNl6+no2OviqTLS50zMbL17PR0VdlsseFacvOzLcrmpo2MTJtw4eqxQvvNIr7nFlz1eb2jkRzZ5SI45OWLF2mLp1zs0pauVJM66bN27qMmhi4EW3DupnTokyboDi4d69aFfS4Sa/b+++tUMNOPU2ND+a5jbngjx2Tqm92NEr10BYd0bEeBOpRCu5HdKwHgfqUoieYNvEtcZ0rdVGxqWkTw5K15yzPNWXCFBN2/jlndOtZi8YjRvTbsy9Rs2ZMD/8s2xd8Z/5D3YxskaZNx7LlxedD47bhfz+t+g4eEho3WWGy/+gxZeKrRd68XNRCRjZJr4eM6IiONSFQj2LQPtZDRylF3U3bnT98WD25+KWg82ibuuvWb6mpUybXR7xDJUkdHmm7xElL/gvsBY89bdyrZysu3ZsoPYT6ePDum0KxdS+c/r98Hvc3F6ZN8t6zaWPY6yZDJvdt26ZGnH1OMM/tYtU27RO2cPTIdGiU6iE7OqJjPQjUoxTcj+hYDwL1KUXdTZvuhPnNq2+qMSOPUrfecHV9xPPNtOkNuJPmzRVBPm5opF5wReIwNW3t2/cUEV5immsWPa6W/8uP1ZZXXlaDxo1XE758iZrwp19RvQcMcBpHXTIb0K9PWJRde/bXpUg9shzoWA/Z0REd60GgHqXgfqyHjlKK4UP6WSnM2rXb1euvb7SSVpZExo4dok46aWTsJdH39bdXrD5sRFyWfHw+N1NPW3RBDj0HTHqqsixAktTTJmbp2ReWOO1pizNlIpaO8fgJ48L5bmk9be/vdv+yv+3NN9WyHz+klv9kQVi/jps5S02++FI1/OSTfa5vXsZ2RJ9eYVx79x/0Mj6CMiOAjmacfD8LHX1XyCw+dDTj5PtZ6Oi7QubxDerf+QV1q8fCha+rL33poVaTyXz9rFknqZ/+9JLY6/TQSL1QoLzHR9/dM2fm6QXGpi26AEd0npfJsEbdi5bGIGkxkLTrWvk8zkRG/xY3p+3G2+7tttiKq+GRjeU8eOCAWvPIv4T7uu1YvkwNnXJKuDXAmBl/0gqSHnctw3jqITk6omM9CNSjFNyP6FgPAvUpha3hkY8//pa6/fb/cA7m858/Xl13Xef6Eo1H4/oUsr5GHYdIGpu2qGuNGpmswxqTetqcq38oQxH2zWUru3r4Gnv8yl490oTL1ldeUisD47bh6SdVnwEDwwVKZKGSAUePM7m8x5/Dy0U9qgA6omM9CNSjFNyP6FgPAvUphS3T5hsRPWquMa4sq9/7VqakeIxNmxg1vRpL1p4232FEh33GiVzWPm1ZuO1t3xL2uK0OfvYEv7ed9cmw163tE/HfSmRJu+7n8nJRD4XRER3rQaAepeB+RMd6EKhPKepq2hqHRmrFfOskslGTjE1btAdKmzY952vmBWfXcpUWU8BlDY+Mi2/DM0+F5q39Ny+qAWOPDjbj/nKwwuRXVJ+Bg0yL0+PO4+WiHpKjIzrWg0A9SsH9iI71IFCfUtTVtIknufjCcw/buktGysmRdesynxU3Nm1SiLi5abMvm5m4x1m04OJ45dz5DzzalIfL1SNtCeOTaZMy7VjxTtjjJtsDqGDem8xxOyYwb0NPPtVWkWuVDi8X9ZATHdGxHgTqUQruR3SsB4H6lKKupq0+CqWXJJNpS0+uZ57hm2nTKqwOFylZoHYse1sN/fCUsNft6P/0xZ4pUpNS83JRjyqBjuhYDwL1KAX3IzrWg0B9SoFpq76WmDYLGvpq2qRoW3/3Stjrtu6pJ1Tvfv2DRUq+HM51GzDuGAslr0cSvFygYz0I1KMU3I/oWA8C9SgF92M9dJRSYNqqr6WxaZPhjc2OLMMaZfzp5vaO2OSypOMLfp9NmzDa19ERGLcFamUwXHLPxg2q7cyzAvN2sRr5yU/5grDUOGiUSsVvLXN0tIay1ITQsVT81jJHR2soS00IHUvFbzVzTJtVnKUkZmzakqJr3McsrRTR/d7Szq3K576bNs1x4+JnwnluW379K9V/1Ohwa4BjZgWLlAwZUhXUhcRJo1QIVueJoqNz5IVkiI6FYHWeKDo6R15IhuhYCNZSEsW0lYLdaqYtm7akpTaToqzjEpxVMW2iyc6V74arS4p5O7h3rxrzuS+E5u3IU0+zWrGqlBiNUpXUSo4VHdGxHgTqUQruR3SsB4H6lALTVn0tWzZtVd9c24aEVTJturyrH1uoVi/8sdr+5htqyAknqnEXXazG/cksGzgqlwYvF5WTLDZgdETHehCoRym4H9GxHgTqUwpMW/W1dG7aZHjk+eecYbRNQFXwVtG0CduOV5eEPW5rn/g31atv33A/N1lhctCxE6qC3kqcvFxYwVh6IuhYugRWAkBHKxhLTwQdS5fASgDoaAWjF4lg2ryQoaUgWjZtsnndps3b1CP3zzMKRHrmvjP/IbV44Z1G51fhpKqaNmG7//0doXGTFSZ3rVurjvrYtNC4jfrUuVVAbyVGGiUrGEtPBB1Ll8BKAOhoBWPpiaBj6RJYCQAdrWD0IhFMmxcytBSEsWlLWj2ybfjQTAbM5iqULZXc4sVVNm0aw6ZfPhuuMLnpV8+pfiNGqvGBcZMVJo8YNswiKT+TolHyU5esUaFjVmJ+no+OfuqSNSp0zErMz/PR0U9d8kSFaTOntmTpMnXpnJvVg3ffpKZOmWx+YcFnGpu2guOodPJ1MG0iwM7Vq4J5bj8JFyo5sHuXGv3ZC4K5bl9Rw0/7aKX1SQueRimNUDU+R8dq6JQWJTqmEarG5+hYDZ3SokTHNELV+bwnmDbpGDph4njj0X9J6mUxbVnObbW2YNpaJRhcXxfTplFsem6xev22/672trervsF2AFP++v9RI84+xwIpP5OgUfJTl6xRoWNWYn6ej45+6pI1KnTMSszP89HRT13yRFV306ZXs9/cvk3ddeu3Wuohy2LEspybR7foNU1NW9pQxmhCpptip6Vpmk6rBbd5fd1Mm7ARwybGTQxcrz591Ml/c4sa9ZnzbGLzJi0aJW+kaCkQdGwJnzcXo6M3UrQUCDq2hM+bi9HRGylaDqTupk0vdPibV99UY0YepW694epMzGSNjudfXtrtmujwSNmXenN7R/h5tDcv+vfGzzIFYHCyNz1tWTfpNiibs1PqaNo0vBX/dL9652//Z2jcTrn5djXynM844+oqIxolV6SLzQcdi+XrKnV0dEW62HzQsVi+rlJHR1eki8/HlmnbuXGj2rZsWfEBN+QwcNQoNWzSpNh8o71db69YnXnBQzFsby5b2bVGR2PvmRhCOfSii/L/EW3D1H13XKu86WlzqUjWTbpdxpaWV51Nm5R9+X1/q5bf/wM18OjxauLX5qgx589IQ1Kpz2mUKiVXYrDoiI71IFCPUnA/omM9CNSnFLZM28qnnlL/+5vfdA7mmPPOU5/63vdi8230EDKqL8siInL+vOuuUrNmTA/Tjxox+b8sShL9PLpHtbemTaDMf+DRbsCyQGmmcNZNup3XliYZ1t20Hdy7Vy2792713j//gxo8cbKaeOVsNerTn/VJgpZi4eWiJXzeXIyO3kjRUiDo2BI+by5GR2+kaCkQdGwJn1cX2zJtq599Vi29917nZRs7fbo65aqrYvNt3ANaes5Mh0jGma7Gnrsbb7u3mwmMM3W2/FAzsMbDI6+/5R716KLnVHTOmQ466j7zqohpy0vOzXX7dmxX7wTGbdW/PKSGnniSmnTVHNV21ifdZF5wLjRKBQN2lDw6OgJdcDboWDBgR8mjoyPQBWeDjgUDdpi8LdPmMGSjrLQXaTw5y5ZktetpS5pzJr1vCx57OtNebXEqZN2k20hJRyfVvadNY9zTvkUtv+f7avW/LlTDTj1NTf7a19Xwj37MEeXisqFRKo6ty5TR0SXt4vJCx+LYukwZHV3SLi4vdCyOreuU62rakqZXNRqxZryjc9TkPN1RpXvPms1pk/Oz5NWK7sY9bUkBZe0hs7VJdyuFtn1tTzFtwm33urVhj9vaJ/5NDT/942py0OMmBq7KB41SldX7IHZ0RMd6EKhHKbgf0bEeBOpTirqaNulUuvjCc9XcKy/qJpZ0Bskhi4WYHNFVIKedPiVcSdJk9UhJOzp9zMY+cUnxGpu2xvGiOsGsps0EXNXO6UmmTbTZ+d6KcI7bhqefDIdISo/bkA99uGqydcXLy0VlpesWODqiYz0I1KMU3I/oWA8C9SlFXU1bfRRKL4mxaUvqfpQuxHUbtxg72fSQqndGTzNtotD2t99U7/zgrnAft1GfOldNCozboAnxS7H6rigvF74rZBYfOppx8v0sdPRdIbP40NGMk+9noaPvCpnH11NNW9r+0C4WEDFXqfmZzjfXthW4T+n0RNMm/Le99nu1/Ifz1eZf/0qN+dwXwlUlB44b75M0RrHQKBlh8v4kdPReIqMA0dEIk/cnoaP3EhkFiI5GmCpxUk81bZUQxzBI4542w/R65Gk91bSJ2O2vvKSW3ztftf/uN+roP5mlJgXGrd+IkZWqBzRKlZIrMVh0RMd6EKhHKbgf0bEeBOpTCkxb9bXEtFnQsCebNsG3+YVfBUMlv6863liqxn/pK8F2AF9XfYcOtUDWTRK8XLjhXHQu6Fg0YTfpo6MbzkXngo5FE3aTPjq64ewiF0ybC8rF5tHUtMnKK6arrugw81xTbBGLT72nmzYhvPHZXwSrSt6ldix7Wx17yf8RGLfZqnf/AcXDt5ADjZIFiB4kgY4eiGAhBHS0ANGDJNDRAxEshICOFiB6kgSmzRMhWggjdU5bls3p9HKZ0Q24G2NztZdBC0wyX4pp60S2/qlF4XYAO1e9p4778yvDoZK9evXKzNP1BTRKrokXkx86FsPVdaro6Jp4MfmhYzFcXaeKjq6JF5cfpq04tq5STh0eKT1nsleBHElmTK/MIvsapPXMYdpcSVtOPuse/1e1LFhVcveG9aFpm/AXV5UTSIZcaZQywPL4VHT0WJwMoaFjBlgen4qOHouTITR0zADL81MxbZ4LZBBeqmnTaUQ3jmtMd/ZlMw/b1C4p76T93gxi9fYUetq6S7Pm0YeDfdzuUvvf3xkOkzz20su81U4Co1HyWh7j4NDRGJXXJ6Kj1/IYB4eOxqi8PhEdvZYnU3CYtky4vDzZ2LTZin7J0mXq69d/Vy1eeKetJEtPB9N2uATvLfhRuB1Arz69w4VJxl90cek6JQVAo+StNJkCQ8dMuLw9GR29lSZTYOiYCZe3J6Ojt9JkDgzTlhmZdxc4N21pm9w1mw/nHb1DAWHa4pVZ8U/3qxXBHLe+Rw4P9nCbo8ZdOMtLCWmUvJQlc1DomBmZlxego5eyZA4KHTMj8/ICdPRSllxBYdpyYfPqIuemzavSWwoG05YMcvnf3aPkZ8DR48LNt8de8MeWqNtLhkbJHssyU0LHMunbyxsd7bEsMyV0LJO+vbzR0R7LslPCtJWtQOv5Y9paZ6gwbckQD+7fH+zhdpd690d/rwYdN1FN+trX1ahPf9YCdXtJ0CjZY1lmSuhYJn17eaOjPZZlpoSOZdK3lzc62mNZdkqYtrIVaD3/UkybLEby1vJVYfTzrrtKzZoxXcmwSZPVJ1svsv0UMG3Nme7f+X64FcDKH/+zGnLCiWpyYNzaPjHdvhA5U6RRygnOs8vQ0TNBcoaDjjnBeXYZOnomSM5w0DEnOA8vw7R5KErGkJybNjFsI9qGhVsDyL5u3559SWjaZHXKBY89XckFSjBt6bVuT/uW0LjJypJDT5mqJl81Rx11xpnpFzo4g0bJAWQHWaCjA8gOskBHB5AdZIGODiA7yAIdHUB2lAWmzRHoArNxbtqkR+3Bu29SU6dM7mbaFj7+rLrxtnsT94IrkEHLSWPazBDuXr8uNG5rg73chn/0Y8GqknPUkVP/yOziAs+iUSoQrsOk0dEh7AKzQscC4TpMGh0dwi4wK3QsEK7jpDFtjoEXkF0m0yY9Y5vbO2LDMF31UdK469ZvHWba6GkrQF0Pk9y58l31TrAVwPqnFqkRZ50drio59MNTSo2URqlU/NYyR0drKEtNCB1LxW8tc3S0hrLUhNCxVPxWM8e0WcVZSmLGpi06rLGVSK+/5R717AtLwmGQenjk8RPGqUvn3KxmXnC2uvWGq1tJvpRr6WnLhn3H228Fxu1utfHZX6hRnzo3NG6DJ03OlojFs2mULMIsMSl0LBG+xazR0SLMEpNCxxLhW8waHS3CLDkpTFvJAljI3ti0ybBGvWhIq/nqoZDRdGZfNlPNvfKiVpNu6XoxlI8ueq5r+KZOLLpwygkTx6tH7p/XLR9MW3bs215/LVxVcsuvf6VGn/f5YFXJOWrguGOyJ2ThCholCxA9SAIdPRDBQgjoaAGiB0mgowciWAgBHS1A9CQJTJsnQrQQRimmrYV4C7tUjOTfPfizcFVLPedOMrvimtvVps3buoxaXI8jpi2fLFt/95vAuN2t2n/7shr7xzPVpGAft/6jRudLrIWraJRagOfRpejokRgthIKOLcDz6FJ09EiMFkJBxxbgeXYpps0zQXKEY2zaxKycf84ZpfeG5Sij0SV6gRQZphk1bdEVLiUhMXffmf9Qt1UuMW1GiGNPkp62ZcHiJB1LX1XjZn05WFXy66rvsGH5E8xxJY1SDmgeXoKOHoqSIyR0zAHNw0vQ0UNRcoSEjjmgeXoJps1TYTKEZWza4sxKhny6naqHIUb/GDVKedPNe50Y0r+89AtKz63TsSxZuiycaxeNLe5vmLa85Duv2/TcYrXsB99XMtftmIu/Gu7j1rv/gNYSzXA1jVIGWB6fio4ei5MhNHTMAMvjU9HRY3EyhIaOGWB5fiqmzXOBDMIzNm3SE9XsMF09Uhu26Pl6jputOXMG5e46ReJZt3FLuG9coyEzNW1Z8uPceALvPvGE+u33vqc6li9Xp3zta+q0b35T9erdG1wQgAAEIAABCEAAAhDo8QSMTZstUo3DDXW6suT/k4tfOmyRD1v5xqXT2HuY17TR02ZHpXXB/m2yHcCudWvVxCv+i5p4+dfsJJySCt8kOsFceCboWDhiJxmgoxPMhWeCjoUjdpIBOjrB7CQTetqcYC40E+emLWkVyjI2145bxVLT1qtZxs1pa9wEHNNmr46ufuynanmwquTeHduD+W1z1LF/9uf2Ek9IiUapcMROMkBHJ5gLzwQdC0fsJAN0dIK58EzQsXDEzjLAtDlDXVhGmUxbnMnJOqQxaUGTMkxbI9W44ZCsHllY3UtMeOVPHlTLgx43OSYFxm38n15SaBA0SoXidZY4OjpDXWhG6FgoXmeJo6Mz1IVmhI6F4nWaOKbNKe5CMjM2bTJ8cf4Dj8YuypFlj7WkYZDRuWWFlNQg0TjTJpexT5sBPMunvPujvw9Xlew3ZKiaePU31Lg/mWU5hw+So1EqDK3ThNHRKe7CMkPHwtA6TRgdneIuLDN0LAyt84Qxbc6RW8/Q2LTJMMGLLzz3sCX/xYQteOzpbkvgN4sybUGT6LWmi5tYp5IxQYZHZgRmePqK+3+g3rnvb1X/MWPDHrexn/9PhldmO41GKRsvX89GR1+VyRYXOmbj5evZ6OirMtniQsdsvHw+G9PmszpmsRmbNp/mopkVzd1ZmLZiWB/cvz8cJrniH/9ODTpuYrj59qhzz7eeGY2SdaSlJIiOpWC3nik6WkdaSoLoWAp265mio3WkpSWIaSsNvbWMjU2brZ42a5F7lBCmrTgx9u/aqd4JhkmuXPAjNeT4D6lJwR5uI84+x2qGNEpWcZaWGDqWht5qxuhoFWdpiaFjaeitZoyOVnGWmhimrVT8VjI3Nm225rRZidqzRDBtxQqyd+vWYCuAu9XqhT9Rw04+VU0MetzaPn6WtUxplKyhLDUhdCwVv7XM0dEaylITQsdS8VvLHB2toSw9IUxb6RK0HICxaZOcbKwe2XLEHiaAaStelN0b1oc9bmt/9pga/pEz1MSrZqvhp33USsY0SlYwlp4IOpYugZUA0NEKxtITQcfSJbASADpawehFIpg2L2RoKYhMpq2lnGp8MabNjbi7Vq9Uy+65S63/+SLVduZZwVDJb6ihH57ScuY0Si0j9CIBdPRChpaDQMeWEXqRADp6IUPLQaBjywi9SQDT5o0UuQPBtOVG98GFmDYLEA2T2PHOsqDH7S61cfEzauT0TwerSn5dDZ58vOHV8afRKLWEz5uL0dEbKVoKBB1bwufNxejojRQtBYKOLeHz6mJMm1dy5Aom1bTJqpGyD5vs0dbsqMry/LkopVyEaSuCanKaHW8sDY3b5ud/qUafd0G4HcDA8cfmDoJGKTc6ry5ER6/kyB0MOuZG59WF6OiVHLmDQcfc6Ly7ENPmnSSZA0o1bZlTNLgguln1vOuuUrNmTFdiDqedPkXdd8e1Bin4dQqmzb0eW5f8Vr3zg7tU+ysvqTEz/kRNDlaV7D9qdK5AaJRyYfPuInT0TpJcAaFjLmzeXYSO3kmSKyB0zIXNy4swbV7KkikoY9OWtE9b1s21xbCNaBsWmjPZRuDbsy8JTVvWdDKVsuCTMW0FA05IfsuLzwerSs5X215doo6eeZGaHAyVPGL48MzB0ChlRublBejopSyZg0LHzMi8vAAdvZQlc1DomBmZtxdg2ryVxjiwlk2bXlHSdHikmL8H775JTZ0yuZtpy5qOcQkdnIhpcwA5IYtNzy0OV5Xc/tYf1LEXfzXcDqDPwEGZAqJRyoTL25PR0VtpMgWGjplweXsyOnorTabA0DETLq9PxrR5LY9RcC2btutvuUc9+8IStXjhnUYZSu/aXbd+6zDTRk+bET5OiiGw4ZmnQuP2/rvL1YT/fLmaEMxx692njzErGiVjVF6fiI5ey2McHDoao/L6RHT0Wh7j4NDRGJX3J2LavJcoNcCmpi1uX7a4FPW8tNTcghOiJk8Pjzx+wjh16Zyb1cwLzla33nC1STJenUNPW/lyrF30v9SKYKjkzjWr1cS/vDr8MT1olExJ+X0eOvqtj2l06GhKyu/z0NFvfUyjQ0dTUv6fh2nzX6O0CFvuaUvLIO7zODMoK1TOvfKiPMmVfg2mrXQJwgDWPLYwXFVy77atwR5uX1fHffUvjAKjUTLC5P1J6Oi9REYBoqMRJu9PQkfvJTIKEB2NMFXiJExbJWRqGqSxaat+UYsrAaatOLZZU1718AK17AffV70OqnB+2zFf+bPUJGiUUhFV4gR0rIRMqUGiYyqiSpyAjpWQKTVIdExFVJkTMG2VkSoxUEybBQ0xbRYgWkzivQcfCIzb3eqIwYPVxGB+27hgZclmB42SRfglJoWOJcK3mDU6WoRZYlLoWCJ8i1mjo0WYJSeFaStZAAvZG5u2JUuXhfPOko4sq0emxV21uW2YtjRF3X++4u/vDbcD6D96TLj59thgL7ekg0bJvT5F5IiORVB1nyY6umdeRI7oWARV92mio3vmReWIaSuKrLt0jU2bLBoy/cypwQbYJ6vvzH+oa7VI2Xft/HPOMJ6PdsU1t6sxI486bMGR6J5tkubJJ06ozKIkmDZ3FdY4p4MHQ9O24h9+qAYec5yaFAyVHH3eBbGX0ygZU/X6RHT0Wh7j4NDRGJXXJ6Kj1/IYB4eOxqi8PxHT5r1EqQEamza9ubas9Pj167/bZdpkUZGoiUvLMWmTbllV8rU/rFCP3D9PZU0zLc+iP8e0FU04X/oHdu9Sy4KtAFY+9E9q8PEnhJtvj/jkpw5LjEYpH1/frkJH3xTJFw865uPm21Xo6Jsi+eJBx3zcfLwK0+ajKtliymzaZs2YrsR46eGQWTfFTjJt0X3asqaZrcj2z8a02WdqK8V9HR3hwiSrF/5EDTvpZDUxWFWy7eNndUueRskW7XLTQcdy+dvKHR1tkSw3HXQsl7+t3NHRFsny08G0la9BqxEYm7bokMXo71k3104aTimm7cnFL3X1tN14271dxrDVQhZ9PaataMKtpb9n08awx23tvz2ijjzto8F2AHPU8D86vStRGqXW+PpyNTr6okRrcaBja/x8uRodfVGitTjQsTV+Pl2NafNJjXyxGJu2xuSlx0wfD959k5o6ZbJRBLoXrXFDbklP79UWHSpplGjJJ2HaShbAIPtdq1cFe7jdLXwDNAAAIABJREFUrdY9+bg6KuhpmxwsTjJ0yinhlTRKBgArcAo6VkAkgxDR0QBSBU5BxwqIZBAiOhpAqsgpmLaKCNUkzNymrZWix61E2WjiWknf9bWYNtfE8+X3/op3QuO24Rc/VyODuW2TgjluMteNRikfT9+uQkffFMkXDzrm4+bbVejomyL54kHHfNx8vArT5qMq2WIyNm1Jc9GyZVfPszFt1dG14w+vh8Zt86/+Q43+7OfCDbjHnHh8WICOnfuqUxAiPYwALxf1qBToiI71IFCPUnA/1kNHKQWmrfpaYtosaIhpswDRYRJbl/xWLQ+2A9jy8q/VmGD/tqnf+Cs1cOxYTJtDDYrIipeLIqi6TxMd3TMvIkd0LIKq+zTR0T3zonLEtBVF1l26xqYt635szYoge7Jtbu+IPcV0k253iNJzwrSlM/LtjPbAsEmP29bf/05N+NKfqpPmfEPtHjDMtzCJJwMBXi4ywPL4VHT0WJwMoaFjBlgen4qOHouTMTRMW0ZgHp5ubNpkHlp0f7a8ZRHzN6JtmLrvjmvzJuHddZg27yQxCuj9d5erV775X9SezZvU2M+cqyb91+tU/7YRRtdykn8EeLnwT5M8EaFjHmr+XYOO/mmSJyJ0zEPNz2swbX7qkiUqY9MWXS0yLgPTHrI6zo3DtGWpcn6du/V3r6jf/d/fVPvff1/1HTJEHfOVr4Y/8jtHtQjwclEtvZKiRUd0rAeBepSC+7EeOkopMG3V19LYtNkqKqbNFknSsUXg4Orl6o3531drn3k6TLJf0Nt27Ff/Qo2f9aeqd7/+trIhnYIJ8HJRMGBHyaOjI9AFZ4OOBQN2lDw6OgLtIBtMmwPIBWdhbNqSzJZsir3gsafV4oV3GoVqc26cUYYOTqKnzQHkArPQjdI7T/y7WvfUE2rD00+GuclG3GPO/3zwM0P1oeetQAXsJM3LhR2OZaeCjmUrYCd/dLTDsexU0LFsBezlj2mzx7KslFo2bXqzbNPhkXL+d+Y/ZGzyygKTJV9MWxZa/p0bbZQO7N+v1gcbcK9/alG4LYAcbdM+ocac93k1OjBvvfr29a8ARBQS4OWiHhUBHdGxHgTqUQrux3roKKXAtFVfy5ZN2/W33KOefWGJsQmzNTfOJ/SYNp/UyB5LXKO0f/v2sNdt/ZNPqPbfvhwmOurTnw2Nm/zL4R8BXi780yRPRGXouG3rbrV166484ea+ZuV7W3NfW4ULB/bvE4a5c/f+KoRbmRi3BnV1m8O6OqBfp4679qBjZSpJQqD/9a/OrHoRenz8TU2b7kVLozTvuqvUrBnT006r7eeYtmpL2+wlcc/GDUGv2xNqXWDeOt5YqlTQ0ya9bjJkUnrgOPwhUMbLvs3SmxoHk5d90xe7le9tSy3Ctm1iaHannvfeu+kmRF42Jb1mR69eSr27Ij2t1IA4AQIQgAAEuggcPPg30Kg4gZZ72ipefivhY9qsYCwtEZOX/fffWxH2usmwSdkqQOa4iXGTOW8y942jOALr1+9Qu3ftCzPYv/+AWrP6gz0eN2/aqXbs2BN+Jt8IvxsYhz17DzQNxrUJkWBMDE1xBEk5jcCwI/urI48ckHaa1c+POfZIq+n5lljf3oH7Do59Bw76Flql4zkyqKvDHNbVI/p06rh3PzpWuuIEwT/0o4uqXoQeH7+xabNFSvZ7u3TOzYnJmc6NsxWPjXQwbTYolpeGiWnT0W1/842w103mve3esF71GzkqNG+jA/M29MSTyiuEo5x3796n1q/b0ZXb5s071fuHTNO+fd0NlfTOdER6Vd6L9OqI0RLDpQ8xYmLI5BCDJkatpx2mxsHkZd/0xe7YY9M3lB86TAxN+iqqxx6XbkLkZXNYkF6zY8iAvuq4CUeqjp2dRp2jmgSyPFerWcKeETU61kdn5rRVX0vnpu2cWXPV9DOnqmmnn9xtQZIqryqJaav2jZCnUZL93TrnvD2u9nV0qIHHTgh73Uafd4EadNzE0oHooXYbpJcqMFrS0xMdCtfY2ySmSUyXHGLCxIzpQ0yapFHW0TZioBo8uF+YfZ8+vdXR44Z2hRI1J/KNsLzsp/W0uTYhEqyJoSmLr2/55rkffSsD8bAwUF3qAPdjXZRkIZI6KJnJtInh2tz+wdCkKADTHjK9dcDxE8apr1//3a4FTKq8qiSmrdq3QiuN0qbnf6k2yJy34Ofg3r1qyIc+3Gnegt63/qNGtwxGDw2UeUy7du1XG9ZvD4YD7lVbAlMlxkp+F8Mlpir8t+Beqr59u5umtraBatAhQ9VoTkJDFelVGXv00GBKYOdQGzFhYsb0MWr0YNW/f+fKnP2DnpbRwf+zHq3omDUvzi+OADoWx9ZlyujoknZxeaFjcWxdp0xPm2vi9vMzNm3SEzaibZi6745rW4oiut+b/K7NXtatA1oKInLxFdfcrp5/OVhgInI0GlAp+1vLV4VnnDBxvHrk/nndzse02VKjnHRsNEobfvHzsNdN/pXjyNM+0rVNQN+hQ8OeLjFW0vOlF4noHFoYmK41Yrb2q9WB6dK9XLKSnfSW5Tm0sRo8+Ah1VNug0ByJSZIeqr6H5icMCj4Tw6WP8LPAkMkh5klMlD5Gj/nAUOWJx9U1NnR0FSv5JBNAx3rUDnREx3oQqE8pMG3V19LYtCVtrp0VgRigk0+coG694WoV/T3r1gFZ8006X3oPoxuDN8Yhpm7T5m1dRi3OvGLabKlRTjomLxcy32rb1j2B4dqp2ts7DdXW4F8xYO3tO8P/b2vfoYavfFmN2/xbddyed8LCvLZ7nHp287HqP9qPVfsOdpoik6NXsITekcNlLtFANVz+HT7w0P8HBP8fEP4u84OGywIK4f87f4YHf5N/e+JhomNP5FK1MqNj1RSLjxcd0bEeBOpTCkxb9bV0btoakUX3bXvw7pvU1CmTS6WqF0rRsYip+/bsS7q2NIgbxolpK1Wy3JnLYhjL32lXa1duC/doWh4sMy7DDaUHbPOm97uGHophy7L63+A+e9Qnhr2rzj7yPfXhQRvC+H6/d6L6Q/8pavWRp4RD/2QIoPRu9e/XOdxQDxeUnjHpIYv2fOUuYA+7kJfEegiOjuhYDwL1KAX3Yz10lFJg2qqvpbFpq/JCIVlkuvOHD6sFjz0d9r41GjhJJ+5vmLYshN2eq43Z8mVb1DvvbFErlrert97crOT/WVcolGGDMlRQ5mlJL5c2X7ICX79gI1n5v/xd5nLJ8MK+77erPq/9R7japKw62atPn3ClyVHBPm8jzjrbLYgekBsvF/UQGR3RsR4E6lEK7sd66Ihpq4eOxqatyguFmEqlDZneLNzUtO1O2RfKNH/Oy0dg+/Y96u23Nwc/W9Tbb21WywJD9sYbm8K/rVu7vWmixx/fpk44oU2NHTskXOGvf2C+5Hc91HDM2MFqQNArNmHC8HzBBVd1LH9HrXz8Z+rdn/1MbV+xXB0R7PF27Bf+WB074wtq5Bkfy50uF3YnwL5Q9agR6IiO9SBQj1JwP9ZDRylF/yPMp2jUp9T1KomxaYsOY4xDYLp6pFxrYxVK2zJogzb7splq7pWdGxCamrZNkb2obMdFep0E1q7ZrmSfr/febQ83UH43GMooQxblb+GGyglL0g8bNkBJT9ixwVLwxwWmTIyZ/CtLwx8T/P2oowaqgYFRk2Pn7v2F4t72+mtqzZOL1Np/f1ztWr8+WF1ylDr6czOCn8+rYSedXGjePSFxVzr2BJZllhEdy6RvL290tMeyzJTQsUz6dvMekbJHpt3cSK0IAsamzVbmtlahtBWPpKNXroybUxc3p+3G2+7tWvVSrmd4pB01pFes04h17im28pAp03/buyfeVA0d1i8wZp2GTH6OOSb4OfS7/F0W7Wh2uB7+0f7bl7s26N6/Y4caeMxx4ebcslWAD3u82VHTfSqudXRfwp6RIzrWQ2d0RMd6EKhPKZjTVn0tnZs2W6tQ2kKfNuyT1SNtke5MJ2rMwg2fDxkzMWli1pKM2bBgntgxxwQ9ZtqYdTNpw1paMbGsl4tNv3quc4+3YKuAg/v3qyEnnBiat9HBnLcBY8baBd8DUitLxx6A1mkR0dEp7sIyQ8fC0DpNGB2d4i40M0xboXidJJ7JtEX3K9PzvsSETTt9ivH+bT6ZNj38MY60Lp98xj5t2epiOJQxGMaY1GO2L2EOoBizaI/Z+IhJk7/L50UcZTdKG55+Uq3/+aIP9nib+kfh5tyjP3uBOuLII4soci3TLFvHWkItoVDoWAL0ArJExwKglpAkOpYAvaAsMW0FgXWYrLFpiw5rjA4ZjK62aBJ3HVeh7InDIzuN2aGhjF1DGju6/rZvb/xQRlngI67HTOaXFWnMmtVNHxqlg3v3hEMm5WfLr38Vhtv28bMO9bxdoHr3K8awmtyzVTnHBx2rwsrnONHRZ3XMY0NHc1Y+n4mOPquTLTZMWzZePp5tbNqkhyxu7zI9H8x0IZK04Yg+QkqLqc6mTYzZ715Zm2m5/L59e6uJk44KfoarSZOPUhMmDg//P2ly57++HT41Svu2bVPrgiGT64Mhk1uX/DZENfJT56oxwZDJUeee7xs6r+LxSUevwFQsGHSsmGAJ4aIjOtaDQH1KgWmrvpbGpk161+669Vvh5tdZe9rSVp6MYjQ1fz6hr5Np2x2swvjCr1aqZ36+XD256O1gT7NNsairZsya1RcfXy52rVt7aL5bsMfbW39QvXr3DodMymIlbWd90qfq700sPuroDZwKBYKOFRKrSajoiI71IFCfUmDaqq+lsWm7/pZ71LMvLAk3ndam7fgJ49Slc25WMy84W916w9XVp5GzBFU3bdKb9szP3wlN2i//4z0lG1LrQzaMPu0jYyvRY5ZTPuXzy8WOFe8EvW6dwyZ3rXpP9R08JNic+4LQvA3/yBl5i1zL63zWsZbACyoUOhYE1nGy6OgYeEHZoWNBYEtIFtNWAnTLWRqbNslXD4WMxhDd18wkNlmN8fmXl3ZbMl+uy7qgiUlers6pmmlbu6ZDvfTiGvXSr1epl19arV4Oft+//0CIS+acnfGxo4Of8ep0+ffj49Xgwf1coSwlnyo0Sh1vLA1XmRQDt2fTRtVvxMhD2wTMUEM/PKUUbr5lWgUdfWPmYzzo6KMq2WNCx+zMfLwCHX1UJV9MmLZ83Hy6KpNpsxG49NJdfOG5XRtY6zSzLmhiIxZbaVTBtL384urQpL300prApK1Wq1Zu6yr+SSePVB+LmLQTPjTCFppKpFOlRqn9Ny+q9U8tCn/27diuBo4/tmuxksETJ1eCd1FBVknHohjUIV10rIOKyusRDPUg7KYU3I9uOLvIBdPmgnKxeRibNls9ZElL/mdd0KRYLNlS99G0rV4V9KaFJq2zJ01+14dsNi09aR/7+LigN21c2Js2aNAR2Qpdo7Or2Cht+uWzncMmg0VL1IEDavDxH1JjPte5TcCAsUfXSB3zolRRR/PS9Zwz0bEeWqMjOtaDQH1KgWmrvpbGps1WD5mtdHxC74NpO3Dg4KHhjoFBO9SrJsvy62PKKaMCoxYYtEMm7fgT2nxCWGosVX652PDzfw+N28bFz4QMh516WjDf7dAeb8OHl8rVdeZV1tE1K5/zQ0ef1TGPDR3NWfl8Jjr6rE622DBt2Xj5eLaxabPVQybDIOc/8GjX9gECRW9ynXV+nC9AyzJtsoBI55y01erFX69Wr7y8pgvJ8KNkbtoHJu2MoFdt4MCe25vWrK5UvVE6sHtX15DJzYf2eDsq2ONtTLBgyejgp3f/Ab7cKoXGUXUdC4VTocTRsUJiNQkVHdGxHgTqUwpMW/W1NDZtNnvI4hY0mXfdVWrWjOmVJOrKtO3bdyDsReuanxYMe1y/7oPetJOlNy0Y6tjZmzZOTT6e3jSTClWXl4u97e1de7xte3VJWPSR53ymc4+3z37OBEWlz6mLjpUWwULw6GgBogdJoKMHIlgIAR0tQPQkCUybJ0K0EIaxaatjD1kL3LpdWqRpW7Gi/ZBJ6zRrvw02utbHUW3Sm/aBSZP5afSmZVe1bo3SgT271aqHF6gV//BDtW97p6kfMe0TasLlV6thp0zNDqgiV9RNx4pgtx4mOlpHWkqC6FgKduuZoqN1pKUliGkrDb21jI1Nm+RYtx4yWxRtmrY9e/Z9sBx/ODdttdq48f2uUE85dXS4eIgsIiK9apMmH2WrGD02nbo2SmLY3nvoH9V7//yAEiMnR98hQ1TbtE8Ge7ydrtrO/IQacPS42uheVx1rI5BhQdDREJTnp6Gj5wIZhoeOhqAqcBqmrQIipYSYybRVv7jFlKBV07b8nS3hnDQ97PH3S9Z3Bdo2YmDXnmkfC0ya7J02YABz02wqWfdGaffmTWrlj/5ebQgWK9m1ZnU3dGLaxLyFJi4wc2LqqnrUXceq6pI1bnTMSszP89HRT12yRoWOWYn5ez6mzV9tTCPDtJmSanJeVtO2a1fQmybL8R/qSZPFRDZv2tmVw6lTx3RtbC0bXU+azNw0CzIlJtFTGqWD+/erba/9XnW8/prqWPqq2hr87Fr1XheXPoMGq2FTTlFDTzpZDQ3+PTL46TdqdJHorabdU3S0Cs3DxNDRQ1FyhISOOaB5eAk6eihKzpAwbTnBeXRZJtMmi5Fsbu+IDf/VZ+73qFhuQzExbW+/tSncL+3FwKxJj9prr27oCnLEiEFdJk3vnda/f1+3hejBufXURmlfR4faFhi3jteWqG2HjNyeLZu7akK/kaNCExc1cn0H+9sT11N1rNuti471UBQd0bEeBOpTCkxb9bU0Nm1fvPxGNaJtmLrvjmurX2rLJYgzbTt27OlaQCRc8THoTWvfsqsr56mnSW9a5yqPstrjxEnMTbMsi3FyvFx0otq1dk3YCxcaOTFxQa/c/mA7AX0MOm5ip4E7ZOSGBD1yvXr1MuZc9InoWDRhN+mjoxvOReeCjkUTdpM+Orrh7CIXTJsLysXmYWzakvZpKza8aqSuTdubf5DeNFk8JBj6+NIa9fprH/SmjRwpvWkfmDRZRKRfvz7VKGDNo6RRihd4+7K31fbXXw1NnPxs/8Pr3U4cdmgYpTZxgyZMKrWmoGOp+K1ljo7WUJaaEDqWit9a5uhoDWXpCWHaSpeg5QBKMW11Gma5aNHbatFT74Q9aTL0sWPbni5RpDct7EkL9047Wk2YSG9ayzW2gARolNKhHjxwIOx5071w8u/Ole92Xdhn4KCueXDSAzfs5FNVf8fz4dAxXccqnIGOVVApPUZ0TGdUhTPQsQoqmcWIaTPj5PNZxqZNhkeef84Zau6VF7VUnroNsxw4cJ6ShUXkGDVqcNfctHBZ/uDnCHrTWqovLi6mUcpOWebDdUgv3CEjtz0YTimrVOojnA93qCcunBd30imqT8ErU6Jjdh19vAIdfVQle0zomJ2Zj1ego4+q5IsJ05aPm09XGZs22aPtO/MfUosX3tlS/HUbZnnhhf+shh01QH3m3EnqM+dNUoMH92uJDxe7J0Cj1DrzXevWhitShnPiDhm5AzHz4aQXTlallCGVwYS41jOOpICOVnGWlhg6lobeasboaBVnaYmhY2norWeMabOO1HmCxqZNzFazw3T1yLqZNmFisnqkc2XJ0JgAjZIxKuMTd7yzLDBxwXDKQ6tSdryxtNu1Qz88JRxCqbcXGDxxsnHaSSeiY8sIvUgAHb2QoeUg0LFlhF4kgI5eyGAlCEybFYylJmJs2mxFaWuYpa14bKSDabNBsbw0aJSKZS/7w8nwSdkXTvfGvf/eiq5Mw/lwMg9OeuACIyfDKvuPHpM5KHTMjMzLC9DRS1kyB4WOmZF5eQE6eilLrqAwbbmweXWRc9Nma5ilTxQxbT6pkT0WGqXszFq5Yt/27cEQyiWhkdMrU+6JzocbMbJrb7jOfeJONZoPh46tqOLPtejojxatRIKOrdDz51p09EeLViPBtLVKsPzrM5k2MVw33nZvt6jnXXeVmjVjunFJbA2zNM7QwYmYNgeQC8yCRqlAuAZJ716/rtO8BXPhwv3hgt/379rZdeXAYyeE8+DCVSkPzYfr1bv3YSmjowHsCpyCjhUQySBEdDSAVIFT0LECIhmGiGkzBOXxacam7c4fPqzmP/CoevDum9TUKZ3zT5YsXaYunXOzmn3ZzJZXlfSYUWpomLZURF6fQKPklzzhfLhD+8PJNgMdDfvDDT3xpM5hlGLgglUpB0/qfB6ho1865o0GHfOS8+s6dPRLj7zRoGNecv5dh2nzT5OsERmbNtlb7eILzz3MnImZW/DY0y2vKpk1cJ/Ox7T5pEb2WGiUsjNzecXOVe+pLS++oLa8FPy8+LyS4ZXRY8gJJ6oR085WY6d9XI04/WPq/QNsWu9SH9t5cT/aJlpOeuhYDnfbuaKjbaLlpYdpK4+9rZyNTVvSqo96yKTp6pESuI1hlrYA2EgH02aDYnlp0CiVxz5PztteXaK2vPKS2vL8L8MhlQf27O6WjGzqPeDocWrg+GPVwHHjVf/g90HB7/Jv/7YRebLkGocEuB8dwi4wK3QsEK7DpNHRIeyCs8K0FQzYQfLGps1WT1sdh1li2hzU1AKzoFEqEG7BSYth2/Kbl9W2wMS1//qXavvK99T+999PzFVWqhx49NFqgBi6wMQNGHeMGjD2aNV/bGDsjjlG9e7Xv+CIST6NAPdjGqFqfI6O1dApLUp0TCNUnc8xbdXRKilSY9Nmy2zZMn8+oce0+aRG9lholLIz8/EK0fHA3r1q44qVanew2bds+B3+Gyx00vV78P/opt/Rcohh6z9mrBpw6Ee2HZCfrv8Hf8fUFa8892PxjF3kgI4uKBefBzoWz9hVDpg2V6SLy8fYtEkINoY12hxmWRyWbClj2rLx8u1sGiXfFMkXj4mOe9u3qJ1r13xg6tZ3Gjtt8vZs2ZyYeb/hR4UGrr/0zImZGx38rg1e8G8/hl7mE67hKhMdrWREIoUSQMdC8TpLHB2doS48I0xb4YgLzyCTabMRDT1tNiiShk0CNEo2aZaXVqs6Hty7p1uP3M6ImdOmTs6JO3odcURo4sTU9dO9c2Lqxn7Qc9e7/4Dy4FQo51Z1rFBRax0qOtZDXnSsh45SCkxb9bU0Nm1XXHO7ev7lpapxwRHpOZt2+hR13x3XGtGwNczSKDNHJ9HT5gh0QdnQKBUE1nGyResovXB6mGXYOxf00sn/d61ZHf67d2t7YomPGD5c9R/VOdSyawhmpKeu38hRjmn5m13ROvpb8npFho710BMd66Ejpq0eOhqbNps9ZDaGWfqEH9PmkxrZY6FRys7MxyvK1FHmyUXnzck8uu7z6taqg8F8u7ijd58+h3rnggVSpKdOz6sLTV3nvLq+gwb7iLyQmMrUsZAC9dBE0bEewqNjPXTEtNVDR2PTVse5aLYkxLTZIllOOjRK5XC3navPOu7f+b7auWaN2hXsObdTeuZWr1S7grl1O4PVLuXfxm0Lomx6BaZuwKHVLWWVS5k7JyteKvl7sL2BLI4if5OVMaVHr+qHzzpWna3L+NHRJe3i8kLH4ti6Tpnhka6J28/P2LTZ7GmzX4xyU8S0lcu/1dxplFol6Mf1VdZx94b14TDLHSuWh8MuO83caiUbi+9tTx52GUe+75Ahqu/QYeqIYUeGRq7fiJGBsesX9tj16t3be8NXZR39uBP8iAId/dCh1SjQsVWC/lyPafNHi7yRGJu2VueiSU/d7MtmqvkPPNo01iybdOcttO3rMG22ibpNj0bJLe+icqurjmEv3aqgZy4wdWLi9u3YERi7dUHv3B61Z9NGJZ/v3bZV7evYpvZt394SXh8MX111bEmYCl6MjhUULSZkdKyHjlIKTFv1tTQ2bVLUus1FsyUfps0WyXLSoVEqh7vtXNFRhXvQiXHbt70jMHEdam/w+/4d+vcOtV8+C8zd3h3B34Pf9wa/R/+WNO8uTSsZohkaviFDg16+4Cf8fVi3vx0RfNZn8KFewODzPrpHMPi31xH9urJAxzTa1fgcHauhU1qU6JhGqDqfY9qqo1VSpJlMm43iJs2Nk568BY89rRYvvNNGNlbT+OLlN6q3lq8K0zxh4nj1yP3zuqWPabOK23liNErOkReSITq2jnX35k3q4O7dSoZrHty/r3O+3b79as/G4P9Bz558HvbsBUM2Q2MYmD/5Xf7WyiFz8cKhnMHcvH79+wcLsoxR+1TvMMnefYOFWkaO7kq+z8CB6ogjP5i7FxrFwPjpIxwOGjGBA44e10poXJuTAPdjTnCeXYaOngnSQjiYthbgeXKpN6ZN9+L5NjxStjrYtHlbl1ETAzeibVi3LQ4wbZ7U5pxh0CjlBOfZZehYriBlGb4spZZFXWRunz76Bgaw77CIAQx7CYd2fd4/MJG9gvmA+ggXgNHHoYVg9H97Byt89gvmEXalHcwrjJrJLHHW4VzuxzqoqBQ61kNHKQWmrfpaemParr/lHvXsC0u862mTBVi+PfsSNWvG9FBtMZffmf9QtzgxbdW+EWiUqq2fjh4dq6tj1PAN6Huwc6XNPfvDAoVz94IePn3s37mz2554sj/e/vc/6OmTcw9ENkGXuYA+HNKL2DvoRewygGMiBrAhwAFiLANTGHc0GsnoOdIDKT2RcUdjj2T0nEbDGf2sVxCz5Jn14H7MSszP89HRT13yRIVpy0PNr2ucmLa4uXBxGOZdd1WXOfIB05Kly9Slc25WD959k5o6ZXIYUtzfMG0+qJU/Bhql/Ox8uhIdfVIjfyxF6ihbK+zZ9IEB3BcYwH1bt3QFu3fr1m5DPUMzGZhGfchwUX3ohWD0//WCMPr/NoaN5qfo5srGnstuZq+XUoODLSr2HThYeDB6eG3RGTUOzS0yv269ugVmdETbSNWn3xGJOQzs3/nlwc7dnV+i5D2afTGQN82463r17av6B1uhcBxOANNW/VrhxLRFMSXNafMRpal0wSloAAAQKklEQVRp2++gUfKRT11i6hW8XMhxsPh3i7og87Ic6OilLJmDqquOOzduDBaK2d3FY8fqznnSccf769YFcwrjX5LDdCJGMnr9ni3BXMNIr2O3z2Rhmm3bYvPbG8xJ3JOwtcT+IOZdQZ4cEIBAtQl89dVXq10AolfOTVuVmJuatiqViVghAAEIQAACNgiIsXx/7drEpLavSjamNvLXaYip3J9gZG3mI4Z4d8Z9E/Pkn8Y1T5pJ14TsIl8m2Ey78UuDPcEXB0UfB/ftU/KlB8fhBDBt1a8VmLYUDePmtN14270qumDKui27ql8TenAJhgzoG5Z++659PZhC9YuOjtXXUEqAjuhYDwL1KAX3Yz10lFKMOWpAfQrTQ0vi3LTp3qsk3qwe2UNrYonFLnIOTYnF6nFZo2M9JEdHdKwHgXqUgvuxHjpKKZjTVn0tnZs26bmafuZUNe30k7utwihL6Z9/zhlq7pUXeUeVfdq8k8RqQDRKVnGWlhg6lobeasboaBVnaYmhY2norWaMjlZxlpoYpq1U/FYyd27a9EIkx08Yp75+/Xe7ls6PW0rfSgkdJMLqkQ4gF5gFjVKBcB0mjY4OYReYFToWCNdh0ujoEHaBWaFjgXAdJ41pcwy8gOxKM22y75kYOD0c0tfNtU2YY9pMKPl7Do2Sv9pkiQwds9Dy91x09FebLJGhYxZa/p6Ljv5qkzUyTFtWYv6d79y0yVDDk0+coG694WoV/d3XzbVNJMO0mVDy9xwaJX+1yRIZOmah5e+56OivNlkiQ8cstPw9Fx391SZrZJi2rMT8O9+5aWtEIL1t+ohuYu0fquSIMG1VUuvwWGmUqq2fjh4d0bEeBOpRCu5HdKwHgfqUAtNWfS1LN23VR6gUpq3aKvJyUW39MG310A8d0bFeBOpRGtrHeugopcC0VV9L56ZNL0Qic9o4IAABCEAAAhCAAAQgAAEIQKA5AUwbNQQCEIAABCAAAQhAAAIQgIDHBJybNp/3Y/NYJ0KDAAQgAAEIQAACEIAABHooAeembcnSZd32Z+uh3Ck2BCAAAQhAAAIQgAAEIAABIwLOTVt0tci4CPW+bUbRl3iS9Bi+tXxVGMEJE8erR+6fV2I0ZJ1GIIteV1xzu3r+5aXdkqxKvUzjUPXPs+gYLatsKfLooudUVVeorbpujfHn0THadsy+bKaae+VFdcNSufJk1fGcWXPV5vaOrnLyXPVfcvmi/dI5N/Ps9F+qMEJTvXjPqYigDWE6N23VxNQ9aqnsmzZv6zJq0nCNaBum7rvj2joUr3ZlyKqXvFgsXnhnF4cq7yFYJzGz6qjLvvDxZ9XfPfiz8EsWTFv5NSKrjvolZN51VykWsCpfPx1BVh2j+7JKGo3X+1MyItEEoiabZ6f/9SKLXrzn+K9nXITOTVvS6pF3/vBhteCxp7u9LPuKVCr7t2df0vUCIS+F35n/UCVi95VpkXG1qpfpN1dFloG0lcqrozxz5IWDb4v9qEVZdWQetB+6NUaRVces5/tZ6p4XFe1ftTTPq1fe66pFp/rRemPaxPjceNu9yvfhEnEVm8ru741gQ68qfaHgrxKtRZZXR3nh/8tLv6COnzAO09aaBFauzqOjmO624UO7DavjW38rcuROJI+OeoiybuMx47nxO72Q9xunuFvOLK9evOe0jN5JAt6YtqoMQcvTWDlRkkxiCbSqF0Oz/KhYeXSUZ8q6jVvCYct5GzI/Sl+fKLLqGHf/Nb7814dOdUqSVUcpmb4mWkrfv6StjiLFRcqzszi2RaScRy/ec4pQopg0nZg23YuWVoQqzFnI01illZvPiyPQil76WhY9KE4f05Sz6tg4ZDlPQ2YaG+eZE8iqY5JuScPszSPhzFYIZNVR8tLDlKdOmRxmLd/sz3/gUe9H17TCqQ7X8uyslopZ9eI9p1r6OjFtUSR1aGzjxuZXYWhntaqmvWjz6KW/aGAYlj0dWk0pi47NvijChLeqRGvXZ9FRv+w3fqFXh3akNYrlX51FR/1iGO1Zy/pyWX6Je2YE6FQt3bPoxXtOtbSVaJ2btuohOjzirKtm1aHMVS5Dml4yt0IOvW0DC8v4qXZWHaOlyNKQ+Vn6+kSVVUc5/81lK7sWeqrKUPr6KBZfkqw6itGedvqUrlWW0bEaNYRnZzV00lEm6cV7TrV0TIoW05ZTx6z70+TMhsssEWimV/RhFjfvQodQheG7lnB5m4ypjo0F4MXDL0mz6hg9XxYliW7J4VfJelY0WXWM7rWHjv7XlcZ99dDMb82a6cV7jt/amUZXimlrrFjRYJmYbCod50EAAhCAAAQgAAEIQAACPYGAc9PGRtQ9oVpRRghAAAIQgAAEIAABCEDAFgHnpo0J5LakIx0IQAACEIAABCAAAQhAoCcQwLT1BJUpIwQgAAEIQAACEIAABCBQWQLOTZsMjzz/nDPU3Csvqiw0AocABCAAAQhAAAIQgAAEIOCKgHPTxnLqrqQlHwhAAAIQgAAEIAABCECgDgScm7bokr9xAFk9sg7VijJAAAIQgAAEIAABCEAAArYIODdttgInHQhAAAIQgAAEIAABCEAAAj2BAKatJ6hMGSEAAQhAAAIQgAAEIACByhIoxbTJYiRvLV8VQpt33VVq1ozpSoZNTjt9irrvjmsrC5PAIQABCEAAAhCAAAQgAAEI2Cbg3LRFN9c+Z9Zc9e3Zl4Sm7c4fPqwWPPa0WrzwTttlJD0IQAACEIAABCAAAQhAAAKVJeDctEmP2oN336SmTpmsoqZNVpW88bZ7FQuRVLYuETgEIAABCEAAAhCAAAQgUAAB56ZNjNpdt37rMNNGT1sB6pIkBCAAAQhAAAIQgAAEIFB5As5N2/W33KOefWFJOAxS97QdP2GcunTOzWrmBWerW2+4uvJQKQAEIAABCEAAAhCAAAQgAAFbBJybNglcD4WMFmL2ZTPV3CsvslUu0oEABCAAAQhAAAIQgAAEIFALAqWYtlqQoxAQgAAEIAABCEAAAhCAAAQcEHBu2q645nb1/MtLD1twhCX/HahNFhCAAAQgAAEIQAACEIBA5Qg4N20yj+3iC889bCgkC5FUru4QMAQgAAEIQAACEIAABCDggIBz0yY9anpD7Wj5WPLfgdpkAQEIQAACEIAABCAAAQhUjoBz00ZPW+XqCAFDAAIVJSAjGOY/8Ohh0euFn+R5LIes5tt4yGdtw4epR+6fF36UlpZ8IdfsaBs+NMxHD5GPO1d/offFy29Uby1fddgXfPrLvRMmju+KqzEdkzimnzlVPbroua5L9crFWfI1KUdFqw1hQwACEICAhwScmzbd8OsNtoXJkqXLwiX/WUHSwxpCSBCAQCUJaFMRfdZq8/Xk4pe6TE/cfOLo1ixyjWlaGpQ2V3GjKiStTZu3JZouSUObp2mnT1H33XFtF3/992amLSpWszjiPsuSr0k5KllxCBoCEIAABLwk4Ny0CYW4Jf/jGncviREUBCAAgQoQEDNmsvdlo3nRX6JFn8mmadk0bSPahoWLVmnTqeMSI5dm+kziSDJtpvli2ipwExAiBCAAgRoRKMW01YgfRYEABCDgJQEZ3vihycd066lKClQMyJvLVobDF6W3SYxLtIcrS1rRL+Za6Wk7+cQJat3GLWrMyKPUrTdcraT3Tw75W5GmzTRfTJuX1Z6gIAABCNSWAKatttJSMAhAoCcTaBzRoOeUJTGJzgV79Zn7u52WNa204ZHSgxZ3ROe0iXmadvrJ6sbb7g23iJH4pNftuz/4ceGmzSRf5rT15LuLskMAAhBwT6AU0ybf2m5u74gtbePLgnsk5AgBCECgXgT00EJdqrhhk9popc0tzpJWqz1t0sMmPX9y6N6/LD1ceea0iVk0yTdLHPWqTZQGAhCAAATKIODctMUNvSmj4OQJAQhAoCcSkGGGsnJi4xdkcXPZ0vgkpZXW05Y2vFHaCW2e9OJV2gBmMUutmLa0fLPEkcaRzyEAAQhAAAJpBJybtqR92tIC5XMIQAACEDAjIAbsRz99MuwxajziVvCVc5JMW560bJo2iU1GZ+htCbKYpVZMW1q+WeIwU42zIAABCEAAAskEMG3UDghAAAI1IxAdwhjtUYuuwBhdaCTNtMmWLHKYpmXbtEXlyWKWWjVtzfLNEkfNqhfFgQAEIACBEgg4N20y7OX8c85Qc6+8qITikiUEIACBnkMgbqPppDlracMjs6SVZtpMFyKJ6ynMYpaS4tDDOnVNiG6urYdlNtaSxnxZiKTn3EeUFAIQgIAPBJybNmlEvzP/oa6hLj5AIAYIQAACEIAABCAAAQhAAAK+EnBu2uK+rY3CYfVIX6sKcUEAAhCAAAQgAAEIQAACZRBwbtrKKCR5QgACEIAABCAAAQhAAAIQqCoBTFtVlSNuCEAAAhCAAAQgAAEIQKBHECjFtOnJ4VHCcZuw9ggFKCQEIAABCEAAAhCAAAQgAIEmBJybtrg9gvSqZUmrmqEgBCAAAQhAAAIQgAAEIACBnkrAuWmTTVIvvvDcw5b8FzO34LGnWVWyp9ZEyg0BCEAAAhCAAAQgAAEIxBJwbtpk9ci4oZB6yCSrR1JTIQABCEAAAhCAAAQgAAEIfEDAuWmjp43qBwEIQAACEIAABCAAAQhAwJyAc9PGnDZzcTgTAhCAAAQgAAEIQAACEICAc9MmyFk9kooHAQhAAAIQgAAEIAABCEDAjEApps0sNM6CAAQgAAEIQAACEIAABCAAAeem7YprblfPv7xUNS44IguUTDt9irrvjmtRBQIQgAAEIAABCEAAAhCAAAQOEXBu2liIhLoHAQhAAAIQgAAEIAABCEDAnIBz08aS/+bicCYEIAABCEAAAhCAAAQgAAHnpo2eNiodBCAAAQhAAAIQgAAEIAABcwLOTRtL/puLw5kQgAAEIAABCEAAAhCAAAScmzZBzpL/VDwIQAACEIAABCAAAQhAAAJmBEoxbWahcRYEIAABCEAAAhCAAAQgAAEIYNqoAxCAAAQgAAEIQAACEIAABDwmgGnzWBxCgwAEIAABCEAAAhCAAAQggGmjDkAAAhCAAAQgAAEIQAACEPCYAKbNY3EIDQIQgAAEIAABCEAAAhCAAKaNOgABCEAAAhCAAAQgAAEIQMBjApg2j8UhNAhAAAIQgAAEIAABCEAAApg26gAEIAABCEAAAhCAAAQgAAGPCWDaPBaH0CAAAQhAAAIQgAAEIAABCGDaqAMQgAAEIAABCEAAAhCAAAQ8JoBp81gcQoMABCAAAQhAAAIQgAAEIIBpow5AAAIQgAAEIAABCEAAAhDwmACmzWNxCA0CEIAABCAAAQhAAAIQgACmjToAAQhAAAIQgAAEIAABCEDAYwKYNo/FITQIQAACEIAABCAAAQhAAAKYNuoABCAAAQhAAAIQgAAEIAABjwlg2jwWh9AgAAEIQAACEIAABCAAAQhg2qgDEIAABCAAAQhAAAIQgAAEPCaAafNYHEKDAAQgAAEIQAACEIAABCCAaaMOQAACEIAABCAAAQhAAAIQ8JjA/w8haawByXBg8QAAAABJRU5ErkJggg==",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = px.line(data_frame=dynamics.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"A_dot\"], \n",
" title=\"Changes in concentration of A with time (blue) , and changes in its rate of change (brown)\",\n",
" color_discrete_sequence = ['navy', 'brown'],\n",
" labels={\"value\":\"concentration (blue) /
concentration change per unit time (brown)\", \"variable\":\"Chemical\"})\n",
"fig.show()"
]
},
{
"cell_type": "markdown",
"id": "85d87078-8fc1-4166-95e1-343b546f9971",
"metadata": {},
"source": [
"### At t=0, [A]=10 and [A] has a high rate of change (70); \n",
"### as the system approaches equilibrium, [A] approaches a value of 24, and its rate of change decays to zero.\n",
"\n",
"The curves are jagged because of limitations of numerically estimating derivatives."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1f552123-2456-42fa-9fea-42582e096c0f",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}