{ "cells": [ { "cell_type": "markdown", "id": "3364570e", "metadata": {}, "source": [ "# Python: Causal Machine Learning with TabPFN\n", "\n", "In this example, we demonstrate how to use [TabPFN](https://github.com/automl/TabPFN) (Tabular Prior-data Fitted Network) as a machine learning estimator within the [DoubleML](https://docs.doubleml.org/stable/index.html) framework for causal inference. We compare TabPFN's performance against (untuned) traditional machine learning methods including Random Forest, Linear models, and LightGBM.\n", "\n", "TabPFN is a foundation model specifically designed for tabular data that can perform inference without traditional training. It leverages a transformer architecture trained on a vast collection of synthetic tabular datasets, making it particularly effective for small to medium-sized datasets commonly encountered in causal inference applications.\n", "\n", "We will estimate **Average Potential Outcomes (APOs)** using the [DoubleMLAPOS](https://docs.doubleml.org/stable/api/generated/doubleml.irm.DoubleMLAPOS.html) model, which allows us to estimate:\n", "\n", "$$\\theta_d = \\mathbb{E}[Y(d)]$$\n", "\n", "for different treatment levels $d$ in a discrete treatment setting." ] }, { "cell_type": "markdown", "id": "8dc2e533", "metadata": {}, "source": [ "## Imports and Setup\n", "\n", "We start by importing the necessary libraries. Note that TabPFN requires a separate installation, see [installation instructions](https://priorlabs.ai/getting_started/install/).\n", "\n", "For GPU acceleration (recommended), ensure you have CUDA-enabled PyTorch installed.\n", "Instead you can also use the [TabPFN API Client](https://github.com/PriorLabs/tabpfn-client)." ] }, { "cell_type": "code", "execution_count": 1, "id": "49c76183", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier\n", "from sklearn.linear_model import LinearRegression, LogisticRegression\n", "import lightgbm as lgbm\n", "from tabpfn import TabPFNRegressor, TabPFNClassifier\n", "\n", "import doubleml as dml\n", "from doubleml.datasets import make_irm_data_discrete_treatments\n", "\n", "import warnings\n", "warnings.filterwarnings(\"ignore\", message=\"Running on CPU*\", category=UserWarning, module=\"tabpfn\")\n", "warnings.filterwarnings(\"ignore\", message=\".*does not have valid feature names.*\", category=UserWarning, module=\"lgbm\")\n", "warnings.filterwarnings(\"ignore\", category=FutureWarning, module=\"sklearn\")" ] }, { "cell_type": "markdown", "id": "4a04c896", "metadata": {}, "source": [ "## Data Generating Process (DGP)\n", "\n", "We generate synthetic data using DoubleML's discrete treatment data generating process. This creates:\n", "- A continuous treatment variable that is subsequently discretized into multiple levels $D$\n", "- True individual treatment effects (ITEs) for comparison with our estimates\n", "- Covariates $X$ that affect both treatment assignment $D$ and outcomes $Y$\n", "\n", "The discretization allows us to compare estimated Average Potential Outcomes (APOs) and Average Treatment Effects (ATEs) against their true values, providing a clear benchmark for evaluating different machine learning methods.\n", "For more details on the data generating process and the APO model, we refer to the [APO Model Example Notebook](https://docs.doubleml.org/stable/examples/py_double_ml_apo.html)." ] }, { "cell_type": "code", "execution_count": 2, "id": "746d6b11", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average treatment effects in each group:\n", "[ 0. 1.46 6.67 9.31 10.36 10.47]\n", "\n", "Average potential outcomes in each group:\n", "[209.9 211.36 216.56 219.2 220.26 220.37]\n", "\n", "Levels and their counts:\n", "(array([0., 1., 2., 3., 4., 5.]), array([183, 165, 154, 162, 175, 161]))\n" ] } ], "source": [ "# Parameters\n", "n_obs = 1000\n", "n_levels = 5\n", "linear = False\n", "n_rep = 1\n", "\n", "np.random.seed(42)\n", "data_apo = make_irm_data_discrete_treatments(n_obs=n_obs,n_levels=n_levels, linear=linear)\n", "\n", "y0 = data_apo['oracle_values']['y0']\n", "cont_d = data_apo['oracle_values']['cont_d']\n", "ite = data_apo['oracle_values']['ite']\n", "d = data_apo['d']\n", "potential_level = data_apo['oracle_values']['potential_level']\n", "level_bounds = data_apo['oracle_values']['level_bounds']\n", "\n", "average_ites = np.full(n_levels + 1, np.nan)\n", "apos = np.full(n_levels + 1, np.nan)\n", "mid_points = np.full(n_levels, np.nan)\n", "\n", "for i in range(n_levels + 1):\n", " average_ites[i] = np.mean(ite[d == i]) * (i > 0)\n", " apos[i] = np.mean(y0) + average_ites[i]\n", "\n", "print(f\"Average treatment effects in each group:\\n{np.round(average_ites,2)}\\n\")\n", "print(f\"Average potential outcomes in each group:\\n{np.round(apos,2)}\\n\")\n", "print(f\"Levels and their counts:\\n{np.unique(d, return_counts=True)}\")" ] }, { "cell_type": "markdown", "id": "230ae06b", "metadata": {}, "source": [ "### Visualizing the Treatment Effect Structure\n", "\n", "To better understand our data, let's visualize the relationship between the continuous treatment variable and the individual treatment effects, along with how the treatment is discretized into levels." ] }, { "cell_type": "code", "execution_count": 3, "id": "906c6c36", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Get a colorblind-friendly palette\n", "palette = sns.color_palette(\"colorblind\")\n", "\n", "df = pd.DataFrame({'cont_d': cont_d, 'ite': ite})\n", "df_sorted = df.sort_values('cont_d')\n", "\n", "mid_points = np.full(n_levels, np.nan)\n", "for i in range(n_levels):\n", " mid_points[i] = (level_bounds[i] + level_bounds[i + 1]) / 2\n", "\n", "df_apos = pd.DataFrame({'mid_points': mid_points, 'treatment effects': apos[1:] - apos[0]})\n", "\n", "# Create the primary plot with scatter and line plots\n", "fig, ax1 = plt.subplots()\n", "\n", "sns.lineplot(data=df_sorted, x='cont_d', y='ite', color=palette[0], label='ITE', ax=ax1)\n", "sns.scatterplot(data=df_apos, x='mid_points', y='treatment effects', color=palette[1], label='Grouped Treatment Effects', ax=ax1)\n", "\n", "# Add vertical dashed lines at level_bounds\n", "for bound in level_bounds:\n", " ax1.axvline(x=bound, color='grey', linestyle='--', alpha=0.7)\n", "\n", "ax1.set_title('Grouped Effects vs. Continuous Treatment')\n", "ax1.set_xlabel('Continuous Treatment')\n", "ax1.set_ylabel('Effects')\n", "\n", "# Create a secondary y-axis for the histogram\n", "ax2 = ax1.twinx()\n", "\n", "# Plot the histogram on the secondary y-axis\n", "ax2.hist(df_sorted['cont_d'], bins=30, alpha=0.3, weights=np.ones_like(df_sorted['cont_d']) / len(df_sorted['cont_d']), color=palette[2])\n", "ax2.set_ylabel('Density')\n", "\n", "# Make sure the legend includes all plots\n", "lines, labels = ax1.get_legend_handles_labels()\n", "ax1.legend(lines, labels, loc='upper left')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "2a3ef4e2", "metadata": {}, "source": [ "### Creating the DoubleMLData Object\n", "\n", "As with all DoubleML models, we need to create a [DoubleMLData](https://docs.doubleml.org/stable/api/generated/doubleml.data.DoubleMLData.html) object to properly structure our data for causal inference. This object handles the separation of outcome variables, treatment variables, and covariates." ] }, { "cell_type": "code", "execution_count": 4, "id": "d827dfab", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "================== DoubleMLData Object ==================\n", "\n", "------------------ Data summary ------------------\n", "Outcome variable: y\n", "Treatment variable(s): ['d']\n", "Covariates: ['x0', 'x1', 'x2', 'x3', 'x4']\n", "Instrument variable(s): None\n", "No. Observations: 1000\n", "\n", "------------------ DataFrame info ------------------\n", "\n", "RangeIndex: 1000 entries, 0 to 999\n", "Columns: 7 entries, y to x4\n", "dtypes: float64(7)\n", "memory usage: 54.8 KB\n", "\n" ] } ], "source": [ "y = data_apo['y']\n", "x = data_apo['x']\n", "d = data_apo['d']\n", "df_apo = pd.DataFrame(\n", " np.column_stack((y, d, x)),\n", " columns=['y', 'd'] + ['x' + str(i) for i in range(data_apo['x'].shape[1])]\n", ")\n", "\n", "dml_data = dml.DoubleMLData(df_apo, 'y', 'd')\n", "print(dml_data)" ] }, { "cell_type": "markdown", "id": "70beea16", "metadata": {}, "source": [ "## DoubleML with TabPFN\n", "\n", "The [TabPFN package](https://github.com/PriorLabs/tabpfn) integrates seamlessly with the [DoubleML](https://docs.doubleml.org/stable/index.html) framework for causal inference tasks.\n", "\n", "For fitting [average potential outcome models](https://docs.doubleml.org/stable/guide/models.html#average-potential-outcomes-apos), the `DoubleML` interface requires to specify the `ml_g` and `ml_m` learners:\n", "- `ml_g`: A regressor for the outcome model $g_0(D,X) = \\mathbb{E}[Y|X,D]$\n", "- `ml_m`: A classifier for the propensity score model $m_{0,d}(X) = \\mathbb{E}[1\\{D=d\\}|X]$\n", "\n", "**Note**: TabPFN works best with CUDA acceleration. If CUDA is not available, it will fall back to CPU computation. Instead you can use [TabPFN API Client](https://github.com/PriorLabs/tabpfn-client)." ] }, { "cell_type": "code", "execution_count": 5, "id": "15aa7b39", "metadata": {}, "outputs": [], "source": [ "device = 'cpu'\n", "ml_g = TabPFNRegressor(device=device)\n", "ml_m = TabPFNClassifier(device=device)" ] }, { "cell_type": "markdown", "id": "23c720e8", "metadata": {}, "source": [ "To model average potential outcomes, we initialize the [DoubleMLAPOS](https://docs.doubleml.org/stable/api/generated/doubleml.irm.DoubleMLAPOS.html#doubleml.irm.DoubleMLAPOS) object with the specified machine learning methods and treatment levels." ] }, { "cell_type": "code", "execution_count": 6, "id": "a85a3301", "metadata": {}, "outputs": [], "source": [ "treatment_levels = np.unique(dml_data.d)\n", "dml_obj = dml.DoubleMLAPOS(\n", " dml_data,\n", " ml_g=ml_g,\n", " ml_m=ml_m,\n", " treatment_levels=treatment_levels,\n", " n_rep=n_rep,\n", ")" ] }, { "cell_type": "markdown", "id": "941f3c8e", "metadata": {}, "source": [ "As usual, you can estimate the parameters by calling the `fit` method on the `dml_obj` instance." ] }, { "cell_type": "code", "execution_count": 7, "id": "dbd90a29", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0b99ff64cd2644dfaa62c41b58bf02f9", "version_major": 2, "version_minor": 0 }, "text/plain": [ "tabpfn-v2-classifier-finetuned-zk73skhh.(…): 0%| | 0.00/29.0M [00:00|t| 2.5 % 97.5 %\n", "0.0 209.395480 1.211939 172.777199 0.0 207.020123 211.770838\n", "1.0 210.966031 1.367425 154.279824 0.0 208.285928 213.646134\n", "2.0 216.538410 1.245027 173.922656 0.0 214.098202 218.978618\n", "3.0 219.333914 1.334717 164.329850 0.0 216.717916 221.949912\n", "4.0 219.905724 1.278724 171.972735 0.0 217.399470 222.411977\n", "5.0 219.265669 1.177094 186.277179 0.0 216.958608 221.572730\n" ] } ], "source": [ "dml_obj.fit()\n", "print(dml_obj)" ] }, { "cell_type": "markdown", "id": "bd66a2f9", "metadata": {}, "source": [ "## Machine Learning Methods Comparison\n", "\n", "We compare four different machine learning approaches for estimating the nuisance functions in our causal model:\n", "\n", "1. **Random Forest**: Ensemble method with bagging and random feature selection\n", "2. **Linear Models**: Linear/Logistic regression\n", "3. **LightGBM**: Gradient boosting framework\n", "4. **TabPFN**: A foundation model for tabular data" ] }, { "cell_type": "code", "execution_count": 8, "id": "ea1c0ce4", "metadata": {}, "outputs": [], "source": [ "learner_dict = {\n", " 'RandomForest': {\n", " 'ml_g': RandomForestRegressor(),\n", " 'ml_m': RandomForestClassifier()\n", " },\n", " 'Linear': {\n", " 'ml_g': LinearRegression(),\n", " 'ml_m': LogisticRegression(max_iter=1000)\n", " },\n", " 'LightGBM': {\n", " 'ml_g': lgbm.LGBMRegressor(n_estimators=50, verbose=-1),\n", " 'ml_m': lgbm.LGBMClassifier(n_estimators=50, verbose=-1)\n", " },\n", " 'TabPFN': {\n", " 'ml_g': TabPFNRegressor(device=device),\n", " 'ml_m': TabPFNClassifier(device=device)\n", " }\n", "}" ] }, { "cell_type": "markdown", "id": "7ffd5a74", "metadata": {}, "source": [ "### Estimation of Average Potential Outcomes\n", "\n", "Now we estimate the Average Potential Outcomes (APOs) for each treatment level using all four machine learning methods. We use the [DoubleMLAPOS](https://docs.doubleml.org/dev/api/generated/doubleml.irm.DoubleMLAPOS.html) class, which:\n", "\n", "1. **Estimates nuisance functions**: Uses cross-fitting to estimate $g_0(D,X)$ and $m_{0,d}(X)$ \n", "2. **Computes APO estimates**: Uses the efficient influence function to estimate $\\theta_d = \\mathbb{E}[Y(d)]$\n", "3. **Provides confidence intervals**: Based on the asymptotic distribution of the estimator\n", "\n", "We also compute **causal contrasts** (Average Treatment Effects) as differences between treatment levels and the reference level (no treatment)." ] }, { "cell_type": "code", "execution_count": 9, "id": "db8b5c59", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\utils\\_checks.py:194: UserWarning: Propensity predictions from learner RandomForestClassifier() for ml_m are close to zero or one (eps=1e-12).\n", " warnings.warn(\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\utils\\_checks.py:194: UserWarning: Propensity predictions from learner RandomForestClassifier() for ml_m are close to zero or one (eps=1e-12).\n", " warnings.warn(\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\utils\\_checks.py:194: UserWarning: Propensity predictions from learner RandomForestClassifier() for ml_m are close to zero or one (eps=1e-12).\n", " warnings.warn(\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\utils\\_checks.py:194: UserWarning: Propensity predictions from learner RandomForestClassifier() for ml_m are close to zero or one (eps=1e-12).\n", " warnings.warn(\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n", "c:\\Users\\BAM5698\\AppData\\Local\\miniconda3\\envs\\dml_docs\\Lib\\site-packages\\doubleml\\double_ml.py:1479: UserWarning: The estimated nu2 for d is not positive. Re-estimation based on riesz representer (non-orthogonal).\n", " warnings.warn(msg, UserWarning)\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
learnertreatment_levelateci_lowerci_upper
0RandomForest1.01.325370-4.2189196.869658
1RandomForest2.05.7022481.09459510.309901
2RandomForest3.08.7432034.08072913.405677
3RandomForest4.06.6324071.97903111.285783
4RandomForest5.07.9672062.35908313.575329
5Linear1.04.971059-1.23128111.173400
6Linear2.07.9633672.88296513.043769
7Linear3.010.7475386.74553614.749540
8Linear4.011.5943177.88923615.299398
9Linear5.06.6269983.01452510.239471
10LightGBM1.02.156988-16.41126420.725240
11LightGBM2.05.973140-7.91522519.861505
12LightGBM3.010.824140-4.92541026.573689
13LightGBM4.011.547482-2.46547625.560440
14LightGBM5.012.528573-2.62775427.684899
15TabPFN1.01.5316820.2088402.854525
16TabPFN2.06.9586126.0262927.890933
17TabPFN3.010.3179469.04809011.587801
18TabPFN4.010.3913899.41750211.365275
19TabPFN5.09.8168968.87327510.760517
\n", "
" ], "text/plain": [ " learner treatment_level ate ci_lower ci_upper\n", "0 RandomForest 1.0 1.325370 -4.218919 6.869658\n", "1 RandomForest 2.0 5.702248 1.094595 10.309901\n", "2 RandomForest 3.0 8.743203 4.080729 13.405677\n", "3 RandomForest 4.0 6.632407 1.979031 11.285783\n", "4 RandomForest 5.0 7.967206 2.359083 13.575329\n", "5 Linear 1.0 4.971059 -1.231281 11.173400\n", "6 Linear 2.0 7.963367 2.882965 13.043769\n", "7 Linear 3.0 10.747538 6.745536 14.749540\n", "8 Linear 4.0 11.594317 7.889236 15.299398\n", "9 Linear 5.0 6.626998 3.014525 10.239471\n", "10 LightGBM 1.0 2.156988 -16.411264 20.725240\n", "11 LightGBM 2.0 5.973140 -7.915225 19.861505\n", "12 LightGBM 3.0 10.824140 -4.925410 26.573689\n", "13 LightGBM 4.0 11.547482 -2.465476 25.560440\n", "14 LightGBM 5.0 12.528573 -2.627754 27.684899\n", "15 TabPFN 1.0 1.531682 0.208840 2.854525\n", "16 TabPFN 2.0 6.958612 6.026292 7.890933\n", "17 TabPFN 3.0 10.317946 9.048090 11.587801\n", "18 TabPFN 4.0 10.391389 9.417502 11.365275\n", "19 TabPFN 5.0 9.816896 8.873275 10.760517" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reference_level = 0 \n", "\n", "apo_results = []\n", "causal_contrast_results = []\n", "model_list = []\n", "\n", "for learner_name, learner_pair in learner_dict.items():\n", " # Recreate dml_obj for each learner (as in the main loop)\n", " dml_obj = dml.DoubleMLAPOS(\n", " dml_data,\n", " learner_pair['ml_g'],\n", " learner_pair['ml_m'],\n", " treatment_levels=treatment_levels,\n", " n_rep=n_rep,\n", " )\n", " dml_obj.fit()\n", " model_list.append(dml_obj)\n", "\n", " # APO confidence intervals\n", " ci_pointwise = dml_obj.confint(level=0.95)\n", " df_apos = pd.DataFrame({\n", " 'learner': learner_name,\n", " 'treatment_level': treatment_levels,\n", " 'apo': dml_obj.coef,\n", " 'ci_lower': ci_pointwise.values[:, 0],\n", " 'ci_upper': ci_pointwise.values[:, 1]}\n", " )\n", " apo_results.append(df_apos)\n", "\n", " # ATE confidence intervals\n", " causal_contrast_model = dml_obj.causal_contrast(reference_levels=reference_level)\n", " ates = causal_contrast_model.thetas\n", " ci_ates = causal_contrast_model.confint(level=0.95)\n", " df_ates = pd.DataFrame({\n", " 'learner': learner_name,\n", " 'treatment_level': treatment_levels[1:],\n", " 'ate': ates,\n", " 'ci_lower': ci_ates.iloc[:, 0].values,\n", " 'ci_upper': ci_ates.iloc[:, 1].values\n", " })\n", " causal_contrast_results.append(df_ates)\n", "\n", "# Combine all results\n", "df_all_apos = pd.concat(apo_results, ignore_index=True)\n", "df_all_ates = pd.concat(causal_contrast_results, ignore_index=True)\n", "df_all_ates" ] }, { "cell_type": "markdown", "id": "9c4a4e31", "metadata": {}, "source": [ "### Visualizing Average Potential Outcomes\n", "\n", "Let's compare the estimated APOs across all methods with their true values. The plot shows:\n", "- **Estimated APOs**: Point estimates with 95% confidence intervals for each method\n", "- **True APOs**: Red horizontal lines showing the oracle values\n", "- **Treatment levels**: Different dosage levels of the treatment (0 = no treatment)" ] }, { "cell_type": "code", "execution_count": 10, "id": "6076a90e", "metadata": {}, "outputs": [ { "data": { "image/png": "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NWDAAL300ktOwwIuu+wyzZ49W127dtWJEyf0/vvvOybpevvtt/X33387kjd3LVu2TKGhobrpppvcqj9hwgRNnDhR3bt314gRI7R9+3bNmjVL33//vb766isFBgY66h47dky9evXSwIEDNWjQIH344Yd67LHH1KZNG1133XXq3Lmz3nvvPd1+++3q0aOH7rjjjhLv++2339bw4cN11VVXacyYMdq9e7f69eunWrVqqWHDho56drtd/fr108aNG3XfffepZcuW2rJli6ZPn64dO3bo448/djrvxo0btWTJEj3wwAOKjIzUK6+8ohtvvFF79+51tNW0tDRdfvnlysjI0H333acWLVooNTVVH374oXJychQUFOT2a9FT54pv4MCB2rFjR5Fu3XXr1pWU31ti/PjxGjRokO655x4dPnxYr776qjp37qyffvrJqZfDkSNHdN1112nw4MEaMmSI6tWrp/bt2+uOO+7Q999/70jUJOmvv/7SN99849RDxp33M0+tW7dOH3zwgUaNGqXg4GDNnDlTvXr10nfffaeEhAR17dpVDRs21Pz583XDDTc4HTt//nw1bdpUHTp0KNV9F8jLy1PPnj119dVX68UXX3S8jocPH665c+fqzjvv1KhRo/Tnn3/qtdde008//eT0epg7d64iIiI0duxYRURE6IsvvtC//vUvZWVlOZ6/J554QpmZmdq/f7+mT58uSU7DZaTz+6zxpB2c67XbsmVLTZo0Sf/617903333qVOnTpLOfxjBwYMHdeWVVzp+rKpbt64+++wz3X333crKytKYMWNUr149denSRYsWLdJTTz3ldPwHH3wgf39/x+dRWb0mARTDAIASzJkzx5Dk8l9wcLCj3ujRow2z2Wzk5eUVe67Fixcbkoy1a9cW2delSxejS5cuju21a9cakoyEhATj1KlTjvL/+7//M0wmk3Hdddc5Hd+hQwfjggsucCrLyckpcj89e/Y04uPjncpat27tdN8FJk+ebISHhxs7duxwKn/88ccNf39/Y+/evYZhGMbHH39sSDKmTp3qqJOXl2d06tTJkGTMmTOnyLnPdvDgQSMgIMD497//7Si76qqrjP79+xepe8EFFxiJiYnG4cOHjcOHDxv/+9//jMGDBxuSjJEjRxqGYRgzZswwJBlLly4t9j6PHj1qSDIGDhxYYmyunsf333/fkGSsX7/eUfbUU08Zkoy77rrLqe4NN9xg1K5d27H9888/G5KMBx54wKnerbfeakgynnrqqRLjGTlypOHn52fs2bPHqbzgOXjwwQcdZTNmzDAefPBBY/78+caHH35ojB492ggICDAuvPBCIzMz01Fv3759RuvWrR1tu1OnTsbx48eNjIwMo27dusbChQtLjMmVmjVrGv/4xz/cqnvo0CEjKCjISExMNGw2m6P8tddeMyQZ77zzjqOsS5cuhiTjP//5j6PMYrEYMTExxo033uh0XklGUlKSU1nBa6vgdXjq1CkjOjraaNu2rWGxWBz1Zs+ebUhyem289957hp+fn7Fhwwanc77xxhuGJOOrr75yuu+goCBj586djrL//e9/hiTj1VdfdZTdcccdhp+fn/H9998XeV7sdrthGO6/FovTpUsXo3Xr1k5l7sb3wgsvGJKMP//80+n4PXv2GP7+/sYzzzzjVL5lyxYjICDAqbzgb/bGG2841c3MzDSCg4ONhx56yKl86tSphslkMv766y9HmbvvZ2e/lxanoK3/8MMPjrK//vrLCAkJMW644QZH2bhx44zg4GAjIyPDUXbo0CEjICDgnK/Vwlw9j0OHDjUkGY8//rhT3Q0bNhiSjPnz5zuVr1y5ski5q+dl+PDhRlhYmJGbm+so69OnT5HPCMM4/8+a0rSDc712v//+e7c/OwzjzOe0q9dQgbvvvtuoX7++8ffffzuVDx482IiKinI8j2+++aYhydiyZYtTvVatWhndunVzbHvymnTnfR1AyegeD8Atr7/+ulJSUpz+FR4LXaNGDWVnZyslJcWr93vHHXc4XWG84oorZBiG7rrrLqd6V1xxhfbt26e8vDxHWeGrsQU9Bbp06aLdu3crMzPznPe9ePFiderUSTVr1tTff//t+Ne9e3fZbDZHN9IVK1YoICBAI0aMcBzr7++vkSNHuv04Fy5cKD8/P914442Osv/7v//TZ599VqQ7qJQ/cV/dunVVt25d/eMf/9DixYt1++23O65mHz9+XJIUGRlZ7H0W7MvKyioxtsLPY25urv7++2/HlfnNmzcXqV8wpr5Ap06ddOTIEcf9rFixQpI0atQop3ruThB1zz33yN/fX4MGDdKmTZu0a9cuTZkyxdGF9+TJk466o0eP1quvvqpbb71VN954o2bMmKF3331Xf/zxh2bOnOmoFxcXp59++kk//fSTtm3bpi+//FIRERGaOHGimjdvrltuuUUbN27UFVdcoYYNG2rUqFFOXbddycrKKvH5L2zNmjU6deqUxowZIz+/Mx/N9957r8xms/773/861Y+IiHCa0yAoKEiXX365du/e7db9FfbDDz/o0KFDuv/++53mAigY7lHY4sWL1bJlS7Vo0cLpNVEwVGHt2rVO9bt3766mTZs6ti+++GKZzWZHnHa7XR9//LH69u3rcs6Mgl4c7r4WPXWu+EqyZMkS2e12DRo0yCmmmJgYXXjhhUWei+DgYN15551OZWazWdddd50WLVrkNHTjgw8+0JVXXqlGjRo5ys73/cyVDh06OCZHlKRGjRqpf//+WrVqlaN7+R133CGLxaIPP/zQKb68vDynNng+Cr93Svl/76ioKPXo0cPpuW3fvr0iIiKcntvCz8vx48f1999/q1OnTsrJyfFoDorSftZ42g68+dp1l2EY+uijj9S3b18ZhuEUZ8+ePZWZmel4Lx84cKACAgL0wQcfOI7funWrfv31V91yyy2OsrJ6TQJwje7xANxy+eWXlzgR3QMPPKBFixbpuuuuU2xsrBITEzVo0KDzXmKq8JdWSY4konCX3YJyu92uzMxMR7fbr776Sk899ZS+/vrrImOqMzMziyQkZ/vjjz/0yy+/OLrCnu3QoUOS8ruy1q9fv0h3y+bNm5/j0Z0xb948XX755Tpy5IhjrPgll1yiU6dOafHixbrvvvuc6l9xxRV6+umnZTKZFBYWppYtWzp1wSxIFguSd1fcSewl6ejRo5o4caIWLlzoeMwFXCULZ//NCsaKHzt2TGazWX/99Zf8/PyckiXJ/efr4osv1oIFC3T//fc7ZnKPiYnRjBkzNGLEiCJ/h7Pdeuuteuihh7RmzRo9/vjjjvLAwECnmZp///13zZw5U5s2bdLRo0fVp08fPf7447rmmmt055136plnnnE59rOA2Wwu8fkv7K+//pJU9DkICgpSfHy8Y3+BuLi4IsMSatasqV9++cWt+3N13xdeeKFTeWBgYJHx1n/88Yd+++23c74mCpzdFgriLPgh6vDhw8rKyjrncmzuvhY9da74zhWTYRhFnrcChRNAKX/ySFcTbt5yyy36+OOP9fXXX+uqq67Srl279OOPPxbpXny+72euuIr9oosuUk5Ojg4fPqyYmBi1aNFCl112mebPn6+7775bUn7X+CuvvNKj1UOKExAQUGSuiD/++EOZmZmKjo52eUzhv/e2bdv05JNP6osvvijyA6QnP2aU9rPG03bgzdeuuw4fPqyMjAzNnj1bs2fPdlmn4DmtU6eOrr32Wi1atEiTJ0+WlP8jTUBAgAYOHOioX1avSQCukbQD8Iro6Gj9/PPPWrVqlT777DN99tlnmjNnju644w69++67pT7v2Utznau84GrVrl27dO2116pFixaaNm2aGjZsqKCgIK1YsULTp093a6Icu92uHj16OGYUP9tFF13k5qMo2R9//KHvv/9ekusv0fPnzy+StNepU6fYmeWlM3MF/PLLL0VmcS5Q8CWxVatWJcZXcEX7kUceUdu2bRURESG73a5evXq5fB7P9bfxhptuukn9+vXT//73P9lsNrVr184xsZo7f5eGDRvq6NGjJdZJTk7WkCFD1K5dO7333nuqVauWxo0bJ0l69NFHz5m0t2jRQj///LNOnTrl9dURyuM5dsVut6tNmzaaNm2ay/1nJzjeirOsXovnE5/dbpfJZNJnn33m8jxn/3jkah4GKX9SyLCwMC1atEhXXXWVFi1aJD8/P6e5LLzxfnY+7rjjDo0ePVr79++XxWLRN9984zQh2fkIDg526l0i5T+30dHRmj9/vstjChLFjIwMdenSRWaz2bFMY0hIiDZv3qzHHnvMo+eltJ81nraDinjtFjwPQ4YMKXaulYsvvthxe/Dgwbrzzjv1888/q23btlq0aJGuvfZapxU4yuvzEUA+knYAXhMUFKS+ffuqb9++stvteuCBB/Tmm29q/PjxatasWZGrC2Xp008/lcVi0bJly5yuoJzdVVFSsXE1bdpUJ06cKDE5lqQLLrhAn3/+uU6cOOH0BW379u1uxTp//nwFBgbqvffeK/KFbuPGjXrllVe0d+9el1cFi3P11VerRo0aWrBggZ544gmXXxT/85//SJKuv/76Ys9z7Ngxff7555o4caLTxEt//PGH27Gc7YILLpDdbteuXbucriy7+3wVCAoKcpq8a82aNZJ0zr+XYRjas2ePLrnkkmLrLF++XJs2bXI8zrS0NNWvX9+xv0GDBkpNTS3xfvr27auvv/5aH330kdN6765ccMEFkvKfg8JXt0+dOqU///zznI/pfBTc9x9//OE0I7/VatWff/6pf/zjH46ypk2b6n//+5+uvfZar7ye69atK7PZrK1bt5ZYz93XYlko6f3BMAw1adLkvBKU8PBwXX/99Vq8eLGmTZumDz74QJ06dVKDBg0cdTx5P/OEq9fxjh07FBYW5nQFdfDgwRo7dqzef/99nTx5UoGBgU5dpb2tadOmWrNmjTp27Fjsjx1S/kzrR44c0ZIlS9S5c2dHecEqGoWV1eePt9pBYd6OtWCVDpvN5tZraMCAARo+fLiji/yOHTscP1gWqMjXJFAdMaYdgFecvfyXn5+f45f7guVxCtbe9XQptNIoSFILX73IzMzUnDlzitQNDw93GdOgQYP09ddfa9WqVUX2ZWRkOMY09u7dW3l5eU7LL9lsNr366qtuxTp//nx16tRJt9xyi2666SanfwUzlr///vtunatAWFiYHn74YW3fvt0xK35h//3vfzV37lz17NmzxJnjXT2Pks5rZuDrrrtOkvTKK6947Zx//PGH3njjDV1//fVOX5wPHz5cpO6sWbN0+PDhYodunDp1SmPHjtWTTz7p6J5br1497dy50/E3/+233xQTE1NiTPfff7/q16+vhx56SDt27Ciy/9ChQ3r66acl5f/QEBQUpFdeecXpuX777beVmZnp9sz6pXHppZeqbt26euONN5zG6c+dO7fI62LQoEFKTU11ub78yZMnlZ2d7dF9+/n5acCAAfr000/1ww8/FNlf8Fy4+1osC8W9bw0cOFD+/v6aOHFikdeHYRhF3hNLcssttygtLU1vvfWW/ve//xVJiD15P/PE119/7TQvxb59+/TJJ58oMTHR6Ye+OnXq6LrrrtO8efM0f/589erVy+mqq7cNGjRINpvN0T27sLy8PMffwtXzcurUKaf5KgqEh4eXeux/SbzZDgp4+7PS399fN954oz766COXP5Cd/T5Zo0YN9ezZU4sWLdLChQsVFBRUpMdWRb4mgeqIK+0A3PLZZ5+5nNTnqquuUnx8vO655x4dPXpU3bp1U1xcnP766y+9+uqratu2raOrdtu2beXv76/nn39emZmZCg4Odqw77G2JiYmOK//Dhw/XiRMn9O9//1vR0dE6cOCAU9327dtr1qxZevrpp9WsWTNFR0erW7dueuSRR7Rs2TJdf/31GjZsmNq3b6/s7Gxt2bJFH374ofbs2aM6deqob9++6tixox5//HHt2bNHrVq10pIlS9z6gvjtt99q586djuXFzhYbG6t27dpp/vz5euyxxzx6Dh5//HH99NNPev755/X111/rxhtvVGhoqDZu3Kh58+apZcuW5xy6YDab1blzZ02dOlVWq1WxsbFavXq1yytZ7mrbtq3+7//+TzNnzlRmZqauuuoqff7559q5c6fb52jVqpVuvvlmNWrUSH/++admzZqlWrVq6Y033nCqd8EFF+iWW25RmzZtFBISoo0bN2rhwoVq27athg8f7vLcL7/8sqT8SewK9O7dW0lJSY4l6iZPnqx77rmnxBhr1qyppUuXqnfv3mrbtq2GDBnimPRr8+bNev/99x3LZdWtW1fjxo3TxIkT1atXL/Xr10/bt2/XzJkzddlll3ltwi9XAgMD9fTTT2v48OHq1q2bbrnlFv3555+aM2dOkTHtt99+uxYtWqT7779fa9euVceOHWWz2fT7779r0aJFWrVqVYlzX7jy7LPPavXq1erSpYtjGbkDBw5o8eLF2rhxo2rUqOH2a7EsFPzNnnjiCQ0ePFiBgYHq27evmjZtqqefflrjxo3Tnj17NGDAAEVGRurPP//U0qVLdd999+nhhx926z4K1ih/+OGHHQlWYZ68n3kiISFBPXv2dFryTZLLYR933HGHY/lCV8m0N3Xp0kXDhw/XlClT9PPPPysxMVGBgYH6448/tHjxYr388su66aabdNVVV6lmzZoaOnSoRo0aJZPJpPfee89lV/P27dvrgw8+0NixY3XZZZcpIiJCffv2Pe9YvdkOCp+zRo0aeuONNxQZGanw8HBdccUVatKkSYnHvfPOO1q5cmWR8tGjR+u5557T2rVrdcUVV+jee+9Vq1atdPToUW3evFlr1qwpMlzolltu0ZAhQzRz5kz17NnTac4USRX6mgSqpfKZpB5AZVXSkm8qtCTNhx9+aCQmJhrR0dFGUFCQ0ahRI2P48OHGgQMHnM7373//24iPjzf8/f2dlp0qbsm3xYsXu4zn7KVtCpYbO3z4sKNs2bJlxsUXX2yEhIQYjRs3Np5//nnjnXfeKbLsUHp6utGnTx8jMjKyyBJXx48fN8aNG2c0a9bMCAoKMurUqWNcddVVxosvvui0PNCRI0eM22+/3TCbzUZUVJRx++23Gz/99NM5l+0ZOXKkIcnYtWtXsXUmTJhgSDL+97//GYaRv+Rbnz59iq1fmM1mM+bMmWN07NjRMJvNRkhIiNG6dWtj4sSJxokTJ9w6x/79+40bbrjBqFGjhhEVFWXcfPPNRlpaWpFlfFz9DQzjzN+s8HN+8uRJY9SoUUbt2rWN8PBwo2/fvsa+ffvcXhpo8ODBRsOGDY2goCCjQYMGxv33328cPHiwSL177rnHaNWqlREZGWkEBgYazZo1Mx577DEjKyvL5XnT09ONyMhIY9myZUX2ffbZZ0aLFi2MGjVqGHfccYeRnZ19zjgNwzDS0tKM5ORk46KLLjJCQkKMsLAwo3379sYzzzzjtOycYeQv8daiRQsjMDDQqFevnjFixAjj2LFjTnVcLV9mGPnLZ529pJXcWPKtwMyZM40mTZoYwcHBxqWXXmqsX7/e5fJhp06dMp5//nmjdevWRnBwsFGzZk2jffv2xsSJE50ej6v7Noz89jt06FCnsr/++su44447jLp16xrBwcFGfHy8kZSU5LQEnbuvRVeKW/LN3fgmT55sxMbGGn5+fkXa8kcffWRcffXVRnh4uBEeHm60aNHCSEpKMrZv317i/Z/ttttuMyQZ3bt3d7nf3fczT5Z8S0pKMubNm2dceOGFRnBwsHHJJZe4XJLTMPKXJqtZs6YRFRVlnDx58pznP1txS76Fh4cXe8zs2bON9u3bG6GhoUZkZKTRpk0b49FHHzXS0tIcdb766ivjyiuvNEJDQ40GDRoYjz76qLFq1aoibfzEiRPGrbfeatSoUcOQ5HiteOOzxjDOrx24eu1+8sknRqtWrYyAgIBzfo6c63N63759hmHkLy2alJRkNGzY0AgMDDRiYmKMa6+91pg9e3aRc2ZlZRmhoaGGJGPevHku79fd16S77+sAimcyjDKetQYAAACVWl5enho0aKC+ffvq7bffruhwAKBaYUw7AAAASvTxxx/r8OHDuuOOOyo6FACodrjSDgAAAJe+/fZb/fLLL5o8ebLq1KnjNHEdAKB8cKUdAAAALs2aNUsjRoxQdHS0Y5lIAED54ko7AAAAAAA+iivtAAAAAAD4KJJ2AAAAAAB8VEBFB+AL7Ha70tLSFBkZKZPJVNHhAAAAAACqOMMwdPz4cTVo0EB+fsVfTydpl5SWlqaGDRtWdBgAAAAAgGpm3759iouLK3Y/SbukyMhISflPltlsruBofIfVatXq1auVmJiowMDAig4H1QTtDhWBdoeKQLtDeaPNoSLQ7oqXlZWlhg0bOvLR4pC0S44u8WazmaS9EKvVqrCwMJnNZl5gKDe0O1QE2h0qAu0O5Y02h4pAuzu3cw3RZiI6AAAAAAB8FEk7AAAAAAA+iqQdAAAAAAAfRdIOAAAAAICPImkHAAAAAMBHkbQDAAAAAOCjSNoBAAAAAPBRJO0AAAAAAPgoknYAAAAAAHwUSTsAAAAAAD6KpB0AAAAAAB9F0g4AAAAAgI8iaQcAAAAAwEeRtAMAAAAA4KNI2gEAAAAA8FEk7QAAAAAA+CiSdgAAAAAAfBRJOwAAAAAAPoqkHQAAAAAAH0XSDgAAAACAjwqo6AAAAAAAANXD9K3rNH3beo+PS27dWckJXcogIt9H0g4AAAAAKBdZ1lyl5mSW6rjqiqQdAAAAAFAuzIEhig2LciozZCgtJ0uS1CDMLJNMLo+rrkjaAQAAAADlIjmhS5Fu7tlWi8zznpAk/T7wMYUHBldEaD6LiegAAAAAAPBRFZq0T5kyRZdddpkiIyMVHR2tAQMGaPv27U51hg8frqZNmyo0NFR169ZV//799fvvvzvV2bt3r/r06aOwsDBFR0frkUceUV5eXnk+FAAAAAAAvK5Ck/Z169YpKSlJ33zzjVJSUmS1WpWYmKjs7GxHnfbt22vOnDn67bfftGrVKhmGocTERNlsNkmSzWZTnz59dOrUKW3atEnvvvuu5s6dq3/9618V9bAAAAAAAPCKCh3TvnLlSqftuXPnKjo6Wj/++KM6d+4sSbrvvvsc+xs3bqynn35a//jHP7Rnzx41bdpUq1ev1q+//qo1a9aoXr16atu2rSZPnqzHHntMEyZMUFBQULk+JgAAAAAAvMWnJqLLzMyf+r9WrVou92dnZ2vOnDlq0qSJGjZsKEn6+uuv1aZNG9WrV89Rr2fPnhoxYoS2bdumSy65pMh5LBaLLBaLYzsrK3+mQqvVKqvV6rXHU9kVPBc8JyhPtDtUBNodKgLtDuWNNoeK4E67sxYa2mzNy5O1mky95u5r0WeSdrvdrjFjxqhjx45KSEhw2jdz5kw9+uijys7OVvPmzZWSkuK4gp6enu6UsEtybKenp7u8rylTpmjixIlFylevXq2wsDBvPJwqJSUlpaJDQDVEu0NFoN2hItDuUN5oc6gIJbW7XMPmuL1q1SqFmPzLI6QKl5OT41Y9n0nak5KStHXrVm3cuLHIvttuu009evTQgQMH9OKLL2rQoEH66quvFBJSurX6xo0bp7Fjxzq2s7Ky1LBhQyUmJspsNpf6MVQ1VqtVKSkp6tGjhwIDAys6HFQTtDtUBNodKgLtDuWNNoeK4E67y847JS3cJCm/13R4QPUY4lzQ4/tcfCJpf/DBB7V8+XKtX79ecXFxRfZHRUUpKipKF154oa688krVrFlTS5cu1f/93/8pJiZG3333nVP9gwcPSpJiYmJc3l9wcLCCg4uu/RcYGMgbmAs8L6gItDtUBNodKgLtDuWNNoeKUFK7C5T9zO2AgGrTPt19nBU6WMAwDD344INaunSpvvjiCzVp0sStYwzDcIxJ79Chg7Zs2aJDhw456qSkpMhsNqtVq1ZlFjsAAAAAAGWtQq+0JyUlacGCBfrkk08UGRnpGIMeFRWl0NBQ7d69Wx988IESExNVt25d7d+/X88995xCQ0PVu3dvSVJiYqJatWql22+/XVOnTlV6erqefPJJJSUlubyaDgAA4Gumb12n6dvWe3xccuvOSk7oUgYRAQB8RYUm7bNmzZIkde3a1al8zpw5GjZsmEJCQrRhwwbNmDFDx44dU7169dS5c2dt2rRJ0dHRkiR/f38tX75cI0aMUIcOHRQeHq6hQ4dq0qRJ5f1wAAAASiXLmqvUnMxSHQcAqNoqNGk3DKPE/Q0aNNCKFSvOeZ4LLrjArXoAAAC+yBwYotiwKKcyQ4bScvInKWoQZpZJJpfHAQCqNp+YiA4AAKA6S07oUqSbe7bVIvO8JyRJvw98TOGBDPsDgOqoeqxaDwAAAABAJUTSDgAAAACAjyJpBwAAAADAR5G0AwAAAADgo0jaAQAAAADwUSTtAAAAAAD4KJJ2AAAAAAB8FEk7AAAAAAA+iqQdAAAAAAAfRdIOAAAAAICPImkHAAAAAMBHkbQDAAAAAOCjSNoBAAAAAPBRJO0AAAAAAPgoknYAAAAAAHwUSTsAAAAAAD4qoKIDAAAAAFD+pm9dp+nb1nt8XHLrzkpO6FIGEQFwhaQdAAAAqIayrLlKzcks1XEAyg9JOwAAAFANmQNDFBsW5VRmyFBaTpYkqUGYWSaZXB4HoPyQtAMAAADVUHJClyLd3LOtFpnnPSFJ+n3gYwoPDK6I0AAUwkR0AAAAAAD4KJJ2AAAAAAB8FEk7AAAAAAA+iqQdAAAAAAAfRdIOAAAAAICPImkHAAAAAMBHkbQDAAAAAOCjSNoBAAAAAPBRJO0AAAAAAPgoknYAAAAAAHwUSTsAAAAAAD6KpB0AAAAAAB9F0g4AAAAAgI8iaQcAAAAAwEeRtAMAAAAA4KNI2gEAAAAA8FEk7QAAAAAA+CiSdgAAAAAAfBRJOwAAAAAAPoqkHQAAAAAAH0XSDgAAAACAjyJpBwAAAADAR5G0AwAAAADgo0jaAQAAAADwUSTtAAAAAAD4KJJ2AAAAAAB8FEk7AAAAAAA+iqQdAAAAAAAfRdIOAAAAAICPImkHAAAAAMBHkbQDAAAAAOCjSNoBAAAAAPBRJO0AAAAAAPioCk3ap0yZossuu0yRkZGKjo7WgAEDtH37dsf+o0ePauTIkWrevLlCQ0PVqFEjjRo1SpmZmU7nMZlMRf4tXLiwvB8OAAAAAABeVaFJ+7p165SUlKRvvvlGKSkpslqtSkxMVHZ2tiQpLS1NaWlpevHFF7V161bNnTtXK1eu1N13313kXHPmzNGBAwcc/wYMGFDOjwYAAAAAAO8KqMg7X7lypdP23LlzFR0drR9//FGdO3dWQkKCPvroI8f+pk2b6plnntGQIUOUl5engIAz4deoUUMxMTHlFjsAAAAAAGWtQpP2sxV0e69Vq1aJdcxms1PCLklJSUm65557FB8fr/vvv1933nmnTCaTy3NYLBZZLBbHdlZWliTJarXKarWe78OoMgqeC54TlCfaHSoC7Q4V4VztzpqX53TbylREOE/uvNfR7uBttLviufu9w2QYhlHGsbjFbrerX79+ysjI0MaNG13W+fvvv9W+fXsNGTJEzzzzjKN88uTJ6tatm8LCwrR69Wo99dRTmjp1qkaNGuXyPBMmTNDEiROLlC9YsEBhYWHeeUAAAADnIdew6dZjmyRJC2pepRCTfwVHhOqAdoeKUF3bXU5Ojm699VbHheni+EzSPmLECH322WfauHGj4uLiiuzPyspSjx49VKtWLS1btkyBgYHFnutf//qX5syZo3379rnc7+pKe8OGDfX333+X+GRVN1arVSkpKerRo0eJzzfgTbQ7VATaHSrCudpddt4p1V74lCTpyOCJCg8IKu8QUcW4815Hu4O30e6Kl5WVpTp16pwzafeJ7vEPPvigli9frvXr17tM2I8fP65evXopMjJSS5cuPecXqiuuuEKTJ0+WxWJRcHBwkf3BwcEuywMDA/my5gLPCyoC7Q4VgXaHilBcuwuU/cztgADaJrympPc62h3KCu2uKHcfZ4UOFjAMQw8++KCWLl2qL774Qk2aNClSJysrS4mJiQoKCtKyZcsUEhJyzvP+/PPPqlmzpsvEHAAAAACAyqJCr7QnJSVpwYIF+uSTTxQZGan09HRJUlRUlEJDQx0Je05OjubNm6esrCzHpHF169aVv7+/Pv30Ux08eFBXXnmlQkJClJKSomeffVYPP/xwRT40AAAAAADOW4Um7bNmzZIkde3a1al8zpw5GjZsmDZv3qxvv/1WktSsWTOnOn/++acaN26swMBAvf7660pOTpZhGGrWrJmmTZume++9t1weA4CyNX3rOk3ftt7j45Jbd1ZyQpcyiAgAAAAoPxWatJ9rDryuXbues06vXr3Uq1cvb4YFwIdkWXOVmpNZquMAAACAys4nJqIDgOKYA0MUGxblVGbIUFpO/lCZBmFmmWRyeRwAAABQ2ZG0A/BpyQldinRzz7ZaZJ73hCTp94GPKTyQSScBAABQNVXo7PEAAAAAAKB4JO0AAAAAAPgoknYAAAAAAHwUSTsAAAAAAD6KpB0AAAAAAB9F0g4AAAAAgI8iaQcAAAAAwEexTjsAAABQSWRunqHMzS97fFxUu9EKa5NUBhEBKGsk7QAAAEAlYbdkyXYitVTHAaicSNoBAACASsIv2Cz/iFjnQsOQLTtNkuQf3kAymVweB6ByImkHAAAAKomodmMU1W6MU5ndmq2/Xq8pSYobtk1+geEuj7VarWUdHoAywER0AAAAAAD4KJJ2AAAAAAB8FN3jAQAAAKCKmbZul6av3+3xccmd4zW2S9MyiAilRdIOAABQCuez9NbZY5IBwNuycvOUmplbquPgW0jaAQBAteHNK08svQXAl5lDAhQbFeJUZhiG0rIskqQG5mCZXKw0YA4hRfQ1/EUAAEC14c0rTyy9BcCXje3StMiPjdmWPEU+8Zkkaftj3RQeTDpYGfBXAgAA1YY3rzydz9JbAAC4i6QdAABUG1x5AgBUNiz5BgAAAACAjyJpBwAAAADAR5G0AwAAAADgo0jaAQAAAADwUSTtAAAAAAD4KJJ2AAAAAAB8FEk7AAAAAAA+ioVIAQAoZPrWdZq+bb3HxyW37qzkhC5lEBHgmSMrp+nIymkeH1e711jV7jW2DCICAJwPknYAAArJsuYqNSezVMcBvsB2Mkt5x1JLdRwAwPeQtAMAUIg5MESxYVFOZYYMpeXkJzQNwswyyeTyOMAX+IeaFVAz1rnQMJSXkSZJCqjRQDIVbcP+oebyCA9VFD08gLJD0g4AQCHJCV2KdHPPtlpknveEJOn3gY8pPDC4IkID3OIqCbJbsvX7fRGSpGZTd8gvOLwiQkMVRg8PoOyQtAMAAAA4L/TwAMoOSTsAAACA80IPD6DssOQbAAAAAAA+iqQdAAAAAAAfRdIOAAAAAICPYkw7AKDSy9w8Q5mbX/b4uKh2oxXVboz3AwIAAPASknYAQKVnt2TJdsLzpYbsFpYaAgAAvo2kHQBQ6fkFm+UfUXSpIVt2/lJD/uGulxryC2apIQAAKqsjK6fpyMppHh/narUDX0bSDgCo9KLajSnSzd1uzdZfr9eUJMUN2ya/QJYaAgCgKrGdzFLeMc972tlOVq6ediTtAAAAAIBKxz/UrICaRXva5WXk97QLqOG6p51/aOXqaUfSDgAAAACodFx1c7dbsvX7fRGSpGZTd8gvuPL3tGPJNwAAAAAAfBRJOwAAAAAAPoqkHQAAAAAAH8WYdgAAAKAMTVu3S9PX7/b4uOTO8RrbpWkZRASgMiFpBwAAAMpQVm6eUjNzS3UcAJC0AwAAAGXIHBKg2KgQpzLDMJSWZZEkNTAHy+RiWSpzCF/VAZC0AwAAAGVqbJemRbq5Z1vyFPnEZ5Kk7Y91U3hw6b+WG3ab43Zu6kaFNuouk59/qc8HwLecV9JusVgUHBzsrVgAAAAAeCB751IdWZvs2D74cV/5R8SqdtdpCm92QwVGBq8wDCkry3vns+TJbMnOv52ZKZ3Hj0Vus1oVkJ2df3+BgcXUscicYzkTV+B55JiWbPmd0plzBXtpmInZLLnoEVMePPorffbZZ1q4cKE2bNigffv2yW63Kzw8XJdccokSExN15513qkGDBmUVKwAAAIDTsncu1aHlgyUZTuW2E2k6tHywoq9fSOJe2WVlSUOGeO10wXZD7/1+KP/27nmSX9knof52u9ofOiT/+fMlP9eLlwXb7Xov9ff82yt2F1vPHSa7TbG/nL595z2St3qdzJsnRUV551wecitpX7p0qR577DEdP35cvXv31mOPPaYGDRooNDRUR48e1datW7VmzRpNnjxZw4YN0+TJk1W3bt2yjh0AAAAoHz52xdOw23Tki2SdnbCf3ivJpCNrxyqsdpczXeWryhVPqUKvegLlza13h6lTp2r69Om67rrr5OfiV49BgwZJklJTU/Xqq69q3rx5Sk5OLlIPAAAAqJR87Ipnbo2jsrVPK6GGIVt2qnJH9VVoRi1JVeiKp1ShVz2B8ubWq/Drr79Wnz59XCbshcXGxuq5555zO2GfMmWKLrvsMkVGRio6OloDBgzQ9u3bHfuPHj2qkSNHqnnz5goNDVWjRo00atQoZWZmOp1n79696tOnj8LCwhQdHa1HHnlEeXkskQEAAICqyRZs8Wo9AL6r1DMP/P3335KkOnXqlPrO161bp6SkJF122WXKy8vTP//5TyUmJurXX39VeHi40tLSlJaWphdffFGtWrXSX3/9pfvvv19paWn68MMPJUk2m019+vRRTEyMNm3apAMHDuiOO+5QYGCgnn322VLHBgAAAPgqf4t73dbdrQcfZTbn9yrwEoslT7dPTpEkpY7voYBymIjOZrXqx9WrlZiYKL9ihmVYrBbd/sFkSdL+W8Yr4DyGZRiWbKWOjpUkXfTyWzIFh5f6XE7MZu+cpxQ8+itlZGToiSee0AcffKBjx45JkmrWrKnBgwfr6aefVo0aNTy685UrVzptz507V9HR0frxxx/VuXNnJSQk6KOPPnLsb9q0qZ555hkNGTJEeXl5CggI0OrVq/Xrr79qzZo1qlevntq2bavJkyfrscce04QJExQUFORRTAAAAICvC8moKf/c4Pwr6a561huSvyVEIRk1yz02eJHJ5N1hAJY8ZRUksVFR5TZ7fF54eP79lTCXQlZY8Jm4zmsuhQDZC1LAqCjJW0l7BXL7r3T06FF16NBBqampuu2229SyZUtJ0q+//qq5c+fq888/16ZNm1SzZunfGAq6vdeqVavEOmazWQEB+aF//fXXatOmjerVq+eo07NnT40YMULbtm3TJZdcUuQcFotFFsuZrkJZpycVsVqtslqtpY6/qil4LnhOUJ7caXfWQsNfrHl5sro30gc+aMaGP/XKxj0eHzfq6sYa06lJiXXshdqQ1WqVn0poU+dod7S5qs3572uV1c/VxF7u8dV2VyQuPz7bPRYaKs2Z47XTZZ/K0+1TvpQk7RnXVeFBnidPNfau0JH1957eKtxuTZJJqpH4mvLu6e0otVqt+nHtWl1zzTUKLCZ5ys47pds/miJJ+vPGcQoPKP0FMLslW6kPN5YkNXlxlvy8mTyFhkp8R/WYN9/v3L7Pcv5uV5ne79zNs9x+d5g0aZKCgoK0a9cupwS5YF9iYqImTZqk6dOnexbpaXa7XWPGjFHHjh2VkJDgss7ff/+tyZMn67777nOUpaenF4mnYDs9Pd3leaZMmaKJEycWKV+9erXCwsJKFX9VlpKSUtEhoBoqqd3lGjbH7VWrVinE5MWJbVCuNv9lUmqW57P/bt76u1Yc/63EOiZ7rtqcvr1q1SoZfiHnPG9x7Y42V7Xl2qSCaX5WrVqtkPP48/pquzPl5apZ4bgCzh0XylauTY4rnqu++baU7S5K5uiH1ODIOwqyHXWUnvKvpbTad+qXfVHSvq+cDwkPV8p33xUfl2FzXPFc9c0359furDlqdjrnX7/8beXUayvx/lmhvPl+56ny+m5Xmd7vcnJy3KrndtL+8ccf68033yySIEtSTEyMpk6dqvvvv7/USXtSUpK2bt2qjRs3utyflZWlPn36qFWrVpowYUKp7qPAuHHjNHbsWKdzN2zYUImJiTJX4FgFX2O1WpWSkqIePXoU+2ss4G3utLvsvFPSwk2S8nvWnM9VAFSsHRv+1MaMPU5ldkkHsvJ7Q9U3B7v8rb1dQmP1PueV9mylzc6/3bNnT/kFFn+F51ztjjZXtWWfypM2rZEk9eyZWKorngV8td3ZTmZp97L8252bhCusdfczy4ChQniv3fWWzfKQDrxVX5JU+/qlCml4reJd/H3L8zP2xI9Ldej9h1WQisVumqyAmrGqO3iaItqzdnxF8eb7nbvK+7ud3ZKtXaff73r27OndHh5eluXmMpJu/5UOHDig1q1bF7s/ISGh2Cvb5/Lggw9q+fLlWr9+veLi4orsP378uHr16qXIyEgtXbrU6Y8dExOj7876tfDgwYOOfa4EBwcrOLjoOInAwECSUxd4XlARSmp3gbKfuR0QQPusxB7pdpEe6XaRU1m2JU+RT3wmSdrxWDeFl3K8nV1n2kVgYGCxk98UVly7o81VbYH2M709AgMCFRhY+i+xNvuZn5lsh75VUKNzJ8dl3e6yflii9HmjHNtpL/dVQM04xQx5WeZLB5bqnDh/3mx3/jpzJTHigq7yCyz5ymJZf8Zm/bBEB2YN1tlryOcdS9OBWYMVN/JD2l4F8Wa78/i+y+m7nd3u+ed/RXH3cbr9V6pTp4727NnjMqmWpD///LPEseiuGIahkSNHaunSpfryyy/VpEnRqyZZWVnq2bOngoODtWzZMoWEOL8JdejQQc8884wOHTqk6OhoSfldL8xms1q1auVRPAC8I3PzDGVuftnj46LajVZYm6QyiAgAyl72zqU6svbMsrcHP+4r/4hY1e46TeHNKubKYtYPS7T/1ZtUNHlK1f5XbyJ5gtcZdpvS543W2W3u9F5JJqXPH6PIdv3p7QG4ye0R/j179tQTTzyhU6dOFdlnsVg0fvx49erVy6M7T0pK0rx587RgwQJFRkYqPT1d6enpOnnypKT8hD0xMVHZ2dl6++23lZWV5ahjs+V3tklMTFSrVq10++2363//+59WrVqlJ598UklJSS6vpgMoe3ZLlmwnUj3+Z7e410UIAHxN9s6lOrR8sGzZaU7lthNpOrR8sLJ3Li33mM6dPEnp88fIsNtc7AdKJ2f7BuUd219CDUN5R/cpZ/uGcosJqOw8moju0ksv1YUXXqikpCS1aNFChmHot99+08yZM2WxWPTee+95dOezZs2SJHXt2tWpfM6cORo2bJg2b96sb7/9VpLUrFkzpzp//vmnGjduLH9/fy1fvlwjRoxQhw4dFB4erqFDh2rSpEkexQLAe/yCzfKPiHUuNAzHl1n/8Ab5S5i4OA4AKhvDbtORL8eqpCuLR758SGHx/cr1yqInyVN4y67lFRaquLyMA16tB8CDpD0uLk6bNm1SUlKSxo0bJ8PI/2AymUzq0aOHXnvtNTVs2NCjOy84R3G6du16zjqSdMEFF2jFihUe3TeAshPVboyi2o1xKrNbs/XX6/lLQsYN21bs5EwsMQigsslN3SjbidQSahiyndiv3NSNCm3YpdziInlCRQioUd+r9VA92OxnxrRvSN+tHrHN5e/H8qoFPJp5ID4+Xp999pmOHTumP/74Q1L+FXBPx7IDAABUFbZs95Jed+t5C8kTKkJY804KqBmnvGOpct37xKSAWnEKa96pvEODj1qyZ4tGf3tmCFGfNW8rLixK068YoIGN25RwpGuFh/xkb1+viITESj9/gkdJ+549e5SSkiKr1arOnTsXu546AABAmTEMyc1lctxhO2lV2KmTMkwmbdiyVz2a1pK/X9EhPMXxl3tDe/xlljIzzxRYrQrIzs4vczWDsNUic07+8of5dTybqycs5mIF1Ghw+kp6MclTjQYKi7nYOS5Pmc0uhzyhejL5+StmyMunJ0A0ybnt5beTmNtmVPokCt6xZM8WDVr7bpF3qNScTA1a+64WXTPUo8T97NUy9r3Uu0qsluF20r527Vpdf/31jkniAgIC9M4772jIkCFlFhwAAEARWVmSl75/LIlorNHRVyknKEKS1HvhNsVZT2jGoU0aeGKPW+cIkSH/jsGyBVsKchJnhuRvCVHIIzMlzXIU+9vtan/okPznz5dcdAMNttv1Xurv+bdX7HZZpyQmSTGB9bU/Iu1MQaGYJEMx+2JkumOoR+ctYt48KSrq/M6BKsV86UDFjfxQ6fNGnb7ini+gVpxibptRqZMneI/Nblfytx+XMBuINPa7T9S/UWu3uspX5dUy3H73Hz9+vHr06KHU1FQdOXJE9957rx599NGyjA0AAKDMLIlorJsb9FBqgPMcG6kB4bq5QQ8tiWjs1nlMMqn2jpb5G2d/+zy9XXtHC5lcZvRly2ytr7gT7RVgd14yN8AeorgT7WW20jUeZcN86UA1nfKrY7vhQyt04Ut/VtqkCd634eBu7c8pvpePIWlfdoY2HNx9znNV9dUy3E7at27dqmeffVb169dXzZo19cILL+jQoUM6cuRIWcYHAADgdTaZNCb6qvyvcmd17TZObydHXyWbm4l2+OF6it7SVv4W5y7s/pYQRW9pq/DD9bwRdqmYrfXV7FhX1d0s1domNcq8XBdmXkvCjjJXuAt8ePPOdImHkwMnj3utXlVfatDt7vFZWVmqU6eOYzssLEyhoaHKzMxU7dq1yyQ4AACAsrAhNEb7AyOK3W+YTNoXGKENoTHqetK9CeTCD9dT6MHayrKsli1MCjVfptDMOhVyhf1sJpkUkpF/O7xebZk8GLMPAGWhfmik1+pV9dUyPJqIbtWqVYoqNGbJbrfr888/19atWx1l/fr18150AAAAZzOb88dRn4cDWw9JS38/d73Rj0gJ0e6f2JqtjH9fIEmqee8SmYpZ3lKSbFarfly9WomJifJzMRGdxWrR7R9MliTtv2W8AjyciK4ww5Kt1NGxkqSLXn5LpuDi4/KY2b2J+ACgsE714hUXFqXUnMxipsqU4sJrqFO9+HOeq6qvluFR0j50aNGJSoYPH+64bTKZZLNVznECAACgkjCZznvis/r1rG7Wq+nZfVkDZISevoodFSWVkLTLalVeePjpeq5nj88KCy50rtIn7bIEyB6kM+fyZtIOAKXg7+en6VcM0KC17xazzoA07fL+bk1CV9WXGnR7TLvdbj/nPxJ2AABQGXSKr624qJBiO66bJDWsEaJO8QwBBICyMrBxGy26Zqjqhzn32IkLr+HRcm8FSw2e3jp7r6TKvdSgZ2uHlMBut2v58uXeOh0AAECZ8fczacaABEnFfb2TpvdP8Gi9dgCA5wY2bqNtAx5xbP+3+93addM/PVqfXTqz1GBAzQZO5QG14ir1cm+Sh93jXdm5c6feeecdzZ07V4cPH5bV6l53MwAAqrojK6fpyMppHh9Xu9dY1e41tgwiQmED29TX4qGXavTSrUrNynWUx9UI0fT+CRrYpnKOfQQAb8vcPEOZm18+d8WzRLUbrbA2SeesV7gLfKeYeLe6xLtivnSgwlt31/b784c1NXxohSISEivtFfYCpUraT548qcWLF+utt97SV199pU6dOulf//qXbrjhBm/HBwBApWU7mXV6fJ3nx6F8DGxTX92b1VGN8SslSSvuvlw9mkdzhR1AlWSznxnvvWH3Ebff7+yWLNlOeP55ZreU/+dZVVxq0KOk/fvvv9dbb72lhQsXqmnTprrtttu0adMmzZw5U61atSqrGAEAqJT8Q80KqBnrXGgYystIkyQF1GhQZI3wguNQfgp/Ye0UX5uEHdWazW533N6Qvls9YpuX+qonfMuSLQc0eumZVb96v/2d4qJCNGPAuXsW+QWb5R9R9PPMlp3/eeYf7vrzzC+YzzNvcDtpv/jii5WVlaVbb71VmzZtUuvWrSVJjz/+eJkFBwBAZeaqm7vdkq3f78tfH7zZ1B3yYxZvAD5iyZ4tGv3tUsd2nzVvKy4sStOvGODx+GL4liVbDujmd38oMq96amaubn73By0eemmJiXtUuzGKajfGqcxuzdZfr9eUJMUN2ya/YlbLYPj0+XP7Z7Pt27erc+fOuuaaa7iqDgAAAFQhS/Zs0aC17yotx7k7c2pOpgatfVdL9mypoMhwvmx2Q2M+3upyIbSCsuRPtjp1nYdvcTtp3717t5o3b64RI0YoLi5ODz/8sH766SeZXHSDAAAAAFA52Ox2JX/7cYlJ3djvPnHqOo/KY8PuI9qfmVvsfkPSvoxcbdh9pPyCgkfcTtpjY2P1xBNPaOfOnXrvvfeUnp6ujh07Ki8vT3PnztWOHTvKMk4AAAAAZWDDwd3an5NZ7H5D0r7sDG04uLv8goLXHDhu8Wo9lL9SzSrRrVs3zZs3TwcOHNBrr72mL774Qi1atNDFF1/s7fgAAAAAlKEDJ497tR58S/3IYK/WQ/k7r6kgo6Ki9MADD+iHH37Q5s2b1bVrVy+FBQAAAKA81A+N9Go9+JZO8bUVFxWi4gY1myQ1rBGiTvG1yzMseMBr6ze0bdtWr7zyirdOBwAAAKAcdKoXr7iwqJKTuvAa6lQvvjzDgpf4+5k0Y0CCJBX5GxdsT++fwHKXPsytpL1Xr1765ptvzlnv+PHjev755/X666+fd2AAAAAAyp6/n5+mXzFAUvFJ3bTL+7NeeyU2sE19LR56qRqYQ5zK42qEnHO5N1Q8t9Zpv/nmm3XjjTcqKipKffv21aWXXqoGDRooJCREx44d06+//qqNGzdqxYoV6tOnj1544YWyjhsAAKBKKzxT94b03eoR25ykCWVmYOM2WnTNUI3+dqnTsm9x4TU07fL+rNNeBQxsU1/dm9VRjfErJUkr7r5cPZpHc4W9EnArab/77rs1ZMgQLV68WB988IFmz56tzMz8GSZNJpNatWqlnj176vvvv1fLli3LNGAAAICqbsmeLRr97VLHdp81bysuLErTrxhA8oQyM7BxG3Wv30w1F4yXJP23+938WFTFFE7QO8XXJmGvJNxK2iUpODhYQ4YM0ZAhQyRJmZmZOnnypGrXrq3AwMAyCxAAAKA6WbJniwatfbfImtmpOZkatPZdLbpmKIk7ykzhBL1TTDwJO+ADSv0qjIqKUkxMDAk7AACAl9jsdiV/+3GRhF2So2zsd584dZ0HAFRt/HQGAADgIzYc3K39OZnF7jck7cvO0IaDu8svKABAhSJpBwAA8BEHTh73aj0AQOVH0g4AAOAj6odGerUeAKDyc3siOmD61nWavm29x8clt+6s5IQuZRARAABVS6d68YoLi1JqTqbLce0m5S/B1alefHmHBgCoIKVK2jMyMvThhx9q165deuSRR1SrVi1t3rxZ9erVU2xsrLdjhI/IsuYqtYRxdiUdBwAAzs3fz0/TrxigQWvflUlyStwLFmaadnl/ZvSuAmz2M3/dDbuPVPr1so+snKYjK6c5FxpnHuPORy+STEUfX+1eY1W719iyDg+o1DxO2n/55Rd1795dUVFR2rNnj+69917VqlVLS5Ys0d69e/Wf//ynLOKEDzAHhig2LMqpzJChtJwsSVKDMLNMKvpmbA4MKZf4AACoCgY2bqNF1wzV6G+XOj5jpfwr7NMu789yb1XAki0HNHrpVsd277e/U1xUiGYMSNDANvUrMLLSs53MUt6x1GL352WkFXscgJJ5nLSPHTtWw4YN09SpUxUZeWY8Ve/evXXrrbd6NTj4luSELkW6uWdbLTLPe0KS9PvAxxQeGFwRoQFAEYbd5ridm7pRoY26y+TnX4ERAe4b2LiNutdvppoLxkuS/tv9bvWIbc4V9ipgyZYDuvndH4oMf0jNzNXN7/6gxUMvrZSJu3+oWQE1Pe9x6x9qLoNogKrF46T9+++/15tvvlmkPDY2Vunp6V4JCgCA85G9c6mOrE12bB/8uK/8I2JVu+s0hTe7oQIjA9xXOEHvFBNPwl4F2OyGxny81eV8BYbyh0Akf7JV/VvHFNtVPnPzDGVufvmsg8+ccf/c1i67oUe1G62wNkmlD/4c6OYOlB2Pk/bg4GBlZRXtxrJjxw7VrVvXK0EBAFBa2TuX6tDywdJZX4ttJ9J0aPlgRV+/kMQdVRpji33Xht1HtD+z+Ll+DEn7MnK1YfcRdW1Wx2UduyVLthPFd0O3Zbvuhm630A0dqKw8Ttr79eunSZMmadGiRZIkk8mkvXv36rHHHtONN97o9QABAHCXYbfpyJdjdXbCfnqvJJOOfPmQwuL70VUeVRZji33XgeOW867nF2yWf4Tn3dD9gumGjqqnuvxI6XHS/tJLL+mmm25SdHS0Tp48qS5duig9PV0dOnTQM888UxYxAgB8mWFILnpglZolT2ZLdv7tzEwp2P2PqtwDX5V4BUoyZDuxX7k7Vim0fsczxVarArKz8+8vMLDoYVaLzDmWMzGdz/wdlmz5ndKZcwXnlf5cZzObXX45QfXC2GLfVT/SvfeOkupFtRujqHZjSnX/Vqu1VMcBvqq6/EjpcdIeFRWllJQUbdy4Ub/88otOnDihdu3aqXv37mURH4ByMm3dLk1fv9vj45I7x2tsl6ZlEBEqjawsacgQr50u2G7ovd8P5d/ePU/yYAkkW70DUoIb9V78l3TwzERP/na72h86JP/58yUX44aD7Xa9l/p7/u0Vu13WcZfJblPsL6dv33mP5M0r/vPmSVFR566HKq2yXUGqTjrF11ZcVIhSM3Nd9gcySYqrEaJO8bXLOzSgUqouP1KWap12Sbr66qt19dVXezMWABUoKzdPqSWMsyvpOMBX+Fvcu4rlbj0A8CZ/P5NmDEjQze/+IJOcB/IU/Dw5vX9CpV6vHShP1eVHylIl7d9//73Wrl2rQ4cOyW63O+2bNm1aMUcB8GXmkADFRoU4lRmGobSs/C7BDczBMrnodmsOKfVvf4DXhWTUlH9usGzBljPfgAszJH9LiEIyapZ7bGdCMJRbQ7IFS6bAIwq31ZXJZbAAqqKBbepr8dBLNXrpVqVmnfmxPK5GiKb3r7zrtAMoOx5/23722Wf15JNPqnnz5qpXr57Tl3hXX+gBVA5juzQt0s0925KnyCc+kyRtf6ybwj0YWwxUBJNMqr2jpQ61+fnM+kkFTl/Sqr2jRYUlyVmBB5Qetk15pyeFPqrvFGALUUxOa5mtfFEHqouBbeqre7M6qjF+pSRpxd2Xq0fzaK6wA3DJ42/gL7/8st555x0NGzasDMIBAFQ6ZnP+WGovsVjydPvkFElS6vgeCvDwx6JwSdF7luvIt/+ULeeAo9w/Ila1L39a4XddX+QYm9WqH1evVmJiovxcTERnsVp0+weTJUn7bxmvgFJMRJf1v2Xa//ZQnT2zfZ6/RfsjNyvu7ndl/kc/j8/rxFy5xugB1VnhBL1TfG0SdgDF8jhp9/PzU8eOHc9dEQBQPZhMXp38zHbSqqzgcEnShiN56tG8lsdfZsP/cZtCWvTV3ln5l7TrDfhUoY26F7/Mm9WqvPDw/MdRzOzxWWGnE/WoKI9njzfsNqUv+adKWooufekTirz6VpaiAwAATjye/jY5OVmvv/56WcQCAKjmlmw5oNYvfOnY7v32d2ryzBot2XKg+IOKUTj5DYm9ukKT4ZztG5R3bH8JNQzlHd2nnO0byi0mAABQOXh8pf3hhx9Wnz591LRpU7Vq1UqBZ12RWLJkideCAwBUH0u2HNDN7/5Q5Fp0amaubn73By0eemmlnaApL8O9Hx3crQcAAKoPj6+0jxo1SmvXrtVFF12k2rVrKyoqyukfAACestkNjfl4a7GdxyUp+ZOtstld1fB9ATXc+7HB3XoAAKD68PhK+7vvvquPPvpIffr0KYt4AADV0IbdR7Q/M7fY/YakfRm52rD7iLo2q1N+gXlJWPNOCqgZp7xjqXI9rt2kgFpxCmveqbxDAwAAPs7jK+21atVS06ZNz10RAAA3HThu8Wo9X2Py81fMkJcLts7eK0mKuW0Gk9ABAIAiPL7SPmHCBD311FOaM2eOwsLCyiImAEA1Uz/SvdnY3a3ni8yXDlTcyA+VPm/U6Svu+QJqxSnmthkyXzqwAqNDaWRunqHMzS87FxpnelLsn9s6f3WFs0S1G62odmPKODoAQFXhcdL+yiuvaNeuXapXr54aN25cZCK6zZs3ey04AED10Cm+tuKiQpSamVtM53EprkaIOsXXLu/QvMp86UCFt+6u7ffnzwHT8KEVikhI5Ap7JWW3ZMl2IrXY/bbstGKPAwDAXR4n7QMGDCiDMAAA1Zm/n0kzBiTo5nd/kEnOo74LrlNO75/g8Xrtvqhwgh7evDMJeyXmF2yWf0RsqY4DgMrOsNsct3NTNyq0UXc+08qIx0n7U089VRZxAACquYFt6mvx0Es1eulWpWadmZQurkaIpvdPqLTLvaHqimo3hm7uAKql7J1LdWRtsmP74Md95R8Rq9pdpym82Q0VGFnV5HHSXuDHH3/Ub7/9Jklq3bq1LrnkEq8FBQConga2qa/uzeqoxviVkqQVd1+uHs2jq8QVdgAAqoLsnUt1aPlgnb0aiu1Emg4tH6zo6xeSuHuZx0n7oUOHNHjwYH355ZeqUaOGJCkjI0PXXHONFi5cqLp163o7RgBANVI4Qe8UX5uEHQAAH2HYbTry5Vi5Xr7UkGTSkS8fUlh8P7rKe5HHS76NHDlSx48f17Zt23T06FEdPXpUW7duVVZWlkaNGlUWMQIAAAAAKlhu6sYSJ+CUDNlO7Fdu6sZyi6k68PhK+8qVK7VmzRq1bNnSUdaqVSu9/vrrSkxM9GpwAAAAAADfYMs+4NV6cI/HV9rtdnuRZd4kKTAwUHa73aNzTZkyRZdddpkiIyMVHR2tAQMGaPv27U51Zs+era5du8psNstkMikjI6PIeRo3biyTyeT077nnnvMoFgAAAABA8fzD3ZsU1t16cI/HSXu3bt00evRopaWdWXs0NTVVycnJuvbaaz0617p165SUlKRvvvlGKSkpslqtSkxMVHZ2tqNOTk6OevXqpX/+858lnmvSpEk6cOCA49/IkSM9e2AAAAAAgGKFxF59eqnL4uabMck/Ik4hsVeXZ1hVnsfd41977TX169dPjRs3VsOGDSVJ+/btU0JCgubNm+fRuVauXOm0PXfuXEVHR+vHH39U586dJUljxoyRJH355ZclnisyMlIxMTEe3T8AAAAAwD0mP3/V7jrt9OzxJjlPSJefyNfu+hKT0HmZx0l7w4YNtXnzZq1Zs0a///67JKlly5bq3r37eQeTmZkpSapVq5bHxz733HOaPHmyGjVqpFtvvVXJyckKCHD98CwWiywWi2M7KytLkmS1WmW1WksRedVU8FyU9JxY8/Kcbls977wBH+b897XK6udqplD32Au1I6vVKj+5ble0O3ir3bnb5gr2F/6/5JjOr80VicuPz53yNGPDn3pl4x6nssKD+y56/guXf91RVzfWmE5NvBpLebY7+B5vfsa6fZ98xlZ73mh3QRdcr9q95uvYhodlzz7T+9o/IlY1rp6qoAuud2pjtLviuZt7lmqddpPJpB49eqhHjx6lOdwlu92uMWPGqGPHjkpISPDo2FGjRqldu3aqVauWNm3apHHjxunAgQOaNm2ay/pTpkzRxIkTi5SvXr1aYWFhpYq/KktJSSl2X65hc9xetWqVQkz8qlaV5NqkglE0q1atVsh5/HlN9ly1OX171apVMvxCSqxPu6u+vNXuPG1zUvHtzpttzpSXq2aF4wo4d1zwns1/mZSaVfwyggeyLC7LN2/9XSuO/1YmMZVHu4Pv8eZnrKf4jK2+vNfuAmWqPUVtsodKknbX+6dOhF4sbfeXtq9weQTtrqicnBy36nmctI8aNUrNmjUrsrzba6+9pp07d2rGjBmenlKSlJSUpK1bt2rjRs+XBxg7dqzj9sUXX6ygoCANHz5cU6ZMUXBwcJH648aNczomKytLDRs2VGJiosxmc6nir4qsVqtSUlLUo0cPl5MPSlJ23ilp4SZJUs+ePRUeEFSeIaKMZZ/KkzatkST17Jmo8KBS/c4nSbJbs5U2W6fP1VN+geEu69Hu4K12526bk87d7rzZ5uyWbO1aViiu4OLjgvft2PCnNmbs8fi4dgmN1bsMrrSXV7uD7/HmZ6y7+IxFWX23u7r/GL7blUJBj+9z8fiv9NFHH2nZsmVFyq+66io999xzpUraH3zwQS1fvlzr169XXFycx8ef7YorrlBeXp727Nmj5s2bF9kfHBzsMpkPDAwstiFVZyU9L4GFOhUGBgTw/FUxgfYzV6MCAwIVGHgeb+w60zYCAwPld462QrurvrzV7jxtcwX1XK6Q4sU2Z7d7Hhe855FuF+mRbhdVdBhOyqPdwfd48zPW4/vmM7ba4rudb3H3cXr8Vzpy5IiioqKKlJvNZv39998encswDI0cOVJLly7Vl19+qSZNvPML9s8//yw/Pz9FR0d75XwAAAAAAFQEj5P2Zs2aaeXKlXrwwQedyj/77DPFx8d7dK6kpCQtWLBAn3zyiSIjI5Weni5JioqKUmhoqCQpPT1d6enp2rlzpyRpy5YtioyMVKNGjVSrVi19/fXX+vbbb3XNNdcoMjJSX3/9tZKTkzVkyBDVrFnT04cHAAAAAIDP8DhpHzt2rB588EEdPnxY3bp1kyR9/vnneumllzzuGj9r1ixJUteuXZ3K58yZo2HDhkmS3njjDadJ4wqWgiuoExwcrIULF2rChAmyWCxq0qSJkpOTncasAwAAAABQGXmctN91112yWCx65plnNHnyZElS48aNNWvWLN1xxx0encswzr3EwIQJEzRhwoRi97dr107ffPONR/cLAAAAAEBlUKqZB0aMGKERI0bo8OHDCg0NVUREhLfjAgAAAACg2vN41fpu3bopIyNDklS3bl1Hwp6VleXoLg8AAAAAAM6fx0n7l19+qVOnThUpz83N1YYNG7wSFAAAAAAA8KB7/C+//OK4/euvvzpmepckm82mlStXKjY21rvRVVPT1u3S9PW7PT4uuXO8xnZpWgYRAQAAAAAqgttJe9u2bWUymWQymVx2gw8NDdWrr77q1eCqq6zcPKVm5pbqOMBXGXab43Zu6kaFNuouk59/BUYEAAAA+D63k/Y///xThmEoPj5e3333nerWrevYFxQUpOjoaPn78wXcG8whAYqNCnEqMwxDaVkWSVIDc7BMJpPL4wBflL1zqY6sTXZsH/y4r/wjYlW76zSFN7uhAiMDAAAAfJvbWd4FF1wgSbLb7WUWDPKN7dK0SDf3bEueIp/4TJK0/bFuCg8mQUflkL1zqQ4tHyzJeYlH24k0HVo+WNHXLyRxBwAAAIrhceb3n//8p8T9nq7VDqDqMuw2HflyrM5O2E/vlWTSkS8fUlh8P7rKAwAAAC54nLSPHj3aadtqtSonJ0dBQUEKCwsjaQfgkJu6UbYTqSXUMGQ7sT9/jHvDLuUWF1BejqycpiMrpzkXGmd+xNr56EWSi+FOtXuNVe1eY8s6PAAAUAl4nLQfO3asSNkff/yhESNG6JFHHvFKUACqBlv2Aa/WAyob28ks5R0r/oervIy0Yo8DAACQSpG0u3LhhRfqueee05AhQ/T7779745QAqgD/8PperQdUNv6hZgXU9Hw5VP9QcxlEAwAAKiOvzWYWEBCgtDTXVwwAVE8hsVfLPyJWthNpcj2u3ST/iFiFxF5d3qEB5YJu7gAA4Hx5nLQvW7bMadswDB04cECvvfaaOnbs6LXAAFR+Jj9/1e467fTs8SY5J+7543hrd32p3Cahczm+2A0kXgAAAKgoHiftAwYMcNo2mUyqW7euunXrppdeeslbcQGoIsKb3aDo6xfqyNpk2bLP9MbJX6f9pXJd7u1c44tLOg4AAACoCB4n7azTDsBT4c1uUEjDa7V3Vh1JUr0Bnyq0UfdyX+bN5fhiw3BMBhZQo4HLmbwZXwwAAICKUuox7X///bckqU6dOl4LBkDVVThBD4m9ukLWZXfVzd1uydbv90VIkppN3SG/4PByjwsAAMDbpq3bpenrdzuVGYWWHW3+/BcyubhYkdw5XmO7NC3z+OA+P08qZ2RkKCkpSXXq1FG9evVUr1491alTRw8++KAyMjLKKEQAAAAAgCeycvOUmpnr9C8ty+LYn5ZlKbI/NTNXWbl5FRg1XHH7SvvRo0fVoUMHpaam6rbbblPLli0lSb/++qvmzp2rzz//XJs2bVLNmjXLLFgAAAAAwLmZQwIUGxVSquPgW9z+i0yaNElBQUHatWuX6tWrV2RfYmKiJk2apOnTp3s9SAAAAACA+8Z2aUo39yrC7aT9448/1ptvvlkkYZekmJgYTZ06Vffffz9JOwCgyrEVmoR1Q/pu9YhtLn8/j0aYAajGGFsM4Hy4nbQfOHBArVu3LnZ/QkKC0tPTvRIUAAC+YsmeLRr97VLHdp81bysuLErTrxiggY3bVGBkACqLgrHFxSk8zvjs4wDA7aS9Tp062rNnj+Li4lzu//PPP1WrVi2vBQYAQEVbsmeLBq19V8ZZ5ak5mRq09l0tumYoiTuAc2JsMYDz4fY7Qc+ePfXEE08oJSVFQUFBTvssFovGjx+vXr16eT1AAAAqgs1uV/K3HxdJ2CXJkGSSNPa7T9S/UWu6ygMoEWOLAZwPjyaiu/TSS3XhhRcqKSlJLVq0kGEY+u233zRz5kxZLBa99957ZRkrAADlZsPB3dqfk1nsfkPSvuwMbTi4W13rNyu/wAAAQLXidtIeFxenr7/+Wg888IDGjRvnmDzDZDKpR48eeu2119SwYcMyCxQAgPJ04ORxr9YDAAAoDY8GyjRp0kSfffaZjh07pj/++EOS1KxZM8ayAwCqnPqhkV6tBwAAUBqlmt2iZs2auvzyy70dCwAAPqNTvXjFhUUpNSfT5bh2k6S48BrqVC++vEMDAADVCDPnAADggr+fn6ZfMUBSfoJeWMH2tMv7MwkdAAAoU3zTAACgGAMbt9Gia4aqfpjZqTwuvAbLvQEAgHLB4o8AAJRgYOM26l6/mWouGC9J+m/3u9UjtjlX2AEA1Ubm5hnK3Pyyc6FxZvDY/rmtJdPZ/dKkqHajFdYmqazDq/JI2gEAOIfCCXqnmHgSdgBAtWK3ZMl2IrXY/bbstGKPw/lzK2lftmyZ2yfs169fqYOB97n8VcwN/CoGAAAAQJL8gs3yj4gt1XE4f24l7QMGDHDrZCaTSTab7XzigZed61exko4DbPYz3Z427D6iHs2j5e9XtOsTUFrT1u3S9PW7ncqMQt3tmj//hUwuutsld47X2C5NHdvn020vqt2YUkYPAED1ENVuTKk/L61Wq3eDqYbcStrtdntZx4Ey4vJXMcNwdGHxD2/g8ossv4phyZYDGr10q2O799vfKS4qRDMGJGhgm/oVGBmqkqzcPKVm5ha7Py3LUuxxhdFtDwAAVFWMaa/iXP0qZrdm66/Xa0qS4oZtk19guMtj+VWs+lqy5YBufveHImtTp2bm6uZ3f9DioZeSuMMrzCEBio0KKdVxhdFtDwAAVFWlStqzs7O1bt067d27V6dOnXLaN2rUKK8EBqBi2OyGxny8tUjCLkmG8tenTv5kq/q3jqGrPM7b2C5Nnbq5l9b5dNsDAADwZR4n7T/99JN69+6tnJwcZWdnq1atWvr7778VFham6Ohokna45cjKaTqycprHx9XuNVa1e40tg4hQYMPuI9pfQndlQ9K+jFxt2H1EXZvVKb/AAAAAgGrI46Q9OTlZffv21RtvvKGoqCh98803CgwM1JAhQzR69OiyiBFVkO1klvKOeT5Bnu0k409LZBhS1vk9RwcOHnO/Xt1A909szZbp5Onr95mZUmBeMfWsCsjOPl2nmPNbLTLnWAqdK9j9OM5myZZfQYehzEwpuJi4PGU2u5wvAgAAAPCEx0n7zz//rDfffFN+fn7y9/eXxWJRfHy8pk6dqqFDh2rgwIFlESeqGP9QswJqFp0gLy8jf7KogBquJ8jzD2X8aYmysqQhQ87rFPVD60uN+p673ssvSCcPuH1ek92m6D35q0uYNt4j+fm7rOdvt6v9oUPynz9fKmYt7GC7Xe+l/p5/e8XuYuu5G1fsL6dv31l8XB6bN0+KivLOuQAAAFBteZy0BwYGyu/0F+To6Gjt3btXLVu2VFRUlPbt2+f1AFE1uermbrdk6/f7IiRJzabukF+w6wnyULY6nUxXnPWEUgPCZbj44cRkGIrLy1ank+kVEB0AAABQvXh8eeqSSy7R999/L0nq0qWL/vWvf2n+/PkaM2aMEhISvB4ggPLlL0MzDm2SlJ+gF1awPf3QJvm7nKoOAAAAgDd5nLQ/++yzql8/f6mnZ555RjVr1tSIESN0+PBhzZ492+sBAih/A0/s0eK0FDXIy3Yqj8vL1uK0FA08sadiAgMAAACqGY+7x1966aWO29HR0Vq5cqVXAwJwHszm/LHUXjBQUveTVjV49gsZJpM+ur29ejStJX+/3qU6n2HN1qF/XyBJanTvWzIFuh7+YLNa9ePq1UpMTJRfMRPRWawW3f7BZEnS/lvGK+A8JqIzLNlKHZ0/v8JFL78lk7eGZZiZfwEAAADnr1TrtAPwUSaTVyc/8w/JU05QqCSpU5tG8g8+j7cMa4CM0NNj5KOipGKSdlmtygsPP12n+Nnjs8KCC53rPJL2kybZg/JvZ6f/TxEJiTJ5azI6AAAA4Dy59Q28Xbt2+vzzz1WzZk1dcsklMpWwjNHmzZu9FhwAlKWsH5Yofd4ox/a+l3oroGacYoa8LPOlrIQBAACAiudW0t6/f38FBwc7bpeUtANAZZD1wxLtf/Um6awJ9fKOpWr/qzcpbuSHJO4AAACocG4l7U899ZTj9oQJE8oqFgAoF4bdpvR5o3V2wn56ryST0uePUWS7/nSVBwAAQIXyePb4+Ph4HTlypEh5RkaG4uPjvRIUAJSlnO0blHdsfwk1DOUd3aec7RvKLSYAAADAFY+T9j179shmsxUpt1gs2r+/pC/BAOAb8jIOeLUeAAAAUFbcngp62bJljturVq1SVKEZqm02mz7//HM1adLEu9HBwWY/0413w+4j6tE8Wv5+zC0AlEZAjfperQcAAACUFbeT9gEDBkiSTCaThg4d6rQvMDBQjRs31ksvveTV4JBvyZYDGr10q2O799vfKS4qRDMGJGhgG5IKwFNhzTspoGac8o6lyvW4dpMCasUprHmn8g4NAAAAcOJ293i73S673a5GjRrp0KFDjm273S6LxaLt27fr+uuvL8tYq6UlWw7o5nd/UGpWrlN5amaubn73By3ZQvddwFMmP3/FDHm5YOvsvZKkmNtmMAkdAAAAKpzHY9r//PNP1alTpyxiwVlsdkNjPt5a7PzWkpT8yVanrvMA3GO+dKDiRn6ogJoNnMoDasWx3BsAAAB8htvd4wv7/PPP9fnnnzuuuBf2zjvveCUw5I9d35+ZW+x+Q9K+jFxt2H1EXZvxQwrgKfOlAxXeuru2358/R0fDh1YoIiGRK+wAAADwGR5faZ84caISExP1+eef6++//9axY8ec/nliypQpuuyyyxQZGano6GgNGDBA27dvd6oze/Zsde3aVWazWSaTSRkZGUXOc/ToUd12220ym82qUaOG7r77bp04ccLTh+ZzDhy3eLUegKIKJ+jhzTuTsAMAAMCneHyl/Y033tDcuXN1++23n/edr1u3TklJSbrsssuUl5enf/7zn0pMTNSvv/6q8PBwSVJOTo569eqlXr16ady4cS7Pc9ttt+nAgQNKSUmR1WrVnXfeqfvuu08LFiw47xgrUv3IYK/WAwAAAABULh4n7adOndJVV13llTtfuXKl0/bcuXMVHR2tH3/8UZ07d5YkjRkzRpL05ZdfujzHb7/9ppUrV+r777/XpZdeKkl69dVX1bt3b7344otq0KCBy+PKnGFIWVnndYpOtQMUFxmk1OOnipnfWoozB6tT7QApM9P9E1uzZTp5+oyZmVJgXjH1rArIzj5dJ7CYOhaZcyyFznUePyBYsuV3SmfOFVxMXKVhNksmlsgDAAAAULl4nLTfc889WrBggcaPH+/1YDJPJ561atVy+5ivv/5aNWrUcCTsktS9e3f5+fnp22+/1Q033FDkGIvFIovlTJfyrNPJtdVqldVqLW34zjIz5X/W0nieMkmaHtlEg2ITZZJkFEo6TUZ+0j3t12UyDXlZdtencMkwbIr+y5Z/e8Ndsptcdwf2Mwy1P3xYfvPmyV5MwhtkGHovLX9IQ9B/dxVbz6247DbFnl7Zzhh6l+xe7KZse/ddKSrKa+erLqx5eYVuW2X1K/2kh/ZCry2r1So/uX6tFbwGS3otOseVJ6vnI32Kj8vPS+8BqFTO1e682eaAArQ7lLfy/owFJNpdSdzNPT1O2nNzczV79mytWbNGF198sQLPugI7bdo0T08pKX9JuTFjxqhjx45KSEhw+7j09HRFR0c7lQUEBKhWrVpKT093ecyUKVM0ceLEIuWrV69WWFiYZ4EXIyA7W+0PHTrv83Q8dEj/zszU+KY9dSDkTNJZ35KlSbtWqePfv8vze7HLfPrW4cOHda6pDfLruGYr1Afg0OFD8i+yfJYHDLvCC9+nyXsv1h9Xr1ZeePi5K8JJrk0qaB+rVq1WyHn8jmKy56rN6durVq2S4RdSYv2UlJTi4zJsjturVq1SSDE/PLkVV16umhWOK6DkuFC1FdfuvNnmgLPR7lDeyuszFiiMdldUTk6OW/U8Ttp/+eUXtW3bVpK0detWp32m87jKmpSUpK1bt2rjxo2lPoe7xo0bp7Fjxzq2s7Ky1LBhQyUmJspsNpdwpAcyM+U/f75XTjVMR3Xr7vc17UiYjoVEqGddf3U5mS5/P0M66wcLdxiGTZa/8m/XrVtXpmJeFIZh6PDhw6fruP7b2gxDSsufgDC6brT8z/NKe87BQnF58Up7YmIiV9pLIftUnrRpjSSpZ89EhQeVasEJSZLdmq202Tp9rp7yC3T9I4rValVKSop69OhR5EdBR1x5p6SFmxznCg8IKn1clmztWlYormB+3KmOztXuvNnmgAK0O5S38v6MBSTaXUmy3BxO7fE38LVr13oczLk8+OCDWr58udavX6+4uDiPjo2JidGhs65o5+Xl6ejRo4qJiXF5THBwsIKDi469DgwMLLYheSwwUPLz3pXiALuhNn/nZ9pdI6IV4GeSSnlV2yi0rrufyU+mYuIsWM7PZDLJ7xx1zlXPrbgKXbX38ys+rtLwCwwsflw+ihVoP9PGAgMCFRh4Hkm7zjz/gYGB+X+Tku67hNdjYKEBIYEBAef1urXbPYsLVVtx7c6bbQ44G+0O5a28PmOBwmh3Rbn7OEv9DXznzp3atWuXOnfurNDQUBmG4fGVdsMwNHLkSC1dulRffvmlmjRp4nEcHTp0UEZGhn788Ue1b99ekvTFF1/Ibrfriiuu8Ph8XmM2S/Pmee10Fkuebp+c36UkdXwPBQSXPnkyrNk69O8LJEmN7n1LpmKueNqsVv24erUSExOLTWQsVotu/2CyJGn/LeMVcB4T0RmWbKWOjpUkXfTyWzJ584qnt3pQAAAAAEA58jjzO3LkiAYNGqS1a9fKZDLpjz/+UHx8vO6++27VrFlTL730ktvnSkpK0oIFC/TJJ58oMjLSMQY9KipKoaGhkvLHrKenp2vnzp2SpC1btigyMlKNGjVSrVq11LJlS/Xq1Uv33nuv3njjDVmtVj344IMaPHhwxc0cL+XPVO7N7tiWPGUVJLFRUdJ5JO2yBsgINZ05VzFJu6zW/HHgUVElzh6fFRZc6FznM3t8gOwFPWGioiS6KQMAAACo5jzuf5ycnKzAwEDt3bvXadK2W265pcgSbucya9YsZWZmqmvXrqpfv77j3wcffOCo88Ybb+iSSy7RvffeK0nq3LmzLrnkEi1btsxRZ/78+WrRooWuvfZa9e7dW1dffbVmz57t6UNDBTPsZyagyN6+3mkbAAAAAKojjy/Xrl69WqtWrSoy9vzCCy/UX3/95dG5DOPcy0dNmDBBEyZMKLFOrVq1tGDBAo/uG74l64clSp83yrG976XeCqgZp5ghL8t86cAKjAwAAAAAKo7HV9qzs7NdLot29OhRl5O7AeeS9cMS7X/1JuUdS3UqzzuWqv2v3qSsH5ZUUGQAAAAAULE8Tto7deqk//znP45tk8kku92uqVOn6pprrvFqcKj6DLtN6fNGS3LV6yK/LH3+GLrKAwAAAKiWPO4eP3XqVF177bX64YcfdOrUKT366KPatm2bjh49qq+++qosYkQVlrN9g/KO7S+hhqG8o/uUs32Dwlt2La+wAAAAAMAneHylPSEhQTt27NDVV1+t/v37Kzs7WwMHDtRPP/2kpk2blkWMqMLyMg54tR6qB5v9zFqeG9J3O20DAAAAVYnHV9r37t2rhg0b6oknnnC5r1GjRl4JDGWncFfz3NSNCm3UXSY//wqJJaBGfa/WQ9W3ZM8Wjf52qWO7z5q3FRcWpelXDNDAxm0qMDIAAADA+zy+0t6kSRMdPny4SPmRI0fUpEkTrwSFspO9c6lS/3OxY/vgx321751myt65tISjyk5Y804KqBknyVRMDZMCajVUWPNO5RkWfNSSPVs0aO27SsvJcipPzcnUoLXvasmeLRUUGQAAAFA2PE7aDcOQyVQ0wTpx4oRCQkK8EhTKRvbOpTq0fLBs2WlO5bYTaTq0fHCFJO4mP3/FDHm5YOvsvZKkmNtmVFhPAPgOm92u5G8/LmHKQmnsd5/QVR4AAABVitvd48eOHSspf7b48ePHOy37ZrPZ9O2336pt27ZeDxDeYdhtOvLlWBU/S7tJR758SGHx/co9QTZfOlBxIz9U+rxRTsu+BdSKU8xtM1inHZKkDQd3a39OZrH7DUn7sjO04eBuda3frPwCAwAAAMqQ20n7Tz/9JCn/SvuWLVsUFBTk2BcUFKR//OMfevjhh70fIbwiN3WjbCdSS6hhyHZif/4Y94Zdyi2uAuZLByq8dXdtvz9KktTwoRWKSEjkCjscDpw87tV6AAAAQGXgdtK+du1aSdKdd96pl19+WWazucyCgvfZst2bfd3demWhcIIe3rwzCTuc1A+N9Go9AAAAoDLweEz7nDlzHAn7/v37tX9/SWtsw1f4h7s3+7q79YDy1qlevOLCokqYslBqGF5DnerFl2dYAAAAQJnyOGm32+2aNGmSoqKidMEFF+iCCy5QjRo1NHnyZNmZAMpnhcReLf+IWJU0S7t/RJxCYq8uz7AAt/n7+Wn6FQMkFTdloTTt8v7y9/P4bQ0AAADwWR5/u33iiSf02muv6bnnntNPP/2kn376Sc8++6xeffVVjR8/vixihBeY/PxVu+u0gq2z90qSand9iS7p8GkDG7fRomuGqn6Y8/CcuPAaWnTNUNZpBwAAQJXj9pj2Au+++67eeust9evXz1F28cUXKzY2Vg888ICeeeYZrwYI7wlvdoOir1+oI2uTnZZ984+IVe2uLym82Q0VGB3gnoGN26h7/WaquSD/R8L/dr9bPWKbc4UdAAAPTd+6TtO3rXcqMwqtNNRiyfMyueilmdy6s5ITyn/iYqC68jhpP3r0qFq0aFGkvEWLFjp69KhXgkLZCW92g0IaXqu9s+pIkuoN+FShjbpzhR2VSuEEvVNMPAk7AAClkGXNVWoJy6mm5WQVexyA8uNx0v6Pf/xDr732ml555RWn8tdee03/+Mc/vBYYyk7hBD0k9moSdgAAgGrIHBii2LCoUh0HoPx4nLRPnTpVffr00Zo1a9ShQwdJ0tdff619+/ZpxYoVXg8QAAAAgPclJ3ShmztQCXictHfp0kU7duzQzJkz9dtvv0mSBg4cqAceeEANGjTweoAA4C1HVk7TkZXTnAuNM2P3dj56kWQqOnavdq+xqt1rbFmHBwAAABThUdK+Z88epaSk6NSpUxo8eLASEhLKKi4A8DrbySzlHUstdn9eRprLcttJ12P6AAAAgLLmdtK+du1aXX/99Tp58mT+gQEBeueddzRkyJAyCw4AvMk/1KyAmrGlOg4AAACoCG4n7ePHj1ePHj00a9YshYSE6Mknn9Sjjz5K0g6g0qCbOwAAACobt5P2rVu3atOmTapfv74k6YUXXtCbb76pI0eOqHbt2mUWIAAAAACgapi+dZ2mb1vvVGbozBxDLZY8L5OKzjGU3LpztZ040e2kPSsrS3Xq1HFsh4WFKTQ0VJmZmSTtAJxkbp6hzM0vOxcWmvBt/9zWLid8i2o3WmFtkso6PAAAAFSQLGuuUnMyi92fluN6LqEsa25ZheTzPJqIbtWqVYqKOrOWo91u1+eff66tW7c6yvr16+e96ABUSnZLlmwnip/wzZbtesI3u4UJ3wAAAKoyc2CIYsOizl3RxXHVlUdJ+9ChQ4uUDR8+3HHbZDLJZrOdf1QAKjW/YLP8Izyf8M0vmAnfAAAAqrLkhC7Vtpt7abmdtNvt9rKMA0AVEtVujKLajSnVsVar1bvBAAAAAJWYX0UHAAAAAAAAXCNpBwAAAADAR5G0AwAAAADgo0jaAQAAAADwUSTtAAAAAAD4qFIl7RkZGXrrrbc0btw4HT16VJK0efNmpaYWvy4zAAAAAADwjEfrtEvSL7/8ou7duysqKkp79uzRvffeq1q1amnJkiXau3ev/vOf/5RFnPBRtkJLAW5I360esc3l70cHDgAAAADwBo+T9rFjx2rYsGGaOnWqIiMjHeW9e/fWrbfe6tXg4NuW7Nmi0d8udWz3WfO24sKiNP2KARrYuE2Jxx5ZOU1HVk5zLjQMx82dj14kmUxFjqvda6xq9xp7foEDAAAAQCXhcdL+/fff68033yxSHhsbq/T0dK8EBd+3ZM8WDVr7royzylNzMjVo7btadM3QEhN328ks5R0rfjhFXkZasccBAAAAQHXhcdIeHBysrKyiidOOHTtUt25drwQF32az25X87cdFEnZJMiSZJI397hP1b9S62K7y/qFmBdSM9fi+/UPNHh8DAAAAAJWVx0l7v379NGnSJC1atEiSZDKZtHfvXj322GO68cYbvR4gfM+Gg7u1Pyez2P2GpH3ZGdpwcLe61m/msg7d3AEAAADg3DxO2l966SXddNNNio6O1smTJ9WlSxelp6erQ4cOeuaZZ8oiRviYAyePe7UefMO0dbs0ff1upzKj0DwDzZ//QiYX8wwkd47X2C5Nyzw+AAAAoDryOGmPiopSSkqKNm7cqF9++UUnTpxQu3bt1L1797KIDz6ofmjkuSt5UA++ISs3T6mZucXuT8uyFHscAAAAgLLhcdJe4Oqrr9bVV1/tzVhwmq9f8exUL15xYVFKzcl0Oa7dJCkuvIY61Ysv81jgPeaQAMVGhZTqOAAAAABlw+Nv26+88orLcpPJpJCQEDVr1kydO3eWv7//eQdXXfn6FU9/Pz9Nv2KABq19VybJKXEv+Clh2uX9Wa+9khnbpSnd3AEAAAAf43HSPn36dB0+fFg5OTmqWbOmJOnYsWMKCwtTRESEDh06pPj4eK1du1YNGzb0esDVQWW44jmwcRstumaoRn+7VGk5Z1YTiAuvoWmX9z/nOu0AAAAAgHPzOMt79tlnNXv2bL311ltq2jT/qtzOnTs1fPhw3XffferYsaMGDx6s5ORkffjhh14PuDqoLFc8BzZuo+71m6nmgvGSpP92v1s9YptzhR0AAAAAvMTjpP3JJ5/URx995EjYJalZs2Z68cUXdeONN2r37t2aOnUqy79VE4UT9E4x8STsAAAAAOBFHmdYBw4cUF5e0bHTeXl5Sk9PlyQ1aNBAx4+z3BcAAAAAAOfD46T9mmuu0fDhw/XTTz85yn766SeNGDFC3bp1kyRt2bJFTZo08V6UAAAAAABUQx4n7W+//bZq1aql9u3bKzg4WMHBwbr00ktVq1Ytvf3225KkiIgIvfTSS14PFgAAAACA6sTjMe0xMTFKSUnR77//rh07dkiSmjdvrubNmzvqXHPNNd6LEAAAAACAaqrUa4S1aNFCLVq08GYsAAAAAACgkFIl7fv379eyZcu0d+9enTp1ymnftGnTvBIYAAAAAADVncdJ++eff65+/fopPj5ev//+uxISErRnzx4ZhqF27dqVRYwAAAAAAFRLHift48aN08MPP6yJEycqMjJSH330kaKjo3XbbbepV69eZREjzkPm5hnK3Pyyc6FhOG7un9taMpmKHBfVbrTC2iSVdXgAAAAAgBJ4nLT/9ttvev/99/MPDgjQyZMnFRERoUmTJql///4aMWKE14NE6dktWbKdSC12vy07rdjjAABA+Zi+dZ2mb1vvVGbozI/sLZY8L5OK/sie3LqzkhO6lHl8AICK43HSHh4e7hjHXr9+fe3atUutW7eWJP3999/ejQ7nzS/YLP+I2FIdBwAAykeWNVepOZnF7k/Lcf1jepY1t6xCAgD4CI+T9iuvvFIbN25Uy5Yt1bt3bz300EPasmWLlixZoiuvvNKjc02ZMkVLlizR77//rtDQUF111VV6/vnnnZaPy83N1UMPPaSFCxfKYrGoZ8+emjlzpurVq+eoY3LRvfv999/X4MGDPX14VU5UuzGKajemVMdarVbvBgMAAFwyB4YoNiyqVMcBAKo2j5P2adOm6cSJE5KkiRMn6sSJE/rggw904YUXejxz/Lp165SUlKTLLrtMeXl5+uc//6nExET9+uuvCg8PlyQlJyfrv//9rxYvXqyoqCg9+OCDGjhwoL766iunc82ZM8dpTH2NGjU8fWgAAAAVIjmhC93cAQAueZS022w27d+/XxdffLGk/K7yb7zxRqnvfOXKlU7bc+fOVXR0tH788Ud17txZmZmZevvtt7VgwQJ169ZNUn5y3rJlS33zzTdOV/Zr1KihmJiYUscCAAAAAICv8Shp9/f3V2Jion777bcyuZKdmZk/lqtWrVqSpB9//FFWq1Xdu3d31GnRooUaNWqkr7/+2ilpT0pK0j333KP4+Hjdf//9uvPOO112m5cki8Uii8Xi2M7Kyh8nZrVa6RJeSMFzUdJzYs3Lc7ptlV+Zx4WqjXaHinCudkebQ1lw5/0O8CbaHCoC7a547j4nHnePT0hI0O7du9WkSROPgyqJ3W7XmDFj1LFjRyUkJEiS0tPTFRQUVOQHgnr16ik9Pd2xPWnSJHXr1k1hYWFavXq1HnjgAZ04cUKjRo1yeV9TpkzRxIkTi5SvXr1aYWFh3ntQVURKSkqx+3INm+P2qlWrFGLyL4+QUA3Q7lARimt3tDmUpZLe74CyQJtDRaDdFZWTk+NWPY+T9qeffloPP/ywJk+erPbt2zvGnhcwm0s363hSUpK2bt2qjRs3enzs+PHjHbcvueQSZWdn64UXXig2aR83bpzGjh3r2M7KylLDhg2VmJhY6virIqvVqpSUFPXo0UOBgYEu62TnnZIWbpIk9ezZU+EBQeUZIqog2h0qwrnaHW0OZcGd9zvAm2hzqAi0u+IV9Pg+F4+T9t69e0uS+vXr59T93DAMmUwm2Wy24g4t1oMPPqjly5dr/fr1iouLc5THxMTo1KlTysjIcLrafvDgwRLHr19xxRWaPHmyLBaLgoODi+wPDg52WR4YGEhDcqGk5yVQ9jO3AwJ4/uA1tDtUhOLaHW0OZYnvHyhvtDlUBNpdUe4+Hx4n7WvXrvU4mOIYhqGRI0dq6dKl+vLLL4t0uW/fvr0CAwP1+eef68Ybb5Qkbd++XXv37lWHDh2KPe/PP/+smjVrukzMAQAAAACoLDxO2rt08d5yJElJSVqwYIE++eQTRUZGOsapR0VFKTQ0VFFRUbr77rs1duxY1apVS2azWSNHjlSHDh0ck9B9+umnOnjwoK688kqFhIQoJSVFzz77rB5++GGvxQkAAAAAQEXwOGmXpA0bNujNN9/U7t27tXjxYsXGxuq9995TkyZNdPXVV7t9nlmzZkmSunbt6lQ+Z84cDRs2TJI0ffp0+fn56cYbb5TFYlHPnj01c+ZMR93AwEC9/vrrSk5OlmEYatasmaZNm6Z77723NA8NAAAAAACf4XHS/tFHH+n222/Xbbfdps2bNzuWTsvMzNSzzz6rFStWuH0uwzDOWSckJESvv/66Xn/9dZf7e/XqpV69erl9nwAAAAAAVBYeLzT79NNP64033tC///1vp4HzHTt21ObNm70aHAAAAAAA1ZnHSfv27dvVuXPnIuVRUVHKyMjwRkwAAAAAAEClSNpjYmK0c+fOIuUbN25UfHy8V4ICAAAAAAClSNrvvfdejR49Wt9++61MJpPS0tI0f/58PfzwwxoxYkRZxAgAAAAAQLXk8UR0jz/+uOx2u6699lrl5OSoc+fOCg4O1sMPP6yRI0eWRYwAAAAAAFRLHiftJpNJTzzxhB555BHt3LlTJ06cUKtWrRQREVEW8QEAAAAAUG153D1+3rx5ysnJUVBQkFq1aqXLL7+chB0AAAAAgDLgcdKenJys6Oho3XrrrVqxYoVsNltZxAUAAAAAQLXncdJ+4MABLVy4UCaTSYMGDVL9+vWVlJSkTZs2lUV8AAAAAABUWx4n7QEBAbr++us1f/58HTp0SNOnT9eePXt0zTXXqGnTpmURIwAAAAAA1ZLHE9EVFhYWpp49e+rYsWP666+/9Ntvv3krLgAAAAAAqj2Pr7RLUk5OjubPn6/evXsrNjZWM2bM0A033KBt27Z5Oz4AAAAAAKotj6+0Dx48WMuXL1dYWJgGDRqk8ePHq0OHDmURGwAAAAAA1ZrHSbu/v78WLVqknj17yt/f32nf1q1blZCQ4LXgAAAAAACozjxO2ufPn++0ffz4cb3//vt666239OOPP7IEHAAAAAAAXlKqMe2StH79eg0dOlT169fXiy++qG7duumbb77xZmwAAAAAAFRrHl1pT09P19y5c/X2228rKytLgwYNksVi0ccff6xWrVqVVYwAAAAAAFRLbl9p79u3r5o3b65ffvlFM2bMUFpaml599dWyjA0AAAAAgGrN7Svtn332mUaNGqURI0bowgsvLMuYAACoMNO3rtP0beudygwZjtstljwvk0xFjktu3VnJCV3KPD4AAFC9uJ20b9y4UW+//bbat2+vli1b6vbbb9fgwYPLMjYAAMpdljVXqTmZxe5Py8kq9jgAAABvcztpv/LKK3XllVdqxowZ+uCDD/TOO+9o7NixstvtSklJUcOGDRUZGVmWsQIAUObMgSGKDYsq1XEAAADe5vGSb+Hh4brrrrt01113afv27Xr77bf13HPP6fHHH1ePHj20bNmysogTAIBykZzQhW7uAADAZ5R6yTdJat68uaZOnar9+/fr/fff91ZMAAAAAABA55m0F/D399eAAQO4yg4AAAAAgBd5JWkHAAAAAADeR9IOAAAAAICPImkHAAAAAMBHkbQDAAAAAOCjSNoBAAAAAPBRJO0AAAAAAPgoknYAAAAAAHwUSTsAAAAAAD6KpB0AAAAAAB9F0g4AAAAAgI8iaQcAAAAAwEeRtAMAAAAA4KNI2gEAAAAA8FEk7QAAAAAA+CiSdgAAAAAAfBRJOwAAAAAAPoqkHQAAAAAAH0XSDgAAAACAjyJpBwAAAADAR5G0AwAAAADgo0jaAQAAAADwUSTtAAAAAAD4KJJ2AAAAAAB8FEk7AAAAAAA+iqQdAAAAAAAfRdIOAAAAAICPImkHAAAAAMBHkbQDAAAAAOCjSNoBAAAAAPBRJO0AAAAAAPgoknYAAAAAAHxUhSbtU6ZM0WWXXabIyEhFR0drwIAB2r59u1Od3NxcJSUlqXbt2oqIiNCNN96ogwcPOtXZu3ev+vTpo7CwMEVHR+uRRx5RXl5eeT4UAAAAAAC8rkKT9nXr1ikpKUnffPONUlJSZLValZiYqOz/b+8+o6K63raBX0OvA9joAZQiKFhRsaIRwULEErFFTexdEVtsWGKnJFFjo6mIiiUaOxrRqH+7qMSuGBtobCAgMDDzfvDlPI4zIEZhQK7fWrMWs/c+59xnPKL37JaZKbQZP348/vjjD8TFxeHo0aN4/PgxunbtKtTn5+ejY8eOyM3NxcmTJxEdHY2oqCjMnDlTFbdERERERERE9NloqPLi+/fvl3sfFRWFatWq4fz582jZsiXS0tIQHh6OjRs3ok2bNgCAyMhIODs749SpU2jSpAkOHjyIq1ev4tChQzA1NUXdunUxd+5cTJ48GUFBQdDS0lK4bk5ODnJycoT36enpAACJRAKJRFKCd1y+FHwWRX0mkndGNEjy8iDhjAv6RHzuSBWK89wRfW587uh9UqkUEokEMpmsRM6fl5cHDQ0NZGRkQENDpWkAVSAV9bkTiUTQ0NCAurp6oW2K+/u/TH1qaWlpAIBKlSoBAM6fPw+JRIK2bdsKbWrWrImvvvoK//vf/9CkSRP873//g6urK0xNTYU23t7eGD58OP7++2/Uq1dP4ToLFizA7NmzFcoPHjwIPT29z31b5V58fHyhddmyfOHnAwcOQEdU+ENJ9DH43JEqFPXcEZUUPncEAOrq6qhSpQo0NTVL9DpmZma4e/duiV6D6H0V9bmTSqV4/fo1Xr9+rbQ+KyurWOcpM0m7VCrFuHHj0KxZM9SuXRsAkJqaCi0tLRgbG8u1NTU1RWpqqtDm3YS9oL6gTpmpU6ciICBAeJ+eng5ra2u0a9cOYrH4c91SuSeRSBAfHw8vL69C/wHJzMsFNp0E8PbLEn0NxZENRB+Dzx2pQnGeO6LPjc8dFZDJZHj06BHy8vJgbm4ONbWSGUEmk8mQmZkJfX19iESiErkG0fsq6nMnk8mQlZWFf//9F46Ojgo5K/B/I74/pMwk7SNHjkRSUhKOHz9e4tfS1taGtra2Qrmmpib/0VSiqM9FE9L/+1lDg58ffTZ87kgV+O8AqQKfO5JIJMjOzoaFhQUMDAxK7DoFw+91dXVL7IsBovdV5OdOX18fampqePr0KczNzRWGyhf3d3+Z+NRGjRqF3bt348iRI7CyshLKzczMkJubi1evXsm1f/LkCczMzIQ2768mX/C+oA0RERERUVmVn/922peytZiIqHwrmH79KeuXqDRpl8lkGDVqFHbs2IE///wTdnZ2cvUNGjSApqYmDh8+LJTduHED9+/fh4eHBwDAw8MDV65cwdOnT4U28fHxEIvFcHFxKZ0bISIiIiL6RBVp6DBRRfE5/l6rdHj8yJEjsXHjRuzcuROGhobCHHQjIyPo6urCyMgIAwcOREBAACpVqgSxWIzRo0fDw8MDTZo0AQC0a9cOLi4u+O6777B48WKkpqZi+vTpGDlypNIh8ERERERERETlhUqT9t9++w0A4OnpKVceGRmJAQMGAABCQ0OhpqaGbt26IScnB97e3lixYoXQVl1dHbt378bw4cPh4eEBfX199O/fH3PmzCmt2yAiIiIiIiIqESofHq/sVZCwA4COjg6WL1+OFy9eIDMzE9u3b1eYq25jY4O9e/cKq/MtXbq0Qu0BSERERERUmkQiUZGvoKCgUo8pNjYW6urqGDlypEJdQkKCXHympqbo1q2bwjZkJ0+eRIcOHWBiYgIdHR24uroiJCREWHeASBXKxEJ0RERERERUfqSkpAivsLAwiMViubLAwEChrUwmQ15eXonHFB4ejkmTJiE2NhbZ2dlK29y4cQOPHz9GXFwc/v77b/j6+goJ+Y4dO9CqVStYWVnhyJEjuH79OsaOHYt58+ahZ8+ekMlkJX4PRMowaSciIiIiKitkMiAtTbWvYiSnZmZmwsvIyAgikUh4f/36dRgaGmLfvn1o0KABtLW1cfz4cQwYMAB+fn5y5xk3bpzcVFmpVIoFCxbAzs4Ourq6qFOnDrZu3frBeJKTk3Hy5ElMmTIFjo6O2L59u9J21apVg7m5OVq2bImZM2fi6tWruH37NjIzMzF48GB88803WL16NerWrQtbW1sMGjQI0dHR2Lp1K7Zs2fLBOIhKAseQExERERGVFenpQN++JXJqkUwG/bw8iDQ0gKJWtN6wATAy+uTrTZkyBUuXLkX16tVhYmJSrGMWLFiADRs2YOXKlXBwcMCxY8fQt29fVK1aFa1atSr0uMjISHTs2BFGRkbo27cvwsPD0bt37yKvpaurCwDIzc3FwYMH8fz5c7kRAgV8fX3h6OiI2NhY+Pv7F+s+iD4nJu1ERERERPTZzZkzB15eXsVun5OTg/nz5+PQoUPC9s7Vq1fH8ePHsWrVqkKTdqlUiqioKPz6668AgJ49e2LChAlITk5W2FK6QEpKCpYuXQpLS0s4OTlh7969AABnZ2el7WvWrImbN28W+16IPicOjyciIiIios+uYcOGH9X+9u3byMrKgpeXFwwMDITXunXrcOfOnUKPi4+PR2ZmJjp06AAAqFKlCry8vBAREaHQ1srKCvr6+rCwsEBmZia2bdsGLS0toZ7z1qksYk87ERERERF9dvr6+nLv1dTUFJJiiUQi/JyRkQEA2LNnDywtLeXaaWtrF3qd8PBwvHjxQhjuDrztfb98+TJmz54NNbX/66f866+/IBaLUa1aNRgaGgrljo6OAIBr166hadOmCte4du0aXFxcCo2BqCQxaSciIiIiKivE4rdzykuATCpFZno6xGIxRGpFDLgVi0vk+lWrVkVSUpJcWWJiIjQ1NQEALi4u0NbWxv3794ucv/6u58+fY+fOndi0aRNq1aollOfn56N58+Y4ePAgfHx8hHI7OzsYGxsrnKddu3aoVKkSgoODFZL2Xbt24datW5g7d25xb5Xos2LSTkRERERUVohEn2UROKWk0rfnF4uBopL2EtKmTRssWbIE69atg4eHBzZs2ICkpCTUq1cPAGBoaIjAwECMHz8eUqkUzZs3R1paGk6cOAGxWIz+/fsrnHP9+vWoXLkyevToAdF7i+t16NAB4eHhckl7YfT19bFq1Sr07NkTQ4YMwahRoyAWi3H48GFMnDgR3bt3R48ePT7PB0H0kTinnYiIiIiISpy3tzdmzJiBSZMmwd3dHa9fv0a/fv3k2sydOxczZszAggUL4OzsDB8fH+zZs6fQBeUiIiLQpUsXhYQdALp164Zdu3bh2bNnxYqve/fuOHLkCO7fv48WLVrAyckJoaGhmDZtGjZt2qT0GkSlgT3tRERERET0nw0YMAADBgwQ3nt6eha6oNvs2bMxe/bsQs8lEokwduxYjB07tljXvnz5cqF1PXr0EHrHi4rpXS1atMD+/fuLdW2i0sKediIiIiIiIqIyikk7ERERERERURnFpJ2IiIiIiIiojGLSTkRERERERFRGMWknIiIiIiIiKqOYtBMRERERERGVUUzaiYiIiIiIiMoo7tNORERERFTOhBy9g9Bjdz/6uGHu5pjazqUEIiKiksKknYiIiIionEnPzsOjtOyPPu51Tn4JRENEJYlJOxERERFROSPW0YClkY5cmUwmw+P0HACAhVgbIpFI4ThDbfVSia80iEQi7NixA35+fqoOhahEcU47EREREVE5E9CqBh7M8JJ7XZ3YWqhf+20d3JvWVq7+n2lfY2QTq88Ww4ABAyASiSASiaCpqQk7OztMmjQJ2dkfPwKgLCu4x3dfzZs3V3lMv//+e7HbDx06FOrq6oiLi1OoCwoKEu5LQ0MDtra2GD9+PDIyMuTaRUdHw93dHXp6ejA0NESrVq2we/fuT70VBVu2bEHdunWhp6cHGxsbLFmyRK4+ISFB6Z9Jamqq0CYmJgbW1tYwMTFBQECA3PH37t2Do6Mj0tPTixXPtm3b4OnpCSMjIxgYGMDNzQ1z5szBixcvAABRUVEwNjb+tJv+ACbtRERERETl3PYrKai1JEF43yH8DOx+OoTtV1JK9Lo+Pj5ISUnB3bt3ERoailWrVmHWrFklek1ViIyMREpKivDatWvXfz6XRCL5jJF9WFZWFjZt2oRJkyYhIiJCaZtatWohJSUF9+7dw6JFi7B69WpMmDBBqA8MDMTQoUPh7++Py5cv48yZM2jevDk6d+6MZcuWfVQ8IpEI9+7dU1q3b98+9OnTB8OGDUNSUhJWrFiB0NBQpde4ceOG3J9JtWrVAADPnj3DoEGDsHTpUhw8eBAbNmyQ+3JhxIgRWLhwIcRi8QdjnTZtGvz9/eHu7o59+/YhKSkJwcHBuHTpEtavX/9R9/0pmLQTEREREZVj26+k4Nvoc3iULt/D/SgtG99GnyvRxF1bWxtmZmawtraGn58f2rZti/j4eKH++fPn6NWrFywtLaGnpwdXV1fExsbKncPT0xNjxozBpEmTUKlSJZiZmSEoKEiuza1bt9CyZUvo6OjAxcVF7hoFrly5gjZt2kBXVxeVK1fGkCFD5HqLBwwYAD8/P8yfPx+mpqYwNjbGnDlzkJeXh4kTJ6JSpUqwsrJCZGSkwrmNjY1hZmYmvCpVqgQAkEqlmDNnDqysrKCtrY26deti//79wnH37t2DSCTC5s2b0apVK+jo6CAmJgYAsHbtWjg7O0NHRwc1a9bEihUrhONyc3MxatQomJubQ0dHBzY2NliwYAEAwNbWFgDQpUsXiEQi4X1h4uLi4OLigilTpuDYsWN48OCBQhsNDQ2YmZnBysoK/v7+6NOnj/DFxKlTpxAcHIwlS5YgMDAQ9vb2cHZ2xk8//YRx48YhICBA6Tn/i/Xr18PPzw/Dhg1D9erV0bFjR0ydOhWLFi2CTCaTa1utWjW5PxM1tbep7d27d2FkZCQk261bt8a1a9cAALGxsdDU1ETXrl0/GMuZM2cwf/584d6bNm0KW1tbeHl5Ydu2bejfv/9nuefiYNJORERERFRO5UtlGPd7EmRK6grKxu9MQr5UWYvPKykpCSdPnoSWlpZQlp2djQYNGmDPnj1ISkrCkCFD8N133+HMmTNyx0ZHR0NfXx+nT5/G4sWLMWfOHCExl0ql6Nq1K7S0tHD69GmsXLkSkydPljs+MzMT3t7eMDExwdmzZxEXF4dDhw5h1KhRcu3+/PNPPH78GMeOHUNISAhmzZqFTp06wcTEBKdPn8awYcMwdOhQPHz4sFj3/PPPPyM4OBhLly7F5cuX4e3tjW+++Qa3bt2SazdlyhSMHTsW165dg7e3N2JiYjBz5kz89NNPuHbtGubPn48ZM2YgOjoaAPDLL79g165d2LJlC27cuIGYmBghOT979iyA/+v9L3hfmPDwcPTt2xdGRkZo3749oqKiPnhfurq6yM3NBfA20TUwMMDQoUMV2k2YMAESiQTbtm374DmLIycnBzo68ms16Orq4uHDh/jnn3/kyuvWrQtzc3N4eXnhxIkTQrmDgwOysrJw8eJFvHjxAmfPnoWbmxtevnyJGTNmFHtkQExMDAwMDDBixAil9SU9JP5dTNqJiIiIiMqpv+4+x8MiVpGXAXjwKht/3X1eItffvXs3DAwMoKOjA1dXVzx9+hQTJ04U6i0tLREYGIi6deuievXqGD16NHx8fLBlyxa587i5uWHWrFlwcHBAv3790LBhQxw+fBgAcOjQIVy/fh3r1q1DnTp10LJlS8yfP1/u+I0bNyI7Oxvr1q1D7dq10aZNGyxbtgzr16/HkydPhHaVKlXCL7/8AicnJ/zwww9wcnJCVlYWfvzxRzg4OGDq1KnQ0tLC8ePH5c7fq1cvGBgYCK+C+eRLly7F5MmT0bNnTzg5OWHRokWoW7cuwsLC5I4fN24cunbtCjs7O5ibm2PWrFkIDg4Wyrp27Yrx48dj1apVAID79+/DwcEBzZs3h42NDZo3b45evXoBAKpWrQrg/3r/C94rc+vWLZw6dQr+/v4AgL59+yIyMlKh1/pd58+fx8aNG9GmTRsAwM2bN1GjRg25L2MKWFhYQCwW4+bNm4Wer0OHDrCysoJYLIaBgQGAt8PxCz7LWrVqCW29vb2xfft2HD58GFKpFDdv3kRwcDAAICXl7YgRc3NzrFy5Etu2bcO2bdtgbW0NT09PXLhwAQBgYmKC6Oho9OvXD40aNUK/fv3g7e2NwMBAjBo1CsnJyahXrx5q166NrVu3FvnZVa9eHZqamoW2KS1cPZ6IiIiIqJxKeZ3zWdt9rNatW+O3335DZmYmQkNDoaGhgW7dugn1+fn5mD9/PrZs2YJHjx4hNzcXOTk50NPTkzuPm5ub3Htzc3M8ffoUAHDt2jVYW1vDwsJCqPfw8JBrf+3aNdSpUwf6+vpCWbNmzSCVSnHjxg2YmpoCeJssFgyjBgBTU1PUrl1beK+uro7KlSsL1y4QGhqKtm3bysWXnp6Ox48fo1mzZnJtmzVrhkuXLsmVNWzYUPg5MzMTd+7cwcCBAzF48GChPC8vD0ZGRgDeDuX38vKCk5MTfHx80KlTJ7Rr1w4fKyIiAt7e3qhSpQqAtwn0wIED8eeff+Lrr78W2l25cgUGBgbIz89Hbm4uOnbsKNcjXVSS/yFr1qzBv//+CwMDA6ipqcHBwQF79+6FpaUlAMglxYMHD8adO3fQqVMnSCQSiMVijB07FkFBQcKfm5OTE5ycnIRjmjZtijt37iA0NFSYZ96lSxd06dJFaHP06FFcvnwZv/76K+zt7REbGwszMzM0atQILVu2FObDv+tT7vlzY9JORERERFROmRtqf9Z2H0tfXx/29vYA3iaIderUQXh4OAYOHAgAWLJkCX7++WeEhYXB1dUV+vr6GDdunDD0usD7vZkikQhSqfSzx6vsOsW5tpmZmXCfBYq7+jgAuS8TCubZr1mzBo0bN5Zrp67+dku++vXrIzk5Gfv27cOhQ4fQo0cPtG3btsie4ffl5+cjOjoaqamp0NDQkCuPiIiQS9qdnJywa9cuaGhowMLCQq5X3dHREcePH0dubq5Cb/vjx4+Rnp4OR0fHQuOwtLSEoaEhxGKxkHjb2NgonYsvEomwaNEizJ8/H6mpqahataow4qJ69eqFXqNRo0YKoyMK5OTkYMSIEVi/fj1u376NvLw8tGrVSri306dPw9fXV+G4gvuWSCQq723n8HgiIiIionKqRfXKsDLSgeKO7G+JAFgb66BF9colHouamhp+/PFHTJ8+HW/evAEAnDhxAp07d0bfvn1Rp04dVK9evcih1Mo4OzvjwYMHwvBo4O3iaO+3uXTpEjIzM4WyEydOQE1NTa5X9nMSi8WwsLCQm09dcF0XF5dCjzM1NYWFhQXu3r0Le3t7uZednZ3c+f39/bFmzRps3rwZ27ZtE7YZ09TURH5+fpHx7d27F69fv8bFixeRmJgovGJjY7F9+3a8evVKaKulpQV7e3vY2toqJOY9e/ZERkaGMHT/XUuXLoWmpqbc6IrPQV1dHZaWltDS0kJsbCw8PDyKnAaQmJgIc3NzpXXz5s2Dj48P6tevj/z8fOTl5Ql1Eomk0M+xd+/eyMjIkFsg8F3vfn4ljT3tRERERETllLqaCGF+tfFt9DmIALkF6QoS+dDOtaGuJoK0FBaj+/bbbzFx4kQsX74cgYGBcHBwwNatW3Hy5EmYmJggJCQET548KTKpfV/btm3h6OiI/v37Y8mSJUhPT8e0adPk2vTp0wezZs1C//79ERQUhH///RejR4/Gd999JwyNLwkTJ07ErFmzUKNGDdStWxeRkZFITEwUVogvzOzZszFmzBgYGRnBx8cHOTk5OHfuHF6+fImAgACEhITA3Nwc9erVg5qaGuLi4mBmZiYsfmZra4vDhw+jWbNm0NbWhomJicI1wsPD0bFjR9SpU0eu3MXFBePHj0dMTAxGjhz5wXv08PDA2LFjMXHiROTm5sLPzw8SiQQbNmwQRlFYW1sXevyLFy/w/PlzZGVlQU1NTfjypWBfdXV1dSEhf/bsGbZu3QpPT09kZ2cjMjIScXFxOHr0qHC+sLAw2NnZoVatWsjOzsbatWvx559/4uDBgwrXvnr1KjZv3oyLFy8CAGrWrAk1NTWEh4fDzMwM169fh7u7u9K4GzdujEmTJmHChAl49OgRunTpAgsLC9y+fRsrV65E8+bNMXbs2A9+fp8Dk3YiIiIionKsq6s54vo3xNgdSXLbvlkZ6yC0c210dVXeA1kSNDQ0MGrUKCxevBjDhw/H9OnTcffuXXh7e0NPTw9DhgyBn58f0tLSin1ONTU17NixAwMHDkSjRo1ga2uLX375BT4+PkIbPT09HDhwAGPHjoW7uzv09PTQrVs3hISElMRtCsaMGYO0tDRMmDABT58+hYuLC3bt2gUHB4cijxs0aBD09PSwZMkSTJw4Efr6+nB1dcW4ceMAAIaGhli8eDFu3boFdXV1uLu7Y+/evcLw8uDgYAQEBGDNmjWwtLRU2Pf8yZMn2LNnDzZu3KhwbTU1NXTp0gXh4eHFStqBt4mym5sbVqxYgenTp0NdXR3169fH77//rnRo+bu6d+8ul3S/z8bGRi7+6OhoBAYGQiaTwcPDAwkJCWjUqJFQn5ubKyTSenp6cHNzw6FDh9C6dWu588pkMgwZMgQhISHC9ARdXV1ERUVh5MiRyMnJwbJly4S59cosWrQIDRo0wPLly7Fy5UpIpVLUqFED3bt3L9Ut30SysjTDXkXS09NhZGSEtLQ0iMViVYdTZkgkEuzduxcdOnQodB5HpiQH4g1vv+lM7/sT9DVLZr4UVRx87kgVivPcEX1ufO6oQHZ2NpKTk2FnZ6ew3VVhQo7eQeixu3JlUqkUKa/fzhWvrKcJbQ01iETyA+eHuZtjajsXucXYiEqSVCpFenq63Jz2iqSov9/FzUPZ005EREREVM6kZ+fhURFbvT3Pkigtf51T9DxoIip7mLQTEREREZUzYh0NWBoVr1f+XYba6iUQDRGVJCbtRERERETlTECrGghoVeOjjikYpkxE5UvFm1RAREREREREVE4waSciIiIiIiIqo5i0ExEREREREZVRTNqJiIiIiIiIyiguREdEREREVM6kXQhD2oWfP+4gGaDlMgRij8klExQRlQgm7URERERE5Yw0Jx35GY8++jhZ7usSiIaIShKTdiIiIiKickZNWwx1A0u5MplUCmlWytt6ncqAujZEItE7DQCRlmGpxSgSibBjxw74+fmV2jWJvkSc005EREREVM4Y1R+HrwYlC6/KniFyCbo0+zlEIhEqe4YIbawG3oFOreGfLYYBAwYUmZCnpKSgffv2n+16JWXo0KFQV1dHXFycQl1QUBBEIhFEIhE0NDRga2uL8ePHIyMjQ65ddHQ03N3doaenB0NDQ7Rq1Qq7d+/+7LFu2bIFdevWhZ6eHmxsbLBkyRK5+oSEBCHed1+pqalCm5iYGFhbW8PExAQBAQFyx9+7dw+Ojo5IT08vVjzbtm2Dp6cnjIyMYGBgADc3N8yZMwcvXrwAAERFRaFSpUqfeNfEpJ2IiIiIqBzLvL0DT3f3RH7mY7ny/IzHeLq7JzJv71BJXGZmZtDW1lbJtQvIZDLk5eUVWp+VlYVNmzZh0qRJiIiIUNqmVq1aSElJwb1797Bo0SKsXr0aEyZMEOoDAwMxdOhQ+Pv74/Llyzhz5gyaN2+Ozp07Y9myZR8Vr0gkwr1795TW7du3D3369MGwYcOQlJSEFStWIDQ0VOk1bty4gZSUFOFVrVo1AMCzZ88waNAgLF26FAcPHsSGDRvkvlwYMWIEFi5cCLFY/MFYp02bBn9/f7i7u2Pfvn1ISkpCcHAwLl26hPXr13/UfVPRODyeii006ShC/z4mVyaDTPi55vZFEEH0/mEYX6slxtduVeLxEREREVU0Mmk+nicEAO/8n+ydWgAiPE+YAL3q3wBK/p9Wkt4dHn/v3j3Y2dlh27Zt+PXXX3H69Gk4ODhg5cqV8PDwEI45fvw4pk6dinPnzqFKlSro0qULFixYAH19fQDA+vXr8fPPP+PGjRvQ19dHmzZtEBYWJiSlCQkJaN26Nfbu3Yvp06fjypUrOHjwIDw9PZXGGBcXBxcXF0yZMgUWFhZ48OABrK2t5dpoaGjAzMwMAODv74/Dhw9j165dWLVqFU6dOoXg4GD88ssvGD16tHDMTz/9hOzsbAQEBKBz584K5/wv1q9fDz8/PwwbNgwAUL16dUydOhWLFi3CyJEj5UZaVKtWDcbGxgrnuHv3LoyMjODv7w8AaN26Na5du4ZOnTohNjYWmpqa6Nq16wdjOXPmDObPn4+wsDCMHTtWKLe1tYWXlxdevXr1aTdLctjTTsWWLsnGo6w0udfjrP8bOvM4K12h/lFWGtIl2SqMmoiIiOjLlf3o+AcWpJMhP+Mhsh8dL7WYijJt2jQEBgYiMTERjo6O6NWrl9ATfufOHfj4+KBbt264fPkyNm/ejOPHj2PUqFHC8RKJBHPnzsWlS5fw+++/4969exgwYIDCdaZMmYKFCxfi2rVrcHNzKzSe8PBw9O3bF0ZGRmjfvj2ioqI+eA+6urrIzc0FAMTGxsLAwABDhw5VaDdhwgRIJBJs27btg+csjpycHOjo6CjE8vDhQ/zzzz9y5XXr1oW5uTm8vLxw4sQJodzBwQFZWVm4ePEiXrx4gbNnz8LNzQ0vX77EjBkzij0yICYmBgYGBhgxYoTSemVfGNB/x6Sdik2sqQNLPaOPfok1dT58ciIiIiL6aPmZKZ+1XUkLDAxEx44d4ejoiNmzZ+Off/7B7du3AQALFixAnz59MG7cODg4OKBp06b45ZdfsG7dOmRnv+0E+uGHH9C+fXtUr14dTZo0wS+//IJ9+/YpzDGfM2cOvLy8UKNGjULnVN+6dQunTp0Sep379u2LyMhIyGTKRi28df78eWzcuBFt2rQBANy8eRM1atSAlpaWQlsLCwuIxWLcvHmz0PO1b98eBgYGwgt4Oxy/4H2tWrWEtt7e3ti+fTsOHz4MqVSKmzdvIjg4GMDb9QMAwNzcHCtXrsS2bduwbds2WFtbw9PTExcuXAAAmJiYIDo6Gv369UOjRo3Qr18/eHt7IzAwEKNGjUJycjLq1auH2rVrY+vWrYXGfevWLVSvXh2ampqFtqHPh8PjqdjG127FYe5EREREZYi6vvlnbVfS3u31Njd/G9PTp09Rs2ZNXLp0CZcvX0ZMTIzQRiaTQSqVIjk5Gc7Ozjh//jyCgoJw6dIlvHz5ElKpFABw//59uLi4CMc1bNjwg7FERETA29sbVapUAQB06NABAwcOxJ9//omvv/5aaHflyhUYGBggPz8fubm56Nixo1yPdFFJ/oesXbsWb968Ed47ODhg7969sLR8uzPAu0nx4MGDcefOHXTq1AkSiQRisRhjx45FUFAQ1NTe9sU6OTnByclJOKZp06a4c+cOQkNDhXnmXbp0QZcuXYQ2R48exeXLl/Hrr7/C3t4esbGxMDMzQ6NGjdCyZUth6sG7PuWe6eMxaSciIiIiKqd0LJtD3cAS+RmPoXxeuwjqBpbQsWyutLa0vZuEFszBLki8MzIyMHToUIwZM0bhuK+++gqZmZnw9vaGt7c3YmJiULVqVdy/fx/e3t7CcPUCBXPgC5Ofn4/o6GikpqZCQ0NDrjwiIkIuaXdycsKuXbugoaEBCwsLuV51R0dHHD9+HLm5uQq97Y8fP0Z6ejocHR0LjaMgOX+XjY0NbG1tFcpFIhEWLVqE+fPnIzU1FVWrVsXhw4cBvJ3fXphGjRrh+HHl0yNycnIwYsQIrF+/Hrdv30ZeXh5atWol3Nvp06fh6+urcFzBfUskEva2lwIOjyciIiIiKqdEauqo7BlS8O79WgBAZc9giNTUSzWu/6J+/fq4evUq7O3tFV5aWlq4fv06nj9/joULF6JFixaoWbMmnj59+p+utXfvXrx+/RoXL15EYmKi8IqNjcX27dvlFlLT0tKCvb09bG1tFRLznj17IiMjA6tWrVK4xtKlS6GpqYlu3br9pxgLo66uDktLS2hpaSE2NhYeHh6oWrVqoe0TExOFUQ3vmzdvHnx8fFC/fn3k5+fLrbQvkUiQn5+v9LjevXsjIyMDK1asUFrPheg+L/a0ExERERGVY/r2XVCt0yY8PzJebts3dQNLVPYMhr59lyKO/jRpaWlITEyUK6tcufJ/Wi198uTJaNKkCUaNGoVBgwZBX18fV69eRXx8PJYtW4avvvoKWlpa+PXXX4Vtz+bOnfuf4g4PD0fHjh1Rp04duXIXFxeMHz8eMTExGDly5AfP4+HhgbFjx2LixInIzc2Fn58fJBIJNmzYgJ9//hlhYWFFfhYvXryQGyVQMDe9YF91dXV1ISF/9uwZtm7dCk9PT2RnZyMyMhJxcXE4evSocHxYWBjs7OxQq1YtZGdnY+3atfjzzz9x8OBBhWtfvXoVmzdvxsWLFwEANWvWhJqaGsLDw2FmZobr16/D3d1dadyNGzfGpEmTMGHCBDx69AhdunSBhYUFbt++jZUrV6J58+Zyq8rTp2HSTkRERERUzunbd4GO9de4/9vb+dmmfn9A96u2Jd7DnpCQgHr16smVDRw4EGvXrv3oc7m5ueHo0aOYNm0aWrRoAZlMhho1aggLxVWtWhVRUVH48ccf8csvv6B+/fpYunQpvvnmm4+6zpMnT7Bnzx5s3LhRoU5NTQ1dunRBeHh4sZJ24G2i7ObmhhUrVmD69OlQV1dH/fr18fvvvysdWv6url27yiXd77OxsZHbtz06OhqBgYGQyWTw8PBAQkICGjVqJNTn5uYKibSenh7c3Nxw6NAhtG7dWu68MpkMQ4YMQUhIiDCVQFdXF1FRURg5ciRycnKwbNkypcP3CyxatAgNGjTA8uXLsXLlSkilUtSoUQPdu3dH//79i7xv+jgiGVcRQHp6OoyMjJCWlgaxWKzqcMoMiUSCvXv3okOHDpyrQqWmOM9dpiQH4g3TAADpfX+CvqZ2aYZIXyD+viNV4HNHBbKzs5GcnAw7OzuFLb0Kk3YhDGkXfpYvlMmEnnZ1fQtA9N5weRmg5TIE1TwmCwuXEZU0qVSK9PR0iMXiCvncFfX3u7h5KHvaiYiIiIjKGWlOepH7s787TP5dstzXJRUSEZUQJu1EREREROWMmrYY6gaFD11WSgaItAxLJiAiKjEqTdqPHTuGJUuW4Pz580hJScGOHTvg5+cn1D958gSTJ0/GwYMH8erVK7Rs2RK//vorHBwchDaenp4K80CGDh2KlStXltZtEBERERGVKqP642BUf9xHHVMwTJmIyheVTirIzMxEnTp1sHz5coU6mUwGPz8/3L17Fzt37sTFixdhY2ODtm3bIjMzU67t4MGDkZKSIrwWL15cWrdAREREREREVGJU2tPevn17tG/fXmndrVu3cOrUKSQlJaFWrVoAgN9++w1mZmaIjY3FoEGDhLZ6enowMzMrlZiJiIiIiIiISkuZndOek5MDAHIr7KmpqUFbWxvHjx+XS9pjYmKwYcMGmJmZwdfXFzNmzICenl6R5y44PwBhmJBEIoFEIvnct1JuFXwW/EyoNBXnuZPk5cn9LFHtoCH6AvD3HakCnzsqIJFIIJPJIJVKIZVKS+w6BZtGFVyLqDRU9OdOKpVCJpNBIpFAXV1+C8bi/v4vs0l7zZo18dVXX2Hq1KlYtWoV9PX1ERoaiocPHyIlJUVo17t3b9jY2MDCwgKXL1/G5MmTcePGDWzfvr3Qcy9YsACzZ89WKD948GCRyX5FFR8fr+oQqAIq6rnLluULPx84cAA6opLdg5YqDv6+I1Xgc0caGhowMzNDRkYGcnNzi3XMilunsOL26Y++1gj7xhjh0OSjjyP6VK9fV8ydC3Jzc/HmzRscO3YMee90PAFAVlZWsc5RZpN2TU1NbN++HQMHDkSlSpWgrq6Otm3bon379nh3a/khQ4YIP7u6usLc3Bxff/017ty5gxo1aig999SpUxEQECC8T09Ph7W1Ndq1a8d92t8hkUgQHx8PLy8v7h9LpaY4z11mXi6w6SQAwNvbG/oaWqUZIn2B+PuOVIHPHRXIzs7GgwcPYGBgUOx92nPVgZTsj0+CXuflwNDQEKL393AnKiEymQyvX7+usM9ddnY2dHV10bJlS6X7tBdHmU3aAaBBgwZITExEWloacnNzUbVqVTRu3BgNGzYs9JjGjRsDAG7fvl1o0q6trQ1tbW2Fck1NTf6jqQQ/F1KFop47Tfzf0CpNDQ0+n/TZ8PcdqQKfO8rPz4dIJIKamhrU1Io35ctISxeWekZyZTLI8DjrbRJgoSeGCIoJkqGGtnAtotJQMCS+oj53ampqEIlESn/XF/d3f5lO2gsYGb39hXTr1i2cO3cOc+fOLbRtYmIiAMDc3Lw0QiMiIiIiKnXja7fC+Nqt5MrSc97AZOMMAMCapt/Cy9IJ6u8kSaW95ZtIJFLY0rkoCQkJaN26NV6+fAljY+MSjY2oPFHpVx0ZGRlITEwUEu3k5GQkJibi/v37AIC4uDgkJCQI2755eXnBz88P7dq1AwDcuXMHc+fOxfnz53Hv3j3s2rUL/fr1Q8uWLeHm5qaq2yIiIiIiKlXb711Brd+XCO87HgpH9bifsP3elRK75oABA4pMyFNSUgrdKeq/CgoKQt26dZXWXbx4Ef7+/jA3N4e2tjZsbGzQqVMn/PHHH8L02nv37kEkEgkvLS0t2NvbY968eXJTcIOCgiASieDj46NwnSVLlkAkEsHT07NYMXt7e0NdXR1nz55VqBswYIBCLHPmzJGb+5yfn4/Q0FC4urpCR0cHJiYmaN++PU6cOFGs63+M5cuXw9nZGbq6unBycsK6devk6qOiouQ+P5FIpDDke+nSpahWrRqqVauG4OBgubrTp0+jQYMGCnO7lZHJZFi9ejUaN24MAwMDGBsbo2HDhggLCxPmghf1PHxJVNrTfu7cObRu3Vp4XzDPvH///oiKikJKSgoCAgLw5MkTmJubo1+/fpgxY4bQXktLC4cOHUJYWBgyMzNhbW2Nbt26Yfr06aV+L0REREREqrD93hX0OBIN2Xvlj7LS0ONINLa07o+utq6lHldpbsm8c+dO9OjRA23btkV0dDTs7e2Rk5ODkydPYvr06WjRooVc7/2hQ4dQq1Yt5OTkCDtTmZubY+DAgUIbc3NzHDlyBA8fPoSVlZVQHhERga+++qpYcd2/fx8nT57EqFGjEBERAXd3d4U2Pj4+iIyMRE5ODvbu3YuRI0dCU1MTU6dOhUwmQ8+ePXHo0CEsWbIEX3/9NdLT07F8+XJ4enoiLi6u2CMZ7t27Bzs7O7kvJ97122+/YerUqVizZg3c3d1x5swZDB48GCYmJvD19RXaicVi3LhxQ3j/7jz1y5cvY+bMmdi9ezdkMhk6deqEtm3bwsbGBnl5eRg2bBhWr14NDY0Pp6Hfffcdtm/fjunTp2PZsmWoWrUqLl26hLCwMNja2hb7vr8EKk3aPT09C31oAGDMmDEYM2ZMofXW1tY4evRoSYRGRERERFTm5UulGH/6d4WEHQBkAEQAAs7sROevaimZ4V6y3h8ef/LkSYwYMQLXr19H7dq1MX36dHTp0gUXL16U6y09f/48Jk+ejKtXr6Ju3bqIjIyEk5MToqKihB2gChLFyMhIfPvttxg4cCA6duyosIOUs7MzBg4cqJBzVK5cWfhSwcbGBpGRkbhw4YJc0l6tWjU0aNAA0dHRmDZtmnAPz549w7fffourV69+8DOIjIxEp06dMHz4cDRp0gQhISHQ1dWVa6OtrS3EMnz4cOzYsQO7du3C1KlTsWXLFmzduhW7du2SS5xXr16N58+fY9CgQfDy8oK+vv4HY/mQ9evXY+jQofD39wcAVK9eHWfPnsWiRYvkri0SiQr9Qub69etwc3NDmzZtAABubm64fv06bGxssHTpUrRs2VLpFxfv27JlC2JiYvD777+jc+fOQrmtrS2++eabUp3mURZUvJUAiIiIiIi+EH89uYuHWWmF1ssAPMh8hb+e3C29oJRIT0+Hr68vXF1dceHCBcydOxeTJ09W2nbatGkIDg7GuXPnoKGhgR9++AEA4O/vjwkTJqBWrVpISUlBSkoK/P39cfDgQTx//hyTJk0q9PpFrVp+7tw5nD9/XljQ+l0//PADoqKihPcRERHo06cPtLQ+vHONTCZDZGQk+vbti5o1a8Le3h5bt2794HG6urrC1n8bN26Eo6OjXNJcYMKECXj+/Pln2zYyJydHYai7rq4uzpw5I7efeEZGBmxsbGBtbY3OnTvj77//FupcXV1x8+ZN3L9/H//88w9u3ryJ2rVrIzk5GVFRUZg3b16xYomJiYGTk5Ncwl5AJBIJa55VFEzaiYiIiIjKqZQ3xdv2rbjtSsrGjRshEomwZs0auLi4oH379pg4caLStj/99BNatWoFFxcXTJkyBSdPnhS2zTIwMBD2tTczM4Ouri5u3rwJAHBychLOcfbsWRgYGAiv3bt3y12jadOmMDAwgJaWFtzd3dGjRw/069dPIZZOnTohPT0dx44dQ2ZmJrZs2SJ8ifAhhw4dQlZWFry9vQEAffv2RXh4eKHtZTIZDh06hAMHDgg91Tdv3oSzs7PS9gXlBfevTK1atYTPoFatWgAg97m8u+aAt7c31q5di/Pnz0Mmk+HcuXNYu3YtJBIJnj17BuDtZxwREYGdO3diw4YNkEqlaNq0KR4+fCjENH/+fHh5eaFdu3ZYsGABnJ2dMX78eCxcuBAHDhxA7dq1Ua9ePRw7dqzQuG/duiX351nRlYvV44mIiIiISJG5ruFnbVdSbty4ATc3N7me3EaNGilt++6C0gU7Qj19+rTY88gLzlGw2LWDg4PCwmebN2+Gs7MzJBIJkpKSMHr0aJiYmGDhwoVy7TQ1NdG3b19ERkbi7t27cHR0LPaC1xEREfD39xfmb/fq1QsTJ07EnTt35Lam3r17NwwMDCCRSCCVStG7d28EBQUJ9UVNJ/6QvXv3Cr3kjx49gqenp/C5AJAbqj9jxgykpqaiSZMmkMlkMDU1Rf/+/bF48WJhqzYPDw94eHgIxzRt2hTOzs5YtWqVsMPXsGHDMGzYMKFNZGQkDAwM4OHhAWdnZ5w9exYPHz5Ez549kZycrHQr7k+55y8Rk3YiIiIionKqhWl1WOkZ4VFWmtJ57SIAVvrGaGFavbRD+8/e3bu6YFh7wV7fyjg4OAB4+8VAkyZNALydJ25vb1/oMdbW1kK9s7Mz7ty5gxkzZiAoKEhhiPgPP/yAxo0bIykpqdi97C9evMCOHTsgkUjw22+/CeX5+fmIiIjATz/9JJS1bt0av/32G7S0tGBhYSG3SJujoyOuXbum9BoF5Y6OjoXGYWNjI/xccN7CPhddXV1ERERg1apVwkLgq1evhqGhIapWrar0GE1NTdSrVw+3b99WWv/s2TPMnTsXf/zxB06fPg1HR0c4ODjAwcEBEokEN2/ehKur4iKJjo6OuH79eqH3VdFweDwRERERUTmlrqaG0MZ+AKCw0FzB+5BGneX2a1cFJycnXLlyBTk5OUKZsi3QPkRLSwv5+flyZe3atUOlSpWwaNGi/xyfuro68vLyhLnk76pVqxZq1aqFpKQk9O7du1jni4mJgZWVFS5duiRscZ2YmIjg4GBERUXJ3YO+vj7s7e3x1VdfKayq3rNnT9y6dQt//PGHwjWCg4NRuXJleHl5feTdFk1TUxNWVlZQV1fHpk2b0KlTJ6Gn/X35+fm4cuWKMCLifePHj8e4ceNgaWmJ/Px8ubnxeXl5Cn+WBXr37o2bN29i586dCnUymQxpaYWv4/AlYk87EREREVE51tXWFVta98fY0zvwOOv/VtW20jdGSKPOJbrdW1pamtxwa+DtyuzW1tZyZb1798a0adMwZMgQTJkyBffv38fSpUsBFL1I3PtsbW2RnJyMxMREWFlZwdDQEAYGBli7di38/f3RsWNHjBkzBg4ODsjIyMD+/fsBvE3K3/X8+XOkpqYiLy8PV65cwc8//4zWrVtDLBYrve6ff/4JiUQit21cUcLDw9G9e3fUrl1brtza2hpTp07F/v370bFjxw+ep2fPnoiLi0P//v0VtnzbtWsX4uLiilw5/t9//xUSYx0dHaSkpCA1NVWo19LSQqVKlQC8nRt/5swZNG7cGC9fvkRISAiSkpIQHR0ttJ8zZw6aNGkCe3t7vHr1CkuWLME///yDQYMGKVw7Pj4eN2/eRGRkJDIyMuDu7o7r169j3759ePDgAdTV1Qudt96jRw/s2LEDvXr1wvTp09GuXTtUrVoVV65cQWhoKEaPHs0t34iIiIiIqPzoauuKtub2MNk4AwCwp+1AeFk6lXgPe0JCAurVqydXNnDgQKxdu1auTCwW448//sDw4cNRt25duLq6YubMmejdu7fCcPSidOvWDdu3b0fr1q3x6tUrREZGYsCAAejSpQtOnjyJRYsWoV+/fnjx4gWMjIzQsGFDobf4XW3btgXwNpk3NzdHhw4d5Iasv+9jtlQ7f/48Ll26hDVr1ijUGRkZ4euvv0Z4eHixknaRSIQtW7YgLCwMoaGhGDFiBHR0dODh4YGEhAQ0a9asyOPd3d3xzz//FFrfqlUrJCQkAHjbax4cHIwbN25AU1MTrVu3xsmTJ2Frayu0f/nyJQYPHozU1FSYmJigQYMGOHnyJFxcXOTO++bNG4waNQqbN28WeumtrKzw66+/4vvvv4e2tjaio6MVtr979743btyI1atXC9MJNDQ04ODggH79+gmL+1UUIhln+SM9PR1GRkZIS0sr9Nu1ikgikWDv3r3o0KGD3NwiopJUnOcuU5ID8Ya3+6Wm9/0J+pqKC5gQfQz+viNV4HNHBbKzs5GcnAw7O7tiJ7ChSUcR+rf86tsyyISedgs9MURKdmYfVt0dUxq0K3S4c2mKiYnB999/j7S0tEKTNyr/pFIp0tPTIRaLy8RzV9qK+vtd3DyUPe1EREREROVMuiQbj4rYn/3dYfLvep2Xo7S8NKxbtw7Vq1eHpaUlLl26hMmTJ6NHjx5M2Ik+gEk7EREREVE5I9bUgaWe0UcfZ6ihutFpqampmDlzJlJTU2Fubo5vv/22yCHpRPQWk3YiIiIionJmfO1WGF+71UcdUzBMWVUmTZqESZMmqez6ROVVxZtUQERERERERFROMGknIiIiIiIiKqOYtBMRERERERGVUZzTTkRERERUzjzfH4Ln+0M++ji9VsMh7jy1BCIiopLCpJ2IiIiIqJzJf5OOvJePPvo4afbrEoiGiEoSk3YiIiIionJGXVcMDRNL+UKZDHmvHgMANIwtAJFI4Tg1HcPSCI+IPiMm7URUpoUmHUXo38fkymSQCT/X3L4IIij+p2R8rZYfvRUOERFReVHZJwCVfQLkyvLfpOPGsLd7t5sPXAuD2u0gUlMX6lW95du7bG1tMW7cOIwbN07VoRCVeVyIjojKtHRJNh5lpcm9Hmf93384HmelK9Q/ykpDuiRbhVETERGVrvRz23Fnqovw/kFwB9wKsEX6ue0lcj2RSFTkKygo6JOvYWtrK5xPX18f9evXR1xcnFAfFBSk9NqHDh2Sqx82bJjceRMTEyESiXDv3r0PxhAbGwt1dXWMHDlSoS4hIUHuuqampujWrRvu3r0r1+7kyZPo0KEDTExMoKOjA1dXV4SEhCA/P/8/fCqFu3DhAry8vGBsbIzKlStjyJAhyMjIkGuj7PPatGmTUH/x4kXUq1cPBgYG8PX1xYsXL4S6vLw8NGjQAGfOnClWPBcvXsS3334Lc3NzmJmZwcnJCYMHD8bNmzcBAPfu3YNIJEJiYuKn3/wXjkk7EZVpYk0dWOoZffRLrKmj6tCJiIhKRfq57Xj4a3eFOe55Lx/h4a/dSyRxT0lJEV5hYWEQi8VyZYGBgZ/lOnPmzEFKSgouXrwId3d3+Pv74+TJk0J9rVq15K6bkpKCli1bCvU6OjoIDw/HrVu3/tP1w8PDMWnSJMTGxiI7W3mHwI0bN/D48WPExcXh77//hq+vr5CQ79ixA61atYKVlRWOHDmC69evY+zYsZg3bx569uwJmUym9JzKeHp6IioqSmnd48eP0bZtW9jb2+P06dPYv38//v77bwwYMEChbWRkpNzn5efnJ9QNGjQIbdq0wYULF5CWlob58+cLdcHBwWjWrBkaNWr0wVh3796NJk2aICcnB+vXr8fp06exbt06GBkZYcaMGcW+Z3qLw+OJqEwbX7sVh7kTEREVQibNR+qGsQCUJX8yACKkxoyDYf3OgJLpZP+VmZmZ8LORkRFEIpFQdufOHQwdOhSnTp1CZmYmnJ2dsWDBArRt21buHK9fv0avXr2wa9cuGBsb48cff1To0TY0NISZmRnMzMywfPlybNiwAX/88QeaNm0KANDQ0JCL5X1OTk6oVq0apk2bhi1btnzUPSYnJ+PkyZPYtm0bjhw5gu3bt6N3794K7apVqwZjY2OYm5tj5syZ6NOnD27fvg0rKysMHjwY33zzDVavXi20HzRoEExNTfHNN99gy5Yt8Pf3/6i4lNm9ezc0NTWxfPlyqKm97ZdduXIl3NzccPv2bdjb2wttjY2NC/3Mrl27hpiYGDg6OqJXr17YvXs3AODu3bsIDw/H+fPnPxhLVlYWvv/+e3To0AE7duwQpmWIxWJ4eHjg1atXn3y/FQ172omIiIiIyqmsG38h7+XDIlrIkPfiAbJu/FVqMWVkZKBDhw44fPgwLl68CB8fH/j6+uL+/fty7ZYsWYI6derg4sWLmDJlCsaOHYv4+PhCz6uhoQFNTU3k5uZ+VDwLFy7Etm3bcO7cuY86LjIyEh07doSRkRH69u2L8PDwDx6jq6sLAMjNzcXBgwfx/PlzpaMOfH194ejoiNjY2I+KqTA5OTnQ0tISEvZ3Yzl+/Lhc25EjR6JKlSpo1KgRIiIi5Hr769Spg/j4eOTl5eHw4cNwc3MDAAwbNgyLFy+GoeGHFzI8cOAAnj17hkmTJimtNzY2/tjbq/CYtBMRERERlVN5r1I+a7vPoU6dOhg6dChq164NBwcHzJ07FzVq1MCuXbvk2jVr1gxTpkyBo6MjRo8eje7duyM0NFTpOXNzc7FgwQKkpaWhTZs2QvmVK1dgYGAgvJQN3a5fvz569OiByZMnF/sepFIpoqKi0LdvXwBAz549cfz4cSQnJxd6TEpKCpYuXQpLS0s4OTkJc7ednZ2Vtq9Zs6bQRpn58+fL3dtff/2FYcOGyZUVfBHSpk0bpKamYsmSJcjNzcXLly8xZcoUIa4Cc+bMwZYtWxAfH49u3bphxIgR+PXXX4X6tWvXYuvWrahRowa0tLQwdepUrF+/Hnp6enB3d4e3tzfs7e0xffr0QuMumIpQs2bNQtvQx+HweCIiIiKickrD2PyztvscMjIyEBQUhD179iAlJQV5eXl48+aNQk+7h4eHwvuwsDC5ssmTJ2P69OnIzs6GgYEBFi5ciI4dOwr1Tk5Ocl8GaGtrK41p3rx5cHZ2xsGDB1GtWrUP3kN8fDwyMzPRoUMHAECVKlXg5eWFiIgIzJ07V66tlZUVZDIZsrKyUKdOHWzbtg1aWlpC/cfMW3/XsGHD0KNHD+F9nz590K1bN3Tt2lUos7CwAPB2bn90dDQCAgIwdepUqKurY8yYMTA1NZXrfX93Pnm9evWQmZmJJUuWYMyYMcJ5jh49KrR5/vw5Zs2ahWPHjmH06NFo2rQptm/fDnd3dzRu3Bi+vr4Kcf/X+6XCMWknIiIiIiqn9JxaQMPE6v8vQqcsWRJBo5IV9JxaKK0tCYGBgYiPj8fSpUthb28PXV1ddO/e/aOHtQPAxIkTMWDAABgYGMDU1BSi9/ae19LSkpuvXZgaNWpg8ODBmDJlSrGGuYeHh+PFixfCEHPgbe/75cuXMXv2bLlE+K+//oJYLEa1atXkho87OjoCeDtPvGAO/ruuXbsGFxcXhfIClSpVQqVKlYT3urq6qFatWqH327t3b/Tu3RtPnjyBvr4+RCIRQkJCUL169UKv0bhxY8ydOxc5OTlKv/AICAjAuHHjYGVlhYSEBMybNw/6+vro2LEjEhISlCbtBfd9/fp1hS9m6L/h8HgiIiIionJKpKYOs74/F7x7vxYAYNYnTG6/9pJ24sQJDBgwAF26dIGrqyvMzMyUbq926tQphffvDyWvUqUK7O3tYWZmppCwf6yZM2fi5s2bclucKfP8+XPs3LkTmzZtQmJiovC6ePEiXr58iYMHD8q1t7OzQ40aNRTme7dr1w6VKlVCcHCwwjV27dqFW7duoVevXp90T8qYmprCwMAAmzdvho6ODry8vAptm5iYCBMTE6UJ++HDh3Ht2jWMGjUKAJCfnw+JRAIAkEgkhW5Z165dO1SpUgWLFy9WWs+F6D4ee9qJiIiIiMoxccOusBq9Fakbxsht+6ZRyQpmfcIgbti1iKM/PwcHB2zfvh2+vr4QiUSYMWMGpFKpQrsTJ05g8eLF8PPzQ3x8POLi4rBnz54Si8vU1BQBAQFYsmRJke3Wr1+PypUro0ePHgpfFHTo0AHh4eHw8fH54PX09fWxatUq9OzZE0OGDMGoUaMgFotx+PBhTJw4Ed27d5cb/v6+jIwMuX3WC75sSE1NFcqqVq0KdfW3X8gsW7YMTZs2hYGBAeLj4zFx4kQsXLhQWPjtjz/+wJMnT9CkSRPo6OggPj4e8+fPV7pQXnZ2NkaNGoXY2FhhVEGzZs2wfPlyjBw5Etu2bUNISEih97127Vp8++23+OabbzBq1CiYmZkhOzsbW7duxf379z/4xQnJY087EREREVE5J27YFTUWXBXeW0/YC4fg5FJP2AEgJCQEJiYmaNq0KXx9feHt7Y369esrtJswYQLOnTuHevXqYd68eQgJCYG3t3eJxhYYGAgDA4Mi20RERKBLly5Ke/a7deuGXbt24dmzZ8W6Xvfu3XHkyBHcv38fLVq0gJOTE0JDQzFt2jRs2rSpyNEDS5cuhbm5eZGvBw8eCO3PnDkDLy8vuLq6YvXq1Vi1apUwVx2AsCWch4cH6tati1WrViEkJASzZs1SuPbs2bPRsWNH1K1bVyj75ZdfkJiYiJYtW8LX1xfdunUrNPbOnTvj5MmT0NTURN++fdGoUSP06dMHaWlpmDdvXrE+O/o/IhlXCkB6ejqMjIyQlpYGsVis6nDKDIlEgr1796JDhw7Q1NRUdThUQfC5I1Xgc0eqwOeOCmRnZyM5ORl2dnbQ0dEp1jHP94fg+f73ejplMuS9egwA0DC2AJQkhHqthsOi81S5OdlEJendfdor4nNX1N/v4uahHB5PRERERFTO5L9JlxsK/76C5P190uzXJRUSEZUQJu1EREREROWMuq4YGiaWH32cmo7hhxsRUZnCpJ2IiIiIqJyp7BOAyj4BH3VMwTBlIipfKt6kAiIiIiIiIqJygkk7EREREVEZwPWhib48n+PvNZN2IiIiIiIVKthnOzc3V8WRENHnlpWVBQCftEsI57QTEREREamQhoYG9PT08O+//0JTU7PEtsWSSqXIzc1FdnZ2hdx6i1Sjoj53MpkMWVlZePr0KYyNjYUv5/4LJu1ERERERCokEolgbm6O5ORk/PPPPyV2HZlMhjdv3kBXVxciJXu4E5WEiv7cGRsbw8zM7JPOwaSdiIiIiEjFtLS04ODgUKJD5CUSCY4dO4aWLVt+0lBdoo9RkZ87TU3NT+phL8CknYiIiIioDFBTU4OOjk6JnV9dXR15eXnQ0dGpcMkTqQ6fu09XcSYVEBEREREREZUzTNqJiIiIiIiIyigm7URERERERERlFOe04/82vE9PT1dxJGWLRCJBVlYW0tPTOf+ESg2fO1IFPnekCnzuqLTxmSNV4HNXuIL8syAfLQyTdgCvX78GAFhbW6s4EiIiIiIiIqpIXr9+DSMjo0LrRbIPpfUVgFQqxePHj2FoaFgh9w4sTHp6OqytrfHgwQOIxWJVh0MVBJ87UgU+d6QKfO6otPGZI1Xgc1c4mUyG169fw8LCAmpqhc9cZ0873m6vYWVlpeowyiyxWMy/YFTq+NyRKvC5I1Xgc0eljc8cqQKfO+WK6mEvwIXoiIiIiIiIiMooJu1EREREREREZRSTdiqUtrY2Zs2aBW1tbVWHQhUInztSBT53pAp87qi08ZkjVeBz9+m4EB0RERERERFRGcWediIiIiIiIqIyikk7ERERERERURnFpJ2IiIiIiIiojGLSTkRERERERFRGMWmnQi1fvhy2trbQ0dFB48aNcebMGVWHRF+wY8eOwdfXFxYWFhCJRPj9999VHRJVAAsWLIC7uzsMDQ1RrVo1+Pn54caNG6oOi75gv/32G9zc3CAWiyEWi+Hh4YF9+/apOiyqYBYuXAiRSIRx48apOhT6ggUFBUEkEsm9atasqeqwyiUm7aTU5s2bERAQgFmzZuHChQuoU6cOvL298fTpU1WHRl+ozMxM1KlTB8uXL1d1KFSBHD16FCNHjsSpU6cQHx8PiUSCdu3aITMzU9Wh0RfKysoKCxcuxPnz53Hu3Dm0adMGnTt3xt9//63q0KiCOHv2LFatWgU3NzdVh0IVQK1atZCSkiK8jh8/ruqQyiVu+UZKNW7cGO7u7li2bBkAQCqVwtraGqNHj8aUKVNUHB196UQiEXbs2AE/Pz9Vh0IVzL///otq1arh6NGjaNmyparDoQqiUqVKWLJkCQYOHKjqUOgLl5GRgfr162PFihWYN28e6tati7CwMFWHRV+ooKAg/P7770hMTFR1KOUee9pJQW5uLs6fP4+2bdsKZWpqamjbti3+97//qTAyIqKSlZaWBuBtEkVU0vLz87Fp0yZkZmbCw8ND1eFQBTBy5Eh07NhR7v94RCXp1q1bsLCwQPXq1dGnTx/cv39f1SGVSxqqDoDKnmfPniE/Px+mpqZy5aamprh+/bqKoiIiKllSqRTjxo1Ds2bNULt2bVWHQ1+wK1euwMPDA9nZ2TAwMMCOHTvg4uKi6rDoC7dp0yZcuHABZ8+eVXUoVEE0btwYUVFRcHJyQkpKCmbPno0WLVogKSkJhoaGqg6vXGHSTkREhLc9UElJSZxvRyXOyckJiYmJSEtLw9atW9G/f38cPXqUiTuVmAcPHmDs2LGIj4+Hjo6OqsOhCqJ9+/bCz25ubmjcuDFsbGywZcsWTgf6SEzaSUGVKlWgrq6OJ0+eyJU/efIEZmZmKoqKiKjkjBo1Crt378axY8dgZWWl6nDoC6elpQV7e3sAQIMGDXD27Fn8/PPPWLVqlYojoy/V+fPn8fTpU9SvX18oy8/Px7Fjx7Bs2TLk5ORAXV1dhRFSRWBsbAxHR0fcvn1b1aGUO5zTTgq0tLTQoEEDHD58WCiTSqU4fPgw59wR0RdFJpNh1KhR2LFjB/7880/Y2dmpOiSqgKRSKXJyclQdBn3Bvv76a1y5cgWJiYnCq2HDhujTpw8SExOZsFOpyMjIwJ07d2Bubq7qUMod9rSTUgEBAejfvz8aNmyIRo0aISwsDJmZmfj+++9VHRp9oTIyMuS+eU1OTkZiYiIqVaqEr776SoWR0Zds5MiR2LhxI3bu3AlDQ0OkpqYCAIyMjKCrq6vi6OhLNHXqVLRv3x5fffUVXr9+jY0bNyIhIQEHDhxQdWj0BTM0NFRYq0NfXx+VK1fmGh5UYgIDA+Hr6wsbGxs8fvwYs2bNgrq6Onr16qXq0ModJu2klL+/P/7991/MnDkTqampqFu3Lvbv36+wOB3R53Lu3Dm0bt1aeB8QEAAA6N+/P6KiolQUFX3pfvvtNwCAp6enXHlkZCQGDBhQ+gHRF+/p06fo168fUlJSYGRkBDc3Nxw4cABeXl6qDo2I6LN6+PAhevXqhefPn6Nq1apo3rw5Tp06hapVq6o6tHKH+7QTERERERERlVGc005ERERERERURjFpJyIiIiIiIiqjmLQTERERERERlVFM2omIiIiIiIjKKCbtRERERERERGUUk3YiIiIiIiKiMopJOxEREREREVEZxaSdiIiIiIiIqIxi0k5ERET0Hk9PT4wbN07VYRARETFpJyIiKmkikajIV1BQUIlcd8CAAfDz8yuRc/8XUVFRMDY2/mztiIiIKgINVQdARET0pUtJSRF+3rx5M2bOnIkbN24IZQYGBsLPMpkM+fn50NDgP9FERETEnnYiIqISZ2ZmJryMjIwgEomE99evX4ehoSH27duHBg0aQFtbG8ePH4dUKsWCBQtgZ2cHXV1d1KlTB1u3bhXOmZ+fj4EDBwr1Tk5O+Pnnn4X6oKAgREdHY+fOnUKPfkJCAu7duweRSIQtW7agRYsW0NXVhbu7O27evImzZ8+iYcOGMDAwQPv27fHvv//K3cfatWvh7OwMHR0d1KxZEytWrBDqCs67fft2tG7dGnp6eqhTpw7+97//AQASEhLw/fffIy0t7ZNHGLx69QqDBg1C1apVIRaL0aZNG1y6dAkAcPPmTYhEIly/fl3umNDQUNSoUUN4n5SUhPbt28PAwACmpqb47rvv8OzZs/8UDxERUUli0k5ERFQGTJkyBQsXLsS1a9fg5uaGBQsWYN26dVi5ciX+/vtvjB8/Hn379sXRo0cBAFKpFFZWVoiLi8PVq1cxc+ZM/Pjjj9iyZQsAIDAwED169ICPjw9SUlKQkpKCpk2bCtebNWsWpk+fjgsXLkBDQwO9e/fGpEmT8PPPP+Ovv/7C7du3MXPmTKF9TEwMZs6ciZ9++gnXrl3D/PnzMWPGDERHR8vdx7Rp0xAYGIjExEQ4OjqiV69eyMvLQ9OmTREWFgaxWCzEExgY+J8+q2+//RZPnz7Fvn37cP78edSvXx9ff/01Xrx4AUdHRzRs2BAxMTFyx8TExKB3794A3ib9bdq0Qb169XDu3Dns378fT548QY8ePf5TPERERCVKRkRERKUmMjJSZmRkJLw/cuSIDIDs999/F8qys7Nlenp6spMnT8odO3DgQFmvXr0KPffIkSNl3bp1E973799f1rlzZ7k2ycnJMgCytWvXCmWxsbEyALLDhw8LZQsWLJA5OTkJ72vUqCHbuHGj3Lnmzp0r8/DwKPS8f//9twyA7Nq1a0rvvTBFtfvrr79kYrFYlp2dLVdeo0YN2apVq2QymUwWGhoqq1GjhlB348YNuTjmzp0ra9eundzxDx48kAGQ3bhxQyaTyWStWrWSjR079oOxEhERlTROmCMiIioDGjZsKPx8+/ZtZGVlwcvLS65Nbm4u6tWrJ7xfvnw5IiIicP/+fbx58wa5ubmoW7dusa7n5uYm/GxqagoAcHV1lSt7+vQpACAzMxN37tzBwIEDMXjwYKFNXl4ejIyMCj2vubk5AODp06eoWbNmseL6kEuXLiEjIwOVK1eWK3/z5g3u3LkDAOjZsycCAwNx6tQpNGnSBDExMahfv74Qw6VLl3DkyBG5tQQK3LlzB46Ojp8lViIios+BSTsREVEZoK+vL/yckZEBANizZw8sLS3l2mlrawMANm3ahMDAQAQHB8PDwwOGhoZYsmQJTp8+XazraWpqCj+LRCKlZVKpVC6eNWvWoHHjxnLnUVdX/+B5C87zOWRkZMDc3BwJCQkKdQUrzpuZmaFNmzbYuHEjmjRpgo0bN2L48OFy5/D19cWiRYsUzlHwRQMREVFZwaSdiIiojHFxcYG2tjbu37+PVq1aKW1z4sQJNG3aFCNGjBDKCnqaC2hpaSE/P/+T4zE1NYWFhQXu3r2LPn36/OfzfI546tevj9TUVGhoaMDW1rbQdn369MGkSZPQq1cv3L17Fz179pQ7x7Zt22Bra8tV+omIqMzjv1RERERljKGhIQIDAzF+/HhIpVI0b94caWlpOHHiBMRiMfr37w8HBwesW7cOBw4cgJ2dHdavX4+zZ8/Czs5OOI+trS0OHDiAGzduoHLlygpD2T/G7NmzMWbMGBgZGcHHxwc5OTk4d+4cXr58iYCAgGKdw9bWFhkZGTh8+DDq1KkDPT096OnpKW2bn5+PxMREuTJtbW20bdsWHh4e8PPzw+LFi+Ho6IjHjx9jz5496NKlizDNoGvXrhg+fDiGDx+O1q1bw8LCQjjPyJEjsWbNGvTq1QuTJk1CpUqVcPv2bWzatAlr165VGD1ARESkSlw9noiIqAyaO3cuZsyYgQULFsDZ2Rk+Pj7Ys2ePkJQPHToUXbt2hb+/Pxo3boznz5/L9boDwODBg+Hk5ISGDRuiatWqOHHixH+OZ9CgQVi7di0iIyPh6uqKVq1aISoqSu5Lgg9p2rQphg0bBn9/f1StWhWLFy8utG1GRgbq1asn9/L19YVIJMLevXvRsmVLfP/993B0dETPnj3xzz//CHPzgbdffPj6+uLSpUsKowMsLCxw4sQJ5Ofno127dnB1dcW4ceNgbGwMNTX+14iIiMoWkUwmk6k6CCIiIiIiIiJSxK+TiYiIiIiIiMooJu1EREREREREZRSTdiIiIiIiIqIyikk7ERERERERURnFpJ2IiIiIiIiojGLSTkRERERERFRGMWknIiIiIiIiKqOYtBMRERERERGVUUzaiYiIiIiIiMooJu1EREREREREZRSTdiIiIiIiIqIy6v8BGR148FgmnXgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot APOs and 95% CIs for all models\n", "plt.figure(figsize=(12, 7))\n", "palette = sns.color_palette(\"colorblind\")\n", "learners = df_all_apos['learner'].unique()\n", "n_learners = len(learners)\n", "jitter_strength = 0.12\n", "\n", "for i, learner in enumerate(learners):\n", " df = df_all_apos[df_all_apos['learner'] == learner]\n", " # Jitter x positions for each learner\n", " jitter = (i - (n_learners - 1) / 2) * jitter_strength\n", " x_jittered = df['treatment_level'] + jitter\n", " plt.errorbar(\n", " x_jittered,\n", " df['apo'],\n", " yerr=[df['apo'] - df['ci_lower'], df['ci_upper'] - df['apo']],\n", " fmt='o',\n", " capsize=5,\n", " capthick=2,\n", " ecolor=palette[i % len(palette)],\n", " color=palette[i % len(palette)],\n", " label=f\"{learner} APO ±95% CI\",\n", " zorder=2\n", " )\n", "\n", "# Get treatment levels for proper line positioning\n", "treatment_levels = sorted(df_all_apos['treatment_level'].unique())\n", "x_range = plt.xlim()\n", "total_width = x_range[1] - x_range[0]\n", "\n", "# Add true APOs as red horizontal lines\n", "for i, level in enumerate(treatment_levels):\n", " # Center each line around its treatment level with a reasonable width\n", " line_width = 0.6 # Width of each horizontal line relative to treatment level spacing\n", " x_center = level\n", " x_start = x_center - line_width/2\n", " x_end = x_center + line_width/2\n", " \n", " # Convert to relative coordinates (0-1) for xmin/xmax\n", " xmin_rel = max(0, (x_start - x_range[0]) / total_width)\n", " xmax_rel = min(1, (x_end - x_range[0]) / total_width)\n", " \n", " plt.axhline(y=apos[int(level)], color='red', linestyle='-', alpha=0.7, \n", " xmin=xmin_rel, xmax=xmax_rel,\n", " linewidth=3, label='True APO' if i == 0 else \"\")\n", "\n", "plt.title('Estimated APO and 95% Confidence Interval by Treatment Level')\n", "plt.xlabel('Treatment Level')\n", "plt.ylabel('Average Potential Outcome (APO)')\n", "plt.xticks(sorted(df_all_apos['treatment_level'].unique()))\n", "plt.legend()\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "95e25c9e", "metadata": {}, "source": [ "It is quite clear to see, that without tuning the hyperparameters of the models, the TabPFN model achieves the best performance (smallest confidence intervals) across all treatment levels." ] }, { "cell_type": "markdown", "id": "aee3fc20", "metadata": {}, "source": [ "### Visualizing Average Treatment Effects\n", "\n", "Now let's examine the Average Treatment Effects (ATEs), which represent the causal effect of each treatment level compared to the reference level (no treatment). The ATE for treatment level $d$ is defined as:\n", "\n", "$$\\text{ATE}_d = \\mathbb{E}[Y(d)] - \\mathbb{E}[Y(0)]$$" ] }, { "cell_type": "code", "execution_count": 11, "id": "bd512fd4", "metadata": { "tags": [ "nbsphinx-gallery" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/AAAAJwCAYAAAAumIpiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAACoB0lEQVR4nOzdeZyNdf/H8feZM2POLM5gGMOMMLZspWxRtsIgImWpH9GqRVlaVcpSuVFouyuyFdm60UaWIqRIRSRbCMMQMcOMGWfOuX5/THPMMduZMYtr5vV8PDyc67q+3+v6nGvONXM+1/VdLIZhGAIAAAAAAFc0n6IOAAAAAAAA5IwEHgAAAAAAEyCBBwAAAADABEjgAQAAAAAwARJ4AAAAAABMgAQeAAAAAAATIIEHAAAAAMAESOABAAAAADABEngAAAAAAEyABB7AFalt27Zq27ZtUYeRrw4ePCiLxaJZs2YVdShXrOL4cy9KKSkpeuaZZ1SlShX5+PioR48ekiSLxaJRo0blWH/UqFGyWCwFGyTylbc/s7Zt26pBgwaFEBFKOn6vA/mLBB5ArsyaNUsWiyXLfz/++KPX+9q5c6dGjRqlgwcPFlzAefDf//73ikmyly1bJovFosqVK8vlcrnXt23bNtufQ9q/tCStWrVqWZbp1KlTEb27vHM4HBo9erSioqLk7++vqKgovfLKK0pJSfEot3btWq8/qx988IGqV6+ucuXKqX///oqPj/fY7nK5dN111+m1117LVaxJSUmaPHmymjdvrpCQENlsNtWuXVuDBw/Wnj178nYCvDRjxgxNnDhRd955p2bPnq1hw4YV6PGuVGlJ7cmTJ3Nd9+jRoxo1apS2bt2a/4EVYwMHDvTqd9TAgQMLJZ6NGzdq1KhROnPmTKEc73K99tprWrp0qVdl024Ov/766wUbFIArgm9RBwDAnMaMGaPq1atnWF+zZk2v97Fz506NHj1abdu2VbVq1Ty2rVy58nJDzLP//ve/Kl++fKF9sczO3LlzVa1aNR08eFDffvut2rdvL0l64YUX9MADD7jL/fTTT3rrrbf0/PPPq27duu7111xzjft1o0aN9OSTT2Y4RuXKlQvwHRSMfv36adGiRbrvvvvUpEkT/fjjjxo5cqQOHTqkqVOnZij/xBNPqGnTph7r0n9WN2zYoEceeURPPPGEoqKiNG7cOD399NP64IMP3GWmTZumuLi4TM9hVk6ePKlOnTrp559/VteuXXX33XcrODhYu3fv1vz58zV16lRduHAhD2fAO99++60iIiI0efJkj/Xnz5+Xry9fAbxx9OhRjR49WtWqVVOjRo2KOhzTGDRokPv3lSQdOHBAL730kh566CG1atXKvb5GjRqFEs/GjRs1evRoDRw4UGXKlCmUY16O1157TXfeeae71QwApOGvN4A86dy5s5o0aVJg+y9VqlSB7dssEhIS9Nlnn2ncuHGaOXOm5s6d6/5C3KFDB4+yNptNb731ljp06JBlU8WIiAj169evoMMucD/99JMWLlyokSNHasyYMZKkhx9+WOXLl9ekSZM0ePBgjxsXktSqVSvdeeedWe7zyy+/VNu2bTVlyhRJkt1u14gRI9wJ/JkzZ/Tiiy/qgw8+kL+/v9exDhw4UL/++qs+/fRT3XHHHR7bxo4dqxdeeMHrfeXFiRMnMk1WbDZbgR4XOUtISFBQUFBRh1FgWrRooRYtWriXt2zZopdeekktWrTI9vdQcT8vAHC5aEIPoMDMnz9fjRs3VunSpWW329WwYUO9+eabklKb4vfq1UuS1K5dO3dzyrVr10rK2GcurSn0woULNXr0aEVERKh06dK68847FRcXp+TkZA0dOlRhYWEKDg7Wvffeq+TkZI94Zs6cqZtvvllhYWHy9/dXvXr19N5773mUqVatmn7//Xd999137pjSx3HmzBkNHTpUVapUkb+/v2rWrKnx48d7NG9PKzdw4ECFhISoTJkyGjBgQK6bbi5ZskTnz59Xr1691LdvXy1evFhJSUm52kd++Oeff/TUU0+pYcOGCg4Olt1uV+fOnbVt2zaPcul/Rq+++qoiIyNls9l0yy23aN++fRn2O3XqVNWoUUMBAQFq1qyZ1q9f71U8aeX69u3rsb5v374yDEMLFizItN7Zs2czNLFPc/78eZUtW9a9XK5cOSUmJrqXR40apYYNG6pnz55exShJmzZt0ldffaX7778/Q/IuSf7+/hmavH777bdq1aqVgoKCVKZMGXXv3l1//PGHR5m05uD79u1zP00MCQnRvffe6445rUntmjVr9Pvvv2e4vjLrA79hwwY1bdpUNptNNWrU8Gh9cKk5c+aocePGCggIULly5dS3b18dPnzYo0xaH+udO3eqXbt2CgwMVEREhCZMmJBhf0lJSRo1apRq164tm82mSpUqqWfPnvrzzz/dZVwul6ZMmaL69evLZrOpYsWKGjRokE6fPp1lnNnxJr61a9e6W27ce++97vOYvovNpk2b1KlTJ4WEhCgwMFBt2rTR999/73GstJ/Zzp07dffdd6ts2bK66aab9Prrr8tiseivv/7KEN+IESNUqlQp9/tbv369evXqpauuukr+/v6qUqWKhg0bpvPnz+fp/af5+eef1bJlSwUEBKh69ep6//333dvOnTunoKAgDRkyJEO9I0eOyGq1aty4cXk+dlqXrO+++06PPvqowsLCFBkZ6d6+fPly9/VQunRp3Xrrrfr999899vHbb79p4MCBioqKks1mU3h4uO677z6dOnXKXWbUqFF6+umnJUnVq1d3/xzTum9ZLBYNHjxYixYtUr169RQQEKAWLVpo+/btklK719SsWVM2m01t27bNtNtXbj4H2V27afEkJCRo9uzZ+drVIDk5WS+//LJq1qzp/gw988wzHn8rGzRooHbt2mWo63K5FBER4XEjNL+vSQDe4Qk8gDyJi4vL0J/UYrEoNDRUkrRq1SrddddduuWWWzR+/HhJ0h9//KHvv/9eQ4YMUevWrfXEE09kaPadvvl3ZsaNG6eAgAA999xz2rdvn95++235+fnJx8dHp0+f1qhRo/Tjjz9q1qxZql69ul566SV33ffee0/169fXbbfdJl9fX33xxRd69NFH5XK59Nhjj0mSpkyZoscff1zBwcHup6MVK1aUJCUmJqpNmzaKiYnRoEGDdNVVV2njxo0aMWKEjh075n56axiGunfvrg0bNujhhx9W3bp1tWTJEg0YMCBX53ju3Llq166dwsPD1bdvXz333HP64osv3Dc+csvhcGTaBzgoKEgBAQFZ1tu/f7+WLl2qXr16qXr16jp+/Lg++OADtWnTRjt37szQBP8///mPfHx89NRTTykuLk4TJkzQ//3f/2nTpk3uMtOnT9egQYPUsmVLDR06VPv379dtt92mcuXKqUqVKtm+j7Qvm5fGHBgYKCk1IbnUvffeq3PnzslqtapVq1aaOHGiRwuSpk2b6sMPP9TKlStVvXp1vfHGG2rWrJmk1K4e77//vjZv3pxtXJf6/PPPJUn9+/f3qvzq1avVuXNnRUVFadSoUTp//rzefvtt3Xjjjfrll18ydDPp3bu3qlevrnHjxumXX37Rhx9+qLCwMI0fP14VKlTQxx9/rFdffVXnzp1zJ1lZXV/bt29Xx44dVaFCBY0aNUopKSl6+eWX3Z/99F599VWNHDlSvXv31gMPPKC///5bb7/9tlq3bq1ff/3V44n/6dOn1alTJ/Xs2VO9e/fWp59+qmeffVYNGzZU586dJUlOp1Ndu3bVN998o759+2rIkCE6e/asVq1apR07dribWA8aNEizZs3SvffeqyeeeEIHDhzQO++8o19//VXff/+9/Pz8vDrP6eUUX926dTVmzJgMTb9btmwpKfWGS+fOndW4cWO9/PLL8vHxcd8oXL9+vfszlKZXr16qVauWXnvtNRmGoa5du+qZZ57RwoUL3QlmmoULF6pjx47uG0uLFi1SYmKiHnnkEYWGhmrz5s16++23deTIES1atCjX7z3t/Xfp0kW9e/fWXXfdpYULF+qRRx5RqVKldN999yk4OFi33367FixYoEmTJslqtbrrzps3T4Zh6P/+7//ydOz0Hn30UVWoUEEvvfSSEhISJEkff/yxBgwYoOjoaI0fP16JiYl67733dNNNN+nXX391Xw+rVq3S/v37de+99yo8PFy///67pk6dqt9//10//vijLBaLevbsqT179mjevHmaPHmyypcvL0mqUKGCO4b169fr888/d/8tGDdunPvn89///lePPvqoTp8+rQkTJui+++7Tt99+666b289Bdtdu2nt/4IEH1KxZMz300EOSLr+rgcvl0m233aYNGzbooYceUt26dbV9+3ZNnjxZe/bscfe379Onj0aNGqXY2FiFh4e762/YsEFHjx71uHFaENckAC8YAJALM2fONCRl+s/f399dbsiQIYbdbjdSUlKy3NeiRYsMScaaNWsybGvTpo3Rpk0b9/KaNWsMSUaDBg2MCxcuuNffddddhsViMTp37uxRv0WLFkbVqlU91iUmJmY4TnR0tBEVFeWxrn79+h7HTjN27FgjKCjI2LNnj8f65557zrBarcahQ4cMwzCMpUuXGpKMCRMmuMukpKQYrVq1MiQZM2fOzLDvSx0/ftzw9fU1pk2b5l7XsmVLo3v37pmWz+5cGoZhVK1aNcuf27hx47KNJSkpyXA6nR7rDhw4YPj7+xtjxoxxr0v7GdWtW9dITk52r3/zzTcNScb27dsNwzCMCxcuGGFhYUajRo08yk2dOtWQlOm5T+9///ufIcn4+OOPPda///777s9Imu+//9644447jOnTpxufffaZMW7cOCM0NNSw2WzGL7/84i6XkpJi9OzZ031OqlSpYvz222+GYRhGx44djYcffjjbmDJz++23G5KM06dPe1W+UaNGRlhYmHHq1Cn3um3bthk+Pj7GPffc41738ssvG5KM++67L8PxQkNDPda1adPGqF+/foZjSTJefvll93KPHj0Mm81m/PXXX+51O3fuNKxWq5H+q8LBgwcNq9VqvPrqqx772759u+Hr6+uxvk2bNoYk46OPPnKvS05ONsLDw4077rjDvW7GjBmGJGPSpEkZ4nS5XIZhGMb69esNScbcuXM9tn/99deZrr9U2jn7+++/cx3fTz/9lOl163K5jFq1ahnR0dHuOA0j9fdM9erVjQ4dOmQ4/l133ZUhthYtWhiNGzf2WLd58+YMsWX2+2vcuHGGxWLx+LmlHSsnae//jTfe8Hj/aZ/DtN+zK1asMCQZy5cv96h/zTXX5HitppfZeUz7e3LTTTd5/K04e/asUaZMGePBBx/02EdsbKwREhLisT6z8zJv3jxDkrFu3Tr3uokTJxqSjAMHDmQon/b3K/22Dz74wJBkhIeHG/Hx8e71I0aM8NhPXj4H3ly7QUFBxoABAzLEmpkDBw4YkoyJEydmWebjjz82fHx8jPXr13usT/u9+f333xuGYRi7d+82JBlvv/22R7lHH33UCA4Odp/v3FyTl/49B3B5aEIPIE/effddrVq1yuPf8uXL3dvLlCmjhIQErVq1Kl+Pe88993jc1W/evLkMw9B9993nUa558+Y6fPiwR5Pp9E9s01oQtGnTRvv371dcXFyOx160aJFatWqlsmXL6uTJk+5/7du3l9Pp1Lp16ySljhzv6+urRx55xF3XarXq8ccf9/p9zp8/Xz4+Ph5Nr++66y4tX748z80TmzdvnuFnltZSIjv+/v7y8Un9c+F0OnXq1CkFBwerTp06+uWXXzKUv/feez3GMEh7arl//35JqX1hT5w4oYcfftijXFqXg5x06dJFVatW1VNPPaXFixfrr7/+0sKFC/XCCy/I19fXo0lxy5Yt9emnn+q+++7Tbbfdpueee879VG7EiBHuclarVf/73/+0d+9ebdmyRXv27FHDhg31+eefa/PmzRo7dqxiYmLUrVs3Va5cWd26ddPR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1cGDB1W+fHl169ZNN954o5577jkdPHhQ9erV0+LFi73qj7lp0ybt27dPgwcPznR7RESErr/+es2dO1fPPvtsrs5BTEyM5syZk2F9cHCwevTokWW9rl27asyYMbr33nvVsmVLbd++XXPnzvWqv3pm/Pz89Morr2jQoEG6+eab1adPHx04cEAzZ870ep+9e/dW5cqVVa9ePcXHx2vGjBnav3+/vvrqK48Bp/r06aOAgAC1bNlSYWFh2rlzp6ZOnarAwED95z//yXTfmzdv1oIFCzz6QVerVk1NmjTRwIEDdf/99+vDDz9U8+bN3U/Os/LRRx+pY8eO6tmzp7p166ZbbrlFQUFB2rt3r+bPn69jx46554KfOHGiOnfurBYtWuj+++93TyMXEhKSYc72/DZ69Gh9/fXXatWqlR599FGlpKTo7bffVv369T3OQ40aNfTKK69oxIgROnjwoHr06KHSpUvrwIEDWrJkiR566CH3TQlv3XPPPfroo480fPhwbd68Wa1atVJCQoJWr16tRx99VN27d1ebNm00aNAgjRs3Tlu3blXHjh3l5+envXv3atGiRXrzzTc95qfOTzVq1FCZMmX0/vvvq3Tp0goKClLz5s1VvXp1ffjhh+rcubPq16+ve++9VxEREYqJidGaNWtkt9v1xRdfeHWMsLAwtWvXTpMmTdLZs2czJEtXX321atSooaeeekoxMTGy2+363//+d9nzbVeuXFnjx4/XwYMHVbt2bS1YsEBbt27V1KlTM7SGuPvuu/XMM89oyZIleuSRRwp0ijC73a733ntP/fv31/XXX6++ffuqQoUKOnTokL766ivdeOONeuedd2S329W6dWtNmDBBDodDERERWrlypQ4cOJBhn2k3JF544QX17dtXfn5+6tat22W3bPHx8cm3z8Gl8a5evVqTJk1S5cqVVb16dfcAeln55ptvlJSUlGF9jx491L9/fy1cuFAPP/yw1qxZoxtvvFFOp1O7du3SwoULtWLFCo9xbXr37q2nnnpKTz31lMqVK5ehdUFRXpNAiVe4g94DMLvsppFTuimCPv30U6Njx45GWFiYUapUKeOqq64yBg0aZBw7dsxjf9OmTTOioqLc01WlTYOW1TRyixYtyjSen376yWN9ZtNGff7558Y111xj2Gw2o1q1asb48ePdU1ilnz4oNjbWuPXWW43SpUtnmNbs7NmzxogRI4yaNWsapUqVMsqXL2+0bNnSeP311z2mtzt16pTRv39/w263GyEhIUb//v2NX3/9Ncdp5B5//HFDkvHnn39mWWbUqFGGJGPbtm3udZczjdyl0+1dKikpyXjyySeNSpUqGQEBAcaNN95o/PDDD17/jNKmOLr0ff/3v/81qlevbvj7+xtNmjQx1q1b5/V0Q+PHjzeuvvpqw2azGWXLljVuu+0249dff81Q7s033zSaNWtmlCtXzvD19TUqVapk9OvXz9i7d2+m+3W5XEbz5s2N4cOHZ9i2b98+o3Xr1kZwcLDRunXrbH9G6SUmJhqvv/660bRpUyM4ONgoVaqUUatWLePxxx839u3b51F29erVxo033mgEBAQYdrvd6Natm7Fz506PMpl9tg3j4rWQ/rPs7TRyhmEY3333ndG4cWOjVKlSRlRUlPH+++9nOSXZ//73P+Omm24ygoKCjKCgIOPqq682HnvsMWP37t05HnvAgAGZTvH4wgsvGNWrVzf8/PyM8PBw484778xwjqdOnWo0btzYCAgIMEqXLm00bNjQeOaZZ4yjR49mOE56WU0j5218n332mVGvXj3D19c3w2f5119/NXr27GmEhoYa/v7+RtWqVY3evXsb33zzTbbHv9S0adMMSUbp0qWN8+fPZ9i+c+dOo3379kZwcLBRvnx548EHHzS2bduWIZ7cTCNXv359Y8uWLUaLFi0Mm81mVK1a1XjnnXeyrNOlSxdDkrFx48Yc93+p7KaRu/T3d5o1a9YY0dHRRkhIiGGz2YwaNWoYAwcONLZs2eIuc+TIEeP22283ypQpY4SEhBi9evUyjh49mulnfOzYsUZERITh4+Pjca1IMh577DGPsllNzZbV77nL+Rxkdu3u2rXLaN26tREQEGBIynZKubRYs/qXNuXmhQsXjPHjxxv169c3/P39jbJlyxqNGzc2Ro8ebcTFxWXY74033mhIMh544IEsj+3NNck0ckD+shhGAY6YAQAAgGLh9ttv1/bt27Vv376iDgUASiz6wAMAACBbx44d01dffaX+/fsXdSgAUKLRBx4AAACZOnDggL7//nt9+OGH8vPz06BBg4o6JAAo0XgCDwAAgEx999136t+/vw4cOKDZs2dnO/MCAKDg0QceAAAAAAAT4Ak8AAAAAAAmQAIPAAAAAIAJMIjdJVwul44e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Z9hmsVgUEhKSx3eZBwY8xMXFGZKMuLi4og7FNC5cuGAsXbrUuHDhQrblzl1IMnxmPGn4zHjSOHchqZCiAwqHt9cBUJxxHaCky89r4Pz588bOnTuN8+fP56n+mr1/G5YnP8/x35q9f192rJcaMGCAYbVajaCgIMPf39+QZPj4+BiffvpptvVuvfVW48knn3Qvt2nTxrjppps8yjRt2tR49tlnDcMwjBUrVhi+vr5GTEyMe/vy5csNScaSJUsMwzCMqVOnGmXLljXOnTvnLvPVV18ZPj4+RmxsrDveqlWrGk6n012mTp06RqtWrdzLKSkpRlBQkDFv3jz3OkmGzWYzgoKC3P/Sjlu5cmXj1VdfzRD7o48+ahiGYRw4cMCQZEyZMsWjTI0aNYxPPvnEY93YsWONFi1aGIZhGI8//rhx8803Gy6XK9NzmP69Z2fPnj2Gn5+f8fffqT//JUuWGNWrV8+w35kzZxohISEZ6qfFHxAQ4PH+g4KCDKfTaZw+fdrjfKapV6+eu1xgYKAhyaNup06d3GVHjBhhhIeHG1u2bDFcLpfx008/GRUrVjQkGUePHjUMwzA2btxozJ492/j111+NtWvXGl27djXsdrtx+PBh937ee+89o3bt2kbt2rWN9957zzAMw7jllluMJUuWGIsWLTLq169vNGrUyPjuu++yPF9169Y1brvtthzP68svv2xce+21WW7P7rr2Ng+lDzwAAABQzBw7m5yv5XKrXbt2eu+995SQkKDJkyfL19dXd9xxh3u70+nUa6+9poULFyomJkYXLlxQcnKyAgMDPfZzzTXXeCxXqlRJJ06ckCT98ccfqlKliipXruze3qJFC4/yf/zxh6699loFBQW51914441yuVzavXu3u7l1/fr15eNzsXFyxYoV1aBBA/ey1WpVaGio+9hpJk+erPbt23vEFx8fr6NHj+rGG2/0KHvjjTdq27ZtHuuaNGnifp2QkKA///xT999/vx588EH3+pSUFPcT3oEDB6pDhw6qU6eOOnXq5O7TnVszZsxQdHS0ypcvL0nq0qWL7r//fn377be65ZZbvN7PggULVLduXa/LL1u2zP30PCYmRm3bttXWrVvd2wMCAtyvR44cqdjYWN1www0yDEMVK1bUgAEDNGHCBPfPqkWLFh4/85YtW6pu3br64IMPNHbsWEnSww8/rIcffthdZvbs2SpdurRatGihOnXq6KefftKRI0fUt29fHThwQP7+/hniNrLop18USOABAACAYqZS6YxJyOWUy62goCDVrFlTUmqyeO2112r69Om6//77JaX2P37zzTc1ZcoUNWzYUEFBQRo6dKguXLjgsZ9L+1NbLBa5XK58jzez43hz7PDwcPf7TBMfH+/1cdPfWEjrlz9t2jQ1b97co5zVapUkXX/99Tpw4ICWL1+u1atXq3fv3mrfvr0+/fRTr4/pdDo1e/ZsxcbGegze5nQ6NWPGjFwl8FWqVMnw/rP7+VStWtX9Ou3Yl9ZPExAQoBkzZuiDDz7Q8ePHValSJU2dOlWlS5dWhQoVMq3j5+en6667Tvv27ct0+8mTJzV69GitW7dOmzZtUu3atVWrVi3VqlVLDodDe/bsUcOGDTPUq127trvvfFGjDzwAAABQzLSKClVkiE0ZZ3xPZZFUpYxNraJCCzwWHx8fPf/883rxxRfdo5N///336t69u/r166drr71WUVFR2rNnT672W7duXR0+fNhj1PRLpzCrW7eutm3bpoSEBPe677//Xj4+PqpTp85lvKus2e12Va5cWd9//73H+u+//1716tXLsl7FihVVuXJl7d+/XzVr1vT4V716dY/99+nTR9OmTdOCBQv0v//9T//884+k1ATW6XRmG9+yZct09uxZ/frrr9q6dav737x587R48WKdOXMm72++APj5+SkyMlJWq1Xz589X165dPVpLpOd0OrV9+3ZVqpT5DAvDhg3TsGHDFBkZKafT6dGXPiUlJctzd/fdd2vPnj367LPPMmwzDENxcXF5eGd5QwIPAAAAFDNWH4um9EhtAn5pEp+2PLl7A1l9skrx81evXr1ktVr17rvvSpJq1aqlVatWaePGjfrjjz80aNAgHT9+PFf7bN++vWrXrq0BAwZo27ZtWr9+vV544QWPMv/3f/8nm82mAQMGaMeOHVqzZo0ef/xx9e/f32O08vz29NNPa/z48VqwYIF2796t5557Tlu3btWQIUOyrTd69GiNGzdOb731lvbs2aPt27dr5syZmjRpkiRp0qRJmjdvnnbt2qU9e/Zo0aJFCg8PV5kyZSSljkT/zTffKDY2VqdPn870GNOnT9ett96qa6+9Vg0aNHD/6927t8qUKeMeDd8bp06dUmxsrMe/pKSkLMv//fff7nI2m03Hjh3zqJt2I0KS9uzZozlz5mjv3r3avHmz+vbtqx07dui1115zlxkzZoxWrlyp/fv365dfflG/fv30119/6YEHHshw7FWrVmnPnj167LHHJElNmzbVrl27tHz5ck2dOlVWqzXLmzq9e/dWnz59dNddd+m1117Tli1b9Ndff+nLL79U+/bttWbNGq/P2eWiCT0AAABQDPVsWEmLBjTRkCU7PKaSiyxj0+TuBTsP/KV8fX01ePBgTZgwQY888ohefPFF7d+/X9HR0QoMDNRDDz2kHj165OpJpo+Pj5YsWaL7779fzZo1U7Vq1fTWW295zMseGBioFStWaMiQIWratKkCAwN1xx13uBPigvLEE08oLi5OTz75pE6cOKF69erp888/V61atbKt98ADDygwMFATJ07U008/raCgIDVs2FBDhw6VJJUuXVoTJkzQ3r17ZbVa1bRpUy1btsz9RPqNN97Q8OHDNW3aNEVEROjgwYMe+z9+/Li++uorffLJJxmO7ePjo9tvv13Tp093J7k5Sd//P83cuXPVpUuXTMs3bdpUf/31V5b7a9OmjdauXSsp9Wn6G2+8od27d8vPz0/t2rXTxo0bPabHO336tB588EHFxsaqbNmyaty4sTZu3JihpcP58+c1ePBgLViwwH2uIiMj9fbbb+vee++Vv7+/Zs+e7dEHPz2LxaJPPvlEU6dO1YwZM/Tqq6/K19dXtWrV0j333KPo6OjsTlO+shhXUo/8K0B8fLxCQkIUFxcnu91e1OGYgsPh0LJly9SlS5ds531McCTLPif1rmh8v1cV5Fcwfa6AouDtdQAUZ1wHKOny8xpISkrSgQMHVL169QxTaWVn0nd/avK6/R7rXC6Xjp1N7VseGugnf18fWSyeT96HtY7S8DY1LitmQEr9vMXHx8tut2fZ1L2kyu669jYP5Qk8AAAAUEzEJ6UoJi7rJsynEh2Zro9PSimokADkIxJ4AAAAoJiw23wVEeL9E/v09QBc+bhSAQAAgGJieJsaNIUHijE6JQAAAAAAYAIk8AAAAAAAmAAJPAAAAAAAJkACDwAAAACACTCIHQAAAFBMxP0yRXG/vJnreiHXD1HI9UPzPyAA+YoEHgAAACgmXMnxcp6LyVM9AFc+EngAAACgmPDxt8saHOGxznC55Eo8lrrdFipZ/WWxWDLUKywWi0VLlixRjx49Cu2YQHFBH3gAAACgmAi5fqiueuCA+19o20keybor6ZQsFotC207yKJefzecHDhyYbXJ+7Ngxde7cOd+OV1AGDRokq9WqRYsWuddZLJZs/40aNUoHDx7McvuPP/6Yb/G9++67qlu3rgICAlSnTh199NFHHttnzZqV4fg2m82jzOuvv66wsDCFhYXpjTfe8Ni2adMmNW7cWCkpKTnGYhiGpk6dqubNm8tut6tq1apq1qyZpkyZosTEREnSqFGj1KhRo8t70+AJPAAAAFAcJexbohNf9pVkeKx3njuqE1/2VVjX+QqqeXuhxxUeHl7ox7yUYRhyOp3y9c08HUpMTNT8+fP1zDPPaMaMGerVq5ek1JsPaRYsWKCXXnpJu3fvdq8LDg7WyZMnJUmrV69W/fr1PfYbGhrqVXwHDx5U9erVZRhGptvfe+89jRgxQtOmTVPTpk21efNmPfjggypbtqy6devmLme32z3iS38z57ffftNLL72kL7/8UoZhqGvXrurYsaMaNmyolJQUPfzww5o6dWqW5yi9/v37a/HixXrxxRf11ltvKSAgQH/++afeeustVatWjdYW+Ygn8AAAAEAxY7icOrV2uC5N3v/dKkk6tfZJGS5nocYlpSaRS5culST30+rFixerXbt2CgwM1LXXXqsffvjBo86GDRvUqlUrBQQEqEqVKnriiSeUkJDg3v7xxx+rSZMmKl26tMLDw3X33XfrxIkT7u1r166VxWLR8uXL1bhxY/n7+2vDhg1Zxrho0SLVq1dPzz33nNatW6fDhw9LSr35kPYvJCREFovFY11wcLB7H6GhoR7bwsPD5efnlx+nUB9//LEGDRqkPn36KCoqSn379tVDDz2k8ePHe5S7NL6KFSu6t+3atUvXXHONbr75Zt1yyy265pprtGvXLknSxIkT1bp1azVt2jTHWBYuXKi5c+dq3rx5ev7559W0aVNdddVV6t69u7799lu1a9cuX94zUpHAAwAAAMVMUsyGHAazM+Q8d0RJMVknsYXphRde0FNPPaWtW7eqdu3auuuuu9xNt//880916tRJd9xxh3777TctWLBAGzZs0ODBg931HQ6Hxo4dq23btmnp0qU6ePCgBg4cmOE4zz33nP7zn//ojz/+0DXXXJNlPNOnT1e/fv0UEhKizp07a9asWfn9li9LcnJyhubwAQEB2rx5sxwOh3vduXPnVLVqVVWpUkXdu3fX77//7t7WsGFD7dmzR4cOHdJff/2lPXv2qEGDBvrzzz81c+ZMvfLKK17FMnfuXNWpU0fdu3fPsM1isSgkJCSP7xKZIYEHAAAAihlnwrGcC+WiXEF76qmndOutt6p27doaPXq0/vrrL+3bt0+SNG7cOP3f//2fhg4dqlq1aqlly5Z666239NFHHykpKUmSdN9996lz586KiorSDTfcoLfeekvLly/XuXPnPI4zZswYdejQQTVq1FC5cuUyjWXv3r368ccf1adPH0lSv379NHPmzCybs2elZcuWCg4O9viXnfr167vLpTW9T183/bgB0dHR+vDDD/Xzzz/LMAxt2bJFH374oRwOh7sJf506dTRjxgx99tlnmjNnjlwul1q2bKkjR45IkurWravXXntNHTp0UMeOHTVu3DjVrVtXgwYN0oQJE7RixQo1aNBA1113ndatW5dl3Hv37lWdOnVydW6Qd/SBBwAAAIoZa1ClfC1X0NI/Da9UKTWmEydO6Oqrr9a2bdv022+/ae7cue4yhmHI5XLpwIEDqlu3rn7++WeNGjVK27Zt0+nTp+VyuSRJhw4dUr169dz1mjRpkmMsM2bMUHR0tMqXLy9J6tKli+6//359++23uuWWW7x+TwsWLFDdunW9Lr9s2TL30/OYmBi1bdtWW7dudW8PCAhwvx45cqRiY2N1ww03yDAMVaxYUQMGDNCECRPk45P6jLZFixZq0aKFu07Lli1Vt25dffDBBxo7dqwk6eGHH9bDDz/sLjN79myVLl1aLVq0UJ06dfTTTz/pyJEj6tu3rw4cOCB/f/8Mcef2xgYuDwk8AAAAUMzYIm6SNThCznNHlXk/eIuswRGyRdxU2KFlKn3f8LSB1tKS8HPnzmnQoEF64oknMtS76qqrlJCQoOjoaEVHR2vu3LmqUKGCDh06pOjoaF24cMGjfFBQULZxOJ1OzZ49W7GxsR6DtzmdTs2YMSNXCXyVKlVUs2ZNr8tXrVrV/Trt2FnVDwgI0IwZM/TBBx/o+PHjqlSpkqZOnarSpUurQoUKmdbx8/PTdddd527ZcKmTJ09q9OjRWrdunTZt2qTatWurVq1aqlWrlhwOh/bs2aOGDRtmqFe7dm1333kUPBJ4AAAAoJix+FgV2nbSv6PQW+SZxKcmyKFt35DFx1oU4eXK9ddfr507d2aZzG7fvl2nTp3Sf/7zH1WpUkWStGXLljwda9myZTp79qx+/fVXWa0Xz82OHTt077336syZMypTpkye9l0Q/Pz8FBkZKUmaP3++unbt6n4Cfymn06nt27erS5cumW4fNmyYhg0bpsjISP30008efelTUlLkdGY+4OHdd9+tvn376rPPPsvQD94wDMXHx9MPPh+RwAMAAADFUFDN2xXWdb5OrRkmZ8JR93prcIRC275RoFPIxcXFeTT/llJHZU9LsHPj2Wef1Q033KDBgwfrgQceUFBQkHbu3KlVq1bpnXfe0VVXXaVSpUrp7bff1sMPP6wdO3a4m4jn1vTp03Xrrbfq2muv9Vhfr149DRs2THPnztVjjz3m1b5OnTql2NhYj3VlypTJMPhcmr///tudJNtsNh07dsyjfqlSpdz99vfs2aPNmzerefPmOn36tCZNmqQdO3Zo9uzZ7vJjxozRDTfcoJo1a+rMmTOaOHGi/vrrLz3wwAMZjr1q1Srt2bPHXb9p06batWuXli9frsOHD8tqtWbZz713795asmSJ7rrrLr344otq3769bDabDh48qDfffFOPP/4408jlIxJ4AAAAoJgKqnm7bFVu0aH3UvtzV+zxhQKual/gT97Xrl2r6667zmPd/fffrw8//DDX+7rmmmv03Xff6YUXXlCrVq1kGIZq1KjhHmSuQoUKmjVrlp5//nm99dZbuv766/X666/rtttuy9Vxjh8/rq+++kqffPJJhm0+Pj66/fbbNX36dK8T+Pbt22dYN2/ePPXt2zfT8k2bNtVff/2V5f7atGmjtWvXSkp9mv7GG29o9+7d8vPzU7t27bRx40ZVq1bNXf706dN68MEHFRsbq7Jly6px48bauHGjx5gAknT+/HkNHjxYCxYscD+9j4yM1Ntvv617771X/v7+mj17tkcf/PQsFos++eQTTZ06VTNmzNCrr74qq9Wq2rVr65577lF0dHR2pwm5ZDEYdcBDWhOPuLg42e32og7HFBwOh5YtW6YuXbpkO7dlgiNZ9jkvSJLi+72qIL+Mg2AAZuXtdQAUZ1wHKOny8xpISkrSgQMHVL169Syf2GYm7pcpivvlTc+VhuF+Am8Nqiz928c8vZDrhyjk+qGXEzIgKXXsgvj4eNnt9iyb85dU2V3X3uahPIEHAAAAiglXcny287+nb0p/aT0AVz4SeAAAAKCY8PG3yxockad6AK58JPAAAABAMRFy/VCawgPFGJ0SAAAAAAAwARJ4AAAAAABMgAQeAAAAAAAToA88AAAAUExM3vGdJv++Ltf1htVvrWEN2hRARADyEwk8AAAAUEzEO5IUkxiXp3oArnwk8AAAAEAxYfezKSIwxGOdIUNHE1Pnea8caJdFlkzrAbjykcADAAAAxcSwBm0yNIWPTz6vsp+MlCRNa9lLHSLqyOpTdENhWSwWLVmyRD169PCq/Nq1a9WuXTudPn1aZcqUKdDYgCsdg9gBAAAAxdTig9tVf+lE9/Ktq6cratGrWnxwe4Edc+DAgdkm58eOHVPnzp3z9ZijRo1So0aNMt3266+/qk+fPqpUqZL8/f1VtWpVde3aVV988YUMw5AkHTx4UBaLxf2vVKlSqlmzpl555RV3mbTjWCwWderUKcNxJk6cKIvForZt23oVc3R0tKxWq3766adMY8js36xZs7R27dost8fGxubuxGXB4XBozJgxqlGjhmw2m6699lp9/fXXHmXSzkX6f1dffbVHmeHDh6tcuXKqUqWK5s6d67Ft0aJF6tatm1fxXLhwQRMmTNC1116rwMBAlS9fXjfeeKNmzpwph8MhKefPXXHBE3gAAACgGFp8cLt6r5kt45L1MYlx6r1mtha2G6Ce1RoWelzh4eGFdqzPPvtMvXv3Vvv27TV79mzVrFlTycnJ2rhxo1588UW1atXK46n+6tWrVb9+fSUnJ2vDhg164IEHVKlSJd1///3uMpUqVdKaNWt05MgRRUZGutfPmDFDV111lVdxHTp0SBs3btTgwYM1Y8YMNW3aVFWqVNGxY8fcZV5//XV9/fXXWr16tXtdSEiINm3aJEnavXu37Ha7x37DwsK8Ov7atWs1cOBAHTx4MNPtL774oubMmaNp06bp6quv1ooVK3T77bdr48aNuu6669zl6tev7xGfr+/F9PKLL77QJ598opUrV2rv3r267777FB0drfLlyysuLk4vvPCCR92sXLhwQdHR0dq2bZvGjh2rG2+8UXa7XT/++KNef/11XXfddVnevCmOeAIPAAAAFDNOl0vDNi3NkLxLcq8bvvkzOV2uwgxLUmoT+qVLl7qXN27cqEaNGslms6lJkyZaunSpLBaLtm7d6lHv559/VpMmTRQYGKiWLVtq9+7dkqRZs2Zp9OjR2rZtm8eT6v9v797jcrz/P4C/bpW6U3c5lLswCSUpc2yKnFoqaw4jKkPahplzw4bYF9/CN7F998WXFJtTI2Mzh2aLaPlWqmFOS75OpRU6iuq+fn/4dX27dHAj3crr+XhcD/f9uT7Xdb2v267HvK/PqbCwEP7+/hg6dCgOHjwIV1dXWFpawsbGBv7+/khNTYWRkXS+gObNm0OpVKJt27bw9fWFk5MTzpw5I6ljamoKV1dXbN26VXIP2dnZGDp0qFq/QXh4ON555x1MnToVO3fuxIMHD6ClpQWlUiluBgYG0NbWlpTJ5XJJHBX3KZVKNKqloRHffPMNPv/8c3h4eMDS0hJTp06Fh4cHQkJCJPWejK9FixbivosXL2LAgAHo2bMnvL29oVAokJ6eDgCYN28epk6dqtYLj7Vr1+LEiRM4duwYpk2bhjfffBOWlpbw8fHB6dOn0bFjx1q55/qCCTwRERERUQMTe+cqbtYwG70A4EbhfcTeuVp3QVUhLy8Pnp6esLOzw5kzZ7Bs2TLMnz+/yroLFy5ESEgIEhMToa2tjUmTJgEAxowZg7lz58LW1hYZGRnIyMjAmDFjcPToUeTk5GDevHnVXl8mqzyhX7nExEQkJSXBwcGh0r5JkyYhIiJC/L5lyxb4+vqicePGT71nQRAQHh6OcePGoVOnTujQoQP27Nnz1OPq0sOHD6GnJ53YUC6X4+TJk5KyK1euwNzcHJaWlvD19cX169fFffb29khMTMS9e/eQlJSEBw8eoEOHDjh58iTOnDmDGTNmqBXL9u3b4eLiImn5L6ejo4MmTZo8xx3WX0zgiYiIiIgamIwH+bVa72XZsWMHZDIZNm3ahM6dO8Pd3R2ffvpplXVXrFiB/v37o3PnzliwYAHi4uJQXFwMuVxeqbVaLpfj8uXLAABra2vxHAkJCTAwMBC3H3/8UXINR0dHGBgYoHHjxujVqxe8vLwwfvz4SrG88847yMvLw4kTJ1BYWIjIyEjxhcLT/PzzzygqKsKQIUMAAOPGjUNYWJhax1bUunVryb3Y2trWWL9iXXd3d1y/fl1SNmXKFLHukCFDsGbNGly5cgUqlQrR0dGIioqSdPF3cHBAREQEDh8+jPXr1yM9PR39+vVDfn6+eI5x48ahV69emDhxIrZu3YomTZpg6tSp2LBhA9avXw9ra2s4OTnh/Pnz1cZ95cqVSmPrX2ccA09ERERE1MCYyQ1rtd7LcunSJdjb20tae3v37l1lXXt7e/GzmZkZACArK0vtcefl5yjvmt+xY0eUlpZK9u/evRs2NjYoKSnBuXPnMH36dDRt2hTBwcGSejo6Ohg3bhzCw8Nx9epVWFlZSeKryZYtWzBmzBhxvLi3tzc+/fRTpKWloX379mrfS2xsLAwN//f3p6OjU2P9ikMSTp8+jfnz5yMmJkYsqzieft26dfjwww/RqVMnyGQytG/fHn5+ftiyZYtYp+JEhPb29nBwcEDbtm0RGRmJ0aNHA3g80d3SpUvFel988QVcXFygo6OD5cuX4+zZs/jxxx8xfvx4JCUlVRl3xUkEiQk8EREREVGD06+lJVrrG+FWUW6V4+BlAFo3MUa/lpZ1Hdpzq5iglnd9V9Uwhr98bPSlS5fw1ltvAQB0dXXRoUOHao9p06aNuN/GxgZpaWlYvHgxli5dWqlL+aRJk+Dg4IBz586p3fp+9+5d7Nu3DyUlJVi/fr1YXlZWhi1btmDFihVqnQcA2rVr90zL6lW875s3b0JbW7va38LExATff/89iouLkZOTA3NzcyxYsACWltX/92JsbAwrKyukpaVVuf/ixYv49ttvkZycjC1btsDZ2RkmJibw8vLCpEmTkJ+fL3khUc7KygoXL15U+z4bOnahJyIiIiJqYLQaNUKow3AAj5P1isq/r+k9TKPrwQOPu7efPXsWDx8+FMvKl1V7Fo0bN0ZZWZmkzNXVFc2aNcPKlSufOz4tLS2Ulpbi0aNHlfbZ2trC1tYW586dg4+Pj1rn2759O1q3bo3U1FSkpKSIW0hICCIiIirdg6bp6emhVatWKC0txd69ezFs2LBq6xYUFCAtLU3sHVGRIAiYPHky1qxZAwMDA5SVlYnLv5X/Wd29+/j44Oeff0ZycnKlfSUlJSgsLHyeW6u3mMATERERETVAIy3sEDlwAsz0pUuNtW5i/NKXkMvNzZUkqCkpKbhx40alej4+PlCpVPjoo49w4cIFHDlyBP/4xz8A1DzB3JMsLCyQnp6OlJQUZGdn4+HDhzAwMMDmzZtx8OBBDB06FEeOHMHVq1fx+++/Y9WqVQAeJ+gV5eTkIDMzEzdv3sShQ4ewbt06DBw4sNJybeV++eUXZGRkqN0SHhYWhlGjRqFLly6Szd/fH9nZ2ZXWWq9JVlYWMjMzJVt5MlyVivU6deqE+Ph4SVlu7v8mPTx9+jSioqJw9epVxMbGws3NDSqVSjIhYEBAAI4fP45r164hLi4OI0aMgJaWFsaOHVvp2ps3b4aJiYm47ruTkxN++eUXxMfHIzQ0FJ07d672N5w1axacnJwwePBgfP3110hNTcXVq1cRGRmJt956C1euXFH7N2sI2IWeiIiIiKiBGmlhBxezDmi6YzEA4KCLP95uZf3SW95jYmIqzRru7++PzZs3S8oUCgV++OEHTJ06FW+++Sbs7OwQGBgIHx+fSl3Wa/Lee+8hKioKAwcOxP379xEeHo6JEyeKa5evXLkS48ePx927d2FkZISePXti165deOeddyTncXFxAfA4sTczM4OHh0eN3dqfZQb0pKQkpKamYtOmTZX2GRkZYfDgwQgLC1N7KbqKk/OV++2338ThAk+qqmW8ogkTJogz6xcXF2PRokW4evUqDAwM4OHhgW+++UaSZN+8eRPe3t7IycmBiYkJ+vbti/j4eJiYmCAvL0+sd+fOHaxYsQJxcXFiWe/evTF37lwMHToUpqamkiX5nqSrq4vo6GiEhoZi48aNCAgIgL6+PmxsbDBjxgx06dKlxvtqaGQCZwWQyMvLg5GREXJzc6t900ZSJSUl+Omnn+Dh4VHj5BmFJQ+h+HYhACBv3Ao00dGtqxCJXjp1nwOihozPAb3uavMZKC4uRnp6Otq1a/dMiWzoueMIPX9CUiZAwO2ixwmVub4Cskqd6oHZts6Y3aX/C8VcW7Zv3w4/Pz/k5uZK1j2n+kGlUiEvLw8KhaLW1qVvKGp6rtXNQ9kCT0RERETUQOSVFONWDeu/lyfyVR2nKdu2bYOlpSVatWqF1NRUzJ8/H15eXkzeiarABJ6IiIiIqIFQ6Oihlb7Rcx2nKZmZmQgMDERmZibMzMwwevToZ5qNneh1wgSeiIiIiKiBmN2l/yvTFV5d8+bNk0yORkTV46AEIiIiIiIionqACTwRERERERFRPcAEnoiIiIiIiKge4Bh4IiIiIqIGIufwGuQcXvPMxzV3m4PmbnNeQkREVJuYwBMRERERNRBlD/JQeu/Wcx1HRK8+JvBERERERA2EllwB7aatpIWCgNL7twEA2sbmgExW5XFE9OpjAk8vRei54wg9f0JSJkAQP3eKWgkZKv/PY7atc71b+oSIiIjoVVFVV/iyB3m4NOXx2vBm/pth0MUVskZamgjvqSwsLDBr1izMmjVL06EQvZI4iR29FHklxbhVlCvZbhf9r2vW7aK8SvtvFeUir6RYg1ETERERNSx5iVFI+6yz+P1GiAeuzLFAXmLUS7meTCarcVu6dOkLX8PCwkI8X5MmTdC9e3d899134v6lS5dWee2ff/5Zsn/KlCmS86akpEAmk+HatWtPjWHnzp3Q0tLCtGnTxLIBAwbUeO8DBgyoFH/FLTg4+IV/m3LHjh2Do6MjDA0NoVQqMX/+fJSWlor7r127VmUM8fHxYp3o6GhYWVlBoVDg/fffx6NHj8R9ubm5sLKywn//+1+14vn111/h4eGB5s2bQ19fH507d8bcuXNx69bj4R4xMTGQyWS4f/9+7fwADRgTeHopFDp6aKVv9MybQkdP06ETERERNQh5iVG4+dWoSmPiS+/dws2vRr2UJD4jI0Pc1q5dC4VCISkLCAiolev87W9/Q0ZGBpKTk9GrVy+MGTMGcXFx4n5bW1vJdTMyMuDs7Czu19PTQ1hYGK5cufJc1w8LC8O8efOwc+dOFBc/boCKiooSr/Wf//wHAPDzzz+LZVFR//u9y+OvuE2fPl3t61tYWCAmJqbKfampqfDw8ICbmxuSk5Oxe/duHDhwAAsWLKhUt2J8GRkZ6NGjBwBApVLBx8cHU6ZMwW+//YbExET8+9//Fo9bsGABpkyZgrZt2z411o0bN8LFxQVKpRJ79+7FH3/8gQ0bNiA3NxchISFq3zM9xi709FLM7tKfXeGJiIiINERQlSHz25lAhSGMFfYCkCFz+ywYdh9Wq93plUql+NnIyAgymUwsS0tLw+TJkxEfH4/CwkLY2NggKCgILi4uknPk5+fD29sbBw4cgLGxMT7//HNJSzcAsWVZqVTi66+/xrfffosffvgBjo6OAABtbW1JLE+ytraGqakpFi5ciMjIyGe6x/T0dMTFxWHv3r349ddfERUVBR8fHzRr1kysU57UN2/evMo4yuN/GXbv3g17e3sEBgYCADp06IBVq1bBy8sLS5YsgaGhoVi3uviys7ORnZ2Njz/+GHp6enj33Xdx4cIFAEBcXBwSEhLwz3/+86mx3Lx5EzNmzMCMGTMQGhoqlltYWMDZ2Zkt7s+BLfBERERERA1M0aVYlN67WUMNAaV3b6DoUmydxVRQUAAPDw8cO3YMycnJcHNzg6enJ65fvy6pt3r1anTt2hXJyclYsGABZs6ciejo6GrPq62tDR0dHUkXb3UEBwdj7969SExMfKbjwsPDMXToUBgZGWHcuHEICwt7puNftocPH0JPT9qrVS6Xo7i4GElJSZLyd999F6ampujbty8OHDgglpuYmMDMzAxHjx5FUVERYmNjYW9vj5KSEkydOhUbN26EltbTX/x89913ePToEebNm1flfmNj42e/wdccE3giIiIiogam9H5GrdarDV27dsXkyZPRpUsXdOzYEcuWLUP79u0liSMAODk5YcGCBbCyssL06dMxatQoSettRY8ePUJQUBByc3MxaNAgsfzs2bMwMDAQt969e1c6tnv37vDy8sL8+fPVvgeVSoWIiAiMGzcOADB27FicPHkS6enpap8DAObPny+Jz8DAALGx1b9MmTJliqTu9evX4e7uLikrN2TIEMTFxWHnzp0oKyvDrVu38Le//Q3A4yEOAGBgYICQkBB89913OHjwIPr27Yvhw4eLfxcymQyRkZFYtmwZbG1t0a1bN0yaNAnBwcEYOHAg9PT04OTkBGtr6xpb4q9cuQKFQgEzM7Nn+n2oeuxCT0RERETUwGgbq5cwqVuvNhQUFGDp0qU4ePAgMjIyUFpaigcPHlRqge/Tp0+l72vXrpWUzZ8/H4sWLUJxcTEMDAwQHByMoUOHivutra0lLwZ0dXWrjGn58uWwsbHB0aNHYWpq+tR7iI6ORmFhITw8PAAALVq0wNtvv40tW7Zg2bJlTz2+3KeffoqJEydKylq1alV1ZTweM19x/oABAwZg5cqVcHBwqFTX1dUVq1evxpQpU/D+++9DV1cXixcvRmxsLBo1aiTGPWfO/1Yr6NWrF27fvo3Vq1fj3XffBQD07dsXCQkJYp3Lly9j27ZtSE5OhrOzM2bOnAl3d3d06dIFzs7OsLe3rxSLIAiQVbFsIT0/JvBERERERA2MvnU/aDdt/f8T2FU1Dl4G7WatoW/dr85iCggIQHR0NP7xj3+gQ4cOkMvlGDVq1DN3fQf+lwAbGBigZcuWlZLExo0bo0OHDk89T/v27fHhhx9iwYIFanWFDwsLw927dyGXy8UylUqF33//HV988YWYID9NixYt1IqvnKmpqeQFg7a2Nlq1alXtOebMmYPZs2cjIyMDTZs2xbVr1/DZZ5/B0tKy2ms4ODjUOFRh8uTJCAkJgUqlQnJyMkaPHg19fX30798fx48frzKBt7KyQm5uLjIyMtgKX0vYhZ6IiIiIqIGRNdKCcty68m9P7gUAKH3X1ul68KdOncLEiRMxYsQI2NnZQalUVrlkW8WlzMq/29jYSMrKE2ClUvnCLbyBgYG4fPkydu3aVWO9nJwc7N+/H7t27UJKSoq4JScn4969ezh69OgLxVHbZDIZzM3NIZfLsXPnTrRp0wbdu3evtn5KSkq1SXZYWBiaNWuGd999F2VlZQCAkpIS8c/ysieNGjUKjRs3xqpVq6rcz0nsnh1b4ImIiIiIGiBFz5FoPX0PMr+dIVlKTrtZayh910LRc2SdxtOxY0dERUXB09MTMpkMixcvhkqlqlTv1KlTWLVqFYYPH47o6GhxnPbL0rJlS8yZMwerV6+usd4333yD5s2bw8vLq9JLAw8PD4SFhcHNzU2ta+bn5yMzM1NSpq+vD4VCUWX93NxcPHjwQPxe/pKj4jkqzia/evVquLm5oVGjRoiKikJwcDAiIyPFiee2bt2Kxo0bo1u3bgAeL4G3ZcsWbN68udK1s7KysHz5cpw6dQoA0LRpU9jY2GDt2rVwdXXFsWPHsHDhwirjbtOmDUJDQ/HJJ58gLy8P48ePh4WFBW7evIlt27aJY/FJfWyBJyIiIiJqoBQ9R6J90B/i9zZzf0LHkPQ6T94BYM2aNWjatCkcHR3h6emJIUOGVNkiPHfuXCQmJqJbt25Yvnw51qxZgyFDhrzU2AICAiQTwVVly5YtGDFiRJUt/u+99x4OHDiA7Oxsta4XGBgIMzMzyVbdTO0AMHPmzEr1n9wqOnToEPr164eePXvi4MGD2L9/P4YPHy6ps2zZMvTo0QMODg7Yv38/du/eDT8/vyqvPXfuXJibm4tlERER2LVrF9555x18+umn6NWrV7Wxf/zxxzh69Chu3bqFESNGoFOnTvjggw+gUCgk4/pJPTJBEKoaFPPaysvLg5GREXJzc6t9A0ZSJSUl+Omnn+Dh4QEdHR1Nh0OkEXwOiPgcENXmM1BcXIz09HS0a9eu0pJgNck5vAY5h9dICwUBpfdvAwC0jc2BKhLQ5m5z0NxtTqVyomelUqmQl5cHhUKh9pwAr4uanmt181B2oSciIiIiaiDKHuRJuss/qTyRr+o4Inr1MYEnIiIiImogtOQKaDetfjmymo4jolcfE3giIiIiogaCXeGJGjYOSiAiIiIiIiKqB5jAExERERG9ojjfNFHDURvPMxN4IiIiIqJXTPks9kVFRRqOhIhqS/nz/CKrVHAMPBERERHRK0ZLSwvGxsbIysoCAOjr61e5/jjRq0alUuHRo0coLi7mMnL/TxAEFBUVISsrC8bGxtDS0nruczGBJyIiIiJ6BSmVSgAQk3ii+kAQBDx48AByuZwvnZ5gbGwsPtfPiwk8EREREdErSCaTwczMDKampigpKdF0OERqKSkpwYkTJ+Ds7PxCXcUbGh0dnRdqeS/HBJ6IiIiI6BWmpaVVK//wJ6oLWlpaKC0thZ6eHhP4l4CDEoiIiIiIiIjqASbwRERERERERPUAE3giIiIiIiKieoBj4J8gCAIAIC8vT8OR1B8lJSUoKipCXl4ex7nQa4vPARGfAyI+A0R8Dp5Xef5Zno9Whwn8E/Lz8wEAbdq00XAkRERERERE9DrJz8+HkZFRtftlwtNS/NeMSqXC7du3YWhoyHUL1ZSXl4c2bdrgxo0bUCgUmg6HSCP4HBDxOSDiM0DE5+B5CYKA/Px8mJubo1Gj6ke6swX+CY0aNULr1q01HUa9pFAo+JDSa4/PARGfAyI+A0R8Dp5HTS3v5TiJHREREREREVE9wASeiIiIiIiIqB5gAk8vTFdXF0uWLIGurq6mQyHSGD4HRHwOiPgMEPE5eNk4iR0RERERERFRPcAWeCIiIiIiIqJ6gAk8ERERERERUT3ABJ6IiIiIiIioHmACT0RERERERFQPMIGn53bixAl4enrC3NwcMpkM33//vaZDIqpTQUFB6NWrFwwNDWFqaorhw4fj0qVLmg6LqE6tX78e9vb2UCgUUCgU6NOnDw4dOqTpsIg0Kjg4GDKZDLNmzdJ0KER1ZunSpZDJZJKtU6dOmg6rwWECT8+tsLAQXbt2xddff63pUIg04vjx45g2bRri4+MRHR2NkpISuLq6orCwUNOhEdWZ1q1bIzg4GElJSUhMTMSgQYMwbNgwnD9/XtOhEWlEQkICNm7cCHt7e02HQlTnbG1tkZGRIW4nT57UdEgNjramA6D6y93dHe7u7poOg0hjDh8+LPkeEREBU1NTJCUlwdnZWUNREdUtT09PyfcVK1Zg/fr1iI+Ph62trYaiItKMgoIC+Pr6YtOmTVi+fLmmwyGqc9ra2lAqlZoOo0FjCzwRUS3Jzc0FADRr1kzDkRBpRllZGXbt2oXCwkL06dNH0+EQ1blp06Zh6NChcHFx0XQoRBpx5coVmJubw9LSEr6+vrh+/bqmQ2pw2AJPRFQLVCoVZs2aBScnJ3Tp0kXT4RDVqbNnz6JPnz4oLi6GgYEB9u3bh86dO2s6LKI6tWvXLpw5cwYJCQmaDoVIIxwcHBAREQFra2tkZGTgiy++QL9+/XDu3DkYGhpqOrwGgwk8EVEtmDZtGs6dO8exXvRasra2RkpKCnJzc7Fnzx5MmDABx48fZxJPr40bN25g5syZiI6Ohp6enqbDIdKIikNr7e3t4eDggLZt2yIyMhL+/v4ajKxhYQJPRPSCPvnkE/z44484ceIEWrdurelwiOpc48aN0aFDBwBAjx49kJCQgHXr1mHjxo0ajoyobiQlJSErKwvdu3cXy8rKynDixAn885//xMOHD6GlpaXBCInqnrGxMaysrPDnn39qOpQGhQk8EdFzEgQB06dPx759+xATE4N27dppOiSiV4JKpcLDhw81HQZRnRk8eDDOnj0rKfPz80OnTp0wf/58Ju/0WiooKEBaWhref/99TYfSoDCBp+dWUFAgeaOWnp6OlJQUNGvWDG+88YYGIyOqG9OmTcOOHTuwf/9+GBoaIjMzEwBgZGQEuVyu4eiI6sZnn30Gd3d3vPHGG8jPz8eOHTsQExODI0eOaDo0ojpjaGhYaf6TJk2aoHnz5pwXhV4bAQEB8PT0RNu2bXH79m0sWbIEWlpa8Pb21nRoDQoTeHpuiYmJGDhwoPh9zpw5AIAJEyYgIiJCQ1ER1Z3169cDAAYMGCApDw8Px8SJE+s+ICINyMrKwvjx45GRkQEjIyPY29vjyJEjePvttzUdGhER1aGbN2/C29sbOTk5MDExQd++fREfHw8TExNNh9agyARBEDQdBBERERERERHVjOvAExEREREREdUDTOCJiIiIiIiI6gEm8ERERERERET1ABN4IiIiIiIionqACTwRERERERFRPcAEnoiIiIiIiKgeYAJPREREREREVA8wgSciIiIiIiKqB5jAExERUb02YMAAzJo166n1nJ2dsWPHjpcfkJqys7NhamqKmzdvajoUIiKqJ5jAExERVSCTyWrcli5d+lKuO3HiRAwfPvylnPt5REREwNjYuNbqadqBAwdw584djB07ts6uKQgCAgMDYWZmBrlcDhcXF1y5ckXc36JFC4wfPx5Lliyps5iIiKh+YwJPRERUQUZGhritXbsWCoVCUhYQECDWFQQBpaWlGoyW1PXll1/Cz88PjRrV3T99Vq1ahS+//BIbNmzA6dOn0aRJEwwZMgTFxcViHT8/P2zfvh13796ts7iIiKj+YgJPRERUgVKpFDcjIyPIZDLx+8WLF2FoaIhDhw6hR48e0NXVxcmTJ6FSqRAUFIR27dpBLpeja9eu2LNnj3jOsrIy+Pv7i/utra2xbt06cf/SpUuxdetW7N+/X2zpj4mJwbVr1yCTyRAZGYl+/fpBLpejV69euHz5MhISEtCzZ08YGBjA3d0df/31l+Q+Nm/eDBsbG+jp6aFTp07417/+Je4rP29UVBQGDhwIfX19dO3aFb/99hsAICYmBn5+fsjNzX3hngf379/HBx98ABMTEygUCgwaNAipqakAgMuXL0Mmk+HixYuSY0JDQ9G+fXvx+7lz5+Du7g4DAwO0bNkS77//PrKzs9WO4a+//sIvv/wCT09PsczHxwdjxoyR1CspKUGLFi2wbds2AMCePXtgZ2cHuVyO5s2bw8XFBYWFhWpdUxAErF27FosWLcKwYcNgb2+Pbdu24fbt2/j+++/Fera2tjA3N8e+ffvUvh8iInp9MYEnIiJ6RgsWLEBwcDAuXLgAe3t7BAUFYdu2bdiwYQPOnz+P2bNnY9y4cTh+/DgAQKVSoXXr1vjuu+/wxx9/IDAwEJ9//jkiIyMBAAEBAfDy8oKbm5vY0u/o6Cheb8mSJVi0aBHOnDkDbW1t+Pj4YN68eVi3bh1iY2Px559/IjAwUKy/fft2BAYGYsWKFbhw4QL+/ve/Y/Hixdi6davkPhYuXIiAgACkpKTAysoK3t7eKC0thaOjY6XeBxV7HjyL0aNHIysrC4cOHUJSUhK6d++OwYMH4+7du7CyskLPnj2xfft2yTHbt2+Hj48PgMcvAAYNGoRu3bohMTERhw8fxp07d+Dl5aV2DCdPnoS+vj5sbGzEMl9fX/zwww8oKCgQy44cOYKioiKMGDECGRkZ8Pb2xqRJk3DhwgXExMRg5MiREARBrWump6cjMzMTLi4uYpmRkREcHBzEFyXlevfujdjYWLXvh4iIXmMCERERVSk8PFwwMjISv//6668CAOH7778Xy4qLiwV9fX0hLi5Ocqy/v7/g7e1d7bmnTZsmvPfee+L3CRMmCMOGDZPUSU9PFwAImzdvFst27twpABCOHTsmlgUFBQnW1tbi9/bt2ws7duyQnGvZsmVCnz59qj3v+fPnBQDChQsXqrz36tRULzY2VlAoFEJxcbGkvH379sLGjRsFQRCE0NBQoX379uK+S5cuSeJYtmyZ4OrqKjn+xo0bAgDh0qVLgiAIQv/+/YWZM2dWG2NoaKhgaWkpKSspKRFatGghbNu2TSzz9vYWxowZIwiCICQlJQkAhGvXrtVw99U7deqUAEC4ffu2pHz06NGCl5eXpGz27NnCgAEDnus6RET0emELPBER0TPq2bOn+PnPP/9EUVER3n77bRgYGIjbtm3bkJaWJtb7+uuv0aNHD5iYmMDAwAD//ve/cf36dbWuZ29vL35u2bIlAMDOzk5SlpWVBQAoLCxEWloa/P39JfEsX75cEs+T5zUzMwMA8Ty1ITU1FQUFBWjevLkklvT0dDGWsWPH4tq1a4iPjwfwuPW9e/fu6NSpk3iOX3/9VXJ8+b4n76c6Dx48gJ6enqRMW1sbXl5eYut/YWEh9u/fD19fXwBA165dMXjwYNjZ2WH06NHYtGkT7t279+I/ShXkcjmKiopeyrmJiKhh0dZ0AERERPVNkyZNxM/lXbAPHjyIVq1aSerp6uoCAHbt2oWAgACEhISgT58+MDQ0xOrVq3H69Gm1rqejoyN+lslkVZapVCpJPJs2bYKDg4PkPFpaWk89b/l5akNBQQHMzMwQExNTaV/5zPVKpRKDBg3Cjh078NZbb2HHjh2YOnWq5Byenp5YuXJlpXOUv3R4mhYtWlSZfPv6+qJ///7IyspCdHQ05HI53NzcADz+raKjoxEXF4ejR4/iq6++wsKFC3H69Gm0a9fuqddUKpUAgDt37kjivHPnDt58801J3bt378LExESteyEiotcbE3giIqIX0LlzZ+jq6uL69evo379/lXVOnToFR0dHfPzxx2LZk63HjRs3RllZ2QvH07JlS5ibm+Pq1atia/LzqI14unfvjszMTGhra8PCwqLaer6+vpg3bx68vb1x9epVyVJv3bt3x969e2FhYQFt7ef7Z0u3bt2QmZmJe/fuoWnTpmK5o6Mj2rRpg927d+PQoUMYPXp0pZcaTk5OcHJyQmBgINq2bYt9+/Zhzpw5T71mu3btoFQqcezYMTFhz8vLw+nTpyUvKIDHk/QNGDDgue6NiIheL+xCT0RE9AIMDQ0REBCA2bNnY+vWrUhLS8OZM2fw1VdfiZPGdezYEYmJiThy5AguX76MxYsXIyEhQXIeCwsL/P7777h06RKys7NRUlLy3DF98cUXCAoKwpdffonLly/j7NmzCA8Px5o1a9Q+h4WFBQoKCnDs2DFkZ2fX2MW7rKwMKSkpku3ChQtwcXFBnz59MHz4cBw9ehTXrl1DXFwcFi5ciMTERPH4kSNHIj8/H1OnTsXAgQNhbm4u7ps2bRru3r0Lb29vJCQkIC0tDUeOHIGfn5/aLxi6deuGFi1a4NSpU5X2+fj4YMOGDYiOjpa88Dh9+jT+/ve/IzExEdevX0dUVBT++usvcSK8ffv2iV35qyKTyTBr1iwsX74cBw4cwNmzZzF+/HiYm5tj+PDhYr2ioiIkJSXB1dVVrXshIqLXGxN4IiKiF7Rs2TIsXrwYQUFBsLGxgZubGw4ePCh2tZ48eTJGjhyJMWPGwMHBATk5OZLWeAD48MMPYW1tjZ49e8LExKTKZFNdH3zwATZv3ozw8HDY2dmhf//+iIiIUKvrdzlHR0dMmTIFY8aMgYmJCVatWlVt3YKCAnTr1k2yeXp6QiaT4aeffoKzszP8/PxgZWWFsWPH4r///a84lh94/BLE09MTqamplXoNmJub49SpUygrK4Orqyvs7Owwa9YsGBsbq72mu5aWlrje+pN8fX3xxx9/oFWrVnBychLLFQoFTpw4AQ8PD1hZWWHRokUICQmBu7s7ACA3NxeXLl2q8brz5s3D9OnT8dFHH6FXr14oKCjA4cOHJePx9+/fjzfeeAP9+vVT616IiOj1JhMENddDISIiIqqnMjMzYWtrizNnzqBt27aaDkf01ltvYcaMGeKyeURERDVhCzwRERE1eEqlEmFhYWrP/F8XsrOzMXLkSHh7e2s6FCIiqifYAk9ERERERERUD7AFnoiIiIiIiKgeYAJPREREREREVA8wgSciIiIiIiKqB5jAExEREREREdUDTOCJiIiIiIiI6gEm8ERERERERET1ABN4IiIiIiIionqACTwRERERERFRPcAEnoiIiIiIiKge+D9VJZpeuTm+0gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot ATEs and 95% CIs for all models\n", "plt.figure(figsize=(12, 7))\n", "palette = sns.color_palette(\"colorblind\")\n", "learners = df_all_ates['learner'].unique()\n", "n_learners = len(learners)\n", "jitter_strength = 0.12\n", "\n", "for i, learner in enumerate(learners):\n", " df = df_all_ates[df_all_ates['learner'] == learner]\n", " # Jitter x positions for each learner\n", " jitter = (i - (n_learners - 1) / 2) * jitter_strength\n", " x_jittered = df['treatment_level'] + jitter\n", " plt.errorbar(\n", " x_jittered,\n", " df['ate'],\n", " yerr=[df['ate'] - df['ci_lower'], df['ci_upper'] - df['ate']],\n", " fmt='o',\n", " capsize=5,\n", " capthick=2,\n", " ecolor=palette[i % len(palette)],\n", " color=palette[i % len(palette)],\n", " label=f\"{learner} ATE ±95% CI\",\n", " zorder=2\n", " )\n", "\n", "# Get treatment levels for proper line positioning\n", "treatment_levels = sorted(df_all_ates['treatment_level'].unique())\n", "x_range = plt.xlim()\n", "total_width = x_range[1] - x_range[0]\n", "\n", "# Add true ATEs as red horizontal lines\n", "for i, level in enumerate(treatment_levels):\n", " # Center each line around its treatment level with a reasonable width\n", " line_width = 0.6 # Width of each horizontal line relative to treatment level spacing\n", " x_center = level\n", " x_start = x_center - line_width/2\n", " x_end = x_center + line_width/2\n", " \n", " # Convert to relative coordinates (0-1) for xmin/xmax\n", " xmin_rel = max(0, (x_start - x_range[0]) / total_width)\n", " xmax_rel = min(1, (x_end - x_range[0]) / total_width)\n", " \n", " # Use average_ites[level] for the true ATE (treatment levels start from 1 for ATEs)\n", " plt.axhline(y=average_ites[int(level)], color='red', linestyle='-', alpha=0.7, \n", " xmin=xmin_rel, xmax=xmax_rel,\n", " linewidth=3, label='True ATE' if i == 0 else \"\")\n", "\n", "plt.title('Estimated ATE and 95% Confidence Interval by Treatment Level')\n", "plt.xlabel('Treatment Level (vs. 0)')\n", "plt.ylabel('ATE')\n", "plt.xticks(sorted(df_all_ates['treatment_level'].unique()))\n", "plt.legend()\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "391d7fb2", "metadata": {}, "source": [ "### Model Performance Evaluation\n", "\n", "To understand why different methods perform differently, let's examine the performance of the underlying machine learning models used for the nuisance functions. DoubleML provides access to performance metrics for each component:\n", "\n", "- **RMSE g0**: Root Mean Square Error for the outcome model when treatment $D \\neq d$\n", "- **RMSE g1**: Root Mean Square Error for the outcome model when treatment $D = d$\n", "- **LogLoss m**: Logarithmic loss for the propensity score model (treatment assignment prediction)\n", "\n", "Better performance on these nuisance functions typically translates to more accurate causal estimates." ] }, { "cell_type": "code", "execution_count": 12, "id": "9d683935", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "RMSE g0 by Learner and Treatment Level:\n", "================================================================================\n", "Treatment_Level 1.0 2.0 3.0 4.0 5.0\n", "Learner \n", "LightGBM 15.2287 11.1751 15.2422 15.1509 14.8526\n", "Linear 21.1795 17.4716 20.3264 20.9783 21.0718\n", "RandomForest 14.3663 11.4107 14.5979 14.5166 14.3334\n", "TabPFN 10.0373 2.8767 10.5702 9.9764 10.2091\n", "\n", "\n", "RMSE g1 by Learner and Treatment Level:\n", "================================================================================\n", "Treatment_Level 1.0 2.0 3.0 4.0 5.0\n", "Learner \n", "LightGBM 17.2116 31.2223 20.1003 18.2962 15.7370\n", "Linear 16.6144 30.1755 21.2086 18.4788 16.9636\n", "RandomForest 16.0477 25.8403 18.6678 19.0762 15.5213\n", "TabPFN 3.3852 16.5840 4.8130 6.5550 4.9701\n", "\n", "\n", "LogLoss m by Learner and Treatment Level:\n", "================================================================================\n", "Treatment_Level 1.0 2.0 3.0 4.0 5.0\n", "Learner \n", "LightGBM 0.5732 0.5118 0.4976 0.5644 0.5650\n", "Linear 0.4822 0.4352 0.4252 0.4460 0.4660\n", "RandomForest 0.5277 0.4642 0.4364 0.4860 0.5101\n", "TabPFN 0.4776 0.4347 0.4320 0.4462 0.4645\n" ] } ], "source": [ "# Create a comprehensive table with RMSE for g0, g1 and log loss for all learners and treatment levels\n", "performance_results = []\n", "\n", "for idx_learner, learner_name in enumerate(learner_dict.keys()):\n", " for idx_treat, treatment_level in enumerate(treatment_levels):\n", " # Get the specific model for this learner and treatment level\n", " model = model_list[idx_learner].modellist[idx_treat]\n", " \n", " # Extract performance metrics from nuisance_loss\n", " if model.nuisance_loss is not None:\n", " # RMSE for g0 (outcome model for treatment level != d)\n", " rmse_g0 = model.nuisance_loss['ml_g_d_lvl0'][0][0]\n", " \n", " # RMSE for g1 (outcome model for treatment level = d)\n", " rmse_g1 = model.nuisance_loss['ml_g_d_lvl1'][0][0]\n", " \n", " # Log loss for propensity score model\n", " logloss_m = model.nuisance_loss['ml_m'][0][0]\n", " else:\n", " rmse_g0 = rmse_g1 = logloss_m = None\n", " \n", " # Store results\n", " performance_results.append({\n", " 'Learner': learner_name,\n", " 'Treatment_Level': treatment_level,\n", " 'RMSE_g0': rmse_g0,\n", " 'RMSE_g1': rmse_g1,\n", " 'LogLoss_m': logloss_m\n", " })\n", "\n", "# Create DataFrame and display as a nicely formatted table\n", "df_performance = pd.DataFrame(performance_results)\n", "\n", "# Round values for better readability\n", "df_performance['RMSE_g0'] = df_performance['RMSE_g0'].round(4)\n", "df_performance['RMSE_g1'] = df_performance['RMSE_g1'].round(4)\n", "df_performance['LogLoss_m'] = df_performance['LogLoss_m'].round(4)\n", "\n", "print(\"\\n\\nRMSE g0 by Learner and Treatment Level:\")\n", "print(\"=\" * 80)\n", "pivot_rmse_g0 = df_performance.pivot(index='Learner', columns='Treatment_Level', values='RMSE_g0')\n", "print(pivot_rmse_g0.to_string())\n", "\n", "print(\"\\n\\nRMSE g1 by Learner and Treatment Level:\")\n", "print(\"=\" * 80)\n", "pivot_rmse_g1 = df_performance.pivot(index='Learner', columns='Treatment_Level', values='RMSE_g1')\n", "print(pivot_rmse_g1.to_string())\n", "\n", "print(\"\\n\\nLogLoss m by Learner and Treatment Level:\")\n", "print(\"=\" * 80)\n", "pivot_logloss = df_performance.pivot(index='Learner', columns='Treatment_Level', values='LogLoss_m')\n", "print(pivot_logloss.to_string())" ] }, { "cell_type": "markdown", "id": "96d1cb08", "metadata": {}, "source": [ "### Performance Summary and Insights\n", "\n", "Let's summarize the average performance across all treatment levels to identify the best-performing methods:" ] }, { "cell_type": "code", "execution_count": 13, "id": "3fb531ef", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Best performing learners (averaged across treatment levels):\n", "------------------------------------------------------------\n", " RMSE_g0 RMSE_g1 LogLoss_m\n", "Learner \n", "LightGBM 14.3299 20.5135 0.5424\n", "Linear 20.2055 20.6882 0.4509\n", "RandomForest 13.8450 19.0307 0.4849\n", "TabPFN 8.7339 7.2615 0.4510\n" ] } ], "source": [ "# Best performing learners for each metric\n", "print(\"\\nBest performing learners (averaged across treatment levels):\")\n", "print(\"-\" * 60)\n", "\n", "# Calculate average metrics across treatment levels for each learner\n", "summary_stats = df_performance.groupby('Learner')[['RMSE_g0', 'RMSE_g1', 'LogLoss_m']].mean().round(4)\n", "print(summary_stats)" ] }, { "cell_type": "markdown", "id": "99cefd29", "metadata": {}, "source": [ "## Key Takeaways\n", "\n", "This example demonstrates several important findings about using TabPFN for causal inference.\n", "\n", "- **Outcome modeling**: TabPFN significantly outperforms traditional methods for both g0 and g1 functions, with much lower RMSE values\n", "- **Causal estimates**: The superior nuisance function performance translates to more accurate APO and ATE estimates\n", "- **No hyperparameter tuning**: TabPFN achieves these results without any model-specific tuning\n" ] } ], "metadata": { "kernelspec": { "display_name": "dml_docs", "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.12.4" } }, "nbformat": 4, "nbformat_minor": 5 }