Newer
Older
{
"cells": [
{
"cell_type": "markdown",
"source": [
"# Create plots for panels used in figure 3"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%% md\n"
}
}
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true,
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"import os\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from scipy.optimize import curve_fit\n",
"\n",
"import warnings\n",
"warnings.filterwarnings('ignore')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"outputs": [],
"source": [
"# folder to save all panels for figure\n",
"savefolder = r\"plots\\fig3\"\n",
"\n",
"# file containing the data for the controls\n",
"results_ctrl_file = r\"data\\shape_analysis\\histograms_HealthyControl_deformed_undeformed.txt\""
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"execution_count": 3,
"outputs": [],
"source": [
"#define a color seed for each patient\n",
"color_dict = {'VS': 'C0', 'VL': 'C1', 'RS': 'C2',\n",
" 'KM': 'C3', 'LM': 'C4'}"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"def asymptotic_exponential_growth(x, lambda_):\n",
" \"\"\"(Inverted) exponential growth function with maximum at 1 for x->infinity:\n",
" f(x) = 1 - exp(-lambda * x)\"\"\"\n",
" return 1 - np.exp(-lambda_ * x)\n",
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
"\n",
"def deformed_probability_curve(df, v_min=0, v_max=3, binsize=.25):\n",
" \"\"\"Compute the values for the shape probability diagram to find a cell\n",
" in a deformed state for velocities between v_min and v_max in the DataFrame df\n",
"\n",
" returns: *tuple* (deformed_bins, deformed_hist_normal)\n",
" - deformed_bins: *array* limits for the bin ranges of the histogram\n",
" - normalized counts for each velocity range\n",
" \"\"\"\n",
"\n",
" bins = int(v_max/binsize) #number of Bins in histogram\n",
" #find index of cells in a deformed state. Class definitions are:\n",
" #1-parachute, 2-slipper, 3-asym. parachute, 5-multilobe, 7-undefined deformed\n",
" #4-discocyte/undeformed, 6-tumbler\n",
" deformed_index = ((df['shape'] == 1)\n",
" | (df['shape'] == 2)\n",
" | (df['shape'] == 3)\n",
" | (df['shape'] == 5)\n",
" | (df['shape'] == 7))\n",
"\n",
" #create new column in df that is True for deformed state\n",
" df['deformed'] = False\n",
" df['deformed'][deformed_index] = True\n",
"\n",
" df_deformed = df[deformed_index]\n",
"\n",
" deformed_hist, deformed_bins = np.histogram(np.array(df_deformed['velocity']),\n",
" range = (v_min,v_max),\n",
" bins = bins)\n",
" #get the counts for all events to use for normalization\n",
" all_hist, all_bins = np.histogram(np.array(df['velocity']),\n",
" range = (v_min,v_max),\n",
" bins = bins)\n",
"\n",
" #normalize the deformed histogram\n",
" deformed_hist_normal = deformed_hist/all_hist\n",
"\n",
" return deformed_bins, deformed_hist_normal"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"outputs": [],
"source": [
"#define dict to store fit values\n",
"dict_fitvalues = {}\n",
"\n",
"def dict_fit_values_patient(patient, dict_fitvalues):\n",
" result_summary_folder = r\"data\\shape_analysis\\result_summaries\"\n",
"\n",
" v_min = 0.\n",
" v_max = 3.\n",
" binsize = 0.25\n",
"\n",
" # bounds of the parameters in the exponential growth function\n",
" fit_bounds=(0, np.inf)\n",
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
"\n",
" result_file = os.path.join(result_summary_folder, patient + \"_results_MCFM.tsv\")\n",
" df_results = pd.read_csv(result_file, sep='\\t')\n",
"\n",
" dates = np.unique(df_results['date'])\n",
" dates = np.sort(dates)\n",
" day0 = pd.to_datetime(dates[0])\n",
"\n",
" #create dataframes to save fit parameters\n",
" df_fit_all = pd.DataFrame()\n",
" df_fit_healthy = pd.DataFrame()\n",
" df_fit_unhealthy = pd.DataFrame()\n",
"\n",
" for num, date in enumerate(dates):\n",
" df_date = df_results[df_results['date']==date]\n",
" #create new Dataframe to work with, leave out skipped cells\n",
" df = df_date[df_date['shape'] != 0]\n",
"\n",
" healthy_index = df['health'] == 0\n",
" df_healthy = df[healthy_index]\n",
" unhealthy_index = df['health'] == 1\n",
" df_unhealthy = df[unhealthy_index]\n",
"\n",
" #calculate percentage of healthy cells in sample\n",
" percentage_healthy = len(df_healthy)/len(df)\n",
"\n",
" bins, deformed_curve = deformed_probability_curve(df, v_min=v_min, v_max=v_max, binsize=binsize)\n",
" bins_healthy, deformed_curve_healthy = deformed_probability_curve(df_healthy,\n",
" v_min=v_min, v_max=v_max, binsize=binsize)\n",
" bins_unhealthy, deformed_curve_unhealthy = deformed_probability_curve(df_unhealthy,\n",
"\n",
" bins_plot = bins[:-1]+binsize/2\n",
"\n",
" #exclude nan values before fitting\n",
" ind_nonnan_all = ~np.isnan(deformed_curve)\n",
" ind_nonnan_healthy = ~np.isnan(deformed_curve_healthy)\n",
" ind_nonnan_unhealthy = ~np.isnan(deformed_curve_unhealthy)\n",
"\n",
" x_all = bins_plot[ind_nonnan_all]\n",
" y_all = deformed_curve[ind_nonnan_all]\n",
" x_healthy = bins_plot[ind_nonnan_healthy]\n",
" y_healthy = deformed_curve_healthy[ind_nonnan_healthy]\n",
" x_unhealthy = bins_plot[ind_nonnan_unhealthy]\n",
" y_unhealthy = deformed_curve_unhealthy[ind_nonnan_unhealthy]\n",
"\n",
" popt_all_exp, pcov_all_exp = curve_fit(asymptotic_exponential_growth,\n",
" x_all, y_all,\n",
" bounds=fit_bounds\n",
" )\n",
" popt_healthy_exp, pcov_healthy_exp = curve_fit(asymptotic_exponential_growth,\n",
" x_healthy, y_healthy,\n",
" bounds=fit_bounds\n",
" )\n",
" popt_unhealthy_exp, pcov_unhealthy_exp = curve_fit(asymptotic_exponential_growth,\n",
" x_unhealthy, y_unhealthy,\n",
" bounds=fit_bounds\n",
" )\n",
" #days since treatment start\n",
" treatment_days = (pd.to_datetime(date) - day0).days\n",
"\n",
" df_fit_all = df_fit_all.append({'lambda': popt_all_exp[0], 'lambda_err': np.sqrt(pcov_all_exp[0,0]),\n",
" 'days': treatment_days,\n",
" 'percent healthy': percentage_healthy\n",
" },\n",
" df_fit_healthy = df_fit_healthy.append({'lambda': popt_healthy_exp[0], 'lambda_err': np.sqrt(pcov_healthy_exp[0,0]),\n",
" 'days': treatment_days\n",
" },\n",
" ignore_index=True)\n",
" df_fit_unhealthy = df_fit_unhealthy.append({'lambda': popt_unhealthy_exp[0], 'lambda_err': np.sqrt(pcov_unhealthy_exp[0,0]),\n",
" 'days': treatment_days\n",
" },\n",
" ignore_index=True)\n",
"\n",
" dict_fitvalues[patient] = {'all': df_fit_all, 'healthy': df_fit_healthy, 'unhealthy': df_fit_unhealthy}\n",
"\n",
" return dict_fitvalues"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "markdown",
"source": [
"Fill dictionary with patient data"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"patients = ['LM', 'KM']\n",
"labels = [\"P4\", \"P5\"]\n",
"\n",
"for patient in patients:\n",
" dict_fitvalues = dict_fit_values_patient(patient, dict_fitvalues)"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAwsAAAGoCAYAAAAJsXnTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAACiF0lEQVR4nOzdd3xT5f4H8M/Japu26aALWmjLaMveZQhy2coSVEABURRFEVAceEXFq/cHOK4DBARlKENkIyiCDFGQLbJXWYWWlg7objPP74/QQEjSNmmapu3n/Xrxsn3Oc875Pk09zTfPEkRRFEFERERERHQfSWUHQERERERE7onJAhERERERWcVkgYiIiIiIrGKyQEREREREVjFZICIiIiIiq5gsEBERERGRVUwWiIiIiIjIKiYLRERERERkFZMFclurV69GbGwsOnTogBkzZsBgMFR2SERE1R6fvRUrKSkJsbGx+Pe//13ZoRCVCZMFclvh4eF49tlnodPp8P333+Ovv/5y2b1jY2MRGxuL7t27Q61WW63To0cPxMbGQqfTuSyu6oR/MIncU2U+e+/19ddfm57Fly9frpQYHFGdn23VuW1kG5MFclsPPPAA3nrrLbzwwgsAgOPHj7s8hhs3buD77793+X2JiCqLOzx7RVHEmjVrIAgCAGDNmjUuj4GIjJgskNtr2bIlAODcuXMuva+fnx/8/f3xzTff4NatWy69NxFRZausZy8A7N27F8nJyRgyZAiCg4OxYcMGaDQal8dBREwWqAqIiIgAAJw/f96l9/X09MRLL72E3NxczJ07165zt2zZgpEjR6Jt27Zo0aIFBg4ciAULFlj8sbu3S/fKlSt49dVX0alTJ8TFxeHgwYMWda5du4ZJkyahQ4cOaN26NZ599llcuHABAHDr1i2899576NKlC5o3b47HHnsMBw4cKFd8xU6cOIFXX30VXbt2RbNmzdClSxc8++yz2LJlCwDg0qVLiI2NxVNPPWXzZzJw4EA0bdoUaWlp+Oqrr9CzZ08AwIYNG0xDDWJjY7F+/Xqz844fP45JkybhgQceQLNmzdCtWzdMmzYNN2/etLjHzp078fTTT6NLly6mOEeNGoUVK1bYjIuIrKusZy9wtydh6NChGDhwIG7fvo0dO3aUeE5pz6li69evx8SJE9GzZ0+0aNECbdq0wRNPPIGffvrJ4pr3Pn+TkpIwefJkdOjQAc2bN8ejjz6K33//3ay+Pc+24uuXds1i9j63y/IzsefZPW3aND63ayhBFEWxsoMgKsnUqVOxbt06CIKAv//+G97e3hV+z9jYWISGhmLnzp3o168fUlJS8PPPPyMqKspUp0ePHkhOTsbp06chk8lM5Z9//jkWLFiAgIAA9O3bF0qlEnv27EFCQgLi4+OxaNEiKBQKAMY/FD179kTbtm2RkJCAqKgotG7dGkVFRRg+fDiaNm1qqhMfH48LFy6gQYMGaNGiBZKTk7F9+3b4+flh1apVGDt2LHx8fNC+fXtkZ2djy5YtEAQB27ZtQ506dRyKDzBOdvzPf/4DiUSCHj16ICoqCpmZmTh16hRUKhWWLVsGABg9ejQOHjyIrVu3Ijo62uznefToUTz55JPo27cvZs+ejYMHD2LHjh1YunQp4uLi0KtXL1PdXr16oXHjxgCAtWvXYtq0aVAoFOjRowfCwsKQmJiIXbt2oVatWli9erWpbatWrcK0adMQHByM7t27IyAgAJmZmTh//jxEUcS6deuc9NtBVDNUxrMXADIyMvCvf/0L4eHh2LZtGy5cuICBAweiY8eONoeFlvU5BQAtWrRAw4YNERMTg+DgYGRlZeGPP/7AzZs38dJLL+HVV1811b33+Xvx4kXUrVsXrVq1Mj1jdTodlixZgo4dOwJAmZ5t9l4TsP+5bc/PpKzP7pEjR/K5XVOJRG5sz549YkxMjOnf0aNHXXLfmJgYsWvXrqIoiuKvv/4qxsTEiC+//LJZne7du4sxMTGiVqs1lR09elSMiYkRu3XrJqalpZnKtVqtOG7cODEmJkb8+uuvTeXXr183te2zzz6zGsu9debNm2d2bM6cOWJMTIzYvn178b333hP1er3p2IYNG8SYmBhx+vTpDseXkJAgNmnSRGzfvr144cIFi9hSUlJMXxf/nD766COLem+99ZYYExMj7t2716Jdb731ltV2X758WWzatKnYq1cvMTU11ezYvn37xLi4OHH8+PGmsiFDhohNmzYVMzIyLK6VmZlp9R5EZF1lPXtFURQXLFggxsTEiPPnzzeVDRkyRIyNjRWvXr1qUd+e55QoimJiYqJFHbVaLY4ePVps0qSJ2fPm3ufvV199ZXbOn3/+KcbExIhjx441Ky/t2WbvNe19btv7M7Hn2c3nds3EYUjktvLy8vDee+9BpVJh0KBBACqnO/yhhx5C69atsX37dhw5cqTEusWfgrz00ksIDg42lctkMrz11luQSCRWJ+oFBQVhwoQJJV47PDzcNOGw2JAhQwAAGo0GU6ZMgURy93/pgQMHQiaT4ezZsw7Ht3LlSuh0OowfPx6NGjWyiCksLMz0da9evRAcHIz169ebdYvn5OTg119/Rb169dC5c+cS23ivlStXQqvV4p133kFoaKjZsU6dOqFHjx74/fffkZeXZ9aOe3t5igUGBpb5vkQ1XWU+e8U7E5slEgkGDx5sKn/00UchiiJWr15tcY49zykAqFevnkUdhUKBkSNHQqfTYf/+/RbHw8PD8dJLL5mVde3aFXXq1MGJEyfK2jyHrunI35XKenbzuV09Wb46RG7i008/xY0bN/DRRx9BLpdj06ZNdk+0++qrryzKhgwZYhqLW1ZvvfUWnnjiCXzyySdW/1gVO3PmDACYdR8Xi46ORlhYGJKSkpCbmwtfX1/Tsbi4OIsu5Ps1btwYUqnUrCwkJAQAEBUVBR8fH7NjUqkUtWrVMhsjam98x44dA2D8A1YamUyGYcOGYe7cudi2bRsGDhwIAPjpp59QVFSEYcOGmVY2KYviex86dAgnT560OJ6ZmQm9Xo+rV6+iWbNmGDhwID766CP0798f/fr1Q3x8PNq0acM/OER2qsxn74EDB3Dt2jV06dLF7M3mgAED8NFHH2HDhg149dVXIZfLTcfseU4BxlXuvv32W+zfvx8pKSkoKioyO25tXH1cXJzF8xcwvukuvr+9ynpNR/6uVNazm8/t6onJArmlAwcOYNWqVfjXv/6FIUOG4NKlSwDs/3Rrzpw5FmXx8fF2JwutW7dG3759sW3bNmzZsgX9+vWzWi83NxcAzD79uVdwcDBu3LiBnJwcs2QhKCio1BjurV+s+NMYa8eKj9+7D4S98RXXv/8TIluGDx+O+fPnY9WqVaY/OKtXr4ZcLsdjjz1WpmsUy8rKAgAsWrSoxHoFBQUAgDFjxiAgIAA//PADli1bhu+//x6CIKB9+/aYMmUKmjdvbtf9iWqiyn72rlq1CoCxJ+Fe/v7+6NGjB7Zt24adO3fioYceMh2z5zl1/fp1PP7448jJyUG7du3QpUsX+Pj4QCqVIjk52eaqSyqVyur1ZDKZw5vWlfWajvxdqaxnN5/b1ROTBXI7BQUFePfdd+Hr64sPP/wQgPGTc09PT1y4cAGiKJb5Uw5ndp2//vrr2LVrFz777DOziV33Kn5QZ2RkWO3qTk9PN6tXzJ5P3MvD3viK/3vz5k2LngtrQkND0aNHD2zfvh2XLl1CdnY2Lly4gH79+tn9SVHx/f7+++8y3RsABg8ejMGDByMnJwf//PMPtm/fjnXr1mHs2LH49ddf+WkVUQkq+9l769Yt04pHr732Gl577TWr9VavXm2WLNjznFqyZAmysrIwc+ZMi4Tk559/xoYNG+yOu6I58nelsp7dfG5XT5yzQG7n888/x/Xr183GPEqlUjRq1Ah5eXlISkqqlLgiIyPx5JNPIikpCcuXL7dap3g1iOJlT++VmJiI1NRURERE2PxEqaLZG1+rVq0AAHv27CnzPUaMGAHA+Alh8ZCt4cOHW9Qr7n7X6/VWr1N879LmiVijUqnQrVs3/N///R+GDBmCrKwsHD582O7rENUklf3s3bBhA7RaLZo2bYrHH3/c6r/AwEDs27cP169fN51nz3MqMTERANCnTx+LY4cOHXJKO0p7ttnLkb8rFfXs5nO7ZmKyQG7lyJEjWLFiBbp37242uQ0wju8EKmeSc7GXX34ZKpUK8+fPR35+vsXx4u7ar7/+2mwjN71ej48//hgGgwGPP/64y+K9n73xPfnkk5DJZJg3bx4uXrxocb3U1FSLsk6dOiEqKgobN27Er7/+iujoaKtjbVUqFQRBQEpKitVYR44cCblcjpkzZ+LKlSsWxzUajdkfpAMHDkC0shJ0cTs9PT2t3oeI3OPZW/wG9T//+Q+mT59u9d/w4cMhiiLWrl1rOs+e51R4eDgAy8Rgz549Ztcsj9KebfZy5O9KRT27+dyumTgMidxGUVER3nnnHbMu8HsVf7py7tw5m8OAKpq/vz/GjRuHTz/91OrxNm3aYOzYsVi4cCEGDBiAvn37wsvLC3v27MGFCxfQtm1bPPfccy6O2vH4GjZsiPfffx/vv/8+Bg8ejJ49eyIqKgq3b9/GqVOn4O3tbbZ+OWAcUvXkk09i5syZAKz3KgCAt7c3WrZsiSNHjuD1119HdHS0aT3wuLg4NGjQANOnT8c777yDAQMGoGvXroiKioJOp8ONGzfw999/IyAgAFu3bgUATJgwAUqlEq1atUJ4eDhEUcSRI0dw8uRJNG3a1K6VmIhqEnd49h48eBBXr15FTEwMWrRoYbPe448/jvnz52PdunWYOHEiZDKZXc+pESNGYP369XjllVfQt29fhISEICEhAXv27MHDDz9ssYGbI0p7ttnLkb8rFfXs5nO7ZmKyQG5j1qxZuHr1Kj7++GPTKj/3io2NBQDTjsWVZfTo0fjhhx+QnJxs9fibb76JJk2aYPny5di4cSN0Oh3q1auHV199Fc8++2ypqx5VNHvjGzZsGBo1aoTFixfj0KFD2LlzJ/z9/REbG4uhQ4davceQIUPw8ccfQy6XW3xKea9PPvkEM2fOxN69e/HLL79AFEWEhYWZ/qA+8sgjiIuLw5IlS3Dw4EHs3bsXSqUSISEh6Nu3Lx5++GHTtV5//XXs3bsXp0+fxh9//AEPDw/UqVMHb7zxBp588kmz1VOI6C53ePYW9yrYeqYUi4iIQOfOnfHXX3/h999/R+/evQGU/TkVFxeHpUuX4ssvv8Qff/wBnU6HuLg4zJkzB76+vk5JFoDSn232cuTvSkU9u/ncrnm4gzMROd3BgwcxevRoDBo0yGYvDBERuRc+u8kazlkgIqdbuHAhAGDUqFGVHAkREZUVn91kDYchEZFTnD9/Hrt378bp06fx559/onv37mjZsmVlh0VERCXgs5tKw2SBiJzi9OnT+Pzzz+Hj44OHHnoI77//fmWHREREpeCzm0rDOQtERERERGQVexbuMBgM0Osdz5ukUqFc51cVbGf1wnZWL1WlnXK5tMx1+Wwum5rQzprQRoDtrG6qUjttPZuZLNyh14vIyipw+Hx/f2W5zq8q2M7qhe2sXqpKO4ODfctcl8/msqkJ7awJbQTYzuqmKrXT1rOZqyEREREREZFVTBaIiIiIiMgqJgtERERERGQVkwUiIiIiIrKKyQIREREREVnFZIGIiIiIiKxiskBERERERFYxWSAiIiIiIquYLBARERERkVVMFoiIiIiIyComC0REREREZBWTBSIiIiIiskpW2QGQ85w/f8aiLDa2SSVEQkRERETVAZOFauTatasWZUwWiIiIiMhRHIZERERERERWMVkgIiIiIiKrmCwQEREREZFVTBaIiIiIiMgqJgtERERERGSVW62GtHXrVvzyyy84deoUMjMzUbt2bfTp0wfjxo2Dj49PiefGxsZaLd+4cSMaN25cEeESEREREVVrbpUsLF68GLVr18bkyZMRFhaGM2fOYM6cOTh48CB+/PFHSCQld4Q8+uijGD58uFlZVFRUBUZMRERERFR9uVWyMH/+fAQGBpq+j4+Ph7+/P9566y0cPHgQnTp1KvH8kJAQtGrVqoKjJCIiIiKqGdxqzsK9iUKx5s2bAwBu3rzp6nCIiIiIiGo0t0oWrDl06BAAoEGDBqXW/fHHH9GsWTO0bNkSo0ePxpEjRyo6PCIiIiKiaksQRVGs7CBsuXnzJgYPHoy4uDgsWbKkxLpvvvkmunfvjpCQECQnJ2PRokW4dOkSFi9ejA4dOpR6L4PBAL3e8R+FVCqBXm9w+Hxn+OmnjRZljzwy2Kn3cId2ugLbWb2wne5FLpeWuW51eDa7Qk1oZ01oI8B2VjdVqZ22ns1umyzk5+fjqaeeQlpaGtauXYuwsDC7zs/Ly8PAgQMRFhaGlStXllpfq9UjK6vA0XDh768s1/nOsH37Fouy3r37OfUe7tBOV2A7qxe2070EB/uWuW51eDa7Qk1oZ01oI8B2VjdVqZ22ns1uOQypqKgIL774IpKSkrBo0SK7EwUA8PHxQbdu3XDy5MkKiJCIiIiIqPpzq9WQAECr1WLSpEk4deoUlixZYnP/hLISBMFJkRERERER1SxulSwYDAa88cYbOHDgABYsWFCuZVDz8vKwe/dutGjRwnkBEhERERHVIG6VLHzwwQfYunUrXnzxRXh5eeHYsWOmY2FhYQgLC0NycjJ69+6N8ePHY8KECQCARYsW4cqVK+jQoQNCQkJw48YNLF68GBkZGfjf//5XSa0hIiIiIqra3CpZ2LNnDwDj5mzz5883OzZhwgRMnDgRoihCr9fj3nnZ0dHR2L59O7Zv3468vDz4+PigdevWmD59OnsWiIiIiIgc5FbJwq5du0qtExERgfPnz5uV9ejRAz169KiosIiIiIiIaiS3XA2J7HP+r1SsmXYYhUleZuWFSV5YM+0wzv+VWkmREREREVFV5lY9C2S/83+l4vjW6wCAosveAACviEIUJnmZvi8+HvuA/UvQEhEREVHNxWShCrs3UTASUHTZG7rbcuhuKwDcXTaWCQMRERER2YvDkKqwE9uuWykVLBKFkusTEREREVnHZKEKa9G3ro0j1jeia/GQrfpERERERJY4DKkKKx5SZD4UybqWD9dFbOe7Q5DS0m5a1AkJCXVecOVw/vwZi7LY2CaVEAkRERFRzcZkoYqLfSAMNy/lIDUh22adsBg/s0QBANLT3TdZuHbtqkUZkwUiIiIi1+MwpCru/F+pJSYKAJB6IRvn93H5VCIiIiKyD5OFKsxyNSTbjv96nQkDEREREdmFyUIVZu/qRifKmFgQEREREQFMFqo026shOac+EREREdVsTBaqsNgHwlC/fbCVI6JFSUh9X27IRkRERER2YbJQxem1BosyiZfeoiwrtRA6K3WJiIiIiGxhslCFadV6JJ+5bVHuGVEICOa9C5oCHa4dz3RVaERERERUDTBZqMKSz9yGTmPeWyDIDFCEFkERrLaon7D/JkTRcogSEREREZE1TBaqsKvHMizK5MFqCBLAI7zQ4lh2WiHSruS6IjQiIiIiqgaYLFRR+Vlqq2/8PUKLAAAyXx1kKq3F8YR9ljs3ExERERFZw2Shiko8lmmx6JHESwepr870vUd4gcV5Ny5kIe9WUUWHR0RERETVAJOFKkgURatDkBQhagjC3e/lQRoo/RRmdfxvXUDeU49Cfv6cWbn8/DncenwQNEePVEjMZVGwagUyunVE8P59ZuXB+/cho1tHFKxaUUmREREREdVMTBaqoMzr+cjLtJzArAg17zEQBKBhhxDT9/63L6Dlya8hy8mA/5zZpoRBfv4cAubOhuFmKnKmvFYpCUPBqhUomDMLMBgQvv03BB/YD8CYKIRv/w0wGFAwZxYTBiIiIiIXYrJQBVnrVQiJ9oXU03Ifhei2wZDKJaZEQWrQAAAkWg0C5s6GctuvCJg7G4LGWA51kcsTBlOicIcAIPy3baj/w3KEb/8Nwr11mTAQERERuYyssgMg++i1Blw/ecuiPKp1EBIyLluUeyhliGxVC6Gzl5kShWKCRgOfzT9B0OnMT1IXIff9d+AzZSqg1wMGPUS9HtDrkeMhRVFuoel76PXmXxvufm1x7J6v772m5s/dFnELAFQXL5olCsUK5n0F5fCRdvzUiIiIiMgRTBaqmBvns6AtMt+hWaaQILxJABL+tH5Oo46hOPjbU2Y9C8UsEoU7xKzbyJ36pkV5nmNhO8RaogAAypdfcWEURERERDUXhyFVMVf/sRyCFN4kAHIPqc1z/EK84P1AB2QMexvw8KjI8Cqcx2PDoBz2ZGWHQURERFQjsGehCinK0yL1YrZFeVSroFLP7fxEAwhCQ+QZLqBo9cqKCM8l1OtWQ0y7CeWLEyCrF1nZ4RARERFVa+xZqEISj2dCvG8Os9JPgZBo31LPFQQBmr8Po2jNqgqKznU0e/5A1ugnkPf5JzDctpy/QURERETOwZ6FKsTaEKTIlrUgSGyN7r9Lc/QIct58FRbZhjUSCaSxTSCtFQhIpYBUCkEiAaRSKLw8oNHD9D2kUghS2Z2vJXe+lwJ3yspST71vLzRbNtv3w9DrUbRhLdRbt8Br5FPwGj4SgqenfdcgIiIiohIxWagibqcUIPtmoUV5ZKtaZTo/b/oHgFZrUS7CykRigwHirQyovllsUd/fX4msLMudocsjd9rbVsutxnZ/ncICFCxcgKKN66F87gV4PDzAmIQQERERUblxGFIVYa1XoVZdb6iCvcp0vqxVG6vlhZ0egKgw3+UZHp7wmTrN7hgdpRw/0aJMBJDTsBHEMl7DkJGOvI+nI+vZUdAc2AdRLOuZRERERGQLk4UqwKA34NqJTIvyyDJMbAYA/Y1kaHbvtCjXRNdHzlPPIHn4BBjkdxIGD0+oPvkcijbtyhWzPZTDR0I54e5yqCKA5D59cXnESCT37mOWMMg7dIag9LZ5Lf3lS8h581XkvPoydHd2qCYiIiIixzBZqAJSL+ZAnW++H4JEJqBe88AynZ8/dxagMd9fQZRIkNjtaST8osGF6w1wrtNLkISGuTxRKGZKGCQSJPfpi/SOnQAA6Z06I7l3H0AigXLCK/D735cI+HEdPB8dapz/YIP26BFkjR2Nop9/clUTiIiIiKodJgtVgLUhSHVi/aHwKn3KiebwQas7JF+v2xPXrwZBm2/8PlUSA8xaWSmJQjHl8JEI+uOAKVEolt6pM4L+OGDatVkSEAifyW8iYOmPUHTrbvuCnp6Qd+xckSETERERVWuc4Ozm1AU63DiXZVEe1dpyCFK9elHmBTod8mdOt6gn1ArCjWYPA/nm5Qn7b6LD4/XLEa1rSetFQvV/H0N74jjyv54N3amTZse9ho+ENCi4kqIjIiIiqvoEkTNBAQC3snLw5fdL0a5pc5y7chl5Bfno1r4D/jh8EBFhteGpUODitUR0aNEKx8+fhU6nR8eWrbD36BFEhUdgUI9umL1sBbq0aYcDx49BJpOiZWxjHDxxDA3rRaJIo0FSaorpmj5Kb8RF18eR0ycRF90AWbk5SM1INx3391UhKjwC5/enQJVa2yxWvVQHtM9AWEgQTiVcQKu4JrianISs3BzT+WFBwWh07B9EbLYchrO/Zy/khj8A2bUQs3JREFF/iBIHzv6NqPAIAMDV5CSzNo0f8QQ+X/J9udp07NwZNGsUg9SMDGTcvmU6HhQQiLCgIJw+9jcCVX7IKyyARqtFaK0gpBapERYUDH9fFc5duWT5Oh06gJa3b6P+jt/gmZkJna8vfn3qaRRJpGavk7U2WXud3nhuDP63aInT2lTS62SzTWX83Strm6y9Tq88/RRW/bK1WrXJ2us0fuQT2Pf3iWrVJmuv02N9e+HcpUS3b9OgXt3K/GzOvJ2F/y1aglaxjZFw7SryCwvxQKu2+OvY36gTHAIPhQJXkpPQtkkznLp4ATq9Hu2aNMfBk8dQN6w2Hn+4D75Y8j06NG+FI2dOQiaVolnDGPx95hSiwyOg1mhwIz3NdE1vLy80qheFY+fPolG9KGTn5SLtVqbpuMrHB/XC6uDUxQuIi26AtFuZuJWdZToe6OePkMBaOHflEpo1jMG11BvIycszHQ8JrAU/H18kXLvqcJsA4HpqilmbJj39FD79dlG1atP9r9OQvr1w7NT5atUma6/TA+1b47c/91WrNll7nVo1i8WyjZuqVZusvU59H+yMWd8vqxJtGj7wIavPYSYLd+QXFuFaUprD50fVDcXV6zedGJHRkR+uIydFbVZWt60fGv2rlE/Ms7KAcWOAgvuWOW3cBPj4cyRcuIDk3yQwaMwXJ43qFID6nW0vx1pR7bzXgX1/WJR17FzGNxc6HbD1F0DpDfToVXLd3buA4GCgaXOLQ65opztgO6uXqtLOxo3qlblubl4BLl5JcvhesQ3q4fylaw6fX1XUhHbWhDYCbGd1U5Xa2bp5jNVyDkNyY/m3NBaJAgCENVGVfvLSJZaJgiAAL4wHBAESKeATKSInwTxZSD6eg6j4QEhkpW/05pZkMmDAI6XXy84Gvv7K+DPq0Al4+lmgbtnfwBARERHVBJzg7MZST+dalPkEK+Ab4lHyiRfOAzu2WZb3eRho2Mj0rW+0CAjmHUvaAj1unre8b7Wz+oe7ydTB/cCEccC82cDt25UbFxEREZEbYbLgpkSDiNQzlm/aw5qW0qtgMADfzAPuH13m7QM89bRZkcwLUNaxHIWWdDS7em9qlnID2PKzeZnBAPz6i3Ho1o8rYCi03C2biIiIqKZhsuCmbl8vhDrPfG8FQQDC4nxKPvH3nYC1zchGjgb8/C2KVfUtk4LcNDWyk4vsCbdq2brFOLfBmsJCYMVSJA8aBGz7FdDrXRsbERERkRthsuCmrPUqBEYrofAuYZpJQT7w3SLL8nqRQL8BVk/xCAQU/pYJw/V/ssoaatUzegzw6htAkO0dsPXp6cCcL4FJLwFHDln21BARERHVAEwW3JBOY0DahTyL8tqlTWz+8Qcgy8qY+xfGl7jbsaqB5RvhjIR8FOVoS421SpJKgZ69gfmLjYmDl9J23WuJwAfvAe/+G7iY4LoYiYiIiNwAkwU3lH4hDwad+Rt4mYcEtRqU8Kb2+jVg0wbL8ge6Ai1blXg/ZR0RUg/z+4kikHQsu6whV00eHsDQJ4BvlxhXUCohocKJY8DkCcBnHwNp7r80JREREZEzMFlwQylWhiCFxvlAKrPxcokisHC+5fh6hQJ49vlS7ydIAJ9oy96FGydzoNcayhRzlebnD4wbD8z71phclWT3LmDcc8Dib4G8GrBqFBEREdVo3GfBzRRma5F13XIlnhL3Vjh8EDj6t2X548OBkNAy3dc3SkRuggCD/m7SoCsyIPVMLsJb+pXpGs4SVjvcpfczqRMO/Ptd4NwZeCz/Durjx63X02mBDWuBzAzgzbddGyMRERGRCzFZcDPWJjYrA+RQ1baxt4JGA3w737I8JBR4dKjN+wQEWu7SrI/TI+W+vR2S/slGnRYqCILrNmmLim7osntZFdcEYd99h8TV64HvFwM3ki3rSCTA8BGuj42IiIjIhcqcLMyZM6dcNxo8eDAiIiLKdY3qThRt7a3ga/vN+k/rgdQUy/LnXjCOybchMNByJSB5G7VFspCfqcHtxEIERpUwX6IaEgQB6NwFiO8IbNsCrFxu3PW5WO++xlWmiIiIiKoxu5IFQRAc2qxLEAS0bduWyUIpsm8UoTDLcgWisMa+1k/ISAdW/WBZ3rIV0OkBu+/vG+IB/whPZCXd3WPBO0gBETV42VCZDOg/COjeE1i3Bti4HhAAjHiqsiMjIiIiqnB2DUN6++230bNnT7tukJ2djUcffdSuc2oqa70KAfW84KmSWz9hyUJArTYvk0iA518y7uDmgLpt/JGVlIqgBt6IaOOHgLpeLh2C5LaU3sBTzwAP9zcuoWplGJeZ33cCZ04Zk4qAQJeESERERORsdiULAQEBCA+3b/KpUlmzhq84Sq81IO285d4KYU1s9CqcPgn8uduyfMAgIDLK4TiCGnij43ORUPrbSFBquqBg47+SqNXA0sVARoZx9aRHhwKDHwO8vFwTIxEREZGTlDlZWLVqFerVq2f3DVQqFVatWoUGDRrYfW5NknEpHzq1+TKlUrmA4EY+lpX1emDBPMtylR/wZPmGxwgSgYlCeW3aaEwUAKCoCPhhGfDrL8DIp4BefUvez8EN3LqVYVFmbY4LERERVX9lThZatmzp0A2kUmmZz926dSt++eUXnDp1CpmZmahduzb69OmDcePGwcfHypvme6jVanz55ZfYvHkzcnJy0LhxY7zxxhto3769Q3G7mrUhSMExPpAprOyt8NuvwJXLluWjxwCl/JyogmVnAWt/tCy/fQuYMwv4aQPwzHNA+w4ODxWraLdvZVqUMVkgIiKqmdxqU7bFixdDIpFg8uTJWLhwIZ588kmsXLkSzz77LAyGkjcHmzp1KtasWYNJkyZhwYIFCA4OxnPPPYezZ8+6KHrHqfN0yLxaYFFe29oQpNwcYNl3luUNGwG9+jg/OLKPtSTuXtevAf99H3hnCpBwwTUxERERETnIrfZZmD9/PgID704GjY+Ph7+/P9566y0cPHgQnTp1snreuXPn8PPPP2PGjBl47LHHAADt27dH//79MWvWLMyfb2UfAjdy82wu7l9wyFMlg39dK2PcVywFcq3sHPzCS24/vKVGaNUG+OY7YPUPwJafAZ3Oer2TJ4DXJgIP/svYIxQa5sooiYiIiMqkXD0LGo3G7tWRSnJvolCsefPmAICbN2/aPG/nzp2Qy+Xo16+fqUwmk6F///7Yu3cvNBqN02J0NlEUkWJtb4UmVvZWuHLZOPb9ft17Ao2bVlCE5rLTLXeXpvv4+RlXpJr3LfBA15Lr/rkbeHEssOgbIM9KEkhERERUico9DCk52crutk506NAhAChxgvTFixcRHh4Or/tWm2nYsCG0Wi0SExMrNMbyyEtTIz/DMpmxWAVJFIFvvgbuH47l5WUcA1+BDAYRaRfy8PePSVg3/Sjy0tWln0RA7TrAv98FPv2y5GROpwU2rgOefwbYsBbQum9yS0RERDVLqcOQSuo5EEWxQtfgv3nzJmbPno3OnTubehisyc7Ohp+fn0W5v7+/6XhpFHIZouqGOhyrh0Lu0PkHDluOcQ+J9kWTFnXNyvK3bUP6qRMWdQPGjYNfyyZ237esEg6l4eiv15F/+26CkHVBjWZt7F8Zqypx9PW0qm4oxF7dUPD777g9axZ0tpLXvDxg8beQbf0F/hMnwrtvXwiSip1WZK2dWZmWO4I77WdRSZz6erqx6thOTw85Yhs4/rzx8FCU6/yqoia0sya0EWA7q5vq0M5Sk4Vbt27htddeQ+3atS2OabVavPbaaxUSWH5+Pl566SVIpVLMnDmzQu5xL41Wh2tJaQ6fH1U3FFev2x4qZY1BLyLhsOU9Axp4ml+rqAj49FPLC4RH4PaDvXDbzvva4+bNbLNEAQAuHklHSGtvKJTVd46EI69nqRo1Bb6cZ1zNauVyICvLajXdjRvIWLQEGU1aGTfZq0DW2pl5O8eintN/Fi5WIa+nG6oq7WzcqOx/OIvUWly8kuTwvWIb1MP5S9ccPr+qqAntrAltBNjO6qYqtbN18xir5aUmC40bN0atWrXQq1cvi2MajQaiKFo5q3yKiorw4osvIikpCcuWLUNYWMmTP1UqldXhUFl33oxZ63VwB5lXCqAt1JuVSaQCQmLvW/507aq76/bfa+yLgLxi90So3dQXl/dmmu0BYdCJuHEyG1EduDOx3WQyoN9A4F89gfVrgA3rAI2VYV3PPl/hiQIRERFRaUp9N/LUU08hICDA6jGZTOb0T/21Wi0mTZqEU6dO4ZtvvkFsbGyp5zRs2BDJyckoLDSffHvp0iXI5XJERkY6NUZnST1j+QluUANvyD3v+cQ+NcX4pvJ+7TsA7Sp+DwmpXII6zVUW5cnHsmHQOz9RrDGUSmDU08A3i4HeD5knBvEdgeYtKi82IiIiojtKTRYefvhhm0uWSiQSDBkyxGnBGAwGvPHGGzhw4ADmzZuHVq1alem8Hj16QKvVYuvWraYynU6HLVu2oEuXLlAoFE6L0Vm0hXpkXMq3KA9ret/E5kXfAFqteZlMDowdV4HRmQtv7QfcNzVFnadHekKey2KotmoFAZMmA7PmAW3bG5OG0iasi6JxaBoRERFRBbN7nMPhw4eh1+tLr+iADz74AFu3bsWYMWPg5eWFY8eOmf6lpqYCMK6+1KRJE8yZM8d0XpMmTdCvXz/MmDEDa9aswf79+/Haa68hKSkJEydOrJBYy+vmuVyI9y1spPCWIjBKebfg6N/AgX2WJw9+FKgTXrEB3sNLJUdwQ2+L8utHs1wWQ7UXFQ385/+Aud8AdUsZz/3P38aVk379Baig/xeJiIiIAAc2ZRs9ejT2799vWmnImfbs2QPAuDnb/RupTZgwARMnToQoitDr9RZzJWbOnIkvvvgCX375JXJychAXF4eFCxeiaVPX7D9gL2t7K4TG+UIiufMRvk4HfPu15YmBtYBhT1ZwdJYi2vgjPcG8JyQnRY2clCKoanu6PJ5qK6Juycf1emDJQiDrNjBvNrB5o7Enon0HoAJXJiMiIqKaye5koSImNBfbtWtXqXUiIiJw/vx5i3JPT0+8/fbbePvttysiNKfKz9QgN9VyUmvte4cg/bwJSLpuefKYsca9FVzMP9wTPsEK5KWb7wFw/WgWmvbn7sMu8/tO4OqVu99fvwb8932gWQvj70ZM6XN8iIiIiMqKy61UgpTTlhObfYIV8An2MH5z+zawcpnliY2bAN26V3B01gmCgLpt/C3K0y7kQZ2nc31ANVFREbD8e+vHTp0AXp8EfDoTuDNkj4iIiKi8mCy4mGgQcfOs5RCk2k3vWXFo2RKgoMC8giAAL4yv1KEmIXE+8PQxX6pVNADJx0vf9I6cQF0ENCllWN2fu4GXxgKLFgC5lkkpERERkT2YLLjY7WuFUOeZT0oVJEBo4zt7K1w4B2zfZnli34eBho1cEKFtUpkEcZ0td4dNPp4Nvc5g5QxyKj9/YMpU4H+zgKbNbNfTaYGN64HnxxiX3dVobNclIiIiKoHdyYLASZTlkmJlb4VaUUoolDLAYAAWzLM8ydsHGPVMxQdXBnEP1IZw32+NttCAm2e5jKrLxMYBM/8HvPufkidE5+cZJ0O/NBbYvcv4+0VERERkB7uThYqc4Fzd6dQGixWFACCseAjSrh3ABcvJ2xg1GnCTXaiVfgqExPpalCf9k8XfDVcSBKBDJ2DOAmD8RKCk1cnSbgKffWyc03DimM1qt68VYN+3V1GUbl5elA7s+/Yqbl8rsH4iERERVVt2Jwv9+vVzy03OqoK0C3kw6MzfUMs8JQiq7w3k5wPfL7Y8KTIKeHiAawIso7ptLBOXvHQNspIKrdSmCiWVGn8/FiwBnhgJeHjYrnsxAXjnLeCD94yT6O9x+1oBjm9IQVGODmkHJSjKMJYXpcP4fY4OxzekMGEgIiKqYexeOvXzzz+viDgqnVqtwcotm9CuaXOcu3IZeQX56Na+A/44fBARYbXhqVDg4rVEdGjRCsfPn4VOp0fHlq2w9+gRRIVHILhWN6zcsgld2rTDgePHIJNJ0TK2MQ6eOIaG9SJRpNEg/6ACCphvbpbjlYHjCYWotX4N6mXdtohrZ8uWCLmcgNSMDGTcvmWKKSggEGFBQTiVcAGt4prganISsnJzTMfDgoLh76vCuSuXHG4TAFxNTjJr0/gRT+CXo7+htn8sDFlSs1gP/3YR0b18ceT0ScRFN0BWbg5SM9JN9/T3VSEqPALHzp1Bs0YxbtOm+1+npNQUvPHcGKzcsgk+Sm/ERdevGm3q2QvHPD3R/MhBRJ4+DcFGT09+wnmkZKbj8P49eOXpp7DrtyMQT6kgiMbPDkS9gJv7BeT5p8AnqzZgMA49NOhEHF2bBEOTLIQ1ULnF61R8zdJep/Ejn8DZyxfd43VyUpus/e49puqFG+k33b5NjRuVsvHgPTRaDVZv+wWtYhsj4dpV5BcW4oFWbfHXsb9RJzgEHgoFriQnoW2TZjh18QJ0ej3aNWmOgyePoW5YbYTXCcLqbb+gQ/NWOHLmJGRSKZo1jMHfZ04hOjwCao0GN9LTTNf09vJCo3pROHb+LBrVi0J2Xi7SbmWajqt8fFAvrA5OXbyAuOgGSLuViVvZWabjgX7+CAmshXNXLqFZwxhcS72BnLw80/GQwFrw8/FFwrWrDrcJAK6nppi1aVK9p7B62y/Vqk33v07BwX5Ivplardpk7XUKDvbDP2dPV6s2WXudgoP9sPWvP6pVm6y9TrXDArF62y9Vok2tm8dYfQ4LIseOAAC0Wj2yshz/1NTfX1ni+Xm31djy+QmL8p7jGsNPn4Gsp5+02I1X0b0nVB/OdDimilDczusnb2H/6ktmxzx95Xj4leaQe0htnF11lPZ6ujvdlUvI/3oOtPv/sjjm+5/p8OjZG4Cxncvf24+CLMtJ0IIUEK1sEK30V2DA6y2dHnNFquqvZ1lVlXYGB1sOZbSlop/N1UVNaGdNaCPAdlY3Vamdtp7Ndvcs3OvKlSu4ePEiMjMzIQgCAgMD0ahRI0RFRZXnstVS4j8ZFmW+QZ4IqKNE7hufWSQK8PCA9/hJLorOfuFN/OGlkqMwRwv/MCViOoeibrNASOVcYMsdyKIbwO+TL6A5egT5c2dDf+GcsbxxU2jbdMXti9nISS+COkcLuaf15M5aoiCVSxD/aHRFhk5ERERuxO5k4dKlS1i5ciW2bduGjAzjG+DizonilZJq1aqFhx9+GE888QQaNGjgxHCrJlEUcfVYpkV5VKta0O7bC+3hgxbHlCOfhvROV5I7kkglaNM/EgqlDEGRPlwly83odQbkZRYhR1EfuSNnwLBvFwL2rsRx777I/Pxkief65l5Drk9diz09pHIJuj7VCCHRKhtnEhERUXVT5mTh2rVr+N///oft27fD09MTbdu2xfDhw1GvXj34+/tDFEVkZ2fj2rVrOHbsGNauXYvly5ejd+/eePPNN1G3bglLPFZzGdfykH9bbV4oAPWa+CJ/whcW9SVhteE1YpSLonNceJOAUuukpd20KAsJsdyrgZzrrx8uIjXh3s3yGkNo+z5ESclDxHxyr6P93x8jy68BEho8ilxVFABjotC0Rx0mCkRERDVMmZOFfv36ISYmBjNnzkSfPn2gVCpLrF9QUIBt27Zh6dKl6NevH06eLPnTzOrsqpUhSKH1VRB+XQvDjWSLY94TXoXg4emK0CpcejqThfISDSIKcjTITS9CTnohcjKKULdpIEIb2H7jrgr2vC9ZQKmJAkQRDS9tAAD4Z19C+6Of4mZwW1yqPwhFCMLpXTcQGO7NhIGIiKgGKXOyMGvWLPTs2bPMF1YqlRgyZAiGDBmCHTt2OBRcdaDTGpB0ynKVo+hIEQUzlliUy9vFQ/Hgv1wQGbkbvdaA3Mwi5GYUISe9CLl3EoPcjCLoteYbqnl6y0tMFnyD7E82A2+dQWCW+T4foel/IzjjGJLCH8TVyIewZ1kChyIRERHVIGVOFuxJFO7Xq1cvh891d8XDbAoLPZGbWwTA/JPzG2dvQ6s2nykqU0jg9/syaIuKzC8mlcJ70msc/1/NqQt0yM0ovJMQFCEnoxC56UXIv61GWdcmy0kveU8LVbCXzWMyhQSqYC/4BnkipJ4KJ3Zehzpfg4aXN1qtLxH1qJf0O2qnHEBiZF8cXiOi/5R2ZQuUiIiIqrRyrYZEd4fZ5OcrUFBgXH7y3mTB2hCkhv6p0K7eblHu+ehQyKLrV1CkrsdVeS1t++oUstPKv3ldbkZRicd9gz3h5SuHb7CnKTFQBXvCN9gLXr5yU0Lq76+Ed5ACe5ZdwKXoQWh4eQO8CyyHjgGAXF+Ihpc3okH2PhRtexkevftCkHD1KyIiourMqcmCTqfDzp07kZ2dje7duyM4ONiZl69yCnM0uHkpx6xMMOhRe/8yi7qCfwCUY553VWgVKjMpDwn7b8LDWw5FZGVHU7FMqw6lG/9Ftw2CUmV7h3OF0jn/y+VmFsFgECGRWO+F8vSWY+CUVmW6Vkh9Fbo+FYM9ywUcCmyCOjf3oUHyFsjycqzWFzLTkPd/76Nw1Q/wHj8RinbxjjaDiIiI3JzD71w++eQTHDx4EOvWrQNg/BR5zJgxOHLkCERRhL+/P1avXo169cq+U2d1k3g802JYSVT2QQjXL1vU9R43HhLfsm9U5G4MegOSztxGwv6byLyeD8C4gk6j2jJIFVV/WFVZhw75h3mVmCz4Bnsi/Wqu3feXeUigCvIy9hQEGXsIjDd2zs82pL4KXUc1wqENVyDv2QO3/LpAuX0bvLdvg6Cx3LANAPQJ55EzeQLkHTvD+6WJkNXnMslERETVjcPJwp49e9C5c2fT97t27cLhw4cxduxYNG7cGP/973/xzTff4P/+7/+cEmhVI4qixRAkmTYPkRd+sqgri2sMj34DXRVahdBrRRz56Sp0asM9ZQbcvqxHUFzVGO1WvOpQTnoRrufdws3rOaYViNT5ujJdIye9COGNbR9XlTLx2Eslh2+Q150hQ56mBOHeoUMVJaS+CgNeb4nTp09AhCfyBz6Cwge7wXvzJij37QUMBqvnaQ/sQ9ahA/B4eACUz70AaXBIhcZJREREruPwu7jU1FRERt4dY/L7778jIiICb7zxBgAgISEBmzdvLn+EVdTtGwXISTcfV17/yi+QFOZZ1PV+5fUqP/Zb7ilFdOsgJBxIMyu/dUGPWjFSCDaGy7gDTaEOu5ect7rqkL1yM0qfeCxIBPgEepjmEKiK5xMEedncTbmyGPz8kTtqNOq8MB758+dAu2+vjYoGqH/ZBPWObVDN+BSK+I6uDZSIiIgqhMPJglarhUx29/SDBw+a9TTUrVsX6enp5YuuCrt6zLxXwScvCeEpeyzqeTzUD/JmLVwVVoVq2DEUCQfTgHuG5WgLgNxkA1R1Xf8mWF2gMy0/Gt0myOYn83JPKfIyy58oALBIEO8XUt8Xj01rA4m0aiWHsuj68Pv4c2j++RsFc2dBd/6c1XqCpydkjZu6ODoiIiKqKA4nC2FhYfjnn38wbNgwJCQk4Pr165g0aZLpeGZmZqkbt1UHubnGSaBarRxFRVoAxkmv107cultJFNEoYQ2E+yYwCF5KeI+b4LJYK5pvLU/UjvFDynnzzcAyL+grLFkQDSIKsjXIyTAOFyoeNpSbUWQ2dCisoQpKPw+r1xAEAb7BnridXOBQDF4quWnFoYA6Jf/OV7Uk4X6K1m0h/+Y7aHZtR/4382BISTE7rnz6uSo994aIiIjMOZws9O/fH/PmzcOtW7eQkJAAHx8fdOvWzXT87NmzNWJyc3GyoFbLoNEY35ymXsiGpuDuG9WQ9KMIyL5oca7XM89BEhTkmkBdJKZTqEWyUJAuovC2AV4BEuTfNODnrccRPyQaIfXLvrGXacOye3Yxzk0vQm4ZewRy0otsJgsAoAryKjFZECQCfGt53FmC1MtsSVK5h3sNHapogkQCj159oXiwO4rWr0HB0iUQc3MgCY+A5+DHKjs8IiIiciKHk4Vx48YhJSUFO3fuhI+PDz7++GOoVMY3f7m5udi1axeeeeYZZ8VZpdw7BEmiV6PhpfUWdaR168Fr6BOuDMslQuqroPRXoCDLfAWdW+f18I8GEv/UQtQDe5YnoOuoRiUmDNlphTix7Tpy0ouQn6U2G95kr5z0IoQ19LN5XBVsnHgs95DCN9gTQXV84OEnvzOXwBM+gR5VvlfA2QSFAl5PjIRH/4EoXPodZM2aQ5DLSzynaPtWyBs3hTSirouiJCIiovJwOFlQKBSYMWOG1WPe3t7Yu3cvPD1LXvmlOjJoBaRcuPvJelTib/BUZ1nU837l9VLfWFVF6VdyUZSrtSjPSjQg+7oB4p3NrPVaA/5cdgEPPhVjM2GQSM1/luVR2sTj+u2CEdUmCJ4+xlWH/P2VyMpybFhSTSPxVcH75Uml1tOn3EDezP8CogjPwY8Zhyz5+1d8gEREROQwuz4q7datG/773/9i//790Ov1ti8qkcDX1xfyavhmuDSaNA8Y9MaPwL0K01Hv+g6LOooHukLRoZOrQ3OJQxuumNpvRoQpUShm0Ik4tOGKzWt5+3tAInV8FSWJVIAq2BPhTQIQUMe7xLoe3nJ4+SoqfHnSmqzg2/mAVgvodChauwq3n3wUBSu+h6gueVI4ERERVR67ehZ69uyJHTt2YMWKFfDz88ODDz6IPn36oEuXLvDy8qqoGKsUzc27vSkNL66HRLxvfX65HN4TXnVtUC4UPyQae5YnlHllodb9bM9rkUiNS4yWtsKQ3FNqWnrU984ypKpgL3gHlC/ZIOfRnT8H9fatZmViXh4K5s9F0fq1UD7/Ijz6PFzllxAmIiKqbuxKFqZNm4Zp06bhxIkT2L59O3bs2IHNmzfD09MTnTp1Qu/evdG9e3cEBARUVLxuTZ8vhT7P2JsSeOsMgjNPWNTxGj6yWo/XLt4JeM+yC9DrSp9k4KEs+VdQFexlShaUfgpTMlC8P4FvsBc8fWTsEXBzBT8ss3nMkHYTedM/QOHqlfAePwmKdvEujIyIiIhK4tCchRYtWqBFixZ4/fXXcenSJezYsQM7duzAO++8A4lEgjZt2qB3797o1asX6tSp4+yY3Zb6Tq+CYNChUcJai+OSoGAon3rGxVG5Xkh9FZr2CMfJ7UkQS8kXctKLEBRpe6nNJv+qg7gHa9fIVYeqE9+33kFhVBQKVi4HCq3PH9EnXEDO5AmQd+gE7xcnQNawkYujJCIiovuVu8+/QYMGGDduHNasWYPdu3fj7bffhlQqxSeffIKePXtiyJAh+PPPP50Rq1sTReN8BQCISP4D3oU3Leoox0+EUAP2nki7nIPTv98oNVHwDfKETFHyr6B/bSUCw72ZKFRxglIJ5ZjnEbhyHTwfGQJIbb+e2oP7kfXsKOTO/C/06Wk26xEREVHFc+oA4dDQUIwaNQrfffcd9u7di5kzZyI8PBwJCQnOvI1b0tySQdRIoVBnI/rqFovjsuYt4dGrbyVE5lppl3PKPGehIFsDT9+aNwm+JpPUCoLPG2/D/7sfoOjyoO2Kogj1ls24/eRjxs3f8vNcFyQRERGZOLx0amn8/f0xePBgDB48uKJu4VaKbhh7Fepf2QSZ/r4JuYIAn1ffqBHj6g9tuGI1URCklqsh6bUGHFp/BQNeb+mi6MhdyKKioZr5P2j/OYr8r2dDd/aM9YpqNQqXfYeizT9BOWYsPAcNgSCrsMcWlSItzbLHNCQktBIiISIiVynXX93NmzdjxYoVSExMRFZWlsVxQRBw5oyNNwHViKgTUJQuh2/OVdRJPWBx3HPQYMhiYishMtezthqSIAVCmkmRdkpvljBI5RLED4muhCjJXchbt4Hf/MXQ7Nph7EFIuWG1nph1G/lffApDSkqZ9nSgipGezmSBiKimcThZmDdvHr766ivUqlULrVu3hp+f7d1xq6O0yzk4tOEKJPXkMBRKAb2I2ITVFvUEXxWUY1+qhAgrh2k1pDsJgyAFIh+UwztUAq9AiWkHZ6lcUuoOzlQzCBIJPHr1geLBf6Fow1oUfL8YYm6OZUWFBzwfH+76AImIiGowh5OFH374AfHx8Vi4cGGN23wt7XIOTs7+GS1PLcXZJqOQU7sBaqcehCo30aKucuy4GrdLbXHCcGjDFYS0FuEdapwa4x0qQeSDcqT9IyB+SDQTBTIjKBTwGj4CHv0GoHDZdyhctxrQaEzHvYY+AWkoP8UmIiJyJYcnOOfn5+Phhx+usYlCs3/mwUt9Cy2Pz4f/tbNocPkni7qFnkHIbd6rEqKsfCH1VRjwektTolDMO1SCAa+3ZKLgxoKDQy3+uZLEVwXv8ZMQsGINPHo/BAAQ/PzhNeppl8ZBRERE5ehZaNy4MVJSUpwZS5Vw7ptf0eyfeZAajJ94Sg0atDj9DSSi5aRehToL5xb9hpCPOHSCqg53GYMuDasN32kfwmv4COjTbkLi41Ni/cKN6yDm5sJr2BMQPDxLrEtERERl43DPwquvvooff/yxRkxgvlfjc8tMiUIxa4kCAEhFHRqfs71zLRGVThYbB4+u3UqsY8jNQcE3X6Pgm3m4PeJxFP36M0S9vsRziIiIqHQO9yzEx8dj+vTpGDZsGFq1aoXw8HBIJOa5hyAImDFjRrmDdCd+0/6D7DcnQ9CoS60rKjzg9/4HLoiKqGYrXLrENCnakJaGvBkfonD1SniPnwRF+w6VHB0REVHV5XCycPz4cfz73/+GTqfDkSNHcOTIEYs61TFZULRpB79Pv0D2G5MhaG0nDKLcA37/+xKK1m1dGB1RzaNPuWGcDH1/+cUE5Lw2EfL2HeD11ptAaL1KiI6IiKhqczhZmD59OuRyOebNm4d27dpBpao5E1az/GNwNaofoi5uhkTUWRzXS+S4GtUP0f6NEFIJ8RHVJNpjRwGD7R3DtYcP4vrQofDo2w/K51+E1E3mZBAREVUFDs9ZOH/+PJ599ln06NGjRiUKxashRV76xWqiAABSgxZRl37BiVm/IO2KlfXiichpPB8eAP/vV0LR5UHblUQR6q2/4PaTjyN/wTwY8vJcFyAREVEV5nCyUKtWrRq3bCpguRqSLVKDBs3/mYtzC7a6KDKimksWGQXVzP/Bb84CyBo3tV1Ro0bh8u9w+4lHUbhuNUSd9YSfiIiIjBxOFh599FFs2rQJuhr2x9baakgAoJdaJk5SgwaNzy11RVhEBEDesjX8FiyG7wfTIakTbrOemJ2F/C//h9tPDYd69y6IoujCKImIiKoOh5OFtm3bQiKRYNiwYVi7di0OHDiAw4cPW/yrbvym/QeiwsOsTC+TI71XD+hl5gmDqPCA37T/uDA6IhIEAR49eiNg2Sp4T3oNQgnDJA1J15H73r+RPf55aE+ecGGUREREVYPDE5zHjBlj+vrdd9+FIAhmx0VRhCAIOHv2rOPRuSHTakh3lk/Vy+S4PGIENDGNkBsShvorf4BUpzUmCp9+AUWbdpUdcqVy9e6/RMUEhQJeQ5+Ax0P9YVizAlkrlgMa68MHdadOoOC7hfD7bLaLoyQiInJvDicLM2fOdGYcVUpxwpA340Mk9O2LvKhoKADkRUfj8pMjEPvbNvhMnVbjEwXAfXYDpppL4uuLwNdeg9B/MAq+/Rrqbb9aVhIEeL800fXBERERuTmHk4UhQ4Y4M44qR9GmHQLXbkLe9i1m5XnR0Qhcu6mSoiIiW6ShYfB99wN4DRuB/Hmzof377jBJj4f6Q9awUSVGR0RE5J4cnrNARFQVyWJiofpiDlT/mwVp/QaAhweUY8eVeI5oMEDU610UIRERkftwuGeBiKiqEgQBig6dIG8XD/3FC6Vu1Kbe+RsKVyyF90sToejQyUVREhERVb5yJQubN2/GihUrkJiYiKysLIvjgiDgzJkz5bkFEVGFEaRSyGIbl1hHVKtR8M3XMKSmIOeNVyBv3wHeL02ErFGMi6IkIiKqPA4nC/PmzcNXX32FWrVqoXXr1vDz83NmXEREbqFw/RoYUlNM32sPH0TWkUPw6PswlGNfgjSUk/iJiKj6cjhZ+OGHHxAfH4+FCxc6dSfn1NRUfPvttzh16hTOnTuHoqIi7Ny5ExEREaWe26NHDyQnJ1uUz507F7169XJajERUMxhyslG4dInlAVGEeusWqHfthNfQJ+A16mlIfHxcHyAREVEFczhZyM/Px8MPP+zURAEAEhMT8euvv6Jp06Zo164d9u7da9f5Xbp0wcSJ5ksgRkdHOzNEIqohxOxsSCMjoTt9ynoFjRqFK75H0c8boXxmLDwfeRSCk5+JRERElcnhZKFx48ZISUkpvaKd2rdvj3379gEA1qxZY3eyEBAQgFatWjk9LiKqeaR168Hv60XQ7N6F/AVzYUhOslpPzM5G/qzPULhuNbxfGA/Fv3pYbFRJ5C7S0m5alHFPHCKyxeGlU1999VX8+OOPTp/ALJFwNVcich+CIMCje08ELFsF71deh1DC/CxD0nXkTnsb2S89B+2J4y6Mkqjs0tNvWvwjIrLF4Z6F+Ph4TJ8+HcOGDUOrVq0QHh5u8UZfEATMmDGj3EHa4/fff0fLli2h1+vRpEkTvPDCC5yvQETlJsjl8Hp8ODz69kPhiu9RuOZHQKOxWld3+hSyX34eigf/Be9xL0NaL9LF0RIRETmHw8nC8ePH8e9//xs6nQ5HjhzBkSNHLOq4Olno3r07mjdvjoiICGRkZGDFihV4+eWX8cknn+CRRx4p8VypVIC/v9LuewYH1wIASCQCDAYRABy6TlUhlUqqdfuKsZ3Vi1Pb6a8E/j0F2qefwq05XyF382ZAFK1W1fy5G5q/9sDv8aGo9frrkHh5OScGGyr69VQqFRZlFf374+iz+e75/B2/X2W8js7A17J6YTurDoeThenTp0Mul2PevHlo164dVCqVM+NyyHvvvWf2fe/evTFs2DB8/vnnpSYLer2IrKwCu+8plxv/+CuVChQUGD9ldOQ6VYW/v7Jat68Y21m9VEg7vfzg8ea7kA4ehvyvv4L28EHr9fR65B39B7JCPQR1xf6sK/r1LH7G3cuR+wUH+5a5rqPP5mL8HbfkrNfR1fhaVi9sp/ux9Wx2eILA+fPn8eyzz6JHjx5ukShYI5VK8dBDDyE1NRVpaWmVHQ4RVUOyRjHw+/wrqP43C9L6Da3W8R4/EQLnYxERURXk8F+vWrVqOX3Z1IrElUmIqCIpOnSC/+Jl8Pn3e5AEh5jK5R06QdEuvhIjIyIicpzDycKjjz6KTZs2QafTOTMep9LpdPj1119Rp04dBAcHV3Y4RFTNCVIpPPsPRMAPa6F8/iUIPr7wfmliqefpk667IDoiIiL7OTxnoW3btti9ezeGDRuGESNGICIiAlKp1KJe+/bt7b721q1bAQCnThk3Qvrzzz8RGBiIwMBAxMcbP6Fr0qQJBg8ebJpA/fPPP2Pnzp3o1q0bwsLCkJmZiRUrVuD06dP4/PPPHW0mEZHdBE9PKEePgdfQJyCUMqlZc+QQciZPgEefh6F84SVIQ8NcFCUREVHpHE4WxowZY/r63XfftRjmI4oiBEHA2bNn7b72K6+8Yvb9Bx98AMC4XOuyZcsAAHq9HgaDwVQnIiICmZmZ+OSTT5CdnQ0vLy80a9YMCxcuRNeuXe2OgYiovEpLFESDAfnzvgIAqH/7FerdO+H1+HB4jXoGEt+yTwImIiKqKA4nCzNnznRmHGbOnz9vd51WrVph6dKlFRUSEZHTqXf8Bn3CPc8yjQaFPyxD0c8/Qfn0c/Ac8jiEKjQ3jIgqDnfepsricLIwZMgQZ8ZBRFSjiGo1Cr6ZZ/1YTg7yv/oChetWw3vceCi69+IiDUQ1nLWdtpkskCtwLT8iosoglcLryVEQ/PxtVjHcSEbu++8g+8XnoD1xzGWhUfWUdjkHP392HPk3DWbl+TcN+Pmz40i7nFNJkRGROytzsrB//36Hb7Jv3z6Hz3V3wcGhCA4ORVhYbdPXRESlEWQyeD02DAE/rofXqGcAhYfNurozp5D98gvIefsN6K4lui5IqjbSLudgz/IEFGRpkPin1pQw5N80IPFPLQqyNNizPIEJAxFZKHOyMHbsWIwePRq///479Hp9qfW1Wi22b9+OUaNG4YUXXihXkO4sJCQUISGhqF27tulrIqKykvj4wHvceASsXAuPhwcAJQw30uz9E1mjn0DeZx/DcCvThVFSVVacKOi1xgRB1AOJf2qRcVaHxD+1EO/8SddrDUwYiMhCmecsbNiwAR999BFeeuklBAYGolOnTmjRogXq1asHPz8/iKKI7OxsJCYm4tixYzhw4ABycnLwwAMPYOPGjRXYBCKiqk8aEgrfqdPgNewJ5M/7CtrDB61X1OtRtHEd1Nt+hdfIp+A1bESpqy5RzXZowxVTolBM1ANpp/SmRKGYXmvAoQ1XMOD1li6MkIjcWZmThZiYGCxevBj//PMPfvjhB+zcuRO//PKL1SVTfXx80Lt3bzz55JNo0aKF04MmIqquZA1j4Pf5V9AcOoD8ebOhv3TRaj2xsAAFCxegaON6qD79ErKGjVwcKVUV8UOizXoWit2fKACAVCagVj0fXDyYBi+VHF4qBbxUcnh4yyGRcJI9UU1k92pIrVu3RuvWraHX63H69GlcvHgRt27dgiAICAwMRKNGjdCkSRNIJJw7TUTkKEV8R8jbtof6t19RsHA+DGlp1ivKZJDWrefa4KhKCamvQtdRjawmDPeSyiVo3a8ejvx0FddP3DI7JkgAT5/i5EEBperu16akwlcOmcJyc1YiqtocXjpVKpWiRYsW7DkgIqogglQKz4cHwKNHLxSuWYXC5d9BzM83q6N8/iUIHrYnRxMBQFCkDwLDlbiVlA+9TrQ4LpVL0LRHHXiprO/rIRqAwhwtCnO0APKt1gEAuafUlEC06B2BgDrezmoCEVUSh5MFIiJyDcHDE8pRT8Oz/yAUfL8IRRvXAXo9pDFx8OjVp7LDIzenKdRh95JzyEoptFlHrzXg9K4baBAfXK57aYv00BYVIietEIaelknJvY7+kgh1nvZuD4WvHF5+d7+WyjhCgcgdlDlZOHr0KKKjoxEQEGDXDfR6PY4fP46YmBj4+PjYHSARERlJAgLg8+ob8Hp8OPIXzIXn4McglDLkU71rO+TtO0Diq3JRlOROcjOLsHvxuTs9AiXTaw1I2G+58ZejvFSKEo+nXshG3i21zeMeStk98yYUCAhWQvAQ7iYWKgUUXlJuWEhUwcqcLIwcORKffPIJBg4caNcNcnJyMHLkSCxevBidOnWyO0AiIjInjagL1X8/KrWe7mICcv/zLgQfXyiffhaeQx6HoCj5DRxVH2lXcrBv5UVoCq0vdy5ILSc5iwZA5iFBRNNAFOZo7gw90kBbVPqS6WbXFgBPb+tDmgDjYiiFuSUnMOoCHdQFOmSl2u4RkcoE1G8fgtb9OG+HqKKUOVkQRRFZWVm4ceOGXTfIzs6GKJbcFUlERM6XP38OIIoQc3OQP+dLFK5bDe8XxkPRszc/ja3mLv+djr83JUI02Pj7KwFCmkktlk+VyiXoMqIRQuqb90TpNHoU5hoTh8JsDQpytCjMvZtMFOZoUJSnhXhn/rSnjxwSqe3fMW2RvsTJ1mWl14mlrtJ08VAaTu9KhtJPAS9fhdkqT8ZeCgW8/OSQe7CXgsgau+YszJgxAzNmzLD7Jvyfj4jItTRHDkF7cL9ZmSHlBnI/eBey1T/Ae/wkyFu1qaToqKKIBhEntifh/N5Um3UECRDZTQ7vUAm8AiWmjdmkcgm6jrJMFABAppDCt5YUvrU8bV7XYBChzteiMFsDXSmJQGGOpuyNKoWtSdnFCrI1UOfroM7X4TYKbNaTKSQ2kok7//Uzfs33NFTTlDlZmDBhQrluVLdu3XKdT0REZVew6Bubx3RnzyB74otQdHkQynEvQxYV7cLIqKJo1XocXHsZN85lWT3u6SMHBCCsHeAdapzr4h0qQeSDcqT9IyB+SLTVRKGsJBLB+Gbbt/Shbkp/D3R7JgaFOVoU5Jj3UBTmaFGUrwXKOCihtLkRZU1MdBoDcjOLkJtZZPW4RCrgsffb2jxfNIjIzSyCl0oBuYfzlpBNu5yDQxuuIKS1aHrdACD/pgE/bz1e7teNqDQuSxaIiMh1fD+YjoKFC6De+gtgYyioZu+f0Oz/C54DBkE55nlIagW5OMqa4fz5MxZlsbFNnHqPvNtq/L7wHLJSrX9yHhTpg85PNoSntxynT58wO+YdKsGA1127DLrcQ4rQBn42jxv0BhTlaU1JREGOFga1AVnpBXcTi1wt9FpDGZKF0id3l0VpvQrqAh22zj4FwNg+Lxt7URSXeXrLIJQyhCrtco5pf4zEP4HIB409Qvk3DaYeoT3LE2z2CBE5A5dOJSKqhqQhofCdOg1ew55E/tdfQXvogPWKej2KftqAot+2QvnkU/B6YiQELy/XBlvNXbt21aLMmcnCreR87PvhIgpsfIIe2aoW2j0SVaWWIpVIJVD6eUDpd3cPEX9/JbKy7iZDoihCW6SHVF5yu4pynTPkyZ4eDK1aD226Hjnp1nspAECQCHeSB/OkIijMB8oQD+RlFJltpCfqgcQ/tRZzTfRaAxMGqlBMFoiIqjFZw0bw+2w2NIcPIn/ebOgvJlivWFiIgsXfoHDjOng/Nw4e/QZAkPFPhLtLOn0LB9ddsTlZuHmvcMQ9WLtajrMXBAEKr9J/R3uPb4qi4snZOVoU5GrMVnoqvDNZ22Bls7p7lTY3orTVne4nGkQUZGtQkK3B/RvdPTCiIf7Zcs3idRX1sJiUDhgThkMbrmDA6y3tioGoLPiXgIioBlC07wD5wqVQb9+Kgm+/hiEtzWo98VYm8j6dgcI1K+H90kTIOz1QLd9oVnWiKOLcnyk4uSPZ6nGpXIL4R6NRt1mgiyNzP1KZBN4BHvAOsL3TuSiK0BToTIlDwX1zKApzNPANKrnHzbmTthWIHxJt1rNgitXKKrbFrzdRRWCyQERUQwhSKTwf6g+P7j1RuGYVCpd/BzE/32pd/dUryHnrNXhPfhPSqGjkzfgQ8hGjoI2NM9WRnz+HW++/C5+p06Bo085Vzajx9DoDjvx0FYnHMq0e9/SRo8vIhgiM4EaoZSUIAjy85fDwlsO/ttLh6yj9FCjM1dpesraMvFRyePl6o+uoRlYThntJ5RJ0faoRQqI5BIkqBpMFIqIaRvDwhHLU0/Ac8AgKvl+Eog1rAb3lx5WCjy8kwSHImfIaoC5CwNzZuP3yJGhj4yA/fw4Bc2fDoNEgZ8prUH3yORMGFynI1uDG2Syrx/zDlOgyqqHZWH9yjQbtQ9CgfQhEgwh1gc44MTtbc3d/int7K3K1Nje6EySAx50N7ULqq9C0ex2c/v2G1YRBKpegaY86TBSoQjFZICKqoST+/vB55XV4PTYM+QvmQrN7l9lxRc9eyP3gPUBtnKQpaDQImDsbef0HwueXzRA0d4ZdqIuYMLiQby1PdBreAHuWXzBtggYAdeL80eHx+k5dtpPsJ0gEePrI4ekjR0Adb5v1tGo9inKLl469m0xIJRLTRnNpl3NsJgqAca7C6V03EBjuzYSBKoxTlkbQaDS4efMmNBrnjdcjIiLXkEbUheq/H8Fv/iLImhsnSErCakO7f58pUSgmaDTmiUIxdRHyZnzoqpBrvLBGfmjdL9L0fYueEej8ZEMmClWI3EMK3yBPhNZXIapVEBo/WBttBkSi24hYAObLppZErzVgz7IEpF3JcUXYVAOVK1k4ffo0Ro8ejTZt2uBf//oX/v77bwBAZmYmnn76aezbt88pQRIRUcWTN20Ov7nfwHf6x/B59Q34vPM+4GG5Y69FogAAHp7G+uQyDTuEIKZzKNo9EoWOgxuYPo2m6uHQBuurXAlW8kG91oBD66+4ICqqiRxOFs6ePYuRI0fi+vXreOSRR8yO1apVC2q1Ghs2bCh3gERE5DqCIMDjwe5QPNAVijbtoPrkc6sJgxkPT6g+/QKK1rZ3t6WK0erheqjfLriyw6AKED8k2mIPCUEKhDSTWiQMUrkE8UO4GhJVDIeThVmzZiEkJAQ///wzXn/9dYj37RDasWNHnDhxwsbZRERUFSjatINyzFjbCYOHJ5TPPs9Ewcm0RXqc/yvV4m8r1Rwh9VXoOqqRKWEQpMYdnIMayxD5oNyUMEjlEm7IRhXK4WTh77//xtChQ+Ht7W11De46deogzcY63kREVDVojh5BwZKFFnMXTNRFKFj8LTT//O3awKqx/Ntq7Pr2LI5vvY4zu29UdjhUiYoTBqW/ApEPyuEdanzb5h0qQeSDcij9FUwUqMI5vBqSWq2Gr6+vzeN5eXmOXpqIiNyA5ugR07KpJVIXIefNyRyK5AQZ1/Lw1w8JUOfrAACnd92Aby1P1GtRy2n3CA4Oddq1qOKF1FdhwOstcfq0+WgN71AJBrzeopKioprE4WShXr16OH36tM3jBw4cQMOGDR29PBERVbK8GR9aTRREhcL6akjTP0Dg2k0uiq76uXYiE4c2XIFBZz706NCGK/AO8ECtus7ZZC0khMkCEZWdw8OQBgwYgJ9++slsxaPi4UiLFy/Gnj17LCY+ExFR1eEzdZrFXAVRoUDegEEQFQrzyh6exvpkN1EUcWpXMg6suWyRKACARCJAXaCrhMiIiMrRs/Dss8/ir7/+wnPPPYf69etDEATMnDkTt27dQkZGBjp37owRI0Y4M1YiInKh4tWQiociiQqFaQdnbWQUAubONvYweHhyQzYH6bQGHN5wBddP3rJ63EslR5dRMQiorXRxZERERg73LCgUCixZsgRvvfUWPDw84OHhgatXryIgIABvvvkmFixYAInEKXu+ERFRJSlOGCShYaZEAQC0sXG4/fIkSELDmCg4qChPiz+WnLOZKASGe6PXi02YKBBRpXK4ZwEAZDIZnnnmGTzzzDNOCoeIiNyNok07BK7dhJT7JlhqY+M4R8FBWakF2Ls8AQXZVja4AxDRNADxj0ZDpuCOzERUuRz+6P/tt9/G8ePHbR4/ceIE3n77bUcvT0REVKWd/ysVa6YdRmGSl1l53nkf/Db3tM1EoXG32ug0rAETBSJyCw4nCxs2bMC1a9dsHk9KSsLGjRsdvTwREVGVdf6vVBzfeh2iCBRd9kZhkhdEEcg97QvtTesb3EmkAuIfi0bzXhEQJJb7FxERVYZyDUMqSUFBAWSyCrs8ERGRWypOFO4SUHTZG+okL4ga670FHkoZOo9oiOBI2/sXERFVBrvezd+4cQPJycmm7y9fvozDhw9b1MvOzsbKlSsRGRlZ/giJiIiqkBPbrlspFWwmCgDQc1xj+ARa73EgIqpMdiUL69evx5w5cyAIAgRBwPz58zF//nyLeqIoQiKRYMaMGU4LlIiIqCpo0bfufT0LJWvWqw4TBSJyW3YlC7169UJ4eDhEUcTUqVMxbNgwtG7d2qyOIAhQKpVo3rw5ateu7dRgiYiI3F3sA2EAUKaEoUXfCMR14d9KInJfdiULcXFxiIszrrF948YN9OnTBzExMRUSGBERUVUV0TQAp3YkQW9lR+ZiYTF+TBSIyO05PAN5woQJzoyDiIioWsi/rcZv806VmCgAQOqFbJzfl4rYzmEuioyqsuDg0MoOgWqoci9XdPLkSZw4cQLZ2dkwGAxmxwRBwMsvv1zeWxAREVUJebeKsP3r09AWGUqvDOD4r8ahSkwYqDQhIUwWqHI4nCwUFRVhwoQJ+OuvvyCKIgRBgCgaP0Up/prJAhER1RS5mUXYvfhcCYmCCMBy/4QTW68zWSAit+Xwpmxz587FX3/9hRdffBFLly6FKIr46KOP8O2336Jdu3Zo3rw5fvnlF2fGSkRE5JZy0gvx+6JzKMzR2qghQhaggTFhMNeib90KjY2IqDwcTha2bduGhx56CK+88goaNWoEAAgNDUXXrl2xZMkSaLVabNiwwWmBEhERuaPstELsXnwORbm2EwXP+vnwbZ4Dz/r5uDdhaPlQXdPqSURE7sjhZCElJQXt27cHAEilxo1mtFrjg1Imk6F///7sWSAiomotK7XAmCjk6SyOSRUSQAA86+fDK6IQAOAVUQjP+vkQBCYKRFQ1ODxnwdvbG3q93vS1RCJBWlqa6bivry8yMjLKHyEREZEbup1SgD++Ow9NgWWi4KWS41/PxsG3lie2b99ifiyiEIPGdHdVmERE5eJwz0K9evVw9epVAMaehYYNG2Lbtm0AjDs4b9++nZuyERFRtXT7Rj7+WHLOaqKg9FOg+3PGRIGIqKpzOFno1KkTtm3bZupdGD58OPbs2YNevXqhT58+2LdvHx577DGnBUpEROQObiXlYfeS89AU6i2OefsbEwWfQCYKRFQ9ODwM6YUXXsAjjzxiWi515MiR0Gg02LRpEyQSCSZPnoznn3/eaYESERFVtoxrediz9AK0astEwSfQA93GxMLb36MSIiMiqhgOJQtFRUXYvn07oqOjIZPdvcSYMWMwZswYpwVHRETkLtITc7Fn6QXoNJb7KPjU8sC/xsRB6aeohMiIiCqOQ8OQFAoF3n33XZw5c8bZ8SA1NRX//e9/MXz4cLRs2RKxsbFISkoq07kGgwELFixAjx490Lx5cwwaNMg0j4KIiMhRaVdybCYKvkGe6P4sEwUiqp4cShYkEglq166NvLw8Z8eDxMRE/Prrr1CpVGjXrp1d586aNQtfffUVRo4ciW+//RatWrXCK6+8gj/++MPpcRIRUc1w81IO9ixLsJooqII90f25OHipyp8opKXdtPhHRFTZHJ6zMHjwYGzatAlPP/00FArnfZrSvn177Nu3DwCwZs0a7N27t0znZWZmYtGiRXjhhRfw3HPPAQA6duyIxMRE/O9//0O3bt2cFiMREdUMqRez8deKBOh1ljsv+4V6oduYWHh6y51yr/R0y+QgJCTUKdcmInKUw8lCmzZtsH37djzyyCMYMWIEIiMj4eXlZVGveOO2spJIHFugac+ePdBqtRg0aJBZ+aBBgzB16lRcv34ddevWdejaRERU86RcyMJfKy/CYCVR8A9TotszMfBwUqJAROSuHE4W7p3IPH36dAiCYHZcFEUIgoCzZ886Hp0dLl68CIVCgcjISLPyRo0aAQAuXbrEZIGIiMrkxrks7PvxIgx6y0QhoI4SDz4dCw+lw39CzWiOHkHejA8hHzEK2tg4U7n8/Dncev9d+EydBkUb+4blVoTz5y3nKcbGNqmESIjIlRx+0s2cOdOZcZRbdnY2VCqVRdLi5+cHAMjKyqqEqIiIqKpJOnMb+1ddgmiwTBQCI7zx4OgYKLyclyjkTHkNUBchYO5s3H55ErSxcZCfP4eAubNh0GiQM+U1qD75vNIThmvXrlqUMVkgqv4cftoNGTLEmXFUOqlUgL+/shznS8p1flXBdlYvbGf1UtHtVCot56dV9M/V0WdzSkoKAECjyYH+Tu9A7dq1Sz3v8j/p2L/qIkTLucwIjVbh4Zea250oKBSW9f39lSg4dAiZbxkTBQAQNBoEzJ0NzZAhUGzYAEGjMVZWFyH3rddQe+48KOPjrd7DFb/jttrhKvz/uHphO6sO53w04gZUKhVycnJMw5+KZWdnAwD8/f1LPF+vF5GVVeDw/f39leU6v6pgO6sXtrN6qeh2FhRoLMocuV9wsG+Z6zr6bL58ORGAMcEpjtvLy6/Ec66dyMTBdZetJgpBkT7oPLIhCtQaFKgtfw4l0Wh0FmVZWQW4NXUqxKIis3JBo4Fi9RoI9wUhFhUhdepUBK7dZPUervgdt9UOV+H/x9UL2+k81lZOc2RxBFvP5mqTLDRq1AgajQbXrl0zm7dw8eJFAECDBg0qKzQiInJziccycGj9FYiWI48QHO2LLiMbQe4hdeo9faZOMw1Butf9iUIxQ14usl54BpLa4ZDWrgNpnTqQ1K4DaZ1wiN7RTo2NiKqOil5JrdokC127doVcLsfmzZsxYcIEU/mmTZsQExPDyc1ERGTVlaPpOLzxKmAlUQipr0KXkQ0hUzg3UQAARZt28H7+JeTP/RJWs5T75edDd/YMcNZyovFtiQSS4BBT8iCtfSeRuPO9UKuWxZy+sipYtQIF875CcM9eSO/U2VQevH8fMv7vQyjHT4Ry+EiHrk1E7s8tk4WtW7cCAE6dOgUA+PPPPxEYGIjAwEDE3xmv2aRJEwwePBgzZswAANSqVQvPPPMMFixYAG9vbzRp0gRbtmzBgQMH8PXXX1dOQ4iIyK1dOpKOv3+6avVYWEMVOo9oBJncsSW9S6JPTUH+vNnQ/L7TORc0GGC4mQrDzVTojh21PK7wgLR2bVMyYUok7iQVEl/rww8KVq1AwZxZAIDw7b8BgoD0jp0QvH+f8XvAdJwJA1H15JbJwiuvvGL2/QcffAAAiI+Px7JlywAAer0eBoN5V+3kyZOhVCqxdOlSpKenIzo6Gl9++SW6d+/umsCJiKjKuHgoDUc3J1o9VjvGD52faAipkxMFQatB6F9/4fZHMwGN2qnXLpFGDX3iVegTr0JrLS5flXkCUacOdAkXoN688W4dAOG/bYPv5UtQXbyIe/spmDAQuZ6rll12y2Th/PnzDtWRSqUYP348xo8fXxFhERFRNZFw4Cb++eWa1WN14vzRaXgDSGXOSRTq1YsCRBGKw4egXLsK0lu3nHJdZxJzc6DPzYH+wrkS6wmARaJQrGDubKCgABAkgEQCSCWAIIEgkQBSKSAIpv8KEinknTpDGhxi817a0ychZmcbz5FIUKBSQlOgMV5PIgUkAiCR3vn+nn9SqXHI1Z3zBA8PSAICbbfdYAAMBmNdBzeGJXI1Vy677JbJAhERUUU5/1cqjm+9bvVYeJMAdBxa32mJAgA0kMiQN+sz6I7/U6b6okJxd9nUewhBwfB99z8w3EiGPuUGDCk3oL/zT3RhAmJz5oMoomDxt2W+juqLOSUmCwXffA3t0SOm73PKfGVzsuYt4T/Pdly6k8eRPWHc3QJT4mFMSASJ9M73wp0yCQRT8nOnniBAkErh8+93IW/Wwua98ufOgu7CeVMiY0pQ7rlfkacCWp1oSrbM72c8TxoeAa/Hh9u8j/7mTah3bDUmU/ecZ3lPa+00rydr0hQSP3/b90q6DrGo0PSzsby+5M617/z87rTLoABEddHd5JLJWpndmygAd5ddzus/ED6/bDZbdtkZCUO5koV//vkHy5cvR2JiIrKysiDeN0FLEATs2LGjPLcgIiJymrN/puDk9iSrxyKaGhMFidQ5b1gMt2+jYNF8FG3+yfjJdRmICgXyBgyCz8+bzBMGD0/4vveB8Q9+2/YW56kUwK3zl2C4cTeBuJtUpEAsyHdKm5yqlDeGYhl/Zk6/T3FPA4xLxVqbem5rOrpoJcm7l+78OWj/+bvEOmVZmFfWslWJyYLhRjIK5s8tw5VKp/pyLhRWfueK5X0yo9Q2WXN/eitr0RL+c20nddpTJ5AzdYplT5IpOSlOSCR3epzMk5N7kxjv8ZMgi4m1ea+C5d9Dn3jlbnJo9Z6WCZBwT48aJBJIQ8OAxwfbvI/hViY0hw9BkN65riAxJaC2kzwpcj9413IVNY3GPFEopi5C3owPbS67XBYOJwsbN27E22+/DZlMhqioqDJtdkNERFRZzuy+gVM7k60eq9ciEPGP1odE6tiKQfcSdToUbViLgsXfQszLtV1RJoPiwX9B89ceQK2GqFCYhhJoI6MQMHe28Q+/h2epnwxKlErIohsA0ZbLhIuiCDEnG/obN2BIuadX4k5iYUhNAXSWeyhUtFI/RTboXXQfJyUlAAShtMTEWW0qeXUu0cbyuxVyL6cldaXcR6uFePuWzUTNHob8vBKPaw7ut75QgJ1krdqUmCzoEq8i7//eL/d9ilnrkYSHJ3zeKd89HE4Wvv76a0RHR2PJkiUIDXXeWq5ERETOJIoi0k/rkX7KeqIQ2bIW2j8aDYmk/ImC5vBB5M/+HPqrV0qsJ+/0AHwmvAppvUjTJMWMeyYpamPjcPvlSQj6YXm5JykKggDBz984lKRxE4vjol4PQ0aGMZEoTiDuJBW6ixeBiuqVcNWbeBcmCyitV8rgjLe6cG2bSvv/wkn3KjWp0zsn0QJQ+jLCTkvqSrmPE9tklYcnVJ9+AUXrtuW6jMPJwo0bNzBlyhQmCkRE5DbSLufg0IYrCGktwjtUAlEUkXZSj4wz1v8oR7UJQrtHosqdKOiTk5A/50to9v5ZYj1p3XrwnvQaFB3v7legaNMOgWs3IeX0CbO62ti4cg0dKCtBKoU0NBTS0FDIW7UxlResWgHdieNlvo48viNkTZoZ32jpDYBoHM4j6vXGfSQMBuObI1GEqNdDElirxOvJmjaH4ONrPMdggEwqQKvW3hkmpDe+8Tbo705QvuefWFxHb4Ak0PbkZgDG2KRS57xxK6VnwVlvQktNFpz5JrSUT/ytbnnu0H1cmQCV0iYX9ZaUaX8VR3l4Qvns8+VOFIByJAthYWHQlDI2j4iIyFXSLudgz/IE6LUGJP4J1HtQhswM0WaiUL9dMNoOjCz9078SiAUFKFj2HQpXrQC01hYlNRK8veH1zFh4PTYMglzu8P1cqWDeV1bLRVif5Kw9cgh+n8122v19Jrxq9r2/vxJZWQVOu34xRXxHBO3eD8DYC1WcnEA0APp7Eg9byYlebzpPWrtOiffyfvUNiHl5d+9hSmzu3kPpKUN+bqEp2YLeYBxWVJxsGQyQhIaVeB9J7TrwenKUeax3YjSP33jP+9t4b1yCSlXivaR1IiAWFFqcV/zzs9bG4uOi3mA6r9RkwZlvrF3VA1RqD4YTE6D7qYtQsPhbyBo3qbyehSeeeAKbN2/GM888A6nU+TtbEhERldW9iQIAiHogcbfO5kzUOnH+5UoURIMB6t+2omD+HBgyM2xXFAR49BsI7xdeKvWT9OBg9+qpV46faNo/oZgIIKdhI6guJlgkDMrxE10WW0URBAGQmb81Kv/gtLvkcZbDwO7n66+EvpxJkaxeJGTjJ5XrGmXl+94HDp1nb/Inb90WgRu33Ek87iY15smIld4lK0meNDK6xHspn3kOhqzbNpM1a/cU70u2oDdAWrdeifeR1KoFj959jUnTvfcQRfNE6r72GHJzYLiWWHoCpS5CzpuTyz0UqczJwuHDh82+b9asGX777TcMHToUI0aMQEREhNWkoX172zPoiYiInOHQhiumRMGkhL+jWSkFDicK2rNnkD/rf9CdPlViPVmz5vB+5fUyvUEEgJAQN0sW7mywVpwwiACS+/Q128G5+CeonPAKN2SjCiUoFBBqBbnkXopOD7jkPrKGMfCd9l+7z7v1+CCriYLVZZfVRcib/oFrVkN66qmnLCaEFC+V+u6771o9JggCzp4963BwREREZRE/JNqsZ6EkUrkE8Y+V/MmiNYbMDOR/8zXUWzaXWE8SFAzlSxPh0btv6RMp3ZwpYZj3FZJ79UZ6x04AgPROxjkXETt3QDl+IhMFIhfymTrNbJ8FoORll32mTivX/cqcLMycObNcNyIiIqooIfVV6DqqUakJg1QuQdenGiEkuuRx2PcStVoUrvkRhd8vLnm/AoUCXsNHQDnqGQhKpT3huzXl8JFQDh+Jf7ZvMStP79QZrab9XyVFRVRzKdq0g+qTz00JQ3mWXS6LMicLQ4YMKdeNiIiIKlJIfRWadq+DE9uTrA5BksoFNO1Rx65EQbNvL/K++gKGJOs7PhdTdO0G7wmvQlon3N6wiYjsVpwwVOSyy8Uc3qby7bffxvHjtpdUO3HiBN5++21HL09ERGSXtMs5OP37DZtzFfRaEad33UDalZxSr6W7lojsN19FzluvlZgoSKPrQ/XFHKhmfMpEgYhcqnjZ5eJEoVjxssvOSBSAciQLGzZswLVr12weT0pKwsaNGx29PBERUZndvxqSLXqtAXuWJdhMGAx5ecib8yWyRj8B7YF9Nq8j+PjC+5XX4b94ORTt4ssVOxGRO3N46dTSFBQUQCarsMsTERGZWF0NCcY9ke7fB0uvNeDQ+isY8HpLU5loMEC9ZTPyv/ka4u1btm8kkcBz4GAox74Iib+/k6KvGurVi6rsEIioEtj1bv7GjRtITk42fX/58mWLJVUBIDs7GytXrkRkZGT5IyQiIiqFtdWQBClQp40Hko+qId6TMEjlEsQPubsakvbkCeNSqOfPlXgPWcvW8Hn1dcgaxjg9/qogNrZsS8ASkWtV9B4tdiUL69evx5w5cyAIAgRBwPz58zF//nyLeqIoQiKRYMaMGU4LlIiIyJb7V0MSpCKC22uhDDcgWKJD+hE5RL1gXA1pVCOE1FdBn56Ggq/nQL19a4nXloSEwvvlSVB071Xll0IlouqnovdosStZ6NWrF8LDwyGKIqZOnYphw4ahdevWZnUEQYBSqUTz5s1Ru3ZtpwZLRERkS3HCcGjDFUjqpUGr0CI7Wwathw7eTeUwXAtB/JBoBId7oGDpYhQs+w4oKrJ9QQ8PKEeOhteTT0Hw9HRZO4iI3IldyUJcXBzi4owzrm/cuIE+ffogJqZmdscSEZH78c+6gM77P8R5377I87871Cjg9gXE7v8KHrUG4faWn2FIuVHidRQ9esF7/CRIQ8MqOmQiIrfm8AzkCRMmODMOIiJycxU9Lra8NEePmDYpqv/jD7j85AhoYhrB58oVNFi5AgadDoWLvinxGtKGjeAz6XXIW7dxUdRERO7N4WShf//+6NSpEzp06IAOHTpApSr7JjdERFT1VPS42PK4N1EAAKlWi/orf0BG164I2b0bgqHkJVUFPz8ox74Iz4GDIUilrgiZiKhKcDhZUCqVWLlyJZYvXw6JRIK4uDh06NABHTt2RPv27aGsRlvdExGRe8ub8aEpUSgm1WoRsmsXSpySLJXCc8jjUD77PCS+/NCLiOh+DicLa9asQV5eHg4dOoSDBw/i4MGD+O6777BkyRLIZDI0a9YMnTp1wiuvvOLMeImIiCz4TJ1m1rNQrKREQd4uHt6TJkMW3aBigyMiqsLKtWuaj48PevTogR49egAAsrKy8Oeff+Kbb77BsWPHcPz4cSYLRERU4RRt2kH1yedWE4b7CYG14PP6W1B07calUImISlHuLZYNBgNOnjyJAwcOYP/+/fjnn3+gVqsRFBSEjh07OiNGIiKiUinatINyzFgULJgLiKLVOvL4jlDN+BSCh4eLoyMiqpocTha+//57HDhwAIcPH0ZeXh78/PzQvn17TJkyBR07dkSDBuzWJSIi19EcPYKCJQttJgoAoD1+DNozp6Bo3daFkRERVV0OJwszZ86EVCrFgAEDMHr0aDRp0oTduUREVCnuXw3JJnURct6cDNWnXzBhICIqA4mjJz7wwANQKBT46aefMG7cOLzxxhtYs2YNrl+/7sz4iIiISmVtNSQAMMjllpXVRcib/oELoiIiqvoc7llYtGgRtFotjh8/jv379+PgwYP48MMPodPpULt2bXTs2BGdOnXCwIEDnRkvERGRBWurIRnkcuT06wfVli2QaLV3K3t4wmfqtEqIkoio6nG4ZwEA5HI52rVrh4kTJ2L58uU4fPgwPvvsM3h5eWHDhg2YMmWKs+IkIiKyqXg1JHh4AgBEhQJZE16B9LHHkDXhFYgKhbGihydUn3wORZt2lRgtEVHVUe7VkNRqNY4cOYIDBw7gwIEDOHPmDPR6vWmjNiIiIlcoThjyZnyIjBGjoI2NgxyANjYOt1+ehKAflsNn6jQmCkREdnA4WZgzZw4OHDiA48ePQ6fTQRRFNGzYEE8++SQ6duyI+Ph4qFTcDZOIiFxH0aYdAtduQsrpE2bl2tg4BK7dVElRERFVXeVKFurWrYvBgwejY8eO6NixI2rVquXM2IiIiIiIqBI5nCzs2rULderUcWYsREREThEcHAoA8PX1RG5uKcupEhGRTQ4nC0wUiIjIXYWEGJMFf38lvLwKKjkaIqKqq1wTnAsKCrBw4UJs374dSUlJAICIiAj06dMHzz33HJRKpVOCJCIiIiIi13M4WcjKysLIkSNx6dIlBAYGonHjxgCAq1evYu7cudi6dStWrFgBf39/Z8VKREREREQu5HCyMHv2bFy+fBnvvfcennjiCUilUgCAXq/HqlWr8H//93+YM2cO3n33XacFS0REREREruPwpmy7du3C0KFDMXLkSFOiAABSqRQjRozAY489hh07djglSCIiIiIicj2Hk4WMjAzT0CNrmjRpgoyMDEcvT0RERERElczhZCEoKAhnz561efzs2bMICgpy9PJERERERFTJHE4WunfvjrVr1+LHH3+EwWAwlRsMBqxatQrr1q1Djx49nBIkERERERG5nsMTnCdNmoR9+/bhgw8+wFdffYXo6GgAwJUrV3Dr1i3Uq1cPEydOdFqgRERERETkWg73LAQEBGDdunV44YUX4O/vj5MnT+LkyZMICAjACy+8gHXr1iEgIMCZsRIRERERkQuVa1M2Hx8fTJ48GZMnT3ZWPERERERE5CYc6lkoKirCxo0bcfz4cWfHQ0REREREbsKhZEGhUODdd9/FmTNnnB0PERERERG5CYeSBYlEgtq1ayMvL8/Z8RARERERkZtweILz4MGDsWnTJmg0GmfGQ0REREREbsLhCc5t2rTB9u3b8cgjj2DEiBGIjIyEl5eXRb327duXK0AiIiIiIqocDicLY8aMMX09ffp0CIJgdlwURQiCUOIuz0RERERE5L4cThZmzpzpzDiIiIiIiMjNOJwsDBkyxJlxmKSkpGDmzJn466+/IIoiOnfujKlTp6JOnTqlnhsbG2u1fOPGjWjcuLGzQyUiIiIiqtbsThbS0tIgCAKCg4MBAGq1Gj/88INFvbCwMDz88MN2XbuwsBBPP/00FAoFPv74YwDArFmzMHr0aGzatAlKpbLUazz66KMYPny4WVlUVJRdcRARERERkZ3JwuXLlzFw4EC88soreOGFFwAABQUF+PjjjyEIAkRRvHthmQyNGze264366tWrcf36dWzduhWRkZEAjL0Fffv2xapVq8zmSdgSEhKCVq1a2dMsIiIiIiKywq6lU9evXw8/Pz8888wzFsfeeustLF26FEuXLsV3330Hb29vrFu3zq5gdu3ahZYtW5oSBQCoW7cu2rRpg507d9p1LSIiIiIiKh+7koUDBw6gR48eUCgUFsdiY2MRHx+P+Ph4dOzYEQ8//DD2799vVzAXL15ETEyMRXnDhg1x8eLFMl3jxx9/RLNmzdCyZUuMHj0aR44csSsGIiIiIiIysmsYUmJiYpknNtevXx9btmyxK5js7GyoVCqLcj8/P+Tk5JR6/qBBg9C9e3eEhIQgOTkZixYtwtNPP43FixejQ4cOJZ4rlQrw9y99ToTt8yXlOr+qYDurF7azeqmO7eSzuWxqQjtrQhsBtrO6qQ7ttCtZKCwstJhk7Ofnh82bNyMiIsKs3MfHBwUFBeWP0A6ffvqp6et27dqhZ8+eGDhwIL788kusXLmyxHP1ehFZWY7H6++vLNf5VQXbWb2wndVLVWlncLBvmevy2Vw2NaGdNaGNANtZ3VSldtp6Nts1DMnX1xfp6enmF5BI0KhRI4vdmzMyMuDrW/Y/CACgUqms9iDY6nEojY+PD7p164aTJ0/afS4RERERUU1nV7IQExODvXv3lqnu3r17rc4/KEnDhg2RkJBgUX7p0iU0bNjQrmvd6/7dpYmIiIiIqHR2JQt9+vTB4cOHS12ZaMeOHTh8+DD69u1rVzA9evTA8ePHcf36dVNZUlISjh49ih49eth1LQDIy8vD7t270aJFC7vPJSIiIiKq6exKFoYOHYro6Gi8+uqrmDVrFpKTk82OJycn48svv8TkyZPRoEEDPP7443YFM2zYMISHh2P8+PHYsWMHdu7cifHjxyMsLMxso7Xk5GQ0adIEc+bMMZUtWrQI7777LjZv3oyDBw9iw4YNePLJJ5GRkYHJkyfbFQcREREREdk5wVmhUGDBggV44YUX8PXXX2P+/Pnw8fGBj48P8vLykJeXB1EUUb9+fcyfP9/qEqslUSqV+P777zFz5kxMmTIFoiiiU6dOmDp1Kry9vU31RFGEXq832wQuOjoa27dvx/bt25GXlwcfHx+0bt0a06dPZ88CEREREZEDBPHed9xlpFarsXr1amzbtg0JCQnIz8+Ht7c3YmJi0LdvXwwdOhQeHh4VEW+F0Wr1XHGjDNjO6oXtrF6qSjvtWQ2Jz+ayqQntrAltBNjO6qYqtdPWs9munoViHh4eeOqpp/DUU0+VKygiIiIiInJfds1ZICIiIiKimoPJAhERERERWeXQMCQiIiIiMhJFEXl52SgszIPBoC/XtW7eFODAdNIqh+10LYlECi8vH/j4+Nm9/xiTBSIiIqJyuH07HYIgIDAwFFKprFybwUqlEuj1BidG557YTtcxriKqQ25uFm7fTkdgYIhd53MYEhEREVE5aDRF8PevBZlMXq5EgagiCIIAmUwOf/9a0GiK7D6fyQIRERFRuYgQBL6lIvdm/B21f0gUhyEREREREdmQlnbToiwkJLQSIqkcTIOJiIiIiO6jOXoEtx4fhKy9fyA9/abpX9beP3Dr8UHQHD1S2SG6BHsWiIiIiJzsanISitT2jw8XpBKIDkyI9fTwRFR4hN3nkXWao0eQM+U1QF2EgLmzcfvlSdDGxkF+/hwC5s6GQaNBzpTXoPrkcyjatKvscCsUkwUiIiIiJytSF8FH6W33eRKpBAYHkoW8gny7zwGAW7cysXTpEuzbtwfp6Wnw8/NHgwaN8Pjjw/Dmm6+WeO7Uqe8jLKw2Jk160VSmUvmhYcNGGDv2RbRo0cpUvmjRAuzevRPLlq12KE5XujdRAABBo0HA3NnI6z8QPr9shqDRGCuqiyosYZg+/T/49defAQBSqRQhIWHo1q07nntuHLy8vNCli+X93njj3xg8+HGnxgEwWSAiIiKqkVJSbuCll56DUqnEuHET0KhRIxgMIv7++xA++uj/8NNPW011FyyYi2vXEjF9+iemMh8fH5w+fQoAsGzZaqhUKmRlZeH77xdhypRXsXLlegQEBLq8XeWVN+NDU6JQTNBozBOFYuoi5M34EIFrNzk9jnbt4vHeex9Cp9Ph+PFj+Pjj/6KoqBBvvPE2AOCtt95F585dTPV9fHycHgPAZIGIiIioRvrss48AAAsXLoNSqTSVR0VFo0+ffvD19TWVeXp6QiaToVatIKvXCggIhL+/P2rVCsLTTz+HXbu24/TpU+jS5cGKbYQdDLdvIXfGh9AePQLc/6a/DCwSheLr3kxFRtd42ycqFJC3aQffqdMgsSN5UigUpp93nz4P4Z9/jmDPnt2mZMHHx8fm6+FMnOBMREREVMPk5GTj4MH9ePTRoWaJQrF7EwV7FBUVYcuWzQAAmcy9PpPOnfEhtAf2OZQolItGA+2Bfcid8WG5LuPh4QGdTmf6ftasz9C/f0+MHTsaGzeuhcFQMZu/uderSEREREQVLinpOkRRRGRktFOuN3ToQADGZEEURcTFNUG7diV82l4JdKdOVtn7nzlzCtu3b0Xbtsaf6dixL6J163ZQKr1w5MhhzJnzJbKysvDMM2OdFa4JkwUiIiKiGka0f2+uEs2ePR/e3j5ISDiP+fPn4p13/uN2PQuyZs2NPQuVeH97HDy4H717d4Ver4dOp0OXLt0wefKbAGCWFDRqFAuDQY+lSxczWSAiIiKi8qtbty4EQUBi4hUA3ct9vdq1w+Hv74969SKh0Wjwzjtv4rvvVkKhUJQ/WCfxnTqtXHMWHHbPnAV7tGzZGlOmvAOZTIagoOASk68mTZohPz8ft25lIjCwVnkjNsNkgYiIiKiGUan8EB/fCevWrcbjjz9hMW8hNzfX4XkLffv2w5Il32L9+tV44olRzgjXKSQBgfD79MtS6916fBAMN1MtykWFwuokZ0lomM3VkKRSCfQOLIULGCeVR0TULVPdhIQLUCg84OPj2GtWEk5wJiIiIqqBXnttCgARY8c+hV27duDatatITLyKDRvW4umnn3D4uhKJBMOGPYnly79HYWGhqVyj0SAh4TwSEs7jwgXjf69dS3RCS5zLZ+o0wMPTrExUKJA3YBDE+3tKPDyN9V1o794/sWnTBly+fBHJyUnYvHkjFi2aj0GDhlRITw57FoiIiIiczNPD06GN0sqzg7O9wsMjsGjRCixbthhff/0VMjLS7myqFoMpU96x+3r36t//ESxa9A3WrFmJ0aOfBQAkJydhzJiRZvViYxtj0aJl5bqXsynatIPqk89NG7OJCoVpB2dtZBQC5s429jB4eFbKDs4ymQwbNqzBV199AVE0oE6dcDz33It49NGhFXI/QRSdPcWlatJq9cjKKnD4fH9/ZbnOryrYzuqF7axeqko7g4PL3k3OZ3PZ1IR2unMbU1MTERYW6ZRrlWfYSlVSFdqpOXoEeTM+RMaIUdDGxpnK5efPIeiH5fCZOq3URMHd2lnS76qtZzN7FoiIiIiI7qNo0w6BazdBl3bT/EBwKAIfHVY5QVUCJgtERERERDaEhIRWdgiVihOciYiIiIjIKiYLRERERERkFZMFIiIiIiKyiskCERERERFZxWSBiIiIiIis4mpIRERERJUs7c7ynFKpAL3euAVWTV+Fh9wDkwUiIiKiSpJ2OQeHNlxBSGsR3qESSCQCDAYR+TcNOPRPKuKHRCOkvqqyw6QajMOQiIiIiCpB2uUc7FmegIIsDRL/1CL/pnGn3/ybBiT+qUVBlgZ7licg7XJOJUdKNRmTBSIiIiIXK04U9FpjgiDqgcQ/tUg/o0Pin1qIemM9vdZQYQnD9On/QZcu7dClSzt069YBQ4c+gjlzvkRhYaFZvaysLAwe/DC6dGmHrKwsp8dB7o3JAhEREZGLHdpwxZQoFBP1wM2TOlOiUEyvNeDQhisVEke7dvH46aetWL36Jzz//EvYsGEN5s790qzOjBkfoFGjmAq5P7k/zlkgIiIicpKiPC0Orb+CtCs5MOhEu8+/P1EoVpClwer3Dts8TyITEBKtQvyj0fD0kZf5fgqFArVqBQEA+vR5CP/8cwR79uzGG2+8DQBYvXol1OoijB79LPbv/6vM16Xqgz0LRERERE5yaP0VpCZkO5QolIdBJyI1IRuH1pevB8LDwwM6nQ4AcOHCOaxY8T3effcDCILgjDCpCmKyQEREROQkmdfzquz9z5w5he3bt6Jt23gUFhbi/fenYvLkNxEcHOLECKmq4TAkIiIiIiepVdcHqQnZlXp/exw8uB+9e3eFXq+HTqdDly7dMHnym/jyy0/RokUr/OtfPSsoUqoqmCwQEREROUn8o9HlmrPgqHvnLNijZcvWmDLlHchkMgQFBUMmM741/Pvvw0hLu4mtW38BAIiisS2PPNIXI0aMxrhxLzu3AeS2mCwQEREROYmnjxwPji595aCfPzuOgiyNRbkgtT7JWemvwIDXWzojRDOenp6IiKhrUf7553Og02lN3589ewYzZ36I2bMXoG5dy/pUfTFZICIiInKx+CHRZvssAMZEIbS5zGL5VKlcgvgh9vUYlFe9epFm3xfvrxAZGQV/f3+XxkKVixOciYiIiFwspL4KXUc1glRufCsmSIHIB+UIbiJD5INyCFJjPalcgq6jGiGkvqoSo6WajD0LRERERJWgOGE4tOEKQlqL8A41Jg7eoRJEPihH2j8C4odEV1ii8M47/ylz3TZt2mHv3iMVEge5NyYLRERERJUkpL4KA15vibS0mwAAqVSAXi8iOBiI7xFaydERMVkgIiIiqnQhIcbEQCqVQK83lFKbyHU4Z4GIiIiIiKxiskBERERERFYxWSAiIiIqp+JNy4jclaO/o0wWiIiIiMpBKpVBq7XcYI3InWi1Gkil9k9XZrJAREREVA4+Pv7IykqHRqNmDwO5HVEUodGokZWVDh8ff7vP52pIREREROXg5eUNAMjOzoBeryvXtQRBqBEJB9vpWlKpDL6+AabfVXswWSAiIiIqJy8vb4feiN3P31+JrKwCJ0Tk3tjOqsPthiGlpKRg0qRJaNu2Ldq0aYMJEybgxo0bZTpXrVbj448/RpcuXdCiRQsMHz4chw8fruCIiYiIiIiqJ7dKFgoLC/H000/j8uXL+Pjjj/HJJ58gMTERo0ePRkFB6VnZ1KlTsWbNGkyaNAkLFixAcHAwnnvuOZw9e9YF0RMRERERVS9uNQxp9erVuH79OrZu3YrIyEgAQGxsLPr27YtVq1ZhzJgxNs89d+4cfv75Z8yYMQOPPfYYAKB9+/bo378/Zs2ahfnz57ukDURERERE1YVb9Szs2rULLVu2NCUKAFC3bl20adMGO3fuLPHcnTt3Qi6Xo1+/fqYymUyG/v37Y+/evdBouKQZEREREZE93CpZuHjxImJiYizKGzZsiIsXL5Z6bnh4OLy8vCzO1Wq1SExMdGqsRERERETVnVsNQ8rOzoZKpbIo9/PzQ05OTqnn+vn5WZT7+/ubjpdELpciONi37MFaUd7zqwq2s3phO6uX6tZOPpvLria0sya0EWA7q5uq3k636lkgIiIiIiL34VbJgkqlstqDYKvH4f5zrfUeZGVlAYDVXgciIiIiIrLNrZKFhg0bIiEhwaL80qVLaNiwYannJicno7Cw0OJcuVxuNmmaiIiIiIhK51bJQo8ePXD8+HFcv37dVJaUlISjR4+iR48epZ6r1WqxdetWU5lOp8OWLVvQpUsXKBSKCoubiIiIiKg6EkRRFCs7iGIFBQV45JFH4OnpiVdeeQWCIGDWrFnIz8/Hpk2b4O1t3EY9OTkZvXv3xvjx4zFhwgTT+ZMnT8bevXsxZcoUREREYOXKlfj999/x448/omnTppXVLCIiIiKiKsmtVkNSKpX4/vvvMXPmTEyZMgWiKKJTp06YOnWqKVEAAFEUodfrcX+eM3PmTHzxxRf48ssvkZOTg7i4OCxcuJCJAhERERGRA9yqZ4GIiIiIiNyHW81ZqGpSUlIwadIktG3bFm3atMGECRNw48aNyg6rzFJTU/Hf//4Xw4cPR8uWLREbG4ukpCSLemq1Gh9//DG6dOmCFi1aYPjw4Th8+LBFPYPBgAULFqBHjx5o3rw5Bg0ahG3btrmiKTZt3boVEydORPfu3dGiRQv07dsXn332GfLy8szqZWdn45133kGHDh3QqlUrPPPMMzh//rzF9cr6s3C1PXv2YPTo0XjggQfQrFkzPPjgg3jllVcsNjMs6+9sWX8ele25555DbGwsvvjiC7Pyqv56Hjx4ELGxsRb/2rVrZ1avqrezolTlZzOfy3dV9d/vmvpcBqrns7lGP5dFckhBQYHYu3dvsX///uL27dvF7du3iwMGDBB79uwp5ufnV3Z4ZXLgwAGxU6dO4tixY8Vnn31WjImJEa9fv25R77XXXhPbtm0rrlq1Sty3b5/48ssvi82bNxfPnDljVu/zzz8XmzZtKi5cuFDcv3+/+N5774mxsbHi7t27XdUkC0OHDhUnTZok/vTTT+LBgwfFJUuWiG3bthWHDh0q6vV6URRF0WAwiE888YTYtWtXcfPmzeIff/whjhw5UoyPjxdTUlLMrlfWn4Wrbd68Wfzo/9u7+7ia8jwO4J/K9dQDZaJN8lTnptQtuUVDozCNRB6mml2yNBpZBinjYV+7FvvyMCJkUB62KZMdSlJLw2YWUVpj1aJhtCq3Xho0isi91W//aO9Z173VLeXq3u/79erl1e/+zvn9zu+cPsd5vJs3s9OnT7MrV66w1NRU5uvry1xcXJhEImGMqb/NtmY8NCk9PZ29//77jOM4tn37dr5cG9Znbm4u4ziOJSQksH/961/8T0FBAV9HG5azI3T2bKZcplzuzLnMmPZmsy7nMh0stFF8fDyzs7NjxcXFfFlpaSkbNmwYO3TokAZ7pj55KDPG2NGjR1XulAoLCxnHcSw5OZkvk8lk7MMPP2QLFizgyx49esQcHBzYzp07FaafM2cO8/Pz66AlaNnjx4+VylJTUxnHcezy5cuMMcbOnj3LOI5jOTk5fJ3q6momFovZhg0b+DJ1x+JdUVRUxDiOYwcPHmSMqb/NqjsemvTkyRPm4eHB0tPTlXZI2rA+5TulS5cuNVlHG5azI3T2bKZcplzurLnMmHZnsy7nMt2G1Ebnzp2DSCRS+P6GAQMGYMSIEcjKytJgz9Snr9/y6s/KyoJAIICvry9f1qVLF0yePBnZ2dmQSqUAGi+3ymQyTJ06VWH6qVOn4s6dOwqvw32bzMzMlMocHR0BABUVFQAa12Xfvn0xatQovo6xsTG8vLwU1qW6Y/Gu6N27NwDAwMAAgPrbrLrjoUlRUVGwtbWFn5+f0mfauj5fpyvL2VqdPZsplymXO2suA5TN2rqMdLDQRnfv3gXHcUrlNjY2SvcjdmZ3795F//790aNHD4VyGxsbyGQylJSU8PW6du2q9OV3tra2ABq/HO9dkZeXBwAYOnQogObXZXl5OWpqavh66oyFJtXX10MqlaK4uBhr166Fubk5H9rqbrPqjoemXL16FSdOnMAf//hHlZ9r0/qMjIzEsGHD4O7ujoiICIX7mLVpOduTLmQz5XLn2r51IZcB3clmXczld+rVqZ1JVVUVTExMlMp79eqF6upqDfSoY1RVVaFXr15K5fKzI1VVVfy/JiYm0NPTU6gnn/bJkycd2k91VVRUYNeuXfDw8ODPZFVVVaF///5KdeXLWF1dDUNDQ7XHQpMCAgJw8+ZNAMDAgQPx9ddfo0+fPgDU32bVHQ9NkEqlWLt2LUJCQjBkyBCVdbRhfRobGyMkJARisRhGRka4desWYmNjkZeXhxMnTqBPnz5asZwdQReymXK5c23f2p7LgG5ksy7nMh0sEJ1RU1ODhQsXwsDAAJs2bdJ0dzrE1q1b8ezZM9y/fx+HDh3CvHnzkJSUBCsrK013rV0cOHAAtbW1WLhwoaa70qHs7e1hb2/P/+7m5gaxWIyAgAAkJCQgPDxcg70jpP1QLmsHXchmXc5lug2pjUxMTFSepWrqLEFnZWJiovIIV35GSn5kLB8P9trXdsinlR8ta0ptbS3CwsIgkUhw8OBBWFhY8J81tS7lyyhfn+qOhSYNHToUIpEIfn5+iI+Px/PnzxEXFwdA/W1W3fF428rLy7Fv3z4sXboUUqkU1dXVfD/lv9fX12vV+nyVg4MDBg0ahBs3bgDQru22PelCNlMud67tW5tzGdDtbNaVXKaDhTaysbHBTz/9pFReVFQEGxsbDfSoY9jY2KCsrAwvXrxQKC8qKoJAIODvhbW1tYVUKkVpaalCPfk9l/L7UDVBJpNhyZIluHHjBuLi4iAUChU+b25dWlpa8pd21R2Ld4WJiQmsra35daLuNqvueLxt9+/fx8uXL7FixQqIxWL+BwAOHToEsViMO3fuaO36fJ2uLGdr6UI2Uy533u1b23IZoGx+lbYuIx0stJG3tzfy8/MV3iYhkUhw7do1eHt7a7Bn7cvb2xsymQyZmZl8WV1dHU6dOoUxY8aga9euAICxY8dCIBAgPT1dYfqTJ0+C4zgMGDDgrfZbrqGhAZGRkcjNzcWePXvg7OysVGf8+PGoqKjgH7ADgGfPnuH7779XWJfqjsW74tGjR7h37x6sra0BqL/Nqjseb9uwYcOQkJCg9AM0vt0lISEB1tbWWrs+//3vf+PevXtwcnICoL3b7ZvShWymXO6827e25TKg29msK7lMzyy0UWBgIL755hv87ne/w9KlS6Gnp4edO3fCwsICQUFBmu6e2uQbqvwS2oULF2BmZgYzMzO4ubnB3t4evr6+2LhxI+rq6mBlZYUjR45AIpEgKiqKn0+fPn0wd+5cxMbGwtDQEPb29jh16hRyc3Oxd+9ejSwbAKxbtw6ZmZkICwtDjx49cP36df4zCwsLWFhYwNvbGy4uLlixYgW++OILmJiYIC4uDowxzJ8/n6+v7lhowqJFi2Bvbw+hUAgjIyMUFxcjPj4eBgYGmDdvHgD1t1l1x+NtMzExgbu7u8rPLC0t+c+0YX1GRETAysoKDg4OMDY2RmFhIWJjY9GvXz8EBwcD0I7l7AjakM2Uy5TLnSWXAd3JZl3OZT32+s2MRG3l5eXYtGkTLl26BMYYRo8ejTVr1nSqh5Zev/Qr5+bmhsTERACN95VGR0cjIyMD1dXVsLOzQ2RkpFI41NfXIzY2FseOHcPDhw8xePBgLFq0CB999FGHL0dTvL29UVZWpvKzxYsX4/PPPwfQeJ/gli1bkJWVhZcvX8LZ2RmrV6+GnZ2dwjTqjsXbFhcXh8zMTJSWlkImk8HCwgLu7u747LPPFLZHdbdZdcfjXSAUChEWFqbwcFlnX5+xsbHIyMhAeXk5amtr8d5778HT0xOff/45+vbty9fr7MvZUTp7NlMuUy539lwGtC+bdTmX6WCBEEIIIYQQohI9s0AIIYQQQghRiQ4WCCGEEEIIISrRwQIhhBBCCCFEJTpYIIQQQgghhKhEBwuEEEIIIYQQlehggRBCCCGEEKISHSyQTi0mJgZCoRASiUTTXSGEEPI/lM2EaA86WNBBV65cgVAo5H+GDRsGsVgMPz8/rFy5EhcuXAB9/Ub7KywsRExMzDu184yJicHf//53TXejTTqq7/Hx8Th+/Hi7z/dVEokEMTExKCws7NB2SOdC2awZlM3ti7JZ+9DBgg7z8/PDl19+iU2bNmHZsmUYNWoU8vLyEBoaipCQEFRXV2u6iy1auHAhCgoK0L9/f013pUWFhYXYvXt3k99cqgm7d+/utDukjup7QkICUlNT232+ryorK8Pu3btph0RUomx+uyib2xdls/bpoukOEM2xt7eHv7+/Qtnq1auxdetW/OUvf8Hy5ctx4MABDfVOPV26dEGXLtq5GdfX10MqlaJHjx6a7gppJ8+ePYORkZGmu0HecZTN7zbKZu1D2dw8urJAFBgYGGDVqlVwdXXFxYsXcfXqVf6ziooKbN68Gf7+/hCLxXB0dISvry/i4uJQX1/P1zt79iyEQiGOHj2qso3Jkydj4sSJLV5O/8c//oHZs2fD3d0dTk5OGDduHBYvXox79+7xdVTdFysv+89//oPt27fD09MTw4cPx9SpU3H+/HmVbX333XcIDg7GyJEjIRKJ4OPjgz//+c+QSqV8HcYYkpKSMGPGDIhEIri4uCA4OBi5ubnND+r/+rR69WoAwJw5c/jbDFatWgUAOH78OIRCIS5fvoyvvvoKEyZMgJOTE06fPt3qtr/55huEhIRg7NixGD58OMaMGYPIyEiFMZJIJBAKhQCA1NRUhVsf5OT9y8nJQVBQEEQiETw9PREXFwcAqKqqwpo1azB69GiIRCIsWLAAFRUVSv15+vQptm7diokTJ2L48OEYNWoUli9fjvv37yvUk49BTk4ODh48iAkTJmD48OHw8fFROJukTt9VaWhoQHx8PKZMmQIXFxeMGDECPj4+WLNmDWQyGb/MZWVlyMvLU5ivfOyys7OxbNkyjB8/Hk5OThg5ciRCQkKQl5en1F5wcDC8vb1x//59LFmyBG5ubnB1dcXx48cxZ84cAI3/AZS3ERwc3Gz/iW6jbKZslqNspmx+27TzsJ+8sY8//hg//PADzp8/j5EjRwIAbt++jTNnzmDixImwtraGTCbDxYsXsW3bNkgkEqxfvx4A4OXlBXNzc6SkpCAwMFBhvtevX8fdu3cRHh4OPT29JtvPy8vDwoULYWtriwULFsDY2Bg///wzcnJyUFpaisGDB7e4DKtWrUKXLl0QEhICmUyGr7/+GosWLUJmZiasrKz4etHR0di3bx9sbGwwd+5cmJubo7S0FGfOnMGSJUvQtWtXAMCKFSvwt7/9DT4+PpgxYwakUinS09MREhKCmJgYjB8/vsm+TJw4EQ8fPsS3336LsLAwDBkyBABgbW2tUG/Lli2oq6tDYGAgDA0N+eVsTduHDh2Cs7MzgoOD0bt3b9y5cwfJycnIzc1Feno6TE1NYWZmhi+//BJffPEFRo4cqbSe5G7duoXvv/8egYGB8Pf3x+nTp7Ft2zZ069YNJ06cQP/+/bF48WKUlpYiMTERK1euRHx8PD/906dP8cknn6C8vBwzZ86Era0tHj58iKSkJAQEBCAlJUXpNoXo6GjU1tYiKCgIXbt2xZEjR7Bq1SpYW1vD1dVV7b6/bu/evdi1axe8vLzwySefwMDAABKJBOfOnYNUKoVAIOBv/TA1NUVYWBg/rZmZGYDGHWBVVRWmTZsGCwsLVFRU4NixY5g7dy4SEhL4vxW5mpoazJ49GyNGjMCyZctQWVkJsViMsLAw7Nu3D0FBQXB1dQUAvPfee2otB9FtlM2UzQBlsxxl81vCiM7Jzc1lHMexAwcONFnnxo0bjOM4tnjxYr7sxYsXrKGhQaluZGQks7OzYxUVFXzZtm3bGMdx7KefflKo+/vf/54NGzaMPXjwoNk+bty4kXEcxx49etRsvV27djGO49j9+/eVyj777DOF/ubn5zOO41hUVJRSWXBwMKutrVWYd0NDAz/9mTNnGMdx7K9//atCHZlMxqZPn868vLxUjs2rUlJSGMdxLDc3t8nPPvzwQ/b8+XOFz1rbdk1NjdL8L1++zDiOY3FxcQrlHMexlStXquwvx3FMKBSy69ev82UvX75k77//PhMKhWzDhg0K9eXrrKioiC/bsGEDc3R0ZIWFhQp1JRIJc3FxUWhbPgb+/v7s5cuXfPmDBw+Yg4MDCw8PV7vvqkybNo1NmjSpxXpeXl5s9uzZKj9TNbYPHz5kbm5ubP78+Qrls2fPZhzHse3btytNI/8bTElJUbP3RBdQNlM2y1E2K6Ns1hy6DYmoJL9379mzZ3xZ9+7d+TNOUqkUT548QWVlJcaMGYOGhgbcuHGDrxsQEAA9PT0kJyfzZc+fP8epU6fg6emJfv36Ndu+sbExgMZL0HV1dW1ahjlz5iicIXNyckLPnj1RUlLCl508eRIAEBERgW7duilMr6enx09/8uRJGBoaYsKECaisrOR/qqur4e3tjbKyMhQXF7epn6/69a9/rXQfbGvb7tmzJ4DGS7tPnz5FZWUlhEIhjI2NUVBQ0Kr+ODs7QyQS8b937doVjo6OYIwpXZqVn7mRjy9jDOnp6RCLxejbt69C33v06AFnZ2dkZ2crtfmb3/yGP2MIAP369cPgwYPfeHyNjIxQUVGhcPtGa8nHFmg8M/XLL79AX18fIpGoybH99NNP29weIa+jbKZsBiibX0fZ3LHoNiSiknxH9OoDP3V1dYiLi0NaWhpKSkqU7mt99Q0dAwYMgIeHB9LS0hAREQGBQIDTp0+jpqYGH3/8cYvtz5o1C1lZWVi3bh2ioqLg6uqKsWPHws/Pj7/s2JIBAwYolZmamuKXX37hfy8pKYGenh7s7OyanVdRURFqamrg4eHRZJ3Hjx+rdQm+Oaqmb23bOTk52LNnD/Lz8/Hy5UuFelVVVa3qj6ox7NWrFwAo3C4AACYmJgCAJ0+eAAAqKyvx5MkTZGdnY/To0Srnr6+vfL5CVZu9e/d+4zeVLF++HIsWLcKsWbPQt29fuLm5Ydy4cfDx8VHYATantLQU0dHRyM7OVnojjapbN8zMzPhxIaQ9UDYromz+P8pmyuaOQgcLRKXbt28DUAzIzZs3IzExEb6+vggLC4OZmRkEAgFu3ryJqKgoNDQ0KMwjMDAQS5cuxblz5+Dj44Pk5GSYm5tj3LhxLbZvamqK5ORkXL16FZcvX8Y///lPbNq0CTExMYiLi4OLi0uL81AVdqq8epaqKYwxmJmZYdu2bU3WsbW1Vau95nTv3v2N2i4oKMCnn34Ka2trREREwMrKij/rGB4e3up3tBsYGLT6M3kb8n89PDwQGhqqdpvqrrfWcnFxwdmzZ5GdnY0rV67gypUryMjIwN69e5GUlITevXs3O31NTQ1mzZqFFy9e4Le//S04joOhoSH09fURGxur8oFGelsKaW+UzYoom9X/jLL5/yibW4cOFohK8kvUH3zwAV+WlpYGsViM6OhohbqvXjp+1fjx49GnTx8kJyfD1tYW165dQ2hoqNqv0zMwMIC7uzvc3d0BAD/++CNmzpyJvXv38m99eFODBg3ChQsX8OOPP8LJyanJegMHDkRxcTFEIhEMDQ3b1FZLO732aDsjIwP19fXYv3+/wlmg58+fv/V3s8vP3Dx79qzZM29vk6GhIXx8fODj4wOg8e0k69evR3JyMubPn9/stDk5Ofj555+xceNGzJw5U+GzHTt2tKofbd0WCKFsVkTZ3HqUzU2jbFaNnlkgCurr67Flyxb88MMP+OCDD/i3AQCNZxVeP/vx/PlzhTcsvEogEGD69OnIzs7GV199BQBqXeYGGi+Tvm7IkCHo1q1bqy/XNmfKlCkAgO3btyu8ik9OvrzTpk1DQ0MDtm/frnI+jx49arEt+T2Vre1/a9pu6oxSbGys0tlFeZ/kl6bbm76+PqZMmYKCggJkZmaqrPP48eM2z7+1fVe1TTk4OABQXCeGhoYq5ysf29f/BrKzs5Gfn692P4C2bwtEd1E2K6JsbjvK5qZRNqtGVxZ02K1bt5CWlgag8TLevXv3kJWVhbKyMowZM0bp0qqPjw++/fZbLFu2DB4eHnj06BFSUlKavUQYGBiIgwcPIiMjA25ubhg0aJBaffvDH/6ABw8eYMyYMbC0tERtbS1/X+3rX1b0JpycnBAaGor9+/djxowZmDRpEszNzSGRSPDdd9/h2LFjMDExwUcffYQZM2bg8OHDuHnzJry8vGBqaooHDx7g+vXrKCkpQVZWVrNtOTo6Ql9fH/v27UNVVRV69uwJKysrhYfUVGlN2xMmTEB8fDxCQ0MRFBQEgUCAS5cu4fbt2zA1NVWat7OzM3JychAXFwdLS0vo6elh8uTJbR/Q14SHh+PatWtYtmwZJk2aBJFIBIFAgPLycly4cAEODg7YvHlzm+bd2r77+vrC2dkZTk5O6Nu3Lx4+fIijR49CIBAoTCcSiZCcnIwdO3Zg6NCh0NfXh5eXF1xdXWFubo4tW7agrKwMFhYWKCwsRFpaGjiOw507d9Tuu42NDQwNDZGUlITu3bvDxMQEZmZmTd4/THQLZTNlM2UzZfO7hA4WdFhGRgYyMjKgr6+Pnj17wsLCAmKxGH/605/g6empVH/16tUwNDREZmYmsrKy8Ktf/QpBQUFwdHTE3LlzVbYxcOBAuLu7Izc3V+nyYHP8/f1x/PhxpKamorKyEkZGRrCxscGuXbv4y5TtJTIyEnZ2djh8+DAOHDgAxhgsLCzg6empcJ/qpk2b4O7ujqNHjyI2NhYymQzm5uawt7dHREREi+1YWlpi48aN2L9/P9atWweZTIbp06e3uENqTduurq6IiYnBnj17sHPnTnTr1g0eHh44fPgwZs+erTTftWvXYv369di3bx9qamoAoF13SMbGxjhy5AgOHTrEbzcGBgawsLCAq6srAgIC2jzv1vY9JCQE58+fR2JiIp4+fYo+ffrwX1j06kOU4eHhqKqqQlJSEqqrq8EYQ1ZWFqysrHDgwAFs3boVhw8fRl1dHYYPH479+/cjOTm5VTuk7t27Izo6Gjt27MDGjRshlUrh5uam8zsk0oiyuRFlM2UzZfO7QY+19qkaQlopNDQU169fx8WLF1U+JEYIIeTto2wmhKiDnlkgHaqkpATZ2dmYOnUq7YwIIeQdQdlMCFEX3YZEOkR+fj6KioqQmJgIgUCAefPmabpLhBCi8yibCSGtRQcLpEMcOXIEJ06cwIABAxAVFaX0JTGEEELePspmQkhr0TMLhBBCCCGEEJXomQVCCCGEEEKISnSwQAghhBBCCFGJDhYIIYQQQgghKtHBAiGEEEIIIUQlOlgghBBCCCGEqPRfaGiz9nZC2JcAAAAASUVORK5CYII=\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot variables\n",
"fontsize = 18\n",
"linewidth = 5\n",
"markersize = 12\n",
"errbar_width = 5\n",
"xlabel = 'Day since treatment start'\n",
"# color for the control interval\n",
"ctrl_clr = 'darkslategray'\n",
"# compute control fit values\n",
"results_ctrl = np.loadtxt(results_ctrl_file)\n",
"v_ctrl = results_ctrl[:,0]\n",
"probs_ctrl = results_ctrl[:,3]\n",
"probs_ctrl_err = results_ctrl[:,4]\n",
"\n",
"v_min = 0.\n",
"v_max = 3.\n",
"binsize = 0.25\n",
"bins = int(v_max / binsize)\n",
"\n",
"ind_vmax = v_ctrl <= v_max\n",
"v_ctrl = v_ctrl[ind_vmax]\n",
"probs_ctrl = probs_ctrl[ind_vmax]\n",
"probs_ctrl_err = probs_ctrl_err[ind_vmax]\n",
"\n",
"fit_bounds = [0, np.inf]\n",
"popt_ctrl, pcov_ctrl = curve_fit(asymptotic_exponential_growth, v_ctrl, probs_ctrl,\n",
" sigma = probs_ctrl_err, absolute_sigma=False,\n",
" bounds=fit_bounds\n",
" )\n",
"perr_ctrl = np.sqrt(np.diag(pcov_ctrl))\n",
"# limits of the 95% confidence interval\n",
"ci_lower = float(popt_ctrl - perr_ctrl)\n",
"ci_upper = float(popt_ctrl + perr_ctrl)\n",
"\n",
" plot_titles = ['Normocytes', 'Acanthocytes']\n",
" para = 'lambda'\n",
" para_label = r'$\\lambda$'\n",
"\n",
" for jj, patient in enumerate(patients):\n",
" data = dict_fitvalues[patient]\n",
" color = color_dict[patient]\n",
"\n",
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
" for n, health in enumerate(['healthy', 'unhealthy']):\n",
" ax=plt.subplot(1,2,n+1)\n",
"\n",
" df_plot = data[health]\n",
" xdata = df_plot['days']\n",
" ydata = df_plot[para]\n",
" yerr = df_plot[para + \"_err\"]\n",
"\n",
" if patient=='LM':\n",
" # plot data on treatment\n",
" plt.errorbar(xdata[:-2], ydata[:-2], yerr=yerr[:-2],\n",
" c=color, label=labels[jj],\n",
" ls='-', lw=linewidth, marker='X', markersize=markersize,\n",
" ecolor='gray', elinewidth=errbar_width)\n",
" # plot data off treatment\n",
" plt.errorbar(xdata[-3:], ydata[-3:], yerr=yerr[-3:],\n",
" c=color, #label=labels[jj],\n",
" ls='--', lw=linewidth, marker='X', markersize=markersize,\n",
" ecolor='gray', elinewidth=errbar_width)\n",
" else:\n",
" # plot data on treatment\n",
" plt.errorbar(xdata[:-1], ydata[:-1], yerr=yerr[:-1],\n",
" c=color, label=labels[jj],\n",
" ls='-', lw=linewidth, marker='X', markersize=markersize,\n",
" ecolor='gray', elinewidth=errbar_width)\n",
" # plot data off treatment\n",
" plt.errorbar(xdata[-2:], ydata[-2:], yerr=yerr[-2:],\n",
" c=color, #label=labels[jj],\n",
" ls='--', lw=linewidth, marker='X', markersize=markersize,\n",
" ecolor='gray', elinewidth=errbar_width)\n",
"\n",
" plt.ylim(ylim)\n",
" plt.xlabel(xlabel, fontsize=fontsize)\n",
" plt.tick_params(axis='both', which='both', labelsize=fontsize-2)\n",
" plt.title(r'{} - {}'.format(para_label, plot_titles[n]), fontsize=fontsize+2)\n",
"\n",
" # plot control region at end only\n",
" if patient==patients[-1]:\n",
" ax.axhline(ci_lower, ls='--', lw=.5, c=ctrl_clr, zorder=0)\n",
" ax.axhline(ci_upper, ls='--', lw=.5, c=ctrl_clr, zorder=0)\n",
" axis_limits = ax.get_xlim()\n",
" ax.add_patch(patches.Rectangle((axis_limits[0], ci_lower),\n",
" np.diff(axis_limits), ci_upper-ci_lower,\n",
" color=ctrl_clr, alpha=0.15, zorder=0,\n",
" label = 'CTRL'\n",
" )\n",
" )\n",
" ax.get_yaxis().set_ticklabels([])\n",
"\n",
" else:\n",
" ax.axhline(ci_lower, ls='--', lw=.5, c=ctrl_clr, zorder=0)\n",
" ax.axhline(ci_upper, ls='--', lw=.5, c=ctrl_clr, zorder=0)\n",
" axis_limits = ax.get_xlim()\n",
" ax.add_patch(patches.Rectangle((axis_limits[0], ci_lower),\n",
" np.diff(axis_limits), ci_upper-ci_lower,\n",
" color=ctrl_clr, alpha=0.1, zorder=0,\n",
" )\n",
" )\n",
" # set alpha of errorbars\n",
" for collection in ax.collections:\n",
" collection.set_alpha(.4)\n",
"\n",
" fig.supylabel(\"Growth rate [(mm/s)$^{-1}$]\", fontsize=fontsize)\n",
" plt.legend(loc='lower right', ncol=2, fontsize=fontsize-4, title_fontsize=fontsize)\n",
" savepath = os.path.join(savefolder,savename)\n",
" plt.savefig(savepath+\".pdf\", dpi=900, format='pdf')"
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
},
{
"cell_type": "code",
"outputs": [],
"source": [],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%%\n"
}
}
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}