{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "tp5-000",
   "metadata": {},
   "source": [
    "# Practical 5 — Linear SVM classification\n",
    "\n",
    "**Objectives**: connect margins to slacks, inspect supports, select a linear classifier with cross-validation, and compare it with logistic regression and k-NN.\n",
    "\n",
    "Complete the TODO cells. Submit the development-data comparison, the final test-performance table and the interpretation answers. The final section is optional.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "tp5-001",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:05.192434Z",
     "iopub.status.busy": "2026-10-07T13:44:05.192327Z",
     "iopub.status.idle": "2026-10-07T13:44:05.820354Z",
     "shell.execute_reply": "2026-10-07T13:44:05.819500Z"
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from sklearn.datasets import load_breast_cancer, make_blobs\n",
    "from sklearn.dummy import DummyClassifier\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.metrics import (accuracy_score, confusion_matrix, precision_score, recall_score,\n",
    "                             f1_score, roc_auc_score)\n",
    "from sklearn.model_selection import GridSearchCV, StratifiedKFold, train_test_split\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.svm import SVC\n",
    "\n",
    "SEED = 42\n",
    "BLUE, RED = \"#2474b5\", \"#e30613\"\n",
    "plt.rcParams.update({\"figure.figsize\": (7, 4), \"font.size\": 11})\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-002",
   "metadata": {},
   "source": [
    "## 1. Margins, slacks and supports — 15 min\n",
    "\n",
    "For labels $y_i\\in\\{-1,+1\\}$, $f_i=w^Tx_i+b$, the signed geometric margin is $y_i f_i/\\|w\\|$. The minimum feasible slack is $\\xi_i=\\max(0,1-y_i f_i)$.\n",
    "\n",
    "1. Compute these quantities for the four observations below.\n",
    "2. Identify points beyond the margin, correctly classified inside it, on the boundary, or misclassified.\n",
    "3. Multiply **both** $w,b$ by 3. Which quantities change?\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "tp5-003",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:05.822423Z",
     "iopub.status.busy": "2026-10-07T13:44:05.822218Z",
     "iopub.status.idle": "2026-10-07T13:44:05.825270Z",
     "shell.execute_reply": "2026-10-07T13:44:05.824561Z"
    },
    "tags": [
     "exercise"
    ]
   },
   "outputs": [],
   "source": [
    "X_small = np.array([[0., 1.], [1., .25], [0., 0.], [0., -.5]])\n",
    "y_small = np.array([1, 1, -1, 1])\n",
    "w_small, b_small = np.array([0., 2.]), 0.\n",
    "# TODO: compute score, functional_margin, geometric_margin and slack.\n",
    "# Display a table; repeat after multiplying w and b by 3.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "tp5-004",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:05.827135Z",
     "iopub.status.busy": "2026-10-07T13:44:05.827003Z",
     "iopub.status.idle": "2026-10-07T13:44:05.831300Z",
     "shell.execute_reply": "2026-10-07T13:44:05.830724Z"
    },
    "tags": [
     "correction"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original parameters:\n",
      "Point   Score   y*f   Geometric margin   Slack\n",
      "    0    2.00  2.00               1.00    0.00\n",
      "    1    0.50  0.50               0.25    0.50\n",
      "    2    0.00 -0.00              -0.00    1.00\n",
      "    3   -1.00 -1.00              -0.50    2.00\n",
      "\n",
      "Parameters multiplied by 3:\n",
      "Point   Score   y*f   Geometric margin   Slack\n",
      "    0    6.00  6.00               1.00    0.00\n",
      "    1    1.50  1.50               0.25    0.00\n",
      "    2    0.00 -0.00              -0.00    1.00\n",
      "    3   -3.00 -3.00              -0.50    4.00\n",
      "Geometric margins unchanged: True\n"
     ]
    }
   ],
   "source": [
    "score = X_small @ w_small + b_small\n",
    "functional_margin = y_small * score\n",
    "geometric_margin = functional_margin / np.linalg.norm(w_small)\n",
    "slack = np.maximum(0, 1 - functional_margin)\n",
    "\n",
    "print(\"Original parameters:\")\n",
    "print(\"Point   Score   y*f   Geometric margin   Slack\")\n",
    "for i in range(len(y_small)):\n",
    "    print(f\"{i:5d} {score[i]:7.2f} {functional_margin[i]:5.2f} \"\n",
    "          f\"{geometric_margin[i]:18.2f} {slack[i]:7.2f}\")\n",
    "\n",
    "# Point 0: beyond the correct margin; point 1: correct, inside the margin.\n",
    "# Point 2: on the decision boundary; point 3: misclassified.\n",
    "scaled_score = X_small @ (3 * w_small) + 3 * b_small\n",
    "scaled_margin = y_small * scaled_score\n",
    "scaled_distance = scaled_margin / np.linalg.norm(3 * w_small)\n",
    "scaled_slack = np.maximum(0, 1 - scaled_margin)\n",
    "\n",
    "print(\"\\nParameters multiplied by 3:\")\n",
    "print(\"Point   Score   y*f   Geometric margin   Slack\")\n",
    "for i in range(len(y_small)):\n",
    "    print(f\"{i:5d} {scaled_score[i]:7.2f} {scaled_margin[i]:5.2f} \"\n",
    "          f\"{scaled_distance[i]:18.2f} {scaled_slack[i]:7.2f}\")\n",
    "print(\"Geometric margins unchanged:\", np.allclose(geometric_margin, scaled_distance))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-005",
   "metadata": {
    "tags": [
     "correction"
    ]
   },
   "source": [
    "The original signed functional margins are 2, 0.5, 0 and -1; minimum slacks are 0, 0.5, 1 and 2. The second observation is correctly classified but penalized. A zero score is a boundary case. Scaling preserves geometric margins and the boundary but changes scores and slacks relative to the fixed threshold 1.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "tp5-006",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:05.832756Z",
     "iopub.status.busy": "2026-10-07T13:44:05.832652Z",
     "iopub.status.idle": "2026-10-07T13:44:05.836684Z",
     "shell.execute_reply": "2026-10-07T13:44:05.836053Z"
    }
   },
   "outputs": [],
   "source": [
    "def boundary_plot(ax, estimator, X, y, supports=None, levels=(0,)):\n",
    "    low, high = X.min(axis=0) - .6, X.max(axis=0) + .6\n",
    "    xx, yy = np.meshgrid(np.linspace(low[0], high[0], 150),\n",
    "                         np.linspace(low[1], high[1], 150))\n",
    "    grid = np.column_stack((xx.ravel(), yy.ravel()))\n",
    "    z = estimator.decision_function(grid).reshape(xx.shape)\n",
    "    ax.contourf(xx, yy, z, levels=[-np.inf, 0, np.inf], colors=[BLUE, RED], alpha=.1)\n",
    "    visible = [v for v in levels if z.min() < v < z.max()]\n",
    "    if visible:\n",
    "        ax.contour(xx, yy, z, levels=visible, colors=\"black\",\n",
    "                   linestyles=[\"-\" if v == 0 else \"--\" for v in visible])\n",
    "    for label, color in ((-1, BLUE), (1, RED)):\n",
    "        ax.scatter(*X[y == label].T, color=color, s=20, label=f\"y={label:+d}\")\n",
    "    if supports is not None:\n",
    "        ax.scatter(*supports.T, s=80, facecolors=\"none\", edgecolors=\"black\")\n",
    "    ax.set(xlabel=\"$x_1$\", ylabel=\"$x_2$\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "tp5-007",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:05.838724Z",
     "iopub.status.busy": "2026-10-07T13:44:05.838588Z",
     "iopub.status.idle": "2026-10-07T13:44:05.842003Z",
     "shell.execute_reply": "2026-10-07T13:44:05.841447Z"
    },
    "tags": [
     "exercise"
    ]
   },
   "outputs": [],
   "source": [
    "X_geometry, lab = make_blobs(n_samples=90, centers=[(-1, -.6), (1, .6)],\n",
    "                            cluster_std=.85, random_state=SEED)\n",
    "y_geometry = 2*lab - 1\n",
    "X_geometry = StandardScaler().fit_transform(X_geometry)\n",
    "# TODO: fit SVC(kernel=\"linear\") for C=.05 and C=10 on these fixed observations.\n",
    "# Call boundary_plot with model.support_vectors_ and levels=(-1, 0, 1).\n",
    "# Compare support counts, training errors and margin violations.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "tp5-008",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:05.843200Z",
     "iopub.status.busy": "2026-10-07T13:44:05.843108Z",
     "iopub.status.idle": "2026-10-07T13:44:06.158204Z",
     "shell.execute_reply": "2026-10-07T13:44:06.157569Z"
    },
    "tags": [
     "correction"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C=0.05: errors=6, violations=42\n",
      "C=10: errors=6, violations=13\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABD8AAAGDCAYAAAAs+bvnAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XVYVHkXwPHv0CmIYivYsevart1rF7aEYHe3u67d3Z3Y3bl2d621FoodpJLD3PcPlVcUFZyRAeZ8nofnXWfunDmMvNzjufd3fipFURSEEEIIIYQQQgghkikjfScghBBCCCGEEEII8TNJ80MIIYQQQgghhBDJmjQ/hBBCCCGEEEIIkaxJ80MIIYQQQgghhBDJmjQ/hBBCCCGEEEIIkaxJ80MIIYQQQgghhBDJmjQ/hBBCCCGEEEIIkaxJ80MIIYQQQgghhBDJmjQ/hBBCCCGEEEIIkaxJ80MIIYQQQgghhBDJmjQ/hIiD8PBw5s2bR5UqVXB0dMTU1BQHBwfKli3L+PHj8ff31+n7Xb16lTp16pAyZUqsra0pUaIEW7ZsiXecBQsWUKBAASwtLXF0dMTNzY1Hjx59cdzSpUtRqVSxfhUtWlRH35XhCQgIYOjQoRw+fFjfqUSbNWtW9N/t48ePv3msRqOhRIkSqFQqqlSpkmA5CiGE+L6ErE3Wr19P69atKVSoEGZmZqhUKo4fP/7N12zatIkSJUpgbW1NypQpqVu3Lv/++6/OcjJES5cuZerUqXp7/2fPnvHXX39Rs2ZN0qdPH+f64ODBg9SqVYvUqVNjYWGBk5MTTZo0ISgoKEHyFuIjE30nIERi9+jRI+rUqcPVq1cpU6YMPXv2JH369AQEBHDy5EkGDx7Mxo0bOXPmjE7e78qVK5QpUwZzc3N69+5N6tSpWbFiBS4uLixZsgQvL684xRk8eDAjR46kdOnSTJ06lVevXjF16lQOHz7MuXPnyJAhwxevGTRoEHnz5o3xWKpUqXTyfRmigIAAhg0bBkCFChX0nQ6PHj1iwIAB2NjY8Pbt2+8eP3XqVK5fv54guQkhhIi7hK5NZs2axenTp8mfPz958uTh2rVr3zx+0aJFtGnThl9//ZVx48YRFhbGjBkzKFWqFCdOnCB//vw6ycvQLF26FB8fH3r06KGX9799+zajRo0iY8aMFC9enG3btn33NePHj6d///5UrFiRQYMGYWdnx7Nnzzh58iQhISGkSJEiQXIXAgBFCPFVYWFhSv78+RVjY2Nl5cqVsR7j6+ur9O/fX2fvWbZsWUWlUinnzp2LfiwiIkIpVKiQYm9vrwQGBn43xu3btxVjY2OlcOHCSmRkZPTj586dU1QqldKyZcsYxy9ZskQBlEOHDuns+zBkH/+OHjx4oADKkCFD9J2SoiiKUr16daVo0aKKu7u7Aii+vr5fPfbevXuKlZWVMnXqVAVQKleunKC5CiGEiJ0+ahMfHx8lIiJCURRFGTJkiAIox44di/VYPz8/JUWKFEqmTJli1CwPHz5UrK2tlYoVK+osL0OgVquVd+/eKYqiKOXLl1ecnJz0lktQUJDy4sWL6D9/rz44fPiwolKplEGDBiVQhkJ8myx7EeIbFi9ezLVr1+jRoweurq6xHpMpUybGjh2rk/fz8fHh2LFjlC9fPsZyE1NTU7p160ZAQECcuuyrVq0iKiqKbt26YWLy/xu8ihYtSrly5Vi3bh3h4eGxvvbt27dffe5HhIeHM2LECPLly4e1tTUpUqQgd+7ctGrVitDQ0OjjVCpVrHe1HD58GJVKxdKlS6Mf+7hM559//mHkyJFkzZoVc3NzcufOzYwZM76IUaFCBZydnXn48CENGzaMXk70xx9/cPHixS+O12g0TJ8+PXrJUIoUKahUqRL79+//4lhnZ2cqVKjA1atXqVWrFilTpsTOzo6lS5eSNWtWAIYNGxa91MTZ2Tn6tXv27KFSpUqkSZMGCwsLMmXKRI0aNTh27NgPftpft3z5cvbv38/8+fMxNjb+7vFt27bll19+oWvXrjrPRQghxI9L6NoEwMnJCVNT0zgdu3XrVoKCgmjTpk2Mq/pZsmShUaNGHDp0CF9f3x/OJS7nTi8vL1QqVayv/3je/tTHGuTQoUOULl0aa2trUqdOjZeXFy9fvoxxbHxrEIAzZ85Qu3ZtHBwcsLCwIE+ePIwYMYKIiIgYxw0dOhSVSsWNGzfo168fTk5OmJubs27dOlQqFUeOHOHhw4cxlid/XFr7+PFj2rVrR9asWbGwsCB16tQUKVKE0aNH//Bn/TlbW1vSpEkT5+NHjhxJ6tSpGTp0KHyoMdVqtc7yESK+ZNmLEN+wbt06ADp06BDn10RGRhIYGBjn4+3s7KILio+3p5YqVeqL4z4+dvbsWdzd3b8Z83txjhw5wvXr1ylcuHCM5+rVqxe9/jJHjhy0bduWXr16xWigxFeXLl1YuHAhbm5udOvWDYAHDx6wY8cO3r17h6Wl5Q/HHjBgAIGBgbRt2xZzc3NWr15Nt27dePHiBSNHjoxx7Lt37yhfvjyFChVi5MiR+Pr6Mnv2bMqVK8eJEycoUKBA9LFeXl54e3tTunRpRo8ezdu3b1m4cCHVqlVj+fLlX3z+vr6+lC9fHhcXF8aMGcPz588pV64cU6ZMoWfPnri4uNCgQQMAbGxsADh69Ci1a9cmX7589O3bl1SpUvH8+XNOnjzJpUuXKFu2LHxoxPj5+cX5M7G1tcXc3DzGYy9evKBnz5707NmTQoUKfTfGggULOHr0KOfPn8fISHrkQgiRmCR0bRJf36tBli1bxrlz58icOXO8Y8f13PkjLl26xIYNG2jZsiXu7u6cPXuWZcuWcebMGc6dOxd9/v4orjXInj17qFu3LilSpKBTp06kS5eOXbt28ffff3Py5El27tz5xbnWzc0NExMTOnfujI2NDblz58bb25tRo0bx+vVrpkyZEn1s3rx5UavV/PHHH/j6+tKxY0fy5MnD27dvuXXrFgcPHmTQoEHRxwcGBhIZGRmnz8TU1BQ7O7sf+jxDQkI4fPgw1atXx9vbm+HDh/Pw4UNMTEyoUKECEydOjFF7CZEg9H3riRCJWapUqRRbW9t4vebQoUMKEOevT5eaTJw4UQGU2bNnfxH33bt3CqC4uLh8N4dff/1VAZSQkJAvnps1a5YCKFu3bo1+bO3atUqTJk2U+fPnK9u3b1fmzp2rlC5dWgGU2rVrK1FRUfH6DD6VMmVKpXr16t89DlA8PT2/ePzj57lkyZLoxz4u08mUKZPi7+8f/XhYWJhSvHhxxcjISLl792704+XLl1cApXPnzjFinz9/XjEyMlLKly8f/diBAwcUQKlRo4aiVqujH3/58qWSJk0axd7eXgkODo5+3MnJSQGUOXPmfJH7t5a99OzZUwGU58+ff/Nz+Rgjrl+ffk4fNWrUSMmaNWv0bbOenp5fXfby5MkTxc7OLsbt0rLsRQghEo+Erk0+971lL7Vr11YA5caNG188t3PnTgVQpk2bFq/8P4rrufPjeS42Tk5OMc77yofzHKCsX78+xuOTJ0/+4jwenxpErVYrzs7OiqWlpXLnzp0YsVu2bKkAire3d/RjHz/bMmXKRC8z+tTXlr1cuXJFAZSxY8d+83NRPqmJ4vL1+ef0uW/VB5cvX1YAxdHRUTEzM1MGDRqkbNq0SRk8eLBiZmam2NjYKLdu3fpuvkLoktz5IcQ3BAYGkjZt2ni9pkCBArEuj/jW8R+FhIQAfHHlHsDCwiLGMd8S3zhNmjShSZMmMY5r164drq6urFmzhnXr1tGsWbM4f0+fsre35/r161y5ckXnHf5OnTphb28f/eePQ2KbNm3Kli1b6N27d4zjP73yAVCkSBGqVavG7t27ef36NalTp2bjxo3wYWDsp8tDHB0d6dy5M0OGDOHAgQPUq1cv+jkHBwfatm0br9w/5r1+/Xrat2//1Sts6dKli9fP0y+//BLjz5s3b2bDhg3s3bsXKyur776+Y8eOpE6dmiFDhsT5PYUQQiSchK5N4ktXtUxs4nru/BG5cuWiUaNGMR7r3Lkzw4cPZ+PGjdFLNz6KSw1y8eJFfHx8aNeuHTly5Ijx+qFDh7JkyRI2btz4xR2lvXv3jtf39vHujEOHDuHp6Um6dOm+euykSZPivBNQypQp45zD54KDgwF49eoV8+bNo127dgC4uLjg5OREmzZtGDZsGKtWrfrh9xAivqT5IcQ32NnZRf/yjquUKVP+8LagH/9xGtvMjbCwsBjHxDXO58tK4hpHpVIxZMgQ1qxZw44dO364+TFt2jQ8PDwoWLAgWbJkoWzZslSrVo3GjRtHF0E/Kl++fF997O7duzEet7e3j3WHm3z58rF7927u3btH6tSpuX//PkCsk+g/Pnbv3r0Yj2fPnj1OczQ+1aVLF7Zv307Xrl0ZMGAAJUuWpEKFCri6ukbPCuFDofijP08BAQF07twZNzc3qlat+t3j16xZw7Zt29i/f79Wy5GEEEL8PAldm8SXrmqZ2MT13PkjYqspzMzMyJ49e6w7n8WlBvlWTZElSxZSpEjxRU3Bh0ZMfDg5OTFkyBBGjBhBhgwZyJ8/P2XKlKF+/fr88ccfMY4tUqRIvGL/qI91hJGREZ6enjGea9GiBe3bt+fgwYMJkosQH0nzQ4hvyJ8/P4cPH+bu3btfdOy/JiIiIl4zGhwcHDAzM4MPA8r4MLTqcx8f+3jMt2TKlIl///2Xx48fkzNnzh+O87GQ+HzYV3zUqVMHHx8f9u7dy+HDhzl8+DArV65k2LBhnDp1CkdHx2++PikMxvqRIs7BwYEzZ85w8uRJ/vnnH44dO8awYcMYNmwY3t7eNG3aFICoqChevXoV57h2dnbRBceQIUOiGyCfNoM+Fs0+Pj6EhYWRPXt2IiIi6NatG1WrVsXZ2fmL5lFoaCh3797F1tY23lcchRBC6E5C1ybx9Wktkzdv3hjPxacG+VpecTl3fm3YKYmsrvhanj9SVwwdOpSWLVuye/dujh07xsaNG5k9ezb16tVj8+bN0e/l5+f3xaDVrzEzM8PBwSHeuQDRM11Spkz5xV1ApqampE6dOl4/k0LogkyyE+IbGjduDMD8+fPj/JqTJ0+SPn36OH+dPHky+rXFixcH4NSpU1/E/fjYx2O+5XtxrK2tY71i8bn//vsPPiy90Ia9vT1NmzZlzpw53Lx5kzlz5nDv3j1mzZoVfYyDg0OsJ8GPV01ic+PGja8+9nlBGBAQwNOnT796fPbs2WP8b2xXef79998Yx3zPt4ovPlwNKVOmDEOHDuXAgQPcu3cPOzs7+vfvH32Mr69vvH6e1q5dG/3ahw8fEhoaSqlSpciZM2f016ZNmwAoW7YsOXPmJDw8nNDQUF69esW+fftiHPuxeXby5Ely5sxJ9+7d4/S9CyGE+DkSujaJr7jUMsWKFfvh+HE5d378B/vndUVoaCjPnj2LNW5sNUVERAT37t2LtckUlxrkWzWFr68vgYGBca4piENd4eTkRIcOHVi5ciWPHz/Gzc2NrVu3cuTIkehjGjRoEOefg4/D2n9EmjRpyJo1K35+fl8scwoLC+PVq1dyMUUkOLnzQ4hvaN26NXPmzGHy5MkUKVIk+orCp548ecKMGTOit5TTZl1t1qxZKV26NIcPH+bChQvRtyaq1WqmT5+OnZ0dderUifH6W7duYWpqGuPk6erqyqhRo5g2bRqurq7Ru7WcP3+eI0eO4OnpGWPJyZs3b0iVKlWMuGq1moEDBwJQv379OH8/n4qKiiIoKOiLNaMfv683b95EP5Y7d25OnTpFSEhI9BWPsLCwr24bBzB79mw6duwYveY2PDycSZMmYWRkFGMmx0ejR49m5syZ0X++cOECe/fupVy5cqROnRo+FAWzZs1i9OjRbN68OXoC++vXr5k1axb29vZUrlw5Tt//x8nwsTV1Xr169cVdL5kzZyZt2rQ8fPgw+jFtZn70798/1p2BZs2axeHDh5k3b1701T1jY2PWr18fa8zGjRuTP39+/v777x+azi+EEEJ3Ero2ia/69evTvXt3FixYQI8ePaK3u3306BHr16+nQoUKP3wuieu5M3fu3AD8888/MWaaTZo0CY1GE2vs//77jw0bNsSY+zFr1iwCAgKid6v7VFxqkEKFCuHs7Iy3tzcDBgzAyckp+vXDhw8HoGHDhnH+/m1sbPD390dRlBiNkMDAQKysrGLMCTExMaFAgQKsXLkyRr2VUDM/ADw9PRk6dCizZ8+mT58+0Y/PnTsXjUZD7dq1tYovRHxJ80OIbzA3N2fnzp3Url2bZs2aMXv2bGrUqEHatGkJCgri1KlTbNmyhYIFC0a/Rtt1tdOnT6dcuXJUq1aNnj17kjp1ary9vbl48SKLFi36YsuxvHnz4uTkhI+PT/RjuXPnpl+/fowZM4YKFSrg4eERvTVaunTpvtgG9uPa0Pz585M+fXqePn3KmjVruHnzJs2aNcPFxSXG8UOHDmXYsGEsWbIELy+vr34vwcHBpE+fnjp16lCwYMHo2AsWLMDExAQ3N7foY7t160bz5s2pUKECLVq04O3btyxfvvybW6ylTZuWYsWK0apVK8zMzFi9ejUXLlxgwIABX1ylSZ06NTt27ODJkyfR28HNmjULCwsLpk6dGn1cpUqV8PDwwNvbm4oVK+Li4hK91e3Lly9Zvnz5F9vdfU2qVKnIkSMHa9asIXv27KRNmxZra2vq1KlDu3btePToUfQyE7VazY4dO7h+/TpdunSJjqHNzI+SJUvG+viOHTsAqFmzZvStx0ZGRl8MevtUmjRpvvm8EEKIhKGP2uTo0aMcPXo0+r8Bli9fzuHDhwHw8PCI/od9ypQpmTBhAh06dKB06dK0b9+e8PBwZsyYgUqlinHO5cMSzKxZs1K+fPnoeF8T13Nn8+bN+fPPP2nbti3Xr18nbdq0HDlyhAsXLkRf7Phc/vz58fLy4ujRo+TNm5dz586xdOlScuXKFeMf7h/FpQYxNjZmzpw51K1bl2LFitGhQwfSpEnD7t272bVrF9WqVcPV1TXOfw8lSpRgx44ddOnShVKlSmFsbEylSpU4efIkbdu2xcXFhdy5c2Nvb8+NGzeYO3cuGTNmjPF3r+3Mj89rSB8fn+jHnJyc8PDwiH6uT58+bNq0iX79+nH79m2KFCnCpUuXWLhwIZkzZ/5iiKwQP52+t5sRIikICwtT5syZo1SsWFFJlSqVYmJioqRMmVIpW7asMnHiRCUgIECn73f58mWlVq1aip2dnWJpaakUL15c2bhxY6zHArFue6bRaJS5c+cq+fPnV8zNzZVUqVIpzZo1Ux48ePDFsb1791aKFi0a/b3Z2dkpZcuWVZYsWaJoNJovju/Vq5cCKPv27fvm9xEeHq4MHDhQ+f3335XUqVMrZmZmSqZMmZRGjRopZ86c+eL4KVOmKFmzZlVMTU2V7NmzKxMmTIjeeja2rW7379+vDB8+XHF2dlZMTU2VnDlzKlOnTv0i7set4R48eKA0aNBAsbOzU6ysrJRKlSop586d++L4qKgoZerUqdGfnY2NjVKxYkVl7969Xxwb25Z5nzpz5oxSqlQpxcrKKsbf1caNG5V69eopmTNnVszNzZWUKVMqxYsXV+bOnavV1sJx8a2tbmMjW90KIUTik5C1ycctWOOzNe769euV4sWLK5aWloqdnZ1Su3Zt5cqVK18cd/XqVQVQXF1dv5tHfM6d586dU8qVK6dYWFgoKVOmVJo1a6Y8efLkq1vdenp6KgcPHlRKlSqlWFpaKilTplQ8PDy+2FY3vjWIoijKqVOnlJo1ayr29vaKmZmZkitXLmX48OFKeHh4rJ9zbLWaoijKu3fvlFatWilp0qRRjIyMoj/7+/fvKx06dFDy5cunpEiRQrG0tFRy5MihdO3aNc7n+riK79a4/v7+So8ePZTMmTMrpqamSvr06ZU2bdooT58+1WleQsSFSnn/QyyEEHFWsGBB7OzsYqwhTUhLly6lZcuWHDp0iAoVKnz3+AoVKuDj4xPj7hghhBBC6N/UqVPp168f//77b7x3OdEVlUqFp6cnS5cu/e6x8a1BhBCJhyx7EULEy/Pnz7l27RpnzpzRdypCCCGESOL27NlD+/bt9db4EEIYDml+CCHiJV26dERFRek7DSGEEEIkA3v27NF3CkIIAyFb3QohhBBCCCGEECJZk5kfQgghhBBCCCGESNbkzg8hhBBCCCGEEEIka9L8EEIIIYQQQgghRLJmsANPNRoNT58+xdbWFpVKpe90hBBCiGRBURSCg4PJkCEDRkZyjeUjqTuEEEII3YtP3WGwzY+nT5+SOXNmfachhBBCJEu+vr5kypRJ32kkGlJ3CCGEED9PXOoOg21+2NraAnDx+t3o//4aX19fGterwZvXryhRqgyLvFdjZmqWQJkatoAAf5rWr8X9+/fIlysXO1euwu47f19CN8LCwqjfqiVnL14kQ9q07F2zlozp0+s7LSFEIhf09i3ORYt899xqaOJTdxi6pYvmM2rYYAD+GjoSz1ZttY4ZHhFOmxaunD55HPsUduxatYo8OXJoHff67dvU9nAnMCiIiqVLs2r2HMzNzbWOK4QQIm7iU3cY7G4vQUFB2NnZcefRC2xTpPju8VcvX8KldlXevX1LwybNmDF3kdzOm0AePXxI7aoVePniORVKlWbnihVSWCQQP39/ytWvx627d/k1Tx4Ob9qMvZ2dvtMSQiRiQcHBOOTJTWBgICnicH41FPGtOwzdxLGjmDh2JADT5yykSXM3rWO+DQ6mcf2aXLpwngzp0nFk8xayZsmiddxT589TrVlTQkJDaVCzFqvmzMHExGCvLwohRIKKT90h/3qPo98KFmLR8tWYmJiwcd2a6CsS4ufL4uTEynWbsbay5vDJE7Tu1RONRqPvtAyCQ8qU7Fy5ivRp0/LvrVs0bN2a8PBwfaclhBAimevdfxDtOnYBoEfnduzesU3rmDa2tqxcv4XcefPx9PlzqjVryrMXL7SOW7JoUTYtXoKZmRmbdu2kQ7++UqcIIUQilCSbH7t27aJ8+fI4Ojpibm5OtmzZ6NWrF4GBgT/1fStUqsKk6XMAmDVtMovmz/mp7yf+L3+BgixeuRYTExPWbNnCgFEj9Z2SwXDKlInty72xtbHhyKmTtOrZQ4o6IYRB0VfdYchUKhVDR42jqasHGo2G9q08OHr4oNZxHRxSsXbTdpycs3L/4UNquDbHz99f67hVypVj1ew5GBkZsXTtWvoMG4aB3lwthBCJVpJsfvj5+fH7778zd+5c9u7dS69evVi+fDmNGzf+6e/d1NWdAX8NBWDapPEEBwX99PcU75WvWJnJM+YCMHnuXGYsWqjvlAxGwV9/Zf2Che/vfNq5k/NXrug7JSGESDD6rDsMmZGREZOmz6ZWnXpERESwddMGncRNlz4D67bsJG26dPx76xa1PTx4++6d1nHr16jBwkmTAdixfx8B0hwTQohEJdnM/FiwYAHt2rXjyZMnZMiQ4bvHa7P2VlEUJo8fQ8MmzXDOmk2LrMWPmD55AqOH/41KpWLtvPk0qFVL3ykZjNWbN+GQ0oFqFSroOxUhRCJlKDM/ErLuMHTh4eGsWLaYlm3a63Te2q2bN3CpXhn/wAAqlSnDtmXLsbCw0Druyo0bqVSmDOnTptVJnkIIIb7OIGd+pEqVCoCIiIif/l4qlYre/QfFaHxERUX99PcV73Xt2QfP1u1QFAWPLp05fvaMvlMyGM1dGsRofMjPvRDCUCVk3WHozM3Nad2uY3TjQ6PR8PLFc63j5smbj1Wbt2NtZc3B48dx7dQRtVqtdVy3hg1jND6ePtc+VyGEENpL0s2PqKgowsLCuHjxIsOHD6du3bo4OzsneB779+6mYulivHj+LMHf2xCpVCpGj59M9Zq1CY+IoL6XFzfv3NF3Wgbnv3v3KFSlMsfOSPNJCGEYEkvdYcgiIyPp0r4Vtf6owLOnT7SOV6hwUZat2Yi5mRnb9u6lbe/eOp1rtXLjRnKWKsnWPbt1FlMIIcSPSdLNDycnJywtLSlSpAjp06dn1apVXz02PDycoKCgGF+6oFarGTHkT/67dRO3xi4yAySBGBsbM3vhMooUK05AYCC13FzlykoCmzB7Fjf++w+Xll5cv31b3+kIIcRPlxjqDkMXGBjApQvn8X30kCYutXnz5rXWMcuUK8/8pSsxNjbGe8N6eg35W2fDSo+cOkl4eDjNO3bkwLFjOokphBDixyTp5seuXbs4efIkCxYs4ObNm9SpU+ert+GPGTMGOzu76K/MmTPrJAcTExO812wktWMa/r12hdYtmsstsAnEysqK5Ws2kj1HTh49eUJtd3eCgoP1nZbBmD5yFCWLFiUgMJDa7m48eSZ3PgkhkrfEUHcYutSpHVm3ZScZMmbkzu1bNG9YTycXnqrVrM202QsAmLl4MUMnTtBBtjB77Dga1KxFREQEDVq15PSFCzqJK4QQIv6SzcDTK1euULBgQdavX0+jRo2+eD48PJzw8PDoPwcFBZE5c2adDR67cvkiLrWqEvLuHY2aujJj7kJUKpXWccX3PfTxoXaVsrx6/ZpKZcqww3sFZmZm+k7LILzx86Nsvbr8d/8+v+XNx6FNm7CTQX5CGDRDGXiq77rD0N357zb1alTB781rSpYuy6oNW7G0tNQ67uIFcxnUtycAE/4eQs/27bWOGR4eTv2WXuw/coSU9vYc3LCR/Hnzah1XCCGEgQ48/e233zA1NeXu3buxPm9ubk6KFClifOlSgYKFWfDhlskNa1cxZsQQncYXX+fk7MyKDVuxsrLi4PHjtO3dW2e3q4pvS+XgwM6Vq0jr6MjVmzdo3LaN3PkkhDAI+q47DF3OXLlZvXErNra2nDpxjHZe7kRGRmodt1XbDgwcPAyAvsOHsWTNaq1jmpubs2HhIkoUKYJ/QAA1XJtz98EDreMKIYSIn2TT/Dhz5gyRkZFky6a/rWcr/1GNidNmw4ftWPft2aW3XAxNgYKFWbh8NcbGxqzctJE/x47Rd0oGI2uWLGz39sbG+v20/CE6ulVYCCESs8RQdxi6AgUL471mExYWFhw59A/Xrl7WSdxuvfrSsWsPANr37cvGHTu0jmltZcX25d78ljcfz1++ZMXGDTrIVAghRHwkyWUvDRo0oGjRovz2229YWlpy5coVJkyYQJo0aTh37lycljwEBQVhZ2f3U24/nTx+DE+fPGbspGmYmJjoNLb4tjUrvenRuR0A00eNopNXS32nZDD2HTnMmOnTWb9gAakdUuk7HSGEniTHZS+Jve4wdP/s24O5uTlly1fUWUxFUejbowsrli3G1NSULUuXxdjq/Uc9f/mSlZs20qt9B1keLYQQOhCfuiNJNj/Gjh3L2rVruXfvHhqNBmdnZxo0aECfPn3iXGj9zCLk40cqJzX9mDJhLONGDUOlUrF+wULq16ih75QMhqIo8nMvhIFLjs2PxF53iJgCAvyxt0+pdZyoqCg6tvFk2+aNWFpasnf1GkoVK6aTHD+KjIwkPCICG2trncYVQghDkeybH7qQUEWIWq1mxN+D8GjZhhw5c/209xH/pygK/Xp2xXvpIizMzdm3dp3OixXxffO9vXFMlQqXmjX1nYoQIgElx+aHLkjzI2HcvnWTpi61aNOhM12699Y6XkREBJ6ujTn0zz5S2NpyaOMmCvzyi05yDQ0NpVmH9gS/e8dO7xU6GdgqhBCGxiAHniZWY0YMYd7sGTRvWJeXL57rOx2DoFKpGDNxKlWr1yIsPJx6np7cuntH32kZlO379tFpQH/cu3TmxLmz+k5HCCGEgTh2+CDPnz1j5JC/8F66SOt4ZmZmLFq+mt9LliIoOJhqzZvx3717Osn1/qNHHD19mqOnTtGsQ3udDGwVQgjxddL8+Mk6dOlO1mzZ8X30EPcmDXgbHKzvlAyCiYkJcxYto1CRovgHBlDLzY1nL17oOy2DUaNSJWr/8cf77f28vKT5JIQQIkG06dCZrj37ANCvZ1e2bFyndUwrKyu812wi/28Fef3mDdWbN8P3yROt4/6SOzdbly3HwsKCnf/8Q8se3dFoNFrHFUIIETtpfvxkjo5pWL1xG6lSO3L1yiXaerlJZz+BWFtb4712E1mzZefh48fUbeFB8Nu3+k7LIJiYmLBqzhyKFyqMf4A0n4QQQiScQX8Pp0WrtiiKQpf2rfln3x6tY6aws2PVxq3kyJmLR0+eUL15M16+fq113HIlSrBu/gJMTExYs2ULXQcNwkBXpAshxE8nzY8E4Jw1GyvWbcLSyopDB/bTu1snObElkNSpHd83nxxScenff2nSrq00nxKIlaUVW5ctI2fWbDx8/Jg6Hu4EyZ1PQgghfjKVSsXYiVNp0LgparWaNi2ac/rkca3jOjqmYe3mHWTMlJnb9+5R07U5AYGBWsetWbkyy6fPQKVSMc97OX+NHat1TCGEEF+S5kcCKVS4KPOXrMDY2Jh1q1cwfvQIfadkMJyzZmPFhi1YWlqy/8gR2vXpI82nBOKYKhU7V64kTerUXL5+nSbt2qJWq/WdlhBCiGTOyMiIabMX8Ee1moSFhTF+9AidnPszZsrMui07SZ0qFZevX6euZwtCQkO0jtukXj1mjx0HwMzFi3j4+LHWMYUQQsQkzY8E9Ee1GoyfMgNrGxuK/V5C3+kYlEKFi7Jg2SqMjY3x3rCewePG6Tslg5HNyYlty72xsbamYunSGBsb6zslIYQQBsDU1JT5S1fQvnM3lqxYq7Ot2LPnyMmazTtJYWvLyXPnaNKuHREREVrHbevuzpThw9m3dh1OmTLpJFchhBD/J1vd6mHLuZcvnpMmbboEfU/x3qrlS+nVrSMAs8aMpX2LFvpOyWA8f/mSdGnS6DsNIcRPJlvdxk62uk08QkJCsLKy0jrOuTOnaFzv/Z0ljevUYcWs2Tpv8IeEhmBlqX2uQgiRXMlWt4ncp42PB/fvcenieb3mY0hcW3jRZ8BfAHT9cxDb9+3Vd0oG49PGR/Dbt2zft0+v+QghhDA8c2dOo0rZ33n54rnWsYr9XpIlK9dhamrK+u3b6TSgv06X1Z6/coXcpUuz68ABncUUQghDJs0PPbp54zq1/qiAW2MX7t+7q+90DEbv/oNwa9ESjUZD844dOXVemk8JKfjtWyo3akjD1q3Yume3vtMRQghhIN4GB7No/hzu37tLswZ1CQjw1zpmxcp/MHvhUoyMjFi0ahX9R+pmtgjAopUrefbiBU3ateXo6dM6iSmEEIZMmh96lCWLE5kyZ8HvzWuaN6zLq5eyFWhCUKlUjJs8ncpVqxMWFkZdT09u35XmU0Kxsbam8G+/odFocOvcWZpPQgghEoSNrS3rt+4iTdp03Lh+DfcmLrx7907ruHXqNWDitNkATJ47l7EzZuggW5g+ahS1qlQhLCyM+l6eXLx2VSdxhRDCUEnzQ4+sbWxYuW4TTs5ZeejzALcmDXj39q2+0zIIJiYmzF+ygoKFi+Af4E9tD3eev3yp77QMgkqlYuboMdSs/L6gqyfNpx+mvu9D2OFjqB881HcqQgiRJDhnzcbaTduxt0/J+bNnaOXelPDwcK3junp4MmzU+2Hqg8eNZc7SpVrHNDU1Zc3ceZQrWZKg4GBqurpy6+4dreMK8aOk7hBJnTQ/9MwxTVpWb9yGQ6rUXL18kbYt3YmMjNR3WgbB2toa77WbcM6ajQePHlHPswVvdXAFSHyfiYkJq+fOpVihQvgF+FPL3U2aT/GgCQjEz7MDryrXwb9lJ15Vqo2fZwc0gYH6Tk0IIRK9vL/8ysr1m7GytubIoQN0auulk23Y23fuRs++A+HDXLFVmzZpHdPS0pItS5ZStEABXvv5Ua1pM3x8fbWOK0R8SN0hkgtpfiQC2bLnYMXajVhaWnJw/1769eyq04FZ4uscHdO8bz6ldODC1as0bd9Omk8JxNrKim3LlpPd2RkfX1/qtvAgWO58ipOA7v0JPxFz/Xf4idMEdOuvt5yEECIpKVLsd5atWo+ZmRk7t23hn726mUHVb9BgWrd7v6tcyx7ddTLcO4WtLTtWrCBvzpw8ef6MYRMn6iBTIeJO6g6RXEjzI5EoXLQ48xZ7Y2RkxO1bNwiROxASTNZs2VmxYQuWlpbsPXSIjv37SfMpgTimSsXOFStxTJWKpy9e8OT5M32nlOip7/sQfvQEREXFfCIqivCjJ+RWVCGEiKOy5Ssyd9Fyho8eT/VadXQSU6VSMWLsRBo3cyMqKopm7dtx+ORJreOmdkjFntVraO3qyqyxY3SSqxBxIXWHSE6k+ZGIVK1RixXrNrNh2x6sbWz0nY5BKVykGPOWrMDIyIila9cydOIEfadkMHJkzcqOFSs5vm07eXLk1Hc6iZ760bdvd1Y/fJRguQghRFJXs0492nXqGv1nXSx/MTIyYsrMuVSvWZvwiAjqeXpy7vJlreNmTJ+eeRMmYmVpFf2Y3K0qfjapO0RyIs2PRKZSlapYWf3/pPb0yWO95mNIqlavyfgp7ye0j5o6lQUrVug7JYNR5LffcM6cOfrPj58+1Ws+iZlJlszfft4pS4LlIoQQyUlgQAAutf5g4dxZWscyMTFh7mJvypSrwLuQd9R0deX67ds6yRNAURSGTBhPnRYeOhnYKsTXSN0hkhNpfiRSiqIwbtRwShcrwKWLshVoQnH3bBU9rKzzwAHs2L9f3ykZnK17dpOnbBnme3vrO5VEySSbM+blSoOxccwnjI0xL1cak6xO+kpNCCGStK2bN3DuzGn+GtCHtau0vwBiYWHBslXrKVSkKP6BAVRv3oz7D3WzRMDH15ep8+fzz9GjuHfprJM7VoSIjdQdIjmR5kciFRUVxeWL5wkNCcG9SQMe3L+n75QMRr9Bg2nm1gKNRkPzjh04e+mSvlMyKFdu3CAsLIwugwbqZFBccmQ/fRzmpUvEeMy8dAnsp4/TW05CCJHUeXi1pv2HJTA9u7Rn1/atWse0trFh1Yat5Mn3C89evKB682Y8e/FC67hZs2Rh0+IlmJmZsXnXLtr37YNGo9E6rhCxkbpDJBcqxUAnOwYFBWFnZ8edRy+wTZFC3+nE6m1wMA1qV+PqlUs4Z83G9n2HcHRMo++0DEJkZCSero05uH8vDikdOLFtGzmzZdN3WgZBURTa9enNkjVrsLSw4J/1G/i9cGF9p5UoqR88RP3wESZOWeTKi0g0goKDcciTm8DAQFIk0vOrPiSFukO8Pwf17NKBNSuXY2Zmxop1mylXoZLWcV88f0bd6pV56POAX3Ln5uCGjaRycNA67tY9u2nSrh1RUVF0a9OWSUOHolKptI4rRGyk7hCJUXzqDrnzIxGzsbVlxbpNZM7ihM+D+3g0bcA72QUmQZiamrJgyQp+K1gYP38/anu48/L1a32nZRBUKhWzx46jeqVKhIaFUc+zBXfu39d3WomSSVYnLCqUlQJECCF0RKVSMXHaLGrVrU9ERASero25cO6M1nHTpkvPui27SJc+Pddv36a2jrZ3r1e9BgsnTQZg+sIFjJw6ReuYQnyN1B0iqZPmRyKXJm061mzajoNDKi5fvED7Vh6yrjOBWNvYsHLdJrI4OXPPx4e6LTx4FxKi77QMgqmpKWvmzqNogQK89vOjlrsbL1690ndayZb6vg9hh4/JdnVCCPFhWOnsBUupUKkKoSEhdOvYVie1l5OzM2s27SClnT3nLl3CpWVLwsLCtI7r0bgxU0eMAGDYxIlc/vdfrWMK8TNJ3SH0RZofSUD2HDlZvmYDFhYW/LN3N4cP/qPvlAyGY5q0rN64jZT2KTl/5QrN2reX5lMCsbG2Zuuy5WRzcuL+w4fMWLRI3yklO5qAQPw8O/Cqch38W3biVaXa+Hl2QBMYqO/UhBBCr8zNzVnkvYY69RuwdNV6TExMdBI3T958rNq8HWsraw6fPEHzjh10Uld0adWaYX37sXDyZAr++qtOchVC16TuEPomMz+S0NrbPTu3ExgYSFNXd32nYnDOnz1NozrVCQsPp1Xz5sybMFHW1CaQO/fvs3TtWob364fx55PGhVb8PDsQfuI0REX9/0FjY8xLl8Bh2Vx9piaSMJn5EbukWHeILymKopPz/4ljR3FtWIfwiAjcGzZi8dSpGBnp9pqkrnIVQlek7hA/g8z8SKaq16oTo/EhU70TTtHiJZi72BsjIyMWr17NiCmT9Z2SwciZLRujBg6MbnwoioKB9mx1Sn3fh/CjJ2IWIABRUYQfPSG3ogohxGeOHDpAjcplefNG+xlgpcuWY8Hy1RgbG7Ni4wZ6/j1Yp+e2F69eUbpOHQ4cO6azmEJoQ+oOkRhI8yOJevXyBbWrVuDA/r36TsVgVK9Vh7GTpgEwfNIkFq9epe+UDE5ERAQtu3dn+ORJ+k4lyVM/8v328w8fJVguQgiR2EVGRtK/VzcuX7xA84b1CA4K0jpm1eo1mTF3ISqVillLljBkwgSd5AowftYszl66SINWLTl94YLO4grxo6TuEImBND+SqLmzpnPx/Dnaerlx+ZKc1BJKi5Zt6NGnPwAd+/dn14ED+k7JoOw9fJgVGzcwYvJkFq1aqe90kjSTLJm//bxTlgTLRQghEjtTU1O8124iVWpHrl6+iEezhoSGhmodt0HjZoyZOBWA0dOmMmXePB1kC6MHDuSP8uV5FxJCbQ93rt64oZO4QvwoqTtEYiDNjySq/59DKFehEiHv3uHepAEPfR7oOyWD0f/PITRp7k5UVBRN27fj3OXL+k7JYNSpWpWB3boD0GnAAHb+I8N/f5RJNmfMy5WGz+eoGBtjXq60bGMnhBCfyZkrN6s3bMU2RQpOnzxOWy83IiMjtY7r1bodAwcPA6Dv8GE6ubPU3NycDQsXUbJoUQICA6np5srdB1IrCv2RukMkBtL8SKLMzMxYtHw1v+YvwOtXL2nesC6vX8tWoAlBpVIxafrs91vghYZS28ODez4++k7LYAzv148WjZsQFRVF8w7tOXvpkr5TSrLsp4/DvHSJGI+Zly6B/fRxestJCCESs98KFsJ7zcboHfi6dWxD1OczDH5At1596dStJwAd+vVjw/btWse0trJi27LlFMiXj+cvX1KtWVMeP32qdVwhfpTUHULfZLeXJD51/cXzZ9T6owKPfR9RuGgxNmzbg5WVlb7TMghvg4NxqVWVa1cvk8M5K8e2bcMxVSp9p2UQIiMjqeflyb7Dh3FMlYpjW7eRI2tWfaeVZKkfPET98BEmTlnkyovQmuz2ErvkUneI9/7Ztwcv18ao1WrGT5lBi5ZttI6pKAp9e3RhxbLFmJqasnnJUqpXrKh13BevXlHBxYU7D+5TpVw59qxeo3VMIbQhdYfQJdntxYCkTZee1Ru3kTKlAxfPn+PPfr30nZLBsLG1ZeX6zWTO4sRdnwfU8/QkJDRE32kZBFNTU9bOm0/h/Pl59eYNDVq1RK1W6zutJMskqxMWFcpKASKEEHFUpWp1Zs5fTJPm7jR399RJTJVKxbjJ06nr0pDIyEgatWnN8bNntI6b1tGRPWvWUKFUaeaO191QVSF+lNQdQl/kzo9kcgXm7OmTDOrbi0Xea3BydtZ3Ogblzn+3qftHBfwDA6j9xx9sWLgIExMTfadlEJ6/fEktN1fG/z2EymXL6jsdEQ/q+z6oH/nKVZ9kSO78iF1yqzvEzxMREYGXWxMO7t9LCltbDm7YSMFff9V3WkIkWVJzJG9y54cBKl6iFPuOnJTGhx7kzJWbZWs3YmFuzo79++k6aBAG2lNMcOnSpOHc3n3S+EhCNAGB+Hl24FXlOvi37MSrSrXx8+yAJjBQ36kJIcQPi4qKom+PLixfslDrWGZmZixctooSJUsTFBxMtebNuX33rk7y/GjL7t00bttGJwNbhUispOYQn5PmRzJiZPT/v869u3awbrVsBZpQipcoxeyFy1CpVCxYuYLR06bpOyWD8enP/c07d/h7/HhpPiViAd37E37idIzHwk+cJqBbf73lJIQQ2tq+ZSPeSxfRv1c3tmxcp3U8Kysrlq/ZSP7fCvLG7w3Vmzfj0ZPHOsn1jZ8fXt27sXnXLlr26K6Tga1CJEZSc4jPSfMjGbpw7gwt3ZvSq2sHDh3Yr+90DEbNOvUYNX4yAEMmjGfZ2rX6TsmgBAYFUbGBC6OnTWXU1Kn6TkfEQn3fh/CjJ+DzQjsqivCjJ1A/eKiv1IQQQiv1GjTGq017FEWhS/vW7N+7W+uYKezsWL1pGzly5sL36VOqN2vGy9evtY6bysGB1XPnYWJiwpotW+j2559y0UAkO1JziNhI8yMZKlSkGC6NmqBWq2ndojlXL8tWoAmlVdsOdO3ZB4B2ffuw59AhfadkMOxSpGBon74ADJ04gSVrVus7JfEZ9SPfbz//8FGC5SKEELqkUqkYPX4yDRo3Ra1W09bTlVMnjmsdN3VqR9Zu3kHGTJn57/59aro2J0AHt+zXqFSJ5dNnoFKpmOe9nD/HjtE6phCJidQcIjbS/EiGjIyMmDJzHmXKVSDk3Tvcmrjw0MdH32kZjEF/D6dRk+ZERUXRpF1bLly9qu+UDEYHT0/6deny/r/79WP3wYP6Tkl8wiRL5m8/75QlwXIRQghdMzIyYtrsBVStXouwsDA8mjXgyuWLWsfNmCkz67bsJHWqVFy+fp16XrrZXa5JvXrMGTcegPEzZzJ+1kytYwqRWEjNIWIjzY9kyszMjMXea8j3S35evXyBa6O6vHmj/a2S4vtUKhWTZ86lXIVKhISEUMvdjfsP5da6hDJqwEDcGzYiKiqKZu3bcf7KFX2nJD4wyeaMebnSYGwc8wljY8zLlZYJ7EKIJM/U1JR5S7wpVaYcb4ODadGsISEh2jcqsufIydotu0hha8uJs2dp3LYtERERWsdt4+bG2L/+AmDQ6NH8c/So1jGFSAyk5hCxSZLNj/Xr11OvXj0yZcqEtbU1BQsWZPHixbJe8TMp7OxYtWELGTNl5t7dO3g2b0RoaKi+0zIIZmZmLFq+ml9+/Y3Xb95Qy82N135v9J2WQVCpVMyfOJEq5crxLiSEui08ePBIbm1MLOynj8O8dIkYj5mXLoH99HF6y0mI75G6Q8SHpaUly1dvoETJ0kyYOgsrKyudxP0l/2+s3LAVS0tL9h46RIuuXXUyrLRPx04M6NqNTl5eVCpTRie5CpEYSM0hPqdSkuCZu2TJkjg7O1O/fn0cHR3Zv38/48eP5++//2bIkCFxihEUFISdnR13Hr3A9jv7ASd1t2/dpG61SjRo0pSRYydh/HkHVPw0z589pdYfFXjy2JffCxdh/7q1WFnqpggS3xb89i0VG7hgY2PD5sVLSGlvr++UxCfUDx6ifvgIE6cscvUlmQkKDsYhT24CAwNJkUzOr1J3iB+hKAoqlUrncY8cOoBHkwZEREbQ2tWVueMnaP0+H/858DPyFULfpOZI3uJTdyTJ5sfr169JnTp1jMfatWvH2rVr8ff3j7H15dcYWhHy5LEvGTJmkpOaHvx3+xZ1q1YgIDCQutWqsX7BQmlAJZCXr1+TwsYGCwsLfacihMFIjs0PqTuEth76PGDIoH5MnT0fe/uUWsfbuW0Lbb3c0Gg09GzfnvGD/9ZZjRcREUGHfv3wbNqU8iVL6iSmEEL8LPGpO5LkspfPCxCAQoUKERQUxLt37/SSU2KXMVPm6JNiZGSkTrZgE3GTK3celq7egLmZGdv27qX7X3/JrdIJJE3q1DEaH9v37UOtVus1JyFE0iN1h9CGoii09XJnz64duDWuz7u3b7WOWatufSZNnwPAlHnzGD1tmg4yfW/S3LksX7+O+l6eMrRdCJGsJMnmR2yOHz9OxowZsbW11XcqiVpkZCQeTRvg0bQB69es0nc6BqNEqTLMWrAUlUrF3OXLGDtjhr5TMjhDJozHpaWXNJ+EEDohdYeIK5VKxbQPd3xcOHeWlu5NCQ8P1zpuc/cWDB/9freWIRPGM2vJYh1kCz3btaN8yVIEv31LTdfm3LxzRydxhRBC35JF8+P48eOsWbOGPn36fPWY8PBwgoKCYnwZIlNTU/Lk+wWAnl3ac/SwbAWaUGrXc2HE2IkADB43Fu/16/WdkkEp+MuvqFQq5nkvl+ZTEqS+70PY4WOoH8jOSUL/pO4Q8ZU33y+s2rAFK2trjh4+SKc2njq5E7Fdp6706jcIgO5//cXKjRu1jmlhYcGWpUspWqAAb/z9qd6sGT6+vlrHFSIpkbojeUryzY/Hjx/TtGlTKlasSLdu3b563JgxY7Czs4v+ypz523s/J2d/Dx9N/YaNUavVtPJoxr9XZSvQhNKmfSc6desJQNs+vdl35LC+UzIYLjVrMnXECPjQfFq+bp2+UxJxoAkIxM+zA68q18G/ZSdeVaqNn2cHNIGB+k5NGCipO8SPKly0OMtXbcDMzIyd27fSu1snNBqN1nH7DvyLNu07AdCqZw+279urdUxbGxt2rFhBvly5ePL8GdWbNeP5y5daxxUisZO6I3lLkgNPPwoICKBs2bKoVCqOHTuGnZ3dV48NDw+PcYthUFAQmTNnNtjBY+Hh4bg2qseJY0dIkzYdO/YdJouTTD9OCBqNhs7tWrJ5wzqsraw5vHkThX7Nr++0DMaAUSOZOHs2JiYmbFu+nKrlK+g7JfENfp4dCD9xGj7dztHYGPPSJXBYNlefqYmvSI4DTz+SukPowp6d22ndojlRUVH8OXQEXXt8/Q6iuNJoNPTo3J51q1dgbmbGdu8VOtm29smzZ5R3qY+Pry/FChXi5PYdMjxfJGtSdyQ9yX7gKUBoaCi1a9cmMDCQ3bt3f7MAATA3NydFihQxvgyZubk5i73XkCffL7x88Ry3xvXw9/fTd1oGwcjIiKmz5lO6bHnehbyjjoeH3E6agEYPHIRrgwao1WqatG3LxWsyzC2xUt/3IfzoiZgFCEBUFOFHT8itqCJBSd0hdKV6rTpMmTmPgoWL4OrhpZOYRkZGTJ4xh5q16xIeEUH9ll6cvXRJ67gZ06dn75q15MqWjTGD/pTGh0jWpO5I/pJk80OtVtOkSRNu3rzJnj17yJgxo75TSpLs7O1ZtX4LGTJm5Nmzp9y785++UzIY5ubmLFmxlrz5fuX5y5fUcnPljZ80nxKCkZERCydNplKZMrx9946zF7UvDsXPoX707aag+uGjBMtFGDapO4SuNWnuxo59h0mV6sudhH6UiYkJcxYtp1yFSoSEhFDLzY1/b93SOm52Z2euHjpMhVKldJKnEImV1B3JX5JsfnTq1IkdO3bw559/EhQUxOnTp6O/dDE925BkyJiJVRu2sWXnfooWL6HvdAxKCjs7Vm3YQsZMmbh97x4urVoSGhqq77QMgpmZGesXLGTzkqV08PTUdzriK0yyfHtGgolTlgTLRRg2qTvEz2BiYhL9395LF7F21QqtY368uFK4aDH8AwOo4dqc+w+1v1r9aa7Xb9+m84ABsnW8SHak7kj+kuTMD2dnZx5+5Rf5gwcPcHZ2/m6MoKAg7OzsZO1tLF69fEFqxzRya2MCuX3rJnWrViAwKIj6NWqwdt58jI2N9Z2WwQkKDsbExBgrSyt9pyI+IWtvk57kOPND6g7xMx0/eoRGdatjZGTEgqUrqVW3vtYx/f39aFCrGjdv/EvWLFk4snkLGdKl0zpuaGgoucuU5unz53g2acKCSZMxMkqS11KFiJXUHUlPsp/54ePjg6IosX7FpQARX3f29EnK/V6Y2TOm6DsVg5E7T16Wrt6ImakZW3bvpuffg0mCPckk7cmzZ1RwccGjSxeiPl/nKfTKfvo4zEvHvCvNvHQJ7KeP01tOwvBI3SF+ptJly9Hc3RONRkPHNp4cOXRA65gpUzqwZtM2nLNm48GjR9Rwba6T5bWWlpbMHD0aY2Njlq1bR5+hQ6VmEcmK1B3JW5Jsfoif58qli/j7+zHi7z/ZuG61vtMxGCVLl2HmgsWoVCpmL13KhNmz9J2SQfF57Mvt+/fYumcPPQb/JYVcImJkZ4fDsrk4HtxByiWzcTy4A4dlczH6zrBJIYRIKlQqFROnzaJ2PRciIiLwcmvC+bOntY6bNl161m3ZRbr06bl++za1W3gQ/Pat1nHrVqvOosnvL5JNX7SQ4ZMnaR1TiMRC6o7kTZofIoa2HbvQvlNXAHp0bs+xI4f0nZLBqFu/IcNGve8qDxo9mlWbNuk7JYNRulhxlk+fgUqlYs6yZdJ8SoRMsjphUaEsJlllS24hRPJjbGzMrPlLqFCpCqEhIbg1duHGv9e0jpvFyYm1m3eS0j4l5y5dwqVlS8LCwrSO696oEVNHjABgxOTJTF+4UOuYQiQmUnckT9L8EF8YMnIsdV0aEhkZSSuPZjo5+Yq4adepK+07dwOgda+e/HP0qL5TMhgNa9dm0tBh8KH5tGLDBn2nJIQQwoCYm5uzyHsNxX4vQWBgAE0b1OH161dax82dJy+rN2/HxtqGwydP0LxjByIjI7WO26VVa4b26QtAryF/s2X3bq1jCiHEzyTND/EFIyMjps9ZSMnSZQkOCsK1cT0e+8rWTgllyIgx1GvQiMjISBq1acOV69f1nZLB6NamDT3btwegTe9e0nwSQgiRoKytrVmxdjO//Pobrdp20NlWuAULFWHZmo2Ym5mxfd8+2vTqhUaj0Trunz160KNde8qWKEGlMmV0kqsQQvwsSXK3F12QqevfFxgQQN0albl98wbN3T2ZMlMmHCeU8PBwmjWow6kTx0ifNi3Ht23HKVMmfadlEDQaDR5dOrN261by5szJ5QMHZfcdIeIhOe72ogtSd4j4CAsLw8LCQudx9+3ZRSv3pqjVajp6ejJ91Gitd/dTFIXw8PCfkq8QQnxPst/tRSQMO3t7Vq3fgmfrdoyZOFXf6RgUc3Nzlq5cR+68+Xj24gW13d3w8/fXd1oGwcjIiMVTptLO3YNdK1fFaHyo7/sQdvgY6gexb3kphBBC6MKnjYR3b9/yV//eBAUGah23avWazJi7MHrG1d/jx2sdU6VSxch3yrx5nDp/Xuu4QuoOIXRN7vyQKzDxpiiK1lcJRNw8ffKYWn+U59nTp5QuXpy9q9fIlRU90AQE4t+tHxHHTkY/Zl6uNPbTx8n0byE+I3d+xE7qDvGjPJs3Zu/uHZQoWZpVG7dhZWWldcxlixfQv9f7GWPjBg+md4eOOsgUlq9bR6uePbC3s+PA+g0U+OUXncQ1NJqAQAK69yf86Inox6TuECJ2cueH+CkURWHUsMH8PbCvbAWaQDJkzMSq9VtJYWvLibNn8ezWTSdrdEX8eDfzoNGhPYR98nMffuI0Ad366zUvIYQQyV+fAX9imyIFp0+doK2XGxEREVrH9GzVlj+HDAeg/4gRLFq1UgeZvh8eXrJoUQICA6np5sqd+/d1EtfQBHTvT/iJmNsdS90hhPak+SHi7PzZ08yYMpEFc2cxd+Y0fadjMPL+8itLVm3AzNSMjTt30HvoEGk+JaDXV67R+9oFjmki6a5+S9THzz4qivCjJ+RWVCGEED9V/gIF8V6zEUtLSw7s20O3jm2IiorSOm7Xnn3p3L0XAB369WP9tm1ax7S2smL7cm8K5MvHi1evqN68GY+fPtU6riFR3/d5f8fH53/HUncIoTVpfog4K/Z7Sf4eMRqAYYMHsmXjOn2nZDBKly3H9LkLAJixaBGT58nw2YRi4x/AfBNbzIBdSgTDokJiNJ/UD5PmTkiyjlgIIZKOEqXKsMh7DaampmzZuJ6BfXro5ELIX0NH4uHVGkVRaNGtK3sOHdI6pr2dHbtWrSZn1mw8fPyY6s2b8erNG63jGgr1I99vPy91hxA/TJofIl46dulBm/adAOjWsS3Hjx7Rd0oGo37DJgwdORY+3KK6ZstmfadkEEyyZKakkSlTjG0AWKIJY64m7P/PO2XRY3bxpwkIxM+zA68q18G/ZSdeVaqNn2cHNDoYpCeEEOLnqVSlKrMWLEGlUrF8yUImjh2ldUyVSsXYSdOo37AxkZGRNGrTmuNnz2gdN62jI3vXriFzhgzcunuXWm6uOlmuYwhMsmT+9vNSdwjxw6T5IeJFpVIxbPR4atWtT0REBC3dm3Dz+r/6TstgtO/cjbYdOgPQskcPDh4/ru+Ukj2TbM6YlytNXTMr/jZ+P2RudFQIm5VIzMuVxiSrk75TjBdZRyyEEElX3foNmTB1Jo5p0lKjVh2dxDQ2Nmb6nIVUrlqdsLAw6rZowaV/r2kdN0vGTOxZvYa0jo54Nm2KmZmZTvJN7j7WHXyy2xwAxsZSdwihJdntRaau/5CwsDCaudTm9KkTZMiYkWNnr2Btba3vtAyCRqOhXUt3dmzdjK2NLUc2b+a3fPn0nVaypgkMJKDb+6nrw9TvWKgJw1Sl4uTGTRT6/Xd9pxdn6vs+vKr89WLZ8eCOJFdUicRHdnuJndQdQpeCAgNJoeNdP0JCQnBtWJfTp06QyiEVRzdvJneOHFrHDQwKwk5+5uPl07rjo6S424vUHSIhyG4v4qezsLBgyap1/Jq/AH8NHSmNjwRkZGTEzHmLKVGyNMFvg6nj4YHvkyf6TitZM7Kzw2HZXBwP7mDysiU0qlSZzm3bUaBYMX2nFi/JdR2xEEIYmk8bH2dPn2TLpvVax7SysmL5mo38VqAQb/zeUL15Mx49eax13E8bH/4BAYyYMlknA1uTs0/rjpRLZuN4cAcOy+YmqcYHUneIRMhE3wmIpCtlSgf2HDqOiYn8GCU0CwsLlq5eT93qlfnv1k1qe7hzZPMW7JPYSTGpMcnqhElWJ1aUK50kf+6T2zpiIYQwdDdvXKepS20iIyOxsrKmavWaWsVLYWfHqo1bcan5B3f+u031Zs04tGkzaR0dtc41KiqK6s2bceHqVZ49f8GssWNRqVRax03OPtYdSZXUHSKxkTs/hFY+/Qfg82dPGTtyKBqNRq85GQp7+5SsWr+FdOnTc/32bRq0bkV4eLi+0zIIn/7ch4eHM2jMaPwDAvSaU1xos45YprQLIUTikztPXmrWqYdaraadlxsnjx/TOmbq1I6s3byDTJmz8N/9+9R0bU6ADoZTGhsb06djJ4yMjJi/wptBY0ZrHVMkblJ3iMRGmh9CJyIiInCpVZWpE8cxbPBAfadjMDJlzsKq9VuxtbHl6KlTeHXvJs2nBNamdy/Gz5yJS6uWhIWFxeEV+mU/fRzmpUvEeMy8dAnsp4+L9XiZ0i6EEImXkZERU2fNp1qN2oSFhdGieUMuX7qgddwMGTOxbstOHFOn5sqNG9Rp4cG7kBCt4zauW5c5496fbybMmsW4mTO0jikSN6k7RGIiA09l8JjObFy3ms7tWgEwbNQ42nfupu+UDMbxI4dp3qgukZGRdG/bjklDh+o7JYNx9cYNKjRwISg4mEa167BqzhyMjBJ/X1n94CHqh48wccryzSsvfp4d3k9p/3R9trEx5qVL4LBsbsIkK5IUGXgaO6k7xM8UFhaGW+P6nDh2BAeHVGzetZ/cefJqHffGv9dwqVmFwKAgqlaowJYlS3Wya8vkuXPpN2I4ALPGjKV9ixZaxxSJm9Qd4meRgadCLxo2ac6fQ0cAMOTP/mzdvEHfKRmMMuUrMG32fACmLZjP1Pnz9Z2SwfgtXz42LFyEqakpG3Zsp8+wYfpOKU5MsjphUaHsd285DT96ImYBAhAVRfjRE3IrqhBCJBIWFhYsW7WegoWL4Of3hqYutXjy+NvDJuMi36/5WblhK5aWluw7fBiPLl10Mqy0V4cODOzWHYAugwayfts2rWOKxE3qDpEYSPND6FSX7r1p1bYDAF3bt9bJ2lMRNw0aN+OvYSMB6DNsKOu2btV3SgajUpkyLJk6FYDpCxcweW7yuDIhU9qFECLpsLG1ZdWGreTOm4/CRYqR2jGNTuIWLV6CpavWY2ZqxsadO+jQry+6uHF8eL9+dPLyIlP69BT45Red5CqSNqk7xM8mzQ+hUyqVihFjJ1KrTj0iIiJo6daEWzdv6Dstg9G5W6/o5pNX9+4cPnlS3ykZjGb1XRg3eDAA/UYMZ+3WLfpOSWsypV0IIZIWB4dUbNqxl/lLV2Jubq6zuOUrVmbOomUYGRmxZM0a+g4frnUDRKVSMXXESM7s3kOu7Nl1lqtIuqTuED+bND+EzhkbGzNz/hKKlyhJugwZsLW11XdKBuNj86lm7bpEREbQoFVL/r11S99pGYxe7TvQtXVr7O3sSJ82nb7T0Zo2U9qFEELoR6pUqaN3JVMUhYXzZvPu7Vut49aqW5/JM97f2Th1/jxGT5umdUwjIyPSpE4d/ed9Rw5z/soVreOKpEnqDvGzSfND/BSWlpYsW72Brbv/IWOmb3dxhW4ZGxsza8FSipcoSVBwMLXd3Xj89Km+0zIIKpWKiUOGcn7vPsqVKBGHVyR+8Z3SLoQQIvEY+tcA/urfGy+3JjrZkayZmwcjxkwAYMiE8cxaslgHWb538Phx6nl6UsvNlRv//aezuCJpkbpD/Eyy24tMXU8wx48eodjvJXR6G6b4On9/P+pWq8Sd/26TP29eDm/ajJ38rCe467dvY2drS6YMGfSdilbiOqVdCNntJXZSdwh9uHjhHI3r1eTd27fUqFWHBctWRd8Voo0JY0YyadwoAJZMnYZH48Zaxwx++5Y/mjbh/OXLZEiXjiObt5A1iyxzMFRSd4i4kt1eRKKzbPECGterQY/O7dBoNPpOxyCkTOnAqg1bSZsuHddu3qRh69aEh4frOy2DcvLcOcrVr0dtD3cCkvj+9HGZ0i6EECJxKVykGMtWrsfc3JzdO7fTq2tHndRhfQb8SdsOnQFo07sX2/bu0TqmrY0NO71X8Evu3Dx9/pzqzZvx7MULreOKpEnqDvEzSPNDJAgn56wYGxuzecM6Rg0brO90DEbmLE6sXLcFG2sbDp88QetePaX5lIAypk+PlaUl/966Jc0nIYQQelGmfAXmL1mBsbEx61av4O+B2u/WolKpGDZ6PE2auxMVFUWz9h04ePy41rmmcnBg96rVZM2ShXs+PtR0c8XP31/ruEIIgTQ/REKpUKlK9JCsWdMms3DebH2nZDB+/a0Ai1aswcTEhDVbtjBg1Eh9p2QwnDJlYof3CmxtbDhy6iQte3SX5pMQQogEV61mbabNXgDAwnmzmTRutNYxjYyMmDxjTvSQ9fotvThz8aLWcTOkS8feNWtJnzYt127epLaHB+9CQrSOK4QQ0vwQCaZJczcGDh4GwOABfdixdbO+UzIY5StWZsrMeQBMnjuXGYsW6jslg1Hgl1/YsHARpqamrNu2jf4jR+g7JSGEEAaoUdPmjJ4wBRMTE3LkyqWTmCYmJsxZtJzyFSsTEhJCLXc3newyl83Jid2rVpPS3p48OXJgIfPihBA6IANPZfBYglIUhQF9erBs0XzMzc1Zt2Unv5csre+0DMb0yRMYPfxvVCoVa+bOo2Ht2vpOyWCs2rSJFl27ADBp6DC6t22r75S+oL7vg/qRrwwXE1qRgaexk7pDJBY+D+7jnDWbTmO+e/eOpi61OH/2DOnSpOHI5i1kd3bWOu79hw9xzpwZIyO5XpscSd0hdEEGnopES6VSMXr8ZKrXrE14eDiHDx7Qd0oGpWvPPni1aY+iKLTo2oVjZ87oOyWD4dqgAaMHDQJg5z/7iYqK0ndK0TQBgfh5duBV5Tr4t+zEq0q18fPsgCaJD2kVQgjxpU8bH0+fPObA/r1ax7S2tmbFus3kzfcrz1++pHrzZjx59kzruNmcnKIbH1FRUSxbu1aWjyYDUncIfZHmh0hwxsbGzF64jFnzF9P/z7/1nY5BUalUjBo3iRq16hAeEUF9L09u/PefvtMyGH07dWbJ1GlsX+6NsbGxvtOJFtC9P+EnTsd4LPzEaQK69ddbTkIIIX6u58+eUrd6ZVq6NeHIIe0vRtnbp2Tt5u04Z83Gg0ePqOHanDd+fjrJVVEUPLt1pXWvnvQeOkTrga1Cv6TuEPoizQ+hF1ZWVjRs0jz6z+Hh4bwNDtZrTobiY/OpaPHfCQwKora7G0+fP9d3WomWWq3m7bt3Oim0VCoVHo0bY/7J2mVdFYY/Sn3fh/CjJ+DzO1Giogg/egL1g4f6Sk0IIcRP5JgmLYWKFCUiIgIvtyacO3NK65hp0qZj3ZZdpM+QgRv//UctdzeC377VOq5KpaJGpcoAzFi0iOGTJ2kdU+iH1B1Cn6T5IfQuKDAQ10b1aOnelIiICH2nYxAsLS1ZvmYjOXLm4tGTJ9R2dycwKEjfaSUaoaGhLFu7lhK1amLhlAX7XDmxyZ4N986dOHHurE4aIRqNhl5DhlCk6h86uTX4R6kf+X77+YePEiwXIYQQCcfY2JhZ85dQsUpVQkNCcG/SgBv/XtM6bhYnJ9Zu3klK+5Scv3KF+l5ehIaGah3XrWFDpo18v2PdiMmTmbZggdYxRcKTukPokzQ/hN75PnrIpYvnOXbkEL26dJBbGROIg0MqVq7fimOatFy9eYPGbdtI8wm4eecO+StWoHWvnqRKmZI548bjPXMmg3v24vzlK5SvXx+3Th0JCwvT6n2C375l76GDPH72jNoe+ms+mWTJ/O3nnbJ88Zj6vg9hh4/J1RkhhEjizMzMWLR8NcVLlCQwMICmDepw/95drePmyp2H1Zu3Y2P9fqv35h07EBkZqXXczi1bMaxvPwB6Dx3C0rVrtI4pElZ86w6pOYQuSfND6N0v+X9j0fLVGBsbs2HdakYNG6zvlAyGk7MzK9ZtwsrKioPHj9Omdy+DHiTm4+tLlcaNsLay4vqRo+xcsZK27u40d2nAgK5duXHsGCtmzWLbvn24d+ms1WdllyIFO1asJK2jI9du3qRRmzaEh4fr9PuJC5NszpiXKw2fzyAxNsa8XOkY09dlQJkQQiQ/VlZWeK/ZxK/5C/Dq5Qsa16vJk8ffvjofFwULFWH52k1YmJuzY/9+WvfqqZMaY1D37vRs3x6Adn36sGnnTq1jioQT17pDag7xM0jzQyQKFSv/waTpcwCYOXUSixfM1XdKBqNAwcIsXL4aExMTVm3axJ9jx+g7Jb3pO3wY5mZm7F+3ntw5csBnVxyMjIxoVt+F1XPmsGX3bq0LrqxZsrDd2xsba2sOndBf88l++jjMS5eI8Zh56RLYTx8X47GA7v0JPx5zTbgMKBNCiKTPzt6e1Zu2kT1HTmxsbXU2lLtUmbIs+KTG6DH4L63v8FWpVIwf/DetmjfHzMwMCwsLneSaWBjCnQ5xqTuk5hA/g0ox0DUGQUFB2NnZcefRC2y/sx+wSDiTx49h/OjhqFQqFi1fTc069fSdksFYu2oF3Tu1BWDayJF0btlK3yklqMdPn5K9xO9MHT6Cjl5eaAIC3594j56IPsa8XGnsp4/DyM6OCg1cMDYy5sCGDVq/974jh6nbogVqtZo+nTox9s+/tI75I9QPHqJ++AgTpywx7vgAiLh8jTcurl99rePBHV+8JjFS3/dB/cg31u9R6EZQcDAOeXITGBhICjm/RpO6QyQFTx77YmllhYNDKp3G3bxhLZ3atkRRFAZ07cbIAQO0jhkVFcWN//4jf968OslR375XdyRHX6s7kkvNgdQdCSI+dYfc+SESlZ59B+Dh1fr9ybFPD50MyBJx09TVnf5/DgGgx+DBbN61S98p6YyiKJw6fx7Prl1J/1t+rLNlJV3+X2nRtQsnz51DURTWbtuKmakpbg0bQhy2YWvv4cGRUyfxffJE6/yqlq/AgonvJ9dPmjOHqzduaB3zR5hkdcKiQtlYT86Bg0d+87WJfUCZ3D4rhBDflzFT5hiNj4P/7CMkJETruC6NmjJ20jQAxs6YzsQ5s7WOaWxsHKPxcffBA72dP3XBELd//VrdkdRrDqTuSLSSbPPj7t27dOjQgYIFC2JiYsKvv/6q75SEDqhUKsZMnIqHV2vWbt6BpaWlvlMyKD369KdFyzYoioJHl86cOHdW3ylpLfjtW+p5elK2Xl1OXThPW3cPxv31F+1btODMxYuUq1+P2h7uPHjki1OmTKSwtY3TNmz5cuUG4OmLFzrJ06NxY8b+9Rdr583nt3z5dBJTV9T3fVD/++2CMrbBqImJIRaVQnek5hCGaOXyJbg1rk8bT1edDET3bNWWP4eOAGDAyJEsXLlSB1m+d+vuHSo0cKF682bcuX9fZ3ETimz/+n/JoeZA6o5Ey0TfCfyo69evs3PnTn7//Xc0Go1BD2lMbkxMTJgwdWaMxxRFQaVS6S0nQ6FSqRg9YQovnj9n7+4d1PP05NjWbeTNmVPfqf2Q8PBw6nq24Mr166ybv4D6NWpgZPT/nu+Q3n3YtncvrXv15NrNm5ibmUEct2GLTPn+tjpTU939Gu3TsVOMPyeWn/vvfR4mv+ZL1LdyRheVn/ukqEzM+Qv9k5pDGKIcOXNhYWHBwf176dqhNbMXLNV6FkjXHn0IDAhg5tRJdOzfjxQ2NjSpp/0S53SOaUjn6Mjl69ep1qwpRzZvIXPGjFrHTShxqTsM5TyV1GsOpO5I1JLsnR916tTB19eXDRs2ULhwYX2nI36ik8eP0ahuDd4GB+s7FYNgYmLCnEXLKFy0GAGBgdRyc+Xp8+f6TuuHTF+0kDMXL7LDewUNatWKbnx8HCameehL/Ro12LVyFS9fv+bBo0fc8/GJ0zZs/xw9ioWFBdmy/JyTl++TJ1Rs2ICbd+78lPjx8b3Pw25U4t6hKS5FpRDfIjWHMES/lyzN4hVrMTU1ZeumDQzo3V3rYaUAfw4ZQYtWbVEUhRbdurLrwAGtY9rb2bFr1WpyZcvGoydPqN68Ga/evNE6ri7EZYDpj2w7n1wl9ZoDqTsStSTb/Pj06q1IvsLDw+naoRUnjh2hjaerTvaIF99nZWXF8jUbyZY9B4+ePKFuCw+CkljzKSoqinnLl9O8fn1KFSsG31h/WSx7dlxdXFCpVMxeuuS727CpsmRivvdymtWrh/1PGkLWe+hQjp85kyiaT1/9PIyMMC9XGrPfEvcSACkqhbak5hCGqmLlP5i1YAlGRkZ4L13EyKG62a1lzIQp1G/YGLVaTZO2bTh25ozWuaZJnZo9a9aQOUMGbt+7Ry03VwKDgrSO+6PiM/MhPtvOJ3dJveZA6o5ETc7mIlEzNzdnkfcaLK2sOHzwH3p17aiTqw7i+1KndmT1xm2kTpWKy9ev07htG52s+U0oR0+fxsfXl3YeLaIf+9b6y86t3g/anbVkCYdOnPjqNmx208bSZ9hQHj97RqeWLX9a/rPHjY2+glXHw13vzadYP48yJb/YDjcxkqJSCCF+XN36DaOXI8+aNpnpkydoHdPY2JgZcxdRpVoNwsLDqduiBRevXdU6bpaMmdizeg2OqVJx8do16nl5EhKq/cDWHxHfmQ9x3XbeECTlmgOpOxI1g2l+hIeHExQUFONLJA0FCxVhwdKVGBsbs37NSsaNGqbvlAyGk3NWVmzYipWVFQeOHaNdnz5Jpvn0cReWQh8GE35vmNivVjYA5Myaldoe7kxetRLVtLE4HtxByiWzcTy4g6cDe+A+oD8zFi1i+shRFM7/20/LP7VDKnasWElaR0eu3Lih9+aTkZ0dDsvmxvg8HJbNTTLb70lRKRKa1B0iOXFr0ZIhI8YAEBQUqJNawNTUlAVLV1KiVBmC3wZTvbkrt+5qv9Qzd44c7Fq1ihS2toSFhxMWFq51zPj6kQGmSf08q0vJ4bOQuiNxSrIDT+NrzJgxDBsm/2hOqqpUrc6EqbPo1bUDUyeOI32GjHi2aqvvtAxCwUJFWLBsFS2aNWTFxg1kTJ+eUQMH6jut7/p4m/rHwYTfWn/5TIlixuT3W82+8ffH1tqaQaNHM2T8eCqWKYONlTUPnzzm3KVLpEuTBu+ZM2nu0uCnfw/ZnJzY7u1NxQYNOHDsGG1692LptOl6vQXfJKtTkrxi8bGQUj94+H5wnFOWJPl9iKRD6g6R3HTs2oOChYtSsnQZncW0tLTEe81GGtatwdXLF6nerBlHtmzFKVMmreIW+jU//6xfT86s2bC1sdFZvnGlzQDTpHqe/RmS8mchdUfiZDB3fgwcOJDAwMDoL1/fb/9SEomPq4cnfQb8BcDAPj04efyYvlOKl8jISHZs3cyoYYP5e2Bfpk0azz0dXOFICJX/qMbEabMBGDdzBnOXLdN3St+VK3t2AI6dfb+OOLb1l1GKwjD1O0pGBjBjzy4AKpYuQ+0//iCFjQ0RERH8e/Mmr/ze4JwpE6vnzOXB2XMJ0vj4qHD+31g7fwHGxsas2rSJCbNnJdh7J0cmWZ2wqFBWChDx00ndIZKjTxsfYWFhnD97+pvHx4VtihSs3riVnLnz8PjZM6o3a8aLV6+0jls4/28xGh9HTp1KsLtXZeaD+EjqjsTFYJof5ubmpEiRIsaXSHp69x+EW4uW1HVpSJFixfWdTpxoNBpmz5hC0fy5aOPpypaN6zl86AAzp02idNHfaFK/Ftd1sM71Z2vu3oK+A99P2O72159s3bNb3yl9U7GCBfktb77oRs3n6y8VRaF31FuWaMIYmCMvVcqV55fcuVkxaxYLJ0/B9+IlZo4Zy2t/fyzMzVk+YyaN69bF1NQ0wb+X6hUrMn/CRAr+8gsejRon+PsLIeJP6g6RnL17+xa3xvVpWKc6J44d1TpeqlSpWbtpO5kyZ+HOg/vUaN6cgFgGg/6o8bNmUrlRQwaOHqWzmN8iMx+ESJwMpvkhkgeVSsW4ydOZvWAp5ubm+k7nuzQaDT06t2f44EH8Ua0mB4+f5dzVWxw9fZFr/z1kxtxFvHjxnLo1KnP65HF9p/tdvfoNxN2zFRqNBrdOnTh57py+U/oqlUpFl9at2LpnD+u2boXP1l9u1ESwURPB7F+L8GuXDuz4Zz+dW7Yi6sFDwg4fw/T5S9q3aMGWJUs5cOwYUxfM1+v349m0Kad27iJDunR6zUP8PHHZDlEIIRIDcwsLbGxsCQ8Pp0Xzhly+dEHrmBkyZmL91l04pknL1Zs3qNPCg3chuhlWmtrBAYCJs2czdsYMncT8nrjMfJDf+0KfDPHnT6UklemFnwkJCWHXrve3qc+aNYt79+4xefJkAMqXL4+jo+M3Xx8UFISdnR13Hr3AVq7GJFkajYbpkyfg6uFJmrSJ7x+FM6ZMYPTwIcyav5gGjZsB8OhNCE/8Q8nkYElmByvevX2LR7OG3Pj3GkfPXEyU38en1Go1Xm5N+GfvblLa2XN82zZy58ih77RipSgKXt26sWbrFob07kNHT09S2tujfvCQUi3csHNwoMoff/D3+PE0rFqN6RHGRB47Gf1683KlsZ8+jrZDh3D45En+O3kK48+v4ujJmi2byZIxU/Q2viLp0gQEvt8V4OiJ6Mc+/uwlpeFuHwUFB+OQJzeBgYHJ5m4HbWsOpO4QevR53aErYWFhuDWuz4ljR3BwSMXmXfvJnSev1nFv/HsNl5pVCAwK4o/y5dmyRDcXvCbPnUu/EcMBmDl6DB08PbWOGRexzXxIbr/3RdKS3H7+4lN3JNnmh4+PD1mzZo31uUOHDlGhQoVvvl6KkORh6F8DmDtzGr8VLMzmHXux1sNQq68JDw+nUL4c1G/QiNETphAUGsnQzdc5e98v+pji2RwY6vILUWHBFPk1F5279aJ3/0F6zTsu3r17R8M61bh88QLOmTNzfNt20qVJo++0YhUVFcWAUSOZuXgxJsbG1KryB0YqWLd9O2ampmgUhU5eLRlw/xlRp87GnMxubIx56RLc69mBkrVqsnPlKqp953dLQti8axeN27bBwT4lx7ZuTbTNp4Skvu+D+pFvkhwo5ufZ4f12iLH87Dksm6vP1H5Icmx+aFtzIHWH0INv1R0pLHWzhPNtcDCN6tXg8sULpEufnq27D+Lk7Kx13AvnztC4Xk1CQkJoULMWq+bMwcRE+30a/h4/ntHTpqJSqVg+Y0aCzvD6VHL7vW+IpO5IPOJTdyTZZS/Ozs4oihLrV1yKEJE8eLZqi0Oq1Fy9fJE2Xm5ERkbqO6VoO7Zuwu/Na1q16wjA0M3XOf/AL8Yx5x/4MXTzdVKmdKBRk+Z4L12IWq3WU8ZxZ21tjffaTThnzYaPry91W3gQ/PatvtOKlbGxMRP+HsKDs+cY2K07z16+4MzFSwD0bN8Bn3PnGe/Zkqjjp766JV3BFPaYmppy98F9/XwTn6laoQLFChXCL8CfWu5uPHvxgpDQEO4+eMCd+/cJ+PeGwdzGqAkIxM+zA68q18G/ZSdeVaqNn2cHNDpcK/4z/ch2iCLhSc0hkqJv1R26YmNry6oNW8mdNx/Pnz2jqUstXjx/pnXcIsV+Z+mq9ZiZmrFp10469u+nk2Glw/r2pXPLlu/vDO3ene379mkdM76S2+99Q1s6IXVH0pZkmx9CAGTNlp0VazdiaWnJoX/20bdHlwSb5P09F86dJXfefOTImYtHb0I4e98PzWepaRQ4e98PX78QatSuy/Nnz3jyOGnsCODomIbVG7eRyiEVF69do2n7domq+fS5dGnSMKh7d45s3sK4we8Ht/bp2JF0adLEaUs6lUqVaH62rK2s2LZsOTmcs+Lj60uBypVI88sv5ClTmrxly5CxWhW8PFqwr0K1JHVC/hEB3fu/v3rxifATpwno1l9vOcVHXH72hBAivuJSd+iKg0Mq1m7ajpNzVvz9/Hj69IlO4parUIm5i5djZGTEkjVr6DNsmNbnYZVKxZThI3Br0JCoqChu6WHXveTyez+pNwF+lNQdSZs0P0SSV7hoceYtWYGRkRFrVi5n/OgR+k4JgNDQUKytrQF44h/6zWMf+/3/2NDQbx+bmGTNlh3v9ZuxtLRk3+HDdOjXN9E0CL7FKfP7LejOX70CcdiS7nZUJBEREThl+vZxCckxVSrq1agOgJ+/PxnTp2ddoRKsNbOnl7EVZzSR1FUHMfrwP7xp3UUnV2US29Wd5HD1QrZDFEL8DHGpO3QpXfoMrNuyiy279lOocFGdxa1Zpx5TZs4DYNqC+YyaOlXrmEZGRiycPJmty5bTt1NnHWQZP8nl9/63mgC6qhek7tC95PLz96Ok+SGSharVazJ+yvvp3VMmjMF76SJ9p4RDqlQ8ffKYqKgoMqa0/OaxmRwseez7vtPq8GEieVJRuEgx5i9dibGxMcvWrWPIhAn6Tum7ihYowK958jBv+XKIw5Z0Cw/8Q7o0aahesWK83uffW7eYs3QpE2bPYuHKlTx++lRn38PMxYuYNGcOXk2bYWVpyT0fH9ZduURJxYhOxpYcM7Wnv7EVU9UhTDt7SqurMon16k5yuHoh2yEKIX6GuNQduubk7EzeX36N/vPtWzcJCwvTOm5TV3dGjHlfWwydOIGZi7Wv8UxNTalVpUr0n4PfvuXO/YRZ2pocfu9/rwmgbb0gdcfPkxx+/rQhzQ+RbLh7tqJn34GYm5tjnzKlvtOhVp16PH/2jEMH9pMllRXFszlgpIp5jJHq/fCxzA5WrPJeRvESJRP9bi+x+aNajejm0+hpU1mwYoW+U/omlUpFR08vtu3dy55Dh+AbW9LdaePG0nVraevujqlp3AbE7TtymAoNXChYuRI9h/zNuJkz6TSgP9lL/E6jNq25euOGVvn7BwQwcNQourRqxcLJk1kzbz7GRkak5f8/YMYqFV2MLelkZMHEqBBeKhr4wVszdXGL58+4epNcrl7EZTtEIYSIj7jUHT/T6ZPHqV21Ah1bt9DJLLO2HbvQZ8BfAPQYPJjl69bpIMv3/Pz9qdqsKZUbN+LBo4T5x2tS/73/vSbAp6TuSHyS+s+fNpLsbi/akqnryZOiKNy98x85c+XWdyooikK1CqWxtLJkw7Y9hKr56tT1W1fOUbd6ZWYvWBK9JW5SNH70CCaPH42RkREbFy2mTtWq8Y5x884d1mzZzPOXLzEzNaXAL7/SrH59bD4sC9IVtVpNw9at+OfYMWaMGoV7w0aYmZlFb0mnypSRHbdu0K5vH/LlysW+NWuxtPz+lbJ5y5fTZdBAShQpQrfWbahXvTpmZmYEv33Lyo0bmbFoIY+fPWPT4iVULlv2h3KfMm8eg8aM5uH5C6RJnRpNQCCn3VqR9cZ/XxwbqGgoGulPF2NLuhv/v9h1PLgjTt199X0fXlWu89XnUy6fh0XZUl99/mdvp5acJpbHth1iUpQcd3vRBak7REJLiN1evub40SO4Na5HeHg4jZu5MW32fIyMtLvmqigKQwb1Y/6cmRgbG7Nu/nzqVa+hdcwtu3fToV9f3vj7k8LWlinDR+DesGGCbG2fVH/vR1y5xpv6rvF6ja7qju/Fkboj7pLqz9/nDGKrW21JEWIYnjz2JSIigqzZsuvl/U8cO0qzBrWpVrM2M+YuwtLSEl+/EB77hZLJwZLMDlacP3saj6YNyZUnD+u37sbMzOyn5HLz+r/cunmdyEg16dKnp1SZcjrZNu5TiqLQq2tHVq9YhoWFBQfWb+D3woXj9NprN2/S8++/OXzyBA72KcnmlIXwiAiu376NjbU1bd3dGdGvv04/n7CwMNr37cvKTRtJlyYNTevVJ10aR177+bFh+3YePn5MjUqVWTl7Nilsbb8bb8+hQ9TxcKdzy5ZMHjYcIyOjL7ZCexcSQuO2bTh1/jxnd+8hZ7Zs8c67ZO1aZMmQkbXz50MsJ+IwReGGoqaw0fvitqf6LdcUNf+Y2kfHSLlkNhYVvt98CTt8DP+Wnb55zLeKip9dJGgCAwnolnz2qk8OpPkRO6k7hL58XncklH27d9LSvSlRUVG0bteRkeMmoVKp4vDKr9NoNPTs0oG1q7wxMzVju7f3D19I2LxrF3+NHcPte/fIkC4db/z8CI+IACBThgwM7dMHr6ZJ74JUQmzB6ufZIcZ5Ny50VXeY/JqPVCvmf/UcL3WH4ZHmRxxIEZL83b51k2YNamNubsH2fYdwdEyjlzx279hGxzaeWNvY4tbCi2o1amFpaYXPg/us9F7Kwf17KV6iJMtWb8DeXrfLdRRFYfvWTcyfPYPzZ8/EeC59hgx4eLWhfaeuWNvY/FB8jUbD+bOnef78GaYmpuTOm4/MWZzwdG3Mwf17cUjpwIlt2777D/zTFy5Qw7U5WTJmZGC3brjUqIm5uTkAj548Zt5yb6bMn0f5kiXZsmRp9HO68u+tW8xbvoxdBw4QGByMrbU1FUuXoaOXF8UKFoxznHL162FkZMTBDRshKPirVx5CTEzIU6Y0LjVqMGP0mHjnm7NkCRrXrcvogYO+uEISpGjwUgdzTVGz1iQFhY1MmRYVwtKoMC6Z/X+ejK6uwMDXiwptr97ER3K5epEcSPMjdlJ3CEO0cd1qOrdrBUDPvgPp/+ffWsV79+4dp04cY9K4UVy6cB5LS0v+Wbc+zhdaPpqzdCld/xxEzcpV6NOpE2V//50Hjx5R3qU+z168wCFlSvz8/RncqxdDevfRKueE8rPvePgoTnVBLHRWdxgZYV6mZKyNDKk7DFN86g6Z+SGSLQcHB0xNzfB5cB/3Ji68e/tWL3nUqF2XgyfO4dKwMUsWzqPWHxWoVKY4rTya8erFCyZNn8O6Lbt+SuNj6J/9aefljqWlFYu913DX9yU+z/3Ze/gElf+ozowpE3CpXY03b17HK3ZoaCizpk+mZOFfqVu9Mu283Gnp3pRSRfLj2qgezdw8+K1gYfz8/ajl7saLV6++iOEfEMDU+fOp0bw5FRq4YGJiQstmzalV5Q/Mzc2j12pmiIhi1MCB7PBewdHTp+k/Uve7+fyaJw8zRo/h3pmzvL5xkwfnzrN46tR4NT6uXL/OyXPn6N6mLUZGRt9cr2pjbU0bNze8N2wg+Ad+Ls3NzKJ3Bfp83a0VKlKgIgzwUgdzHw1hCph/nAcSz4FWXx2M9amvTDlPyMFgJlmdsKhQVgoQIYRIRBo2ac6Yie93aJkyYQzzZk3/oThPnzzm74F9KZQ3O+5NXLh04Tx8qEcqNHBh086d341x98ED+o8cwe81qtP1z0HkzJaNNm6ulC5WDJVKRZYoha29+uKQIgV+/v5kc3JixOTJcYqdGCTUFqzfnffx+fKmH607vrZMSqP56s4qUneI75Hmh0i2HNOkZfXGbTg4pOLKpYu0a+Whk6FbPyJb9hyMHDeJyzfv88/R0+zcf5jTl66z9/AJXD08dX4nA8Cs6ZOZN3sGoydMYf3WXdSsUw8bW1ssLCwoULAwE6fNYvveQzx57EtLtyZEfT6x+ysCAvxpVLc640YOo9jvJdm25wC3fJ5y7c5DZs1fTGhoCO283Pm9ZCmcnLNy/+FD6nm24O27dwBERUXx55gxZC5SmIGjR/HoyWM0UVHky5WLfiOGk6VwIYaWr8zLSrXxb9mJZxVrcbt5S37LnJlB3bqzcNUq/Pz9df55aevwyZNYWFhQp2rVOG2F1rRefd6+e8f5K1fi/V5FCxRk14EDaDSaL4ZvmahUzDax5TeVMf4oeKjC2K0J5zfV+yVOPzLQKrbBWLH5vKhILoPBElJi29ZPCCG01bJNewYOHgbA4YP/xLne+Ojfq1eoVrEMG9aupkWrNhw9c4k7j15w9PRFMmXOQmRkJE3atWX+V4at+wcE0LB1K/KUKc3i1at58vw59ilSYGNlRYNWrcj5e3E21GrAq8p1SD94DAvegZWxMcHBwZQsWpSJc+bo5HP4mRJyC9bvndtNi8S8cPSjdYdJvjzfPCa2RobUHfFnaHWHND9EspY9R068127E0tKSA/v20K9nV/S50sva2ppffytAkWK/45w1m9ZrX7/m3bt3TJs0nrYdOtOqbYfoxx+9CeHU3Tf4+oUA8OtvBZi/ZAVnT5/iwP69340bFRVFS7em3L97l617DjBz3iKKlyiFvX1KHB3T0LBJc7bvPcTg4aNYMGcmLo2a4JDSgfNXrtCsQ3siIiJo06sXE2bPolf7Djw4e46oKA1N6tXjyOYt3Dt9BleHtIy8e5Me6rf0V78lX6QfvxzdS7pSJZm5eBERERFMW7Dgp3xu2nj77h221taYmJjE6cpDyg+3oH5sCsVH+xYtuOfjw55Dh2K9M8NKpWKZeUqcLa14FB7KPTS07NUdx4M7cFg2N963vxrZ2eGwbC4pl8375nGfFxWGvp1afCTWbf2EEEIbH+sOF6/OzJy3mKWr1sdrkOizp09o3qge6TNk5MiZi/w1dCS5cufBNkUKcuXJyz/HTpMn3y8AdOrfj53798d4fUBgIJUaNeTY6TMsmDSJE9u28+LVK8b8+Rfn9u7j9K7dZI9Q43r5NOPV7/CKDKJRVBAhUVG88vPjybNnnL10keNnznwlw8QhQe94+M65PfW6ZTge3EHKJbO1qjtSTvt2wyS2RobUHXFnqHWHND9Eslek2O/MXbQcIyMjVnkvZdK40fpO6afbtH4N796+pV2nrvBh4nuvVZdxnXOavmuu0Hz2aXqtukxQaCSly5ajQKHCLF00/7txDx3Yz6kTx5i3xJtChYtGP/5pU0WlUtG5Wy9atGzD0oXzWbhiDRYWFuw5eJDKjRvhvWE9y2fMYHi/fliYm3PX5wE5CpbBxz+M9OGR/Pk8gPIqEzYpEezSRNDR2JIFJrbMM7GhUYWKqIAxM6azbuvWn/oZxpe9XQoCg4MJCQ2J05WHZy9ffHhd/NfhlihShFLFitGhX18ePHoU650ZGcuUYvH8/0/XX3ThHEqmDPF+r09ZlCsV76LCkLdTi4+Eul1ZCCESwud1h+ucM5yMyku45v05SVEUHty/9904C+bOIiI8nJXrN8eY3fax7gjWmLNu8w6cs76fLebWuROv/d5EH9d54AAeP3vG4c2badmsOTfv/IeiKDjmKYGPfxgFbe2YEagmFSpmaMJ4rGgYbmzNIhNbphvbUODDwPw6LTy03qb+Z0roOx6+d27XxZKQH21kSN0RN4Zad8jAUxk8ZjCWLV5A/17dyPdLfnb+cyRO25YmVa3cmxIQEMCmHe/v5ui16jLnH/ih+eT/7UYqKJrVgcmuBVkwZyZD/uzP49fB39yKzr1pA14+f87ewydQqVTf3EbP77kvJQr9wtRZ83FwcMDLrQkajYa8OXNy7fARAsLUdFpzgXV/upDe5W+ss/9Oy5D/eD13EFM0oWTBiHSo2GgWc4eS+vNmcevOXZ6+eM7GRYuoU7Xaz/oY4+Wejw95ypRmwaRJeDVt9t1p473+/ptVmzfx8PyFH1r29PzlSyq4uBD0NphB3bvj0agx1m/8UT98RKhjKtZdOM+oaVOJiooiMCgIK0srjm7dQp4cObX6Pn90yrkMBvu6hBzQlhBk4GnspO4QhuRbdcek5gUYPKAPK72Xsm7zDor9XjLWGKGhoRTOl4Mmru4MG/X+H65fqzvaFrXFpWpZAgL8+TVPHo5u2UpQcDDZS/zOlOHD6eTVkoAwNQ1GLOLo0mFk67YeIzMrWgTfZN/8gVxW1ESi0EFlQR9T6+jYKZfMJqWnG2q1GktLSy4fOEg2p8T5+1gfW7D+7HO7NjurSN3xdYZcd+h2n0shEjHPVm0xN7egZu26ybrxARAcHExqR0f4cHXk0yLhI40CZ+/74esXgmOaNGg0GkLevcPmK1u6RkVFcXD/XoaNGhe9XGfo5uucf/D/2Io6ksP/7MHjxDbcymTn198K8M++3Sxctop2nboyd+Y0bt65w6JVKzll8TuXXgMqIyIDngOw/XUoZzSh9Da2JIfKmI7qt9xR1OT8MK9CMTLi0ePHVKtYgZevX9Oxf3+qV6yEqanpT/kc4yO7szPVKlZk2oIFNK/vgv30cV+esD9ceXj+8iXL1q+jfYsWPzzvJV2aNBzbto3uf/1Jn2HD+HPMGPLmyoVKpeLWnTu8CwmhXvXqTB85iqs3b+KUKaPWjQ8+WQIT36LCJKtTkjqRJqS43K4sn50QIqn4Xt3h8zKIBw/uExoSgltjFzbv3Mcv+X/74vhLF87j7+9Hk2Zu0Y99XndEhQZxaPcx7h6Hjl17MGbEEP69dYv6Lb0oU7w4lhYWuDdsBECfXT7cDzEDIDLgOeZpsrHq5r/cViJZa5KCHZpwVmvC6aVYYfShznkeFETkh3lxIaGhNGzViksHDvyET01736o7fpaffW7/0ZojIXJLygy57pDmhzAozdw8Yvw5KDCQFMlwT24bGxv83ry/7fOJf+g3j33sF8rr168xMjLCytr6q8eFvHuHRqPBMW1a+Ky4iQp7S8C5jQRd3UtUaCBPgTMr37/uoc8Dtm3ZGD3jRFEUOg0YQJq6f2GdvTjWOX4n6Npe7ArX5db981gbmdDexJowzfsrFzc0at6qFN6i8Mjdi/+i3jFt0J+kc3amUJXKbN2zh0Z14r/l2s8wpHcfKjRwoXnHDqycNTvWE/bzly+p7e6GtZUVXVu11ur9HFOlYtWcuTx9/pzl69dz/6EPiqJQu8oftGjcmMwZMwKQ/sPf2UeBQUHYaXnlWYoK3ZEBbUKI5OR7dcfzYDULlq7EtWFdTp86QdMGddi6+x+yf9agDw56P3sgTSx1R4TfY/zPrOPtraMoUZE8A85+eJ2Ryoijp05x5/59ivxWgBS2tjzwD+P4w2DMM/6CsZU9Qdf24li5Iw9un6CglQMlNMYEqDUs14Tjo0TxSlGIBPZ27oKlkTE927Vj9Nw5XLt1kynz5tKzfQcSG20aBYmd1By6Zch1h8z8EAZJURRmz5hC6WIF8HlwX9/p6Fy5ipU5deIYT588JmPKb9/lksnBks0b1lKmXIVvLnmxtLICIODDTisfixv1Wz+erO5LwMXt2OQtT2av2WTvtY01x++QN98vmJmZ0c7LnR1bN2NsbExTVw+ioqJ4vn0sYc/+w65gbSJeP+Tdf8cJvnUEi/xV0RQtxmtFA0C/qHfUVQfhqg5mQNQ7jIH9I8eS1tGREkWKsGrzJh1+ctopVrAg6+YvYP+RI+QrV5Yx06fzUKXw7rdfuBkWQp9hw8hfsQIv37xh54qVXzQlflSGdOkY0LUr8ydOYsGkyfzZo0d04+Nz+48eIUfJEuz4bCic0B8Z0CaESE7iUndYWVmxfM1G8v9WkNevXtKkfi2ePI55Ndra2gYA/8/qjlDff3m8oiehj67iUMoN5w7eZO+9ncV7LmJiYoKt3fvm/rMXL7h97y4ajQbfgHAAVMampPitOkH/HuDdw0uEv7iDf4VWhBQpyqMPdUdldSCN1EE0VwexVBOOuUZDykPH6ejpCUC/ESPYuGOHzj83XZEtWMX3GHLdIc0PYZDCw8PZvH4dr16+oHnDurx+/UrfKelU46auWFhasmDuLLKksqJ4NgeMPttYxkj1fp3ss/8uc+HcWVq2af/NmCYmJpQsXZYtG9fDh+JGiYrk2aahRIW/I7P7FBwrtcc8tROZA1/icO4w/92+Ra9+gxg5diLHjx5GrVbTqVsPSpSthKIO59mmoZjYOmKdqzQvdk8h6q0fKsesXO3YmnqmEQBUVpmx0TgFVVSmGAEVVKbM87lDsT+qkC5NGp6/TFx/d7WqVOH0rt1UKVeOUdOmkrt0KdLm/5VCVSqzfN06WjVvzpldu8mfN69e8tu0Yyf+AQE079Ces5cu6SUH8SUZ0CaESC6+V3dkdnh/MSWFnR2rNm4le46cPHnsS1OX2jHqsYKFi2BtYxOj7ojwf8qzLcMxT5uDLF6zSfl7Y0xsHMgc8ILX21aiVqtZv3U3JUqVhg/zsboMGkgmO7PouPZF6mNik5KXuyYDoEmbg7UVSzJKE4oK6GdkyWoTW7JhhD0q8mNM/9vXuHb5CjbW1iiKgnuXzuw9fDghPk4hfgpDrTtk4KkMHjNYL188p9YfFfB99JDCRYuxYdserD7c3ZAcTJkwlnGjhjF5xlxqN3KNdUCYez5jWjarS/oMGdmx7zAmJt9eCbd18wbat/Rgz6HjFCxUhIa9JnJi8WAyuU/FIl1ObMPe8teeORR/dI2x6ncs0YRxoXId7BfNp++QP1m5fAmt2nVk4F9DKVaqLP6+tzG1z0CGJqN5fWge7+6cwjJFKogMwVylwiQkhIZGFqzVhBOKwjQTG2oZmfNc0dAyvS33Xr4kf968nNyxMwE+0fjz8/fn3JUrvHv3Dns7O0oWKaL3eTORkZHUb+nF3kOHSO3gwPFt28mRNatecxL/lxxuV5aBp7GTukMYkm8NRE9hGXNO15PHvtStXplnT5+wcNkqatapF/1c/97d2b1jGyfPX8XG1pYydVx5cPEITq3mYWRuFV13FHl4lUbqIIyBjVXrEjVjCkXLFOPVy5fv43TpyovcjTn1KJgoBSIDX/JkbX/UQS+xT5+VgGcPsDQzp1BEFGmMjNipicARI5ab2JLbyIRzmkhamqkJjYwku7MzN+/cwb1hI5ZOn56An6oQumdodYc0P6QIMWh3/rtN3WqV8Pf3o2r1Wixesea7DYCkQlEU+vfuzvLFC/ijWk1atm1P1t9K8CwwArW/L/s2rmD1yuVkyeLMui07cEzz/SUYERER1KhUloAAPzZs20O3Tu15+CaUFPVGADBuywSKPL7OtshQuke9pbuRJb3NbVGVK4PvmOGULPwr5hYW7D9yCmMLG6pWKse7N88wT5eLDE1G8Xp1T8IDXxIRERH9nnaoaGJkjoexBVlV/789L3TVQnI3bsBv+fJxYZ8s4YiPt+/eUalhAy5eu0Z2Z2eObd1GmtSp4/Ra9X0f1I98k/RJUvxc0vyIndQdwhD5+oXw2C+UTA6W0Xd8xObe3TvcvnkjRuMD4MH9e1StUIrCRYoxbc5CShX+lewVmxOa1wU+1B0Fff9lSGQwqzThrDCxpaypJapyZVhXuyq9uv5/NseQfgN5mLkGxx8GAxAZ9IpHC1uhAjQaTfRxThjhYWxBUyNz7FX/v0l+c7fWdJs4nt4dOpApQwY6enolm5oxsZKaQ8SFND/iQIoQ8dHZ0ydpUr8WYWFhtGjZhnGTp0fvZpLUKYrC+jWrmD97Bv9euwKAkZERGo2GVKkdcWvhRZfuveM19PXZ0yc0qluDVy9fEhQUyKAhI3Dx7MTLSzd417QWy6LC2KlE0NjInInG1tET001OH6VG6xbcv3f3/ZKcpStIldqRmpXLERQUSMXylahZvix9hw/DzNSUvLlyMckqFZmv3sDqk19TGiMjTEr9zuFGNXHr1IkUtrY8uXRZ73dUJDXPX76kTN06+Pj6UrRAAQ5s2Ij1N+580gQEvt8T/ge2mxOGRZofsZO6Q4i4e/PmNba2KTAzM+P40SN4ujbCxsaWF8+fsf/IKewz5+LpuSs8dK3LYk0YVxU144ytaWZsER0j4tBecpYtjkqlIurD9q9zxo3nj1qNeBQQThZ7c1q3dePIqVMAuDVsRNenfqS9eBWTWOqOYRlSsmTNaiqULs3uVav//7xGw8vXr0mXJk2CfkbJmdQcIj6k+REHUoSIT+3avpXWLZqjKAobtu6mTPkK+k5JpxRF4dLF89y+eZPIyAjSpUtP+UpVfnibVT+/N4weNpgVy5bAh2Go6ogIItVqcmBMa2ML3IzMYzSRjFcvx2vBbMLDwwgKCuTShfMULFyEIkWLs3zxAiLVaqwsLQkJDcXW2pqrh48w7uBLqi4YT7FH16LjnMuSn/Uu7hxcOpDsTs6cPH+OnStXUa1C8vo7Swi3796lXP16vPH3Z0ifPgzu2eurx/p5diD8xGn4UEDCh8FYpUvgsGxuwiQskgRpfsRO6g4h4uax7yOautTm198KMHvBUoyNjbl54zp9unfiwrn3e7pY29gQGhKCRqOhjMqULsaWlDaKuZzGePVycnk1o5mrByuXLyU0NASAVs1dKVO8OLfu3WXq/PlERERQ4JdfOLt7D91XX4u17phXqiz7V4yiVpUq7Ni/n6A7d7G0tEStVtO+bx8OnTjBkc1bvjpsXMSP1BwiPqT5EQdShIjPLVk4D41GQ+t2HfWdSpIQGhpK1vQOeHi1Jmeu3JgGBpFj0nR+V5nEeueMyemj1G7fEifnrMyYu4gD+/awZOE8jh05hFqtjj7OyMgIG2tr0qfLQOAvjbHOVpxMQa/IGPCCR9b23H52E79jy8mS1oF9q1eTs2QJVsyaRbP6Lgn8CSRNiqJw8do1nr14gZmZKeHh4ez65wDTR43C1NQ01teo7/vwqvLXtxN2PLhDbkcV0aT5ETupO4SIm6OHD+LWuD6RkZG4e7ZiwtSZqFQqDv6zD9dG9Rg0ZARmpqZYhYZSbPw0cqiMY43z8c6P8VNmUL9BY9ybNuD0yePRz6e0t8fe1hZjExPuPnhAlUp/cCt9TSzS5yJjwHMyBrzgvqkZtx+cw//Meqr/UY02TRvTqHUrfC9eIn3atLzx86Nsvbr8d/8+ubNn59CmzXFeRipiJzWHiK/41B2yUE2ID76324mIydLSkhKlynD3zn9MmDoTAPXlGyhHj3/RqVeVK8MDRcOFc2fxbNUOY2NjqtaoRdUatVAUhfDwcNasWMaAPj3QaDR0a92GjfsO8HzLSExsU/MslRNnFQ3hz26jiQjFOmcJJk+ZhNmHf6x/a7mGeC80NJQFK1cyb/kybt+7F/24sbExdapW5dSFC5QrUSLW16of+cb6ePTzDx9JISKEEEInylWoxKwFS+jQqgUrli0mhZ0dg4eNoljxElhZWxMeFka3nn0AUJ+/9tW6Y+uFcyiKQtnylbCxtWXTjr10bteSzRvWYW5uzsZFi1mwwpuHjx8zasBAuv49hJcH92OW2omnto6ciQgl7OlNVCZm2BdrQO9BQ3h27Qh8UnekcnBgz5o1lK9fn9v37lHLzZV/1m/AThqcP0xqDvEzyVa3QsQiIMAftyYuXLl8Ud+pJGpebdpx6sQxLl08D4DxvFmoypWJcYyqXBmM581i7qzppEzpQF2XhjGfV6mwsLDAq0173DxbAjB6+jR6d+1BJvepWOcshcrUDGNza+wK18Wp7SLS1/uL/M7p2LBjB6amphQrWCgBv+ukxz8ggD+aNqHfiOEU+OUX9q1dx6MLF7lz6jTTRozk7oMHVGrYgMlz59L9rz9ZvHpVjNebZMn8zfgmTll+8ncghBDCkNSt35CJU2cBMHv6FKZPnoBtihQ0aurKimWLCAoMhG/UHVEzprBw3mwqV62Ok7MzfLizdPqchVSpVoPw8HDqeXqSJUNGTl+4wO+FC3N031HSuwzBPF0uVMYmmNimJnXFdmTt4E3qci3JmtqaDTu2kz9vXmxtbKLfL0vGTOxdsxbHVKm49O+/1PVsQciHJTYi/qTmED+TLHuR209FLPr16sbyxQtI7ZiGnfsP4+QsW4HGJiIiglpVyvPq1QvWbdlFrtx5AFDu30d54IMqqzOqbNlYMGcmgwf2Zfjo8bTr1PWr8RRF4bdczrx69RIrSysqdZnKHTIS9clvKWMVlMxiy+za/2PvLKOi3ro4/MzQ0ih2dycqdreiiEooYIvdetVrd3cHYGCgIna31+5OEMEGpGuYeT+gvKLE0KDnWeuude9wZp99Bq//3+yzozBVmjalWqWKuKwV9Z8JER0dTfNuXXn87DlHduygZtWqv61RKBRMnDuHhatjhKaKigpujk60bdYsdo2ovxUoiyh7iR+hOwSC5LNu1XKm/fsPAHMXLaNJsxa0bFSXipWr4OziGvv/0s+6I7JAAYY69OH4kUMcOHqK6ia14tgMCwvDpktHrl65hKGBIRER4Qzp04c5EybSd/+r2HG4P/ihOybWUKNs/XqsnD2HAXZ2v/l679EjmnXtQkBgIK2bNmX/5i2oq6un90f0RyI0hyA5iJ4fSiBEiCAxggID6dS2BY8fPaB4iZIcOnmOnDlFDWd8fPr4gW7m7WMalFn3wLZXX0qVLkNkZCTnTp/EcdN6Ll88z6BhI5k8fXaSk3ROnzhGD8vOAOQ0yknjoau5H6Ib+/P6RXSZ37IgIyeMwfXQIS4fPESNypXT/ZwJ4evnh9Oe3ew+cIBPX76irq5GuVKlyJs7N8EhIUTJZOQ1NsbavDN1TEwyfJKQ+/FjWPTpw2nXvTSuWzf29V/HxykUCmwGOnD41CnCwsPJoaXF2X37MalSBQB5QADfhonO64KkEcGP+BG6QyBIGfNnTWfponkUL1GSM5dvcP/ubWytLNDT08O+d3+6WtmQJ28+/P39OLDPFceN6/B668naTc60M+sUr82gwEC6dGzD/bt30NXRITgkhF3r1tO8eWtGH/WMHYfLd93xTy0duvbsTkBgIPfPnouT+fEzV27eoLWVFbLoaE67ulKvZq141/2NJGdsrdAcguSQIcGPqKgoVq1ahZeXF23atKFly5axPxs/fjzz589PidkMQ4gQQVJ8/PCedi0a4+P9DpNatdlz4Cg50rG3hPc7L1x3ufDW0wOJREKx4iXoZt2dvPnyp9ueaUXAt2+sXbWM7c6OfP3yOc7PatY2pf+goXTo2Flpe2tXLmP65AkA5MuTh/27DxKmqkdebQn3r51n6YYN3Hn4gK0rVtKtY8c0P4+yrHFyZOyMGSgUCszbtKFooUIcPXOGR8+eoVAo0M6Rg2qVKuH9/j2e795RpXx5Vs2dRx0TkwzzsbW1FUHBIVw5dAiSGB/34N07TFq1pEr5Ctx/8pjcuXJxyf0gJb6nDAPIPN7G1NsqIV4EfyfpEfzI7poDoTsEghSjUChYvWIJXS1jghwAr16+YNWyxRzYt4fw8PDYtSoqKrRpb8bQkWOoUrV6onZ9fb/SqW0LXj5/ho62NsEhIfSysmJgz54YFSyN17cI9CXhnDvpzvKNG4iMiuLUHlfKly6dqN0T58+jUCho3aRJGn0C2ZvUjK0VmkOgDBkS/Ojbty+hoaGYmJjg5OREs2bNWLp0KQDVq1fnzp2s3StBiBCBMrx4/gyzVk359s2f1m3bs3nbLlRU4u8qnlI+fnjPhDEjOHHsCDm0tSldpiwKhYJnT58QFRlJO7NOzF6whFy5jNN03/QgMjKSSxfO8enjR9TV1SlfoSLlK1ZKka09O3cwevggoiIjUZFKyZcnD98CAwkOCaGBqSnTxoylUZ06aX4GZVm6fj1jZ0xncK9e/DtyFDm0tGhlZcnDp0+ZPGoU5UqWYuTUKURERHLpoDtPX75ixuLF3Hv8CHcnZ5o3bJjuPoaFhaFbsgSr586LTdFNKpXUpGULypUqzbNXL7n76BGlihXnors7xjlzpru/gj+D9Ah+ZHfNgdAdAkGaEvDtG/oGBvj7+3H54nkCAwLQ1tHBtE69ZF0avffxxqx1M7zfeZEvdx6kUgk+Hz9inDMnmhoafPzyBYDObdsyZ+IkihQsmGxfvwUEoK+nl+GZn1kFUcIiSG8yJPhRpUoV7t+/D0B4eDg9e/ZEVVUVZ2dnTExMuHv3bsq8zyCECBEoy/WrV+jWqR0REREMHDqCqTPnpplt73dedGzTjOjoaEaNm4hFVyu0v6dSBgYE4LrbhaUL56Grq4v7sdPkzpM3WfYjIyM5duQgTx8/Iioqijx58mJmbpEtskkAXr54Tpsm9QkOCaZksWL0tLKiffMWVCxbNnZNREQE4RER6OroIJVmTA/nx8+fU7VZU8YOHsycCRMB6Dd6FHvc3Tk64V9qN22KarEivLtxi4Z9e1O+VCmO7NtHREQEnfv05uqtWzy7fCXdx+F9/PyZgtWq4uboSIeWrZQaH9d56mRUVKSsmTefBh3N8Hz3jjomJlxwO5Bhn68ge5MewY/srjkQukMgSDNcd7kw+Z8x7Nx/kGrVU59J6fHmNWatm/Hl8ydMq9dgeP9+PH/1msioKPLmNsaiXXvyGMdcQCkUCkJCQ1EoFOhoaycZ0Hjx+jWtra3o18OWCcOGpdrXX/m1lCQ5pSUZgRhbK8gIkqM7UqxkIyMjY/9dU1OTnTt3oqenh7m5eZyfCQTZndp16rF6gyOFixTFuod9mtmVy+X0tOmGiooqR09fxK5XX7R1dPDyDeXqK18CotXo038gR06dJywslL72Nigbq5TJZCxZMJfqFUoxoJctrrt2cPSQO3NmTKFGxdL0tbfB6+3bFPuuUCj47/IlNq1bzdqVy9jvuovgoCAl3pk8SpUug8s+dzTU1Xnl4cE7bx8qlClDUHAw65ydqda8GdrFi5GzXFl0S5bAbugQ/rt5U+nPKaWsc3Yij7Ex00bHjNr7+PoN23fvZkSkhOKzlvClaXs+Vm+AqmUvRnwL48S1q9zuaotaeDhbV6wkMiqKLTt3pquP/DSK71tAICg5Ps4/4Bs62trky5OHw9u3UzBfPsYOGiQCH4JMRWgOgSD9+KE73vll/Qklcrkc1107+PbNHxuLjjx7+iTVNosVL8Eet8MY6Otz7c5tNru4MHbQIGaMG8egnr3IY2zMOx8fpixYQKHq1TAoXQrDMqXJV7kS42fN5E0ieurs5ct4+fgwef481jo5pdrXH8i/BeBn78CXZh3w7zUoVnf8/N9+9g7Iv0/FySyU0R0CQUaSYjVbrFgxLl++HPvfEomENWvWULZsWZ49e5ZW/gkEWYL2Hc25eP1u7DSTtODShXM8enif5Ws2kr9AQQLDohjlcg+btdcYu+s+1muuMcrlHoZ5CrJo+RpuXLvKnVs3krQbFRVFXztrFs+fTYdO5ly4dofbj15y9c4jHjz3ZMbchdy9fYu2zRvy/NnTZPmsUCjY7ryFhqbV6dy+JTOnTmLxgjkM6teLKuWK88+YEXz5pedHaqllWpc1m5yRSCSs37aVoZMmUq5BfYb9O4kSRYuyeclSdq5dx+SRo7h+5w4NO3Wk94gR6faFKDIykm1799Lb2ia2i/u63v2QKhRYSjVi1yn8vwHQQaqBPhK237jKt2HjyWlkhFXHjmzYthW5XJ4uPv5AV0eH6pUq4fq930dS4+O81dW4dvs2DU1jyonKlizFs8tXMGvVOl39FAiSQmgOgSDtSUh3BIZFZbZrCSKVSnHcvptqNUzw9/fD0rwdbz09Um23XIWK7NjrTo4cOTh98SK2Q4Ygk8kA2ObqSul6dVm5eRPmbdqwbdUqtq9eTXeLLmx2caFs/XqscXKM166DvT0Th48AYOikibjs359qX4GYHhpXrsV57Yfu+EHElWt8GzY+TfZLKWJsrSCrkayyF4VCEZve5efnh0QiwdDQ8Ld1T548oXz58mnraRoj0k8FqeHShXPI5XIaNWmmxOr46d3DEk8PD85cvo5EImGUyz1uefgh/+n/SKkETIoZsciqMnWqV6SWaV1WrtuUqN2pk8azef0aHHfsoUWrNvD9VsfHP4yCRloUMsrB169f6GrWlsDAAC5ev4u2tnaS/srlcsaNHMp25y2072hOr74O1K3fAIlEwnsfb7Y7O+K0aT06urrsPXicwkXSNo1x84a1TBo3CoCihQtzxnXvb7W3X75+Zfjkf9l76BDGuXJRv1ZtOrZujUW7dmhoaCRgOXm8//iRwjWq4+68lXbNmyN740nXRo3xVcjZrRZ/4y7LqACMJVJWqepifPYwBx49wMphAJ8fPcYonr9D05ItO10YMHYsj85foEzJkonW3s4tkY/NLi543b6DTjx/Jjy8vDh14QL9bW3T1WdB9iatyl7+JM2B0B2CLEhiumOJze9j0ZPDr7ojrfH396NT2xY8f/qEIkWLcfD4mdhmqKnh0oVzdO/SicioSHpaWtK0fn3shg6lt7U1i6dN/23Ky/3Hj+k7ehR3Hz6kbMmSmNaoQY8uXWlUp07s318KhYIRk/9ltaMjKioq7N20mQ4/NW1OLkmVkvxKZpeWiJ4fgvQm3cpeOnbsSFhYGABGRkbxihAgW4gQgSClXPvvMjZdOtLb1oqH9++l2M69u7dp0boNEokEL99QbryJK0AA5Aq48cYPn2/htGjVhvv3Em/q9+2bP86bNzBizD+0aNUmwVsddW0DHHfs5r2PN257dyvl7/LFC9juvIVlqzewydmFeg0a8s4vjKuvfInWMmLcxMmcOH8FiURC964d43RfTwv69B9IwUIxNwTePu959uoVfBcBQafPMXLkSIrWqsmB48epWK4cn7584dHzZ9gNHULRmiY47kqfMhOZ1zuiFKBOwnW/P/9aZW+9YgMxkVHpf7tm1akTxYsUwaJPb95//IjBivlo1DP9vz8KBadKFaaF9wuWrl+PpoYGPYcP49jZs3EyU776+VLfrAOD/hmP827l/swIBKlBaA6BIP1ISnektAQmvbNJfpToBCs02b3/EEWKFuOtpwfdzNvj5+ebavsNGjVhveM2pFIpTrt303f0aKw6dWL9wkWxgQ/ZG0/euh+inYUFNVq2wMvbmyKFCvHizRsuXbtG865dqNK0Cde/N2KWSCQsnTGTHhZdiI6OxsphAOeuXEnCk4RJqpTkt/WZXFryq+4A0KhnisGKrD+lS/Dnkazgx5MnT2jYsCGfP/+e1i6TyVi3TkTvBH8+1WrUpJZpXUKCg+nezTzFvTMiIiLR0oq5DfHxD0t0rbdfGJpaWkQkEVDYvWMb0dHR2PfuC8A0t8fc8vCLs+aWhx/T3B5TtFhxWrRqi9OmDUn6GhIczJqVSxkwaChW3W0TFDf6xvlxcnHl5YvnHDqQNqmdP3j18gXe77yoWcsUWbSMbv36ct7cio9N22PVsydr9+xmZIFieJw9x+2Tp6hWsSIlihTl0YULtGrchH6jR7N43dpU+5HLyAhdHR2u3b4N31M6jSUS3iiikceTSBemUPBEEU1hYqYEqRYpzPPXr1BTU8MwA2bV59DKweFt2wkOCaFWm9bMd3ZGtngWxmcP83jcEGrqKOj94Bb3nz2jbKlSdGnfHk8vLzrY9qBCw4bce/To+7lzYtetGwADxo3lxPnz6e674O9GaA6BIP1QRnekhMR0R2qIT3csOPeZLbvdyZM3L8+fPmH3jm2p2uMHbdqbsXTVevhe6prXODcSiSS2z8aTpu1oNmggd69dY1WFanicPce1I0dRVVWlv60dp/a4oqujS/OuXbh4LaY0RSqVsmnJEjq2bk1ERARTFsxPcX+ypEpJflufyaUlUn19jJzXYXz2MIaOazA+exgj53VJjrkVCNKDZAU/rl27hrq6OrVr1+bp05heAXK5nM2bN1OyZEmGDh2aXn4KBFkGDQ0NHLfvplz5inz+9JHuXTum6LYhl7ExHm9eA1DAUCvRtQWNtPD0eEMu48TH3d68cY1apnUxzp1HqVuddmadePTwfuztakLs37ub4KAg+joMhiTETbnyFWjUpBmOm9L2i8l+190YGBiyY6879Rs2JiQ0FOsbl5kbHcppRRSbVHUZ/MEPtWnz8fwWQZM2XTl29gzGRjlxXL6c8UOGMn7mTC7fuK7Ufu8/fmS3+wE27diB68GDfPGN+R2rq6tj26ULW3a6EBkZiWrxonStZoIXci4rfr/ZOiiPIBAF3dS00GhYD2mRQmze4ZKmpThJUap4ca4cOkzrJk2YvXwZBatVJU/bVrSeNZ2v/v4UzJefFbNn8/DceVbMnsPNEye5fPAQero6NLHoHBsAmf3PBLp3tkAmiwk+3X7wIEP8F/ydCM0hEKQfyuiO5JJe2SQkojs23w5ht9sRxk+aisOQ4Sm2/yuWNj0oUqw4AMs2bmDl5k2xfTZGyIIJRYGbmj4d3/gQPnYKwVJt6jdsgZPrXprUq8cZV1dqV69Blz59CPzeEF5VVZUdq9cwvF9/3J2cf5sU8/DpU7a5urLZZQeHT51KMINWtXhRNBrWAxWVxA+hooJGw3pZZpqKarEiaDZukGX8EfydJCv4kStXLs6dO4epqSn16tVj9uzZlClThgEDBlCvXj0ePnyYfp4KBFkIPX19XPYeoEDBgrx88Rx76y5JBhB+paN5Fw4e2EdgQACFc+agVnEjpL9UTkglUKu4EZqyIE4cPUxH8y6J2gwLC0NXVxeUvNXR+Z7CGRaWuCC5cukCNWubUqhwEaXETcfOXblz6yahoWnXOf7Txw8ULV4cPT09Ns+YRzmJCl+Qs0keTmeJOs2k6hAdTcTFK/Rddo7d3jlQKBQM2HmHwIhoZv3zD+VKlWLV5i2J7nPn4QOsBgygeO1adB80CIdxY7Ee6EARkxr0HDaMpy9f4mDfk89fvzJl4QIAWm3dSDltXZZGhxHx/SZHYmjAR4WcJdFhNJGoUaZBfQxWzGer6x5eerxhgF3aTQ5ShgL58rFpyVK8bt1m5ew5REVFUbJoUQ46b+XNjRsM6tmLaI+3hJ+/RLSnF6Y1anBm7z5KFy+O1YABREdHI5VK2bh4MU3r1yckNBQzO1s8vESndkH6IDSHQJB+JKU7UtKnI72ySZLSHdp5ijJizP8be0ZFRcU2K00NUomEmrVjGoCPnDKF7efO8EIWwUVFFFNUtCksUYmjO+6FG/HC6z19978iAlWcV6wgICiQHfv2xdrU1NRk8bRpcfp97TpwgAYdzajWvBm9RgxnwNixdOppT9GaJkyYMxv/b99+8y2+UhKJoUGc/84OpSWyN56En7+EzCPlEwgFguSQ7Gkv6urqWFhYEBkZyZQpUzA0NOTx48fs2LGDsmXTbhKGQJDVyZe/ADtc3dHXN+Dm9WsM7teT6J+bOSVBd7ueREVGsnLZIgCmmVfApJhRnDUmxYyYZl6BpQvnoaqqSjebHonaNDQ0wvtdTC2oMrc63u+8UFFRQVc38eZAIcEhGBjE+KaMuPlRmx8SEpzo2uSgqqZGVGRMZoWury9bVfUwQkI08FgRTdhP6aMFvn1CER2z9v7nCEYf9UQikeBgb8+B48f49OVLvHscPHGcBh078uDJYxZNncrHhw+JfOeN9917zBw/nss3rlO3fTs+ffnCwilTWbRmDUMnTsBXJmPdjm08VJMyqHxhpG7bebZqPl1zaSExMmTj/r0YOK5h6/FjOIwbRy8rK+rXqpVmn01yMDI0RFNDg9CwMI7scKFt8+YQGPTbyDw/ewdyyGSsmD2HV54esWUu6urq7N20mSrly/PpyxfadbfhaxrUWQsE8SE0h0CQfiSmO1JCemSToKTu+JFFERYWRq8elowYPCDVE9VU1dSoUrUa/QcOAWBMdAhzZKEYI6GNVD3O2hjdIQMVVa56BTH6qCcF8uWjY6vWbNgefzmOQqGgtbUVPQYPAsB14yaCXr0mwusdD89fwKazBeu3bqW+WQe837+P8974Skny3rmUbUpL4hvVmxVG8wr+fJIV/HB1daVKlSpYWlrSokULRo4cyb179zgvar8Ffylly5XHccce1NXVyaGtk6wHbZ68+Rg3cQorly5ixZKFaKtLWWJTlZ2DTFloVYWdg0xZ0K0iaxbPZsvGdfw7fTYGBolPBmnb3oxHD+/z8P69JG91ChpqsXPHVlq2bouamlqidvX09fj06QMoKW4+ffoIkGRQJTmUK1+BZ08f8/HDeyRFi5JXIsVMGtNm9AnRDJUFEf09AOJjkIdQz7tINbSR6OTi8tsgPP3Dad6gITKZjOevX/9m/9b9+1gPHEi7Zs25e/oMQ3r3weBbEJEXr5ArJIzRDgO5d+YstatXp3PvXrRp2pRVc+biuHs3RUxqMH/lSkyqVuXMo4cUbN+W5l27IFFVZdqkSey7c5uKjRrSd9QoelhYsGbe/N/SXTOSTS47aNm4MSWKFoUERub9GJFXq1o1qleqxGaXHbE/09PV5dC27RQuUABdHR2io9N3ZK/g70RoDoEgfdHTUvtNdyyxqYqeVuKaICHSI5uEZARVJBIJd2/f4tzpk+zd7cK/40enuK8G33XHxQvnmDprHlZm5siBs4ooiktUUP/lGf5Dd2jkKkK0gv/rjoYNefz8ebz6cNnGDZy+eBGAoOBgGtWpg9qHT0Rd+o9SquosmT6d60ePERYejpmdXZwyGIVCwZ2HD9j/4B4Hvn3lpu8XFApFtiktSUx3CATpSbKCH5aWlhQqVIibN2/i5ubGokWL2LRpE8OHD2fs2LHp52U8PHv2jBYtWqCtrU3evHkZN24ckZGRGepDZvOj43VqaigFqadu/QYcP3uZles2JRlE+JWhI8cwcuwE5syYgmm1CqxcupC3D28g83nA3s0rqFWlLMsWzeff6bPo039gkvZatmlHvvz5WbZoHgqFItFbnRNHD/PsyWN69XNI0m6LVm24f/cOz589VUrcuO7aQaMmzdDU1EzW55EYnbtYoqGpyTanLUhKFEfSpBH6UhUMkaABnFBEMTk6lOuFKvJOx4jAhyfQrdAcqWrM7YzXt4jY309UPFNW5ixfRokiRdi2ahVqYeEJZkLs3bQZAz09Fq9bi4O9PTvXrqNk0aIcPXOGKzduEB0dHTui0+OdF/1Gj2LSvLlUq1SJs/v2s3HxkmT/OUlrXnl4UL9Wbfiechpx8UrcEXQQm8ob7elFvVq1eOXhEefH+fPm5dQeV87s3UeeJHrRCAQpIStpDoTuAKE7/lgKGeWgTsmcaTKSNq2zSUhmUKVu/QasWLsRiUTClo3rWDB7Ror3tevZlxfPnnLtvyss2rKVtnnyowBuKWTckcfoiGiJlBuFK/E6IpiID8/Qq9I29v0xukMVuVz+W/AjIiKCBatW0c3MjPx58/Lo2TNa162HR9P2cXRHiZw5cXN04sHTJ+w7cgS5XI7T7l3Uat2KWq1bYzNoID0GD6ZBRzMqNW7EasctaVLyk54kpTtECYwgPVFNzuJr165R65dUbTs7OwoVKoSFhQUeHh7s3bs3rX38DX9/f5o2bUqpUqXYv38/Pj4+jBo1itDQUFatWpXu+2c2gWFRTHN7zI03/2/8VKt4zIMlpdF6QeooX7FS7L9HR0dz/94dqteomeT7JBIJ4ydNoUXrNjht2sCiebOJiIgAQEtLi85drejVdwAVK1dRyg9VVVWmzpqHQ287Jo0bxcx5i1hiU5V3fqF4+4VR0EiLQkY5uHj+LIMH9KZFq7bUb9g4SbttO3Qil3FuVi1bzMp1m5hmXuG3P4M/xM3VK5e5ffMGjtvTdhyqnr4+3W17snr5Yho3bYbJ+tXkbduGwCf3mKeizdjoELbJwzllnJ+QU6uQR4SiX7Vd7PsLG2jw8OZz+P7F/We8fLw5fOoUq+bMRUNDA7/+wxO8kTByXkd/WzvmLF9G6RIlmDB7NlXKl2f9woWYtWqNdg4t3rz1YrOLC467d2Gkr8/RHS6ULVUqTT+P1CCXy2MzT5IamSd764VEIo331upH5sgPrt2+Te3q1TM1q0Xw55BVNAdCdwjdIVCaH9kkv+qO1JKY7vgVi27WBAYGMmHMCJYumoe+gUGKmqHWa9iIChUrM3bEYNyPn2HNxf+oWakMXyIjsJUFsVdVj6Ci1Zja2I7P7jNRM8iHdon//51V2ECDg89fkDtXLlRV437l2n/0CF98fZkyejTR0XIat2rJncBv9JWo4qSqh6ZEEqs7qjivo3nDhqx1cuL4ubPsdHOjXfPmTB83nvq1aiGRSLh1/z7rt25l1NSpHD1zhr0bN6GllbIyo/RGGd2R1TNXBNkXiSI1+WA/8fTpU9q3b8/reNLJ05q5c+cye/ZsvLy8MDKKiS5v2LCBQYMG4eXlRf78+ZO0ERgYiL6+Pi+9PqGrl3ap+RnBKJd73PKI2/hJKol5CCyxqZqZrv31REREMLCPHadOHMNlrzsNGjVJ1vtDgoP5/PkTEomE3HnykiNHygTDVsdN/DN6OAUKFsKud1+aNG2Bmro6L58/Y5vTZi6cO0OT5i3Z5OyCtra2UjZ3bHVk9LBBjPnnX0aPn4hEIvlN3Dy4dxcrCzNKlS7NvkMnfnvYp5bw8HCsOnfg/r07jJ84hZZt29HEtAZjLLujkScPUxbN+75SQp52Y9At1xgVCdQprMumziXpYGvL569fuHb0WJwv6M67d9Nn1Ej8n79A6/NXvjTrkKAPxmcP46OmQonaMQJnWN9+LJo6Fan090Q6z3fvaG1lhUQi4fqxY+h9b0ab2dRu05rCBQviunETsjeeSZ632ajh6Ghrc9B5K0fPnOHk+XMEBYegq6NNi0aNaNusOYvWruXfeXOZ9c8E/hFTOP5qAoOCMCpbhoCAAPTS6fmakZoDoTuE7hBkGZITVFm+eAFzZ04FYMmKtdjY9Uz2fm89PejQqilaWlpMmjYTebQchz52AOQ2NKJ4i57cOeOKLOQbBazmo5GrSKzuWNmmAEVMTLC37MbCKVPj2O09YgSPnz/j+rHjyN54cqpJG6xkAYQALSVqrFPVRe27TjE+exiXm9fpPXIEUqkUlzVr6dIh/uf2qYsX6NyrF2atWrFjzdpknzcjUEZ3iOCHIDkkR3cku+FpQpQrV45r164psTL1HDt2jObNm8cKEIBu3bohl8s5efJkhviQWaTnGDFB6lFTU0NNXZ2oqCh69bDk8cPkjQLV1tGhWPESFC1WPMWBDwC7Xn05fvYydeo1YNHcWTRvaEoj0+r0tbchODiIles2s23XPqUDHwDd7XoxYfJ0Fs2bReum9dm5fSvqkQGUMYIPL+4xZEAf2rdsTJGiRXHcsSfNAx9875K+c99BzC26MWvavzSrVwvDnDlZtMeFHYfd/79QIkFFK6bJV53CuixuW5Szly9z/NxZHOztf8tMCAwOQlNTE10dHaVuJHJ9/7uncvkKLJ42LTbw4eEfzkWPADz9Y+pyixYqxKFt2/B454XznrTNhOF7BsdXP18+fv6crPR7e0tLDp44gc+HDwmPzPs+Iu9peChXbtygRJEilK5bB/NePTl7+TKe3u84d+UKnXv3plQdUx49ixlF+u+8uWxzdU3rowoEcchIzYHQHUJ3CLIMySnRGTZqLIOGjQRg2r//4JeC5txFihbj8Mnz5C9QkP49ezB14jg0NTVRUVHhs78f1/YsQUdLi4I2i9DIFfOF/YfuWLBmNX7f/Blga/eb3cDgIHLlzAnfMyGqSlVxVNVDAzipiOKk4v/P9JgMzJh/Hzd4cJzAx6+6o0XDRqyeO4/d7u48ePIk2efNCJLSHSLwIUhP0iz4AWCcQXXfz549+63Lu4GBAfny5ePZs2cZ4kNmkV5jxARpg1QqZcXaTdSp14DgoCBsunbknVfm1C5WrlqNFWs3cv+5B0fPXMT92Gmu3X3MkVMX6Gplk6LgxPDR49jtdpicuYwZNdSBKmWLU754QcxaN+Pm9auM/3cq+w6dwMgoZ7qcie/lQEtWruXO45cMHz2echViSo58vL2ZOW8RHTt3AYUc/6NzWWKqYKN5Cc6dO0Xn3r1o0agRPSx+Hxesp6NLeHg4QcHBqBYulOj+qkUKc+j7l52uHTogkUj4Fi6j7/5XtHF6Sv8Db2jt9JS++18REC6jVPHidGrdhvVbt6aq8drPvPPxYcqCBRSqXo28lSpRsFpVjMqVpc/IEdy8dy/J9/ew6EIOLS1GT5uGXC6Pd2SeRj1TtBfPYvS0qejq6LDGyYla1apx9chRHl+8xPn9bjy6cJEbx49Tv3Ztdh04QB0TEwD6jRnNyQuiKaUgfckozYHQHYn+XOgOQVZFIpEwefpsBg4dwS63QynWJoWLFMHtyEnOXbmJmbkF5StWJjo6OlZH5dFSsLdXDTZ0Ks7xnuVY3a4Qy9csZ+aSJUwfO46SxYr9ZlNPR5evvjHBmB+6o45UjbWqukxSyUE7qUbsWtUihdl/9CgAA+1jslcS0x3W5ubkz5uX9Vu3pui8GUFCuiOrj+YVZH/S/mo2A/D398fAwOC31w0NDfHz84v3PREREbG9FPiefpodSa8xYoK0Q0NDA6cdezBr04znT59g07UTB4+fwdDQSIl3pz0GBoZK9R9RlkZNmtGoSTO83r7l2dPHREVGkidvXqqb1Iq39CO9yJ0nLyPGxHQF9/R4Q/eunZj8zxjqNWhE8ZKlePPqJd17WpEnVy5eeXrSvkULdqxZG2+z0Sb168Wkku7fzwA7OzQa1ovp+fFzMy4VFTTqmaJarAhrRw1HAgywtQVgzFFPrnoFxbH5Y9Tdps4l6dGlC5162uP57h3FChdO0Xnf+fjw8csXLl69ytSFC1BTU8O2Sxea1KuPqqoqD58+ZdOO7Tjv2cMoBwfmTfo3wd+Hnq4uW5Yuo1v/fnQfBIunTSe/8zpkHm9jam2LFOadioQew4dx4epVoqOjmTRiBNPGjP1/r5A3nsi83lG5SGG2rVpN2ZKlmLpwAQ1q1+bS9et069ePc/v3U+2nfjgCQXZF6I6EEbpDkJWRSCRMnTk3zmsymSxFF0DlKlRk5rxFAJw5dYK+9jbIZDKevnxJV2tzJg0fxjFPT5x27eKLry9Tx4xh4vD4e420aNSQra57ePryJeVKlYrVHS1Qp8WPRSoqqNSphWqxIpz/7z9yGRlRIF8+UEJ3WHbsyL7Dh5N9xozix6jen3VHYhkfPzRHUusEgqTIuG8qmczcuXPR19eP/adQocRvd7Mq6TVGTJC26BsYsHOvO/ny5+fl82f0sukWZ0TZn0DhIkVo2bot7cw6YVLLNEMDH79StFhxzl65yeoNW4iMjODNq5fwfXTcpy9f2bdlC26OTmgnUEpUuEBBOrRsyaotm4mIiEjwRuL9sH6MmPwv127fRk1NjYVr13D27hMuvw0i+pekjp9H3f2YhhKQzC8/0dHR7HF3p4lFZ4rVqkmddm0ZP2smUTIZ5m3b0q+HLeZt29KhZUsmDh/Oy6vXWDR1GkvXr2fSvLmJ2jZv25Y9GzZy7OxZiteuhWX//iw5eojlj+5hMW0ypevW4da9+1QqV47a1WvEBj7k3wLinYTzT8+eNDA1RRYdTeO69QgOCaGDrS2e7xIvIxII/lSE7hAIsh737t6mfs0qPHpwP1V2mrVoxa2Hzxk4NKYPx1vvd/QfO5YN27Zh3cmcRxcuMHnkqAQbgHdu247cuXKxdP06SCATIqJWdVp5v6Rqs6Yxmamqqixdv547Hh+U0h0BQXGDI1mRpEbzJqQ55AEBGe6r4M8gWwY/DA0NCYjnD72/v3+cetyfmTBhAgEBAbH/vMvGgjw9xogJ0p78BQri4uqOrp4e9+7e5tGDpMsRBClHQ0MDi27WHDpxDu+vQVy6cY98+QsQFBLM4rVrkww+TRw+gjdeXvQYMphIDQ2MnNdhfPYwho5rCN6+AcswP6qadWD9tm2xk0+2uLjQsn1z3u+djCzoa7x2vb5F4OvvD4Cujo7S5wkLC8OiT29sBg1EIpHgvGIFeXLloo6JCZOGj+DMxUuYtGrJ5pWrCD9/CZnHW1RUVBjRvz9zJk5k4erVPH35MtE9zNu25e2t2yyaOpU3bz1ZuGYNi9eu44uvH+sWLODUnj3ce/SIwb16xQq4b8PHxzsJJ2D4Pwzu2Yurt24xc/x4KpUrx8fPnzly+pTSZxYIsipCdwjdIfgzWDh3Fp4eb7Ds3IHXrxJ/RiZFzpy5mDpzLsfPXo59vterWZP5kydTtmTiE940NDT4d+RItuzcyaK1a5Do6cXRHffnT6He41s8fPGcR8+exVw+yOVMmjeX+k3r8uX0WhSyqHht/9Adusno65YcZG88Y3VHepOQ5vg2bHy67y34M0mzaS8ZScOGDcmZMydubm6xrwUEBGBoaMiWLVvo2TPpbs7Zuev6D9J6jJggfbhy6SLq6mrUrF0nwTVyuZxzZ05x8dwZgoKC0NXVpXGzFjRq0ixTMyqyO0+fPKZjqyYEBgVh3rYtu9atR+XXBls/cejkCawHDqRQvvwM7NkTa3NzfP38aNTZHIVCgVQiISIykgnDhjNxzmxOu+7l7su3TJg7D1BQwGohavq549g83rMc06aO48rNGzy/8p9Sv0+FQkG3/v04ce4cu9ZvoG2zZrgfP4ZFnz7cOnGSqhUrEvHlKwPbdWCrz1vWq+rQVqqBRsN6GKyYT5SmJsVq1cSyY0eWzpiZ4s9v1wE3egwejO/TZ+jr6SXZoV332D4MmjVmy9JlNGvQgLOXL2PbtWuK9xdkTzJi2ktGI3RHDEJ3CLI7gQEBWHRozcMH9yhQsCAHj5+lQMHUZ2Vd++8yVubtCY+IwKpTJ5xXrExUb/D9WT95/nzmrVxBozp1GdSzJ62bNuXYmTPYDBpIvty5+fT1KzKZDIlEgpamJg/PnWe1yx6Wrl6BZsEK5DefhkQ1bjnvEdvStGzXhMZ167J56bJUn+0H8m8BMcGIi1diX/uhO6T6+mm2zw/EVBiBsmTKtJeMpE2bNpw+fZpv377Fvubq6opUKqVly5aZ6ltGkpyO14LMo1B5E2Q5S8d2xA8JDobvD73LF84zuF8vypcoSPeunThy6ABPnzzi6OGDWFuYUbdGJdz2pv2UkL+FcuUr4LRzH+pq6rgdPcqoqVMSbTraoWUrLrm7U61SRcbNnEG+ypWo2LgRvn5+hISE0KZpM64eOcKIVm0oljsPq1evZoSdFZ3Hr0ciVeHjwVmx9lUkUL+ILiqhvuw5dJABdnZKB7LOXbmC29GjOC5bTttmzQDY6XYAk3LlKPvVH5nHW0LG/MtM31BaStSYIQslWqGIvQ3R0NDArls3XPbvT9XnFxER020+h1ZMTX9Sk3BUPnxEKpUSHhFBgXz54gQ+wsLCiP65h0omkpG3VoI/A6E7YhC6I3vg5RvK1Ve+YhJPPOjp6+Oyz52SpUrj4+1Nt07t+PLlc6rtmtatz+btu1FVVWXXgQMMmzQpySbnEomEWf/8w95Nm5FFy7Ac0B/9UiWxchiAXC4nMiqKkQMGYNulKwqFgtCwMBbMn8+C8aNpNXgx4d6P8b3kHGvvh+64e/Usb729cbBP/mjfX/n5eZnRWRjKTN/LDgjNkbXIlg1PHRwcWLlyJZ06dWLixIn4+PgwduxYHBwcyJ8/f2a7JxAAEBgWxTS3x9x48/9meKXUvnLb8R+atWjJjav/xaZcqqmpIZFI8PX1pVGT5oyd8C/vvN6yZsVSBvbtyccPHxg4dEQmnib7Urd+A1Zu2MyAXrasdnSkcMGCjHYYmOD6ahUr4bJ2HR8+fWL5po0sWrOGGePG09+2B0ZSVb4NH4/vxSsMj45gxPlzTGzYlNWue/n28R9OrhpJuPcjtApVok5hXcbVzIGZvS15cuWit5W10j6vc3amfOnSdG7XDr7ftnhfvkLhwGD8ew2KXScFhqvkoJ0sgDOKKFpGS4i4eAWZx1vKliyJr78/UVFR8TZ5VQbjXLkAeOnhQfnSpZOchOOlpoJcLif39/f94KufLx3te2JSpTLLZs5KsAY6vcnoWyvBn4PQHYLsQHy6o1bxmPIkPa2UPQf+RIyNc7Pb7TBmrZvx+tVLrDubse/QcfTjaWqcHJq1aMWqDVsY2Mee9du2oq+vx5wJE5N8X6c2bejUpg2Pnj3jn9mzuHj1Kk4rVtCuWXPUwsLxHTaOb1J1DskjWe+2n3yPnrF99x6aPrfm4VlXjOrZIFXPQZ3Culjl86NbrzG0a96cmlWrpvgs8T0v4yU6OlZ3pHUWhjLT97IyQnNkTbJl5oehoSFnzpxBVVWVTp068c8//9C3b1+WLFmS2a4JBLFMc3vMLY+4UwCunTnI548f2LnNGTV1dQBGjB6P1+cA7j97g92A4Rw+fIhWTRuSyzg3W7bvZtiosUyfPIHzZ09n0kmyPx3NuzBt1jwAxs+cyU63pDMi8uXJw9MXL6hRuTIThg0jl1HOOLceFioajFPRYuGb53Rs1pjeFXNQrGgxSn+9gFMbQwp7utOkQxu++vlxePsOjAwNlfJVJpNx8OQJelpaxemzoRoYRGQ86ytLVSkvUeGo/P9TJWRvvQgPj0AqlSaZdpsYTevVI6ehIZtdXABQLV4UjYb14FebKipoNKyH08Xz6Ovp0bJxozg/vnrrFjfu3mG1oyOL1q5JsT+pRdQOC1KK0B2C7EB8uuOWhx/T3B4n+J6/NUukQMFC7DlwhFzGuXn08D6L5s1KE7udOndlwdKVACxYtYoFq1cp/d5SxYpx485dBtjZ0bltOzQ0NPg2fDyy/66zTEWHRpKYANa0l0/o36YVU7s1RiqPxEztIYtry1G9tp6O3S2pWLYs21en7lkb3/MyMdIjCyMpzZHVS16E5siaZMueH2nBn1B7K8i6ePmGYrP294eG73878f9vOwAqKiqULV+BLW5nefU5mH03vXnwLgBZ0Fd89kxEQ1XClWu3yG2kR7sWjdDR0WXPgSOZcJo/h6kTx7F+zUrU1NQ4sn0HTevXT3R9UZMa2Hbtxszx4xOsPT0pj2RddBg3FbI4r2vnyEH3zhZMHD6cgsm4Gfb18yNPpYq4btyEedu2sfvOlIXgKo/ghpohmr9kTvSOCiQacFaL+bvM+Oxhukyfgs+HD9w8cVLpvePjn9mz2LBtG7dOnKR4kSLIAwL4Nuz3m4zAf4ZTq0sXelhYsGTGjN/sLN+4kdHTpgKwbdUqrM07p8qv5CJqhzOOP7HnR1ogdIcgPUlId/xg5yDT2HIlL99QXn4KitUdP/gbs0QeP3zAymWLWLJyHTkSmAiXElYtX8ysqf8CsGbefPrb2ib5nteenpSpV5fjO3fRvGHD355bYQoFI2TBFJJIOSaPxIuY5usSiQSFQkH+vHnp38OWMQMHoqmpmWLfk3pexkd6PUMT0hxZPXtCaI6MJTm6I1uWvQgEWR0f/7DfXpNHhhNw2w29ah0wDn/L66cPePnak24LDqOmZxy7TlU3F/k6TcbLcSD9p67AfdVkevcbyJABvXn96iUlkuggLkiYqbPm8eHDew667cOiTx8uuLlRuXz5BNdHRkWhqaEBidSetpSq01Kqjs/08Uw7eYyb9+6xcvYcWjVpgn4KvuBoacUIlqDvvWF+7NtdRZMN8nAOyyPpoqIR5z1hgB6SmNuQeqZ4q0o5cvo0a+cvSPb+vzJm4EAOHD1GKytLDm7dRrlSpTByXofM4y2yt16oFimMhyIaMzs79HR1GD90aLx2hvfrh5ePD8s3bqD3yJEY58xF84YNlfJB9sYTmdc7VIsUTrFYUKZ2WAgRgUCQXYlPd/yMt18Y+lpqv5XF/MyPLJElNikvl8huVKhUmXWbt8Z5TaFQpLo8c8jw0QQGBLBiyUIGT/gHfT1dLDt2SvQ9kVEx01s0NePXHVoSCevVdAGYqMjBgzGDGLLNifx58jJh+HBaNmqEqmrqv9ol9byMw3fdkV7PT6m+/m+aI72f1UJz/Nlky7IXgSCrU8BQ67fXgp5dQB4RiqGJOV1t7ACIDA3kw76pRIcHx1mrnrMQOYrV4N6p3bzzC6VVm5jeDw/u3cmgE/yZSKVSVqzdhGnd+gQFB9HetgdePt4Jrs9rnJtn3/uyJFV7WrVBA9TV1SldogTdOnZMUeADIIdWDiqXK4/7ieNx9i0uUaGFRI0Z0SG8Uvy/caivQs4NRRTVpKoxAmTuFHoMHkTuXLmwNjdPkQ8/k8soJyd270ZDXZ0qTZtg3qsnew8d4srH9xwNCcRq9gwqfi9zObFrN3mMjRO0tXDKFLqZmREVFUXXfn25/zjhVGy+18v62TvwpVkH/HsN4kvT9vjZOyCPZ+RoUmT32mGBQCBIjPh0x88UNNKKtyzmZ+QKuPHG768rgfmBQqFg/qzpjBk+OMlmpcowYfJ07Pv0R6FQYD9sGEfPnEl0fe6cOQF49vIVJPHckkokqOTOjc+HD5hUrUrbZs3SJPCR1L6/olHPFIMV89Nk38RQLVYEzcYN0jVgIDTH34EIfggE6UDhnDmoVdwI6U8XB2HvHqCZvwz1qpVDKo2pX1TRMSLS9y1+l7f+ZkOnbEMiPr3m5bsvaH1PxQwLC4+zRqFQcPfOLXa7bMdlqxPnzpwiKir+ue+CGDQ1NXFy2UOZcuV5//Ej7bp3x/+nCQ4/Y2Xeif1Hj/LVzzfJ2tOPGmocOX06TQIOA+zsOHTyJB5eXnH2Xayqg7FEinlUAM6KCCLr1uJAz25I1dTo7+bKZZtONLaz4/Hz57g5OqGdRim8RQoW5Pqx46yeOw8vb2+sHAbQrIsF3fr347WnJ8tnzuLmiROUKFo0UTtSqRTHZctpVKcuQcHB9B4xHLlcnuD6tKyXze61wwKBQJAY8ekOAKkkppxF8T2wIVfiO723X+JZJH8qjx7cZ/mSBezY6siMKRNTHQCRSCTMXbiUzl0tkclkdOvXl4vXEi5NymlkRKsmTdi0I6Y8OrHnlkr9OvSZNxtZdDQnL5wnIDAwVb7+TFLPS+OzhzF0XIPx2cMYOa/L0uUnyUFojr8DEfwQCNKJaeYVMClmFPvfiqhwjAxj6mnlGjFpi7lbDEWndH1yNvx9HJmKpg4AhhrRvPX0ACDX9ykaCoWC3S7badGwDm2aNmD4oH6MGjYQawszalYuw6J5swkJCcmgk2YObz09OX/2NGdPn+TF82fJeq+BgSEurgfIlz8/T1++xLx3L8LDw39b18vKGoVCwaylS2Pet2I+GvVM46zRqGeK/vJ5TFu0EC1NTXpYdEnlycCmc2fy58lDt3598fP3j93XUCJln6oeDaRqTJWFUPHqWaZv2oBx7tzU7d+Xzr17o6mpyQW3A9SqVi3VfvyMdo4c9OvRg1snT+F99x5PLl7i3Z273Dl1Ggd7e3S0tZWyo6Ghwb7Nm+nQsiW7N2xMcPyv7I1nTI3vr+Nxf+osn1wS+v1lxK2VQCAQpDe/6g4Ak2IxuiOpspifKWiUeBbJn0qlKlVZtDymUejalctYsWRh7M8UCgWPHtznzKkTXDx/lo8f3itlUyqVsnzNRlq2bkd4RARmdnbcfvAgwfUOdvbcun8ft6NHIZHnlub8aehqa6OmpsbzV68ws7cjNCztMnYSe15mRBZGRiM0x9+DaHgqGo8J0pl3fqF4+4Wxae4Y3r54yulL13j+7gtNTMqhV6UtueIJfAAE3j/G51OrePPel4VzZ7JzmzN3n75GQ0ODsSOGsGOrIy1ataVXvwHUb9gYFRUVnj15jPOWjbju2kHpsuXYtf8QhoZG8drPrpw8fpTN69dw4Vzc9NFqNUzo3W8gnbtaKj3h5OnjR5i1akpQcBBd2nfAZe3a376Mr3bcwvB//2Xs4MFMGz0GDQ2NOLWnUXlzM2HObFZt2cKmJUvoaWmVJud88OQJLS27oaery9hBg7E2N0fz81dkb73wlEpYesgdx107yZ0rF6bVa1CoQH56dOlKjcqV02T/zCb8/KU4Y31/xdBxDZqNG6TIdkbWDv+NiIan8SN0hyCj+KE7ChppxWlymlhDVL5niZgUM/qren7Ex/rVK5g6Kea2f8bchaipqeG0eQPPnz6JXaOiokKrNu3oN3Aodeol3jwdICwsjO5dO/Hf5YsYGRpx8YAbZePp4SaXy7F2cODImdNsWbKUrmZmSCSSOM+tr9paWDkM4P7jx2xctBiH8eP4FhBAqyZNcNviiPr3aYJpwd/yvBSaI3uTHN0hgh9ChPy1ePmG4uMfVxykJ4fc99PPvjtnLl2nQqXKNDK35+W14xS2W4mqbi4UCgX+N1yRqqhhYGLOt33jKV3ImBWr19G8gSlWPeyYNmse82fPYNmieSxbvQFLmx7xnuXh/XtYdu5A6TJl2X/4RIK369kJhULBtEnjWb9mJTVq1qJnnwHUrlMPqVTCw/v32Oq4iXNnTtHOrBNrNzkr/fC/fPEC1hYdiIqKYlifviyePv23RmdL169n3MwZ5DIyope1NbWqVkOhUHD19i2cdu3mW2AAK2bNxsHePk3P/MrDgzHTp3Hk9GlyaGlRpGBBIiIjee3piZGBIQPs7JgyahRqatm7M//xc+fY4+7OxsWLYwNXolN69kUEP+JH6A5BRuuOXxnlco9bHgmXviRn2ktmnyW9mT97BksXzoXv5Stt25th26svpcuUJTIykvNnT+O0eQPPnjxmysw5DBo6MkmbwUFBWJi15v7dOxTIm48LBw5QtNDvvSHCw8PpNWI4rocOUb50aXpb21CiaBFCw8I4fOoUew8fRk9HhwNOztQxMeG/mzdpbW1FaFgYXTt0YPvqNakac/83IjRH9kYEP5RAiJC/l8CwqN+6nWfEeLeoqChMKpWmbv2GrNnoxBsvH1o0aUAUquTvPI2obx95vzdmLFrfYePYtGIB8xYvZ+PaVURGRnL0zEXU1NSoVq4E/QcNZcLk6Yme5e61i1iat2fX/kM0bto83c6VUSxZMJcFc2YwZ+FSevdziHfNiaOH6dezO50surFi7UalbR/YtweHPjGBiwWTpzDK4Xf7z169ZP3WrTjv2UNgUBAAhgYG9LS0ZICtHSWLFUvx2ZLirbc3u90P8PHTZ9TU1ahUthwW7dqhpZX9U5O/+PpS0rQ2IaGhDO3ThyXTZ8QGn/zsHWLqb39OQ/3eWd7IeV3mOS1IFBH8iB+hO/5eMkt3KONH5UL6WNQsSOm8ukoFMbLKWdKb6OhoalYuy3sfb1RUVLh65zGFi8T98qtQKJg3axrLFy9g6ar1WPewS9Kur+9XzNu15MWzp5QsWozzbm7kzZ37t3UKhYLz//3HWicn3E8cJ/r7c7Bk0WIMsLPDvls3jAwNY9efungBMzs7oqKiWD5rFoN79U6Tz+FvQmiO7IsIfiiBECF/L/HdfMSX6pketxq7XbYzfFA/ho0ay4TJ0/F485qu5h346ONN41btkEZHcurEMQB09fQIDQmhcJGiuOx1p1jxEmxYs5KZUydx+9ELcufJm+hZFltXoVn92hQuUgQnF9c08T+z8PPzjQ36TJo6M/b1+H5HLludGDVsIOeu3KRchYpK77Fm5VJmTJ4IwI41axIcSSeTyfAPCEAiAUN9g2xxu/L4+XPWb3XG/fgJ/L75o50jB/Vq1cLB3p5m9RtkembQHnd3bAYNBGD+5MmMdoj5d3lAAN+GjY+pw/2ORsN6GKyY/8c0WPsTEcGP+BG64+8lM3VHfMRXFqMsyp4lu3P65HF6dDOncdPmdLLohlV3W4jnd6RQKBg6oA8Xzp/l9qMXSmWdfnjvg1nrZrzzekulcuU4u3cfhgYGCa6PiIjAPyAATQ0N9PX0EhzDu//IEfYfPcKWpcvStPTlb0FojuyLCH4ogRAhfydJ1bzuHGSKvpZaut5q/PiSXaFiZXr27U9t07ocPezONqfN+Hj/f+yqVCpl8PBRDBs5NvbPqE3XmC/kLq4HlDqL+7a1LJo7C8+P/qn2OzNZu3IZc2dO5c6TV+TKZZzozZOWKphUKk3rdmbMX7xc6T0UCgWT/xnDpvVrUFdT56iLC43r1k2nE2UMUVFRDJk4gc0uLuQxNsamc2cK5stPYHAQ+w4f5tGzZ9SqVp39W7bEe/OUkSxZt45xM2cAsH31aqw6/X9qjqiXzV6I4Ef8CN3xd5IVdEdaocxZ/pQSGFtLCz59/MCJ81eQSCSJ6o73ni9pXKcG6x230dFcuabnnh5vMGvdjM+fPlK7eg1O7NqldONwQfoiNEf2Izm6I/s3AhAIkkFS3c69/cKY5vaYWx5+cV6/5eHHNLfHaeLDoKEj2XfoBIUKF2b8qGE0NK3OvFnT8fH2plDhIvQbOIRKlasil8vZt2cnQUH/H18WHBRIrlzGSp8lZ05jwsPDs9X4W7lczjuvtzx7+oQP731QKBScOHqY5i1bx549sd+RmpoaFt2sOXH0ULL2lUgkTJ+zgHZmnYiMiqRz7148fPo0Tc+WkcjlcnoOH8ZWV1dWz52Hx42bLJwyleH9+jF55Cjunj7DqT2uvHvvQ/OuXfDzz9wA2cgBAxjWtx8AvUaM4NyVmJsXXz8/Nl44x4yrl5i2eyfbXF3TtKO9QCAQpCdZQXekFcqc5U8gKiqKM6eO0826e2yWxTS3x1x79Bqf3ROI+OIJP/2OypYrT9XqNThx9LDSexQtVpzd+w9hoK/P9Tu3sejTm4iIiDQ7g1wuZ/i/k1jtuCXNbP4t/InTbAT/RzWzHRAIMpIChon3SFCREieq/wO5Iub1d36haXKrUa9BQ+o1aIiP9zueP3tKVGQkxnnyULVaDaRSKf7+fpi1asrLF8/p3tWc4+cuo6GhgY6uHl+/flHqLAWNtLjt+wVNTc1s0RDTz88Xl21ObN2yCa+3nrGvV6pcla9fP1O6XHn4fvOU1O8oX778BHz7lmwfVFRUWL3Bka9fPnP96n+079GDywcPUqhAgVSeLuPZe+gQu93d2b1+Axbt28e+LnvjiczrHapFCtOkXj3O7t1H3Q7tmTx/Pqvnzcs0fyUSCYumTsXnwwf2HTlM5969aN6gAUfPnkUul1Mof36io6Px8vFh5NQp9LGxYfqYsWhqamaazwKBQJAUWUV3pAXK6I4/geDgIORyOXnz5YefdMfnc5sIe/eA93snU9B6AWoG+eLojm/J1B3lKlRkx153unZsy5lLl+gxZDA7165DVTX1X88OHDvGakdHAAz09OluYZFqmynhZ80hggmCrIDI/BD8VRTOmYNaxY2Q/lIuKZXEpC9GyxN/f1rfahQoWIimzVvSqm17qteoGdt7wdDQCJe97uQvUIBe/QagoaEBQOMmzbh47gyfP31M8iwFDbXYt3sXTZq1SFOf04PHDx/QtF5NFs6ZiWnd+mzf48bhk+fY6LyDvPny8+H9e9z3u/Lxw3ulbp4CAgLQypGy9FFNTU2cXFwpVaYsPh8/0MHOlm8BASk8WeaxxtmJRnXqxgY+5N8C8LN34EuzDvj3GsSXpu3xs3egRM6cDO3Th+379hIQGJik3fREKpXivGIFtapVA+DS9etMHT0ar9t3ePHfVV5fv8HzK//Rt3t3Vjs60trGmpBQkQUiEAiyLllNd6SGpM6SVYI0qUVLK+Ycgd+fiT90h3FTB9RzFSE6xA8f10nIgn3hJ92RI0fyz1+jZm2cd+5FXU0dt6NHGTB2DHJ5En8olMC8bVuG9I5petp75AgOnTyRapvJISHNIc+GekrwZyGCH4I/Ei/fUK6+8uWd3+9fjKaZV8CkmFGc10yKxdRtZqVbjUKFi3Dpxn3sevWNfa2bTQ/U1NTYtH4NJHGWC+fO8PTJI3r2HZBhPqeEt56edDNvT+7cebl+7wkr1m6kecvWmNQypUPHzmzbvQ9LG1sCAwKwNO+AvmriJTwFDDU5eGAfderVj31NoVAQGhpKaGgoyrQ5MjQ0wsX1AHny5uXRs2dY9OmTpumo6c1rT08uX7/OAFvb2Ne+DR8f08X8JyKuXOPbsPH0telOeEQE+44on7KbXqipqREeHo6Bnh7Xjh5j3OAhGOfMieyNJ+HnL1FYDvMm/cup3Xu4+/AhA8aOyWyXBQLBX05imoNspDuUIbGz/CloampSrYYJhw7sg58yXlS0dMnfZRZqBvmQBXzivetkosMC0Yj6xvWrV6hTr0GsDYVCQXBQEJGRkUnu16BRE9Y7bkNFRQXnPXsYM22aUlolMSQSCUumz8C2S1eio6OxcnCILSfNCBLTHNmFH7pD5vE2s10RpCGi4aloPPZHkZwRbAl1O8+qncz9/Hw56LaPz58+sXThXJauWh/bffzXszy4dxerzh0oU648+w4dz/RpHokxuH8vrv13mVMXr2FklBPi6ab+1tMD02oVUFFRYfykKXjkaZHg76hjPl8szduz1/0YxUqUYLvTFly2O/Hp40cAchnnxsbWHtuefShUOPEUzMcPH9CxdTOCQ4LpZmbG9tVrsvRn+YNzV67QoltXnl2+QslixZSaX1+iS2d6WVsxbczYDPX1V46cPk1HezsuHDhAvZq1iPzqy8IuVnT3/IDG99rrH93XNx86xKB/xvPs8hVKFC2aqX4L/o9oeBo/Qnf8eSR37Gt20x2JkZqJMVmRX3XHj+l8F67doUzZcnF+R1HfPuK9axzRwb7kLFqebh1a4LxlE/eevMbD4zVOmzZwYL8rYd8zE0uXLYd97350tbRBL5GpIXt27mDYwJgLrymjRzNl1OhUn0smk2E5oD/ux4+jo63Nyd17YrMr0wtlNEdWLoGRfwuICd6IqS/ZBtHwVPDXkpymYYWMclCnZM7fHtpZ8VYjLCyMjq2b8c/o4RgYGtLDvjcjBvenezdzTp04hnEOKSZF9PD3es6Y4YMxa92UwkWLsmX7riz9Zf3Ll88cOrCffg5DMDLKSWBYFKNc7mGz9hpjd93Hes01RrncwzBPQbpY2qBQKNiwZhWTzcrG+zvqUUGVwf17U8u0Dt7eXphWq8DG9atp074jq9ZvYfWGLXQ0t8Bx03pMq1Vgq+OmRP2rUKkyji57UFVVZc/Bg4ybOTPR9VmFH7/zH6mzMq93ia6XvfVCrpBniT8r65ydqVG5MnVNagLQo1Vrpr58zIjoYOTfY/U/bo+6W3RGX0+PDdu3ZbLXAoHgbyS5jUqzk+5IioTOkt1ISHc0aW1GiZKl6NW9G+99vOP8jtQM8lKgyyw0tPXx9XzC2pXL6dN/ILNnTKFV43pcPH+WIcNHs26zM0tXrad0mbJMmTCWOjUqcfvm9QR96WbdnVnzFwMwY/FiVmxKXKMog6qqKjtWr6Fp/foEh4TQ0d6OoODgVNtNDGU0R1bmT8haESSMaHgq+GNQphGmMg9pPS01lthUzZBbjV9vGhJCS0uLbtbdmT19ClMnjmOD43ZqmdZl49pV2Fp2jrM2X/78DBs1jgGDh6GdxcemnTx2hOjoaCy/Z7AkJiQXLF3Ji2dPuX/vDmMG9mTMhMmMbG2Kt18YKmFfOe22A8t/1lOgYCEsulkzYvAAutv1Yvrs+ejo6sbas+hmzcSpM5k1bRLjRg5FVVUNG1v7BH1s0KgJy9dsYHD/3izbsJ5C+fMzvF+/dPxUUk/JokWRSCRcun6N0iVKoFq4UKLrPSTw4dMnShcvnmE+JsR/t24ydtBgJBIJsjeedP0axCHgsDySfIQyRVUboqOJuHgFvY9faNO0KVdv3cpstwUCwV9GWmkOsqju+FtISHfMOw47XA9g0aEVrZrUp++AQUywtSdctTTvfEMJeKfK9vd1OHPyOK3atsPPz5dd27cyb/FybHv2QUVFJdaedQ873vt4M7CvPZadO+B+9DQVKlWO15++AwYRGBDAgjkzGDV1Cvq6uthbWqbqjJqamuzf4kgHO1uG9emLro5OquwlRVKaQ7VI4XTdPzXI3njGyfiI5bvukHm8zdJZK4KkEcEPwR+DMo0wk/OgL2SUI92EQXJTZQGGjBjD+/c+OG5cz5ABvdntdpgT569w/94dXj5/jkwmI1/+/NRv2DhNOoVnBL5fv6JvYIihoVGSQvJrmIIt23ZSo1IZLl88z5FD7hgaGiFVUcHP9ys6urpYWvdg0LBRNDSthkU3KxYtXx07pk7x+g0KT08kxYqiXbw4cxYsJSI8gknjRtK2gxkGBoYJ+mnRzZr3732YPW0yY6ZPo0DevHTpkHBKZ2ZTIF8+2jRtxlonJ3pb26BavCgaDevF3GRER/9/oYoKGvVM2XTuDDkNDenUuk1mug1AaFgYujoxQTuZ1zvqS9VYrKLDsOhgNsrDyRctpZ9KTP217K0Xejq6hIVlnYaAAoHg7yCtNQdZUHf86SSlO1Ral+bo6YvMnTmNpQvnMn/2dIxy5iIyIoLAwAAKFS7C9NnzqVSlKp3bt2LxijV0t+sVa+dn3ZG/eHFcXN0xa92M8aOHcfjk+QT9Gjn2HwICvrF+9Qr6jRmNnq4u5m3bpuqsOtranN27L1YTpSdJaY6sHDxQJmslK/svSJrMz3EWCNKI7NQ0LLmpsnxvXjVr3mLatOtAREQE9tZdefH8GVWr1aCrlQ3WPexo3LR5tgl8AGhoaBAeHoZCoVBKSMq+P0RXb3Bk89adDBo2gv4Dh7By3WbuPX3DrPmLOXXiKKEhIUycMgOJRILC3x+ZZXdkdRoSbW2HzLQhMsvuEBDAP/9ORSaTscdle5K+Dhk+mt79HFAoFNgNHcqFq1fT7HNID4b06c29x49ZvnEjAAYr5qNRzzTOGo16pjztZcX6bVvp271Hlhgbm9PQEC8fH/jp9shcRYOJKjFfCGZEh3IwOqb5rGqRwnj5+GBoYJCJHgsEgr+R7KQ5SKHu+NNRRnfkyZuPZavXc/fpaxYtW02f/gMZNnosO1wPcO3uYwYMHobzlo2ULFUafQMDpk4aj9zPL17dkUMmY/T4idy6cZ2H9+8luK9EImHarHlY97BHLpfTfdAgTl+8mOrz/hz48PLxpkvfPvj6/R78SQsS0hwGK+any35pRXbOWhEoR/b5liQQJMGPEWwJNQ3LKumdqUmVVVFRYc0mZ7p1asvN69ew6WLG4ZPnyZe/QAZ4nvZUqVad0JAQLl88T5GKtRNdW9BIi2O7XFBTU6NKteoY584T77p9e3bSvGUbChSMeYBFOwxBcfFynDWKi5eJHjCY3Lt30LpdB/bu3kn/QUMT3V8ikTBz3iI+fnjP0cMHMe/Vk4sH3KlYtmyyz60MMpmMY2fP8vTlC2SyaArmy0enNm3Q+6mEJzFaNmrM2MGDGTN9Gu8/fWS0w0DyOK9D5vEW2VsvovLmZvftW4zu15eaVasyeeTIdDlHcunUug079u1j1vh/UPvp9shBockHhRxHeTgjo4PJX6Uy1TTUOHnhPMtmZI9eLAKB4M8hu2gO0rhE508iOQEsQ0MjbOx6/rYmNDSUIwcPMHj4KBx62yGTydA4doKxH/zjrPuhO1rucCZP3rzs3bOTSlUSbmYrkUhYtHw1gYEBHDl4APPevTi5azd1TExSdNY4vigUWDsM5Pqd23h/+MCp3XvQ1dEhIDAQ9+PH8f7wAVVVFcqVKk2bpk1TdKkm1dfH6CfNoVqkcLbImMjOWSsC5RCZH4I/iuzQNEyZm4bE0NLSwnnnXkqULIWqasxY0OxK7Tr1KFOuPJvXr4kVktJfMjKlkpjU3Hx66jhv2Ug7s04JBj4APn74QJly5eBHyum5C3EfYMTUbirOXUDx5g1lypbn48cPSvmroqLC6o1O1DKtQ2BQEO17dMfng3LvVRaZTMb8VSspUbs25r16smD1alZu3kSfUSMpXKM6g//5R+mbmjkTJjJ7wgTWODlRtKYJFn16M2bLRga67aWERWccxo2lfYsWHN62PUtkfQAMsLPj4+fPbNm5E366PZJIJExVyUFbiTqqUhVU+tuzcM1qNDU06G5hke5+iZF3AoHgV7KD5iANdMefSlK6Q5mAkJ/vV2QyGaZ168c2K13x5jnrIn9pKvpdd6h4eVGiZGk+KaE7VFRUWLPRicZNmxMWFkZ72x48ePIkmaf8HYlEwsbFi8lpaMite/dob9uDAWPHUrhGdfqMGsnKzZtYsHo15r16UtK0NgtWryL6Vx2lJKrFiqDZuEG2ChpklawVoTvSB5H5IfijyMimYSklLVJljYxysnPfIbS0NBMNBGR1JBIJg4eNYtjAvmxat5pp9v1/q0k2KWbElI7lmDBmBJ4eb1i5fnOiNtXU1IiKigJA4emZ6FqFhycyWRRqasrXO2tpaeHk4krH1s14+eI57W17cH6/G/ppMLoyKiqKbv37cfTMGXpaWuJgb0+1ipUA8H7/nk0uO1jj6MTZy5c57epKgXz5ErUnkUgYP2Qo/br3YKurK+4njvPa05McWjnoaWVJ/x62lCxWLNV+pyWVypWjj40NI6ZMJqehIV06dIhze7Qjb27eRMs4euYMqx0dWTxtutLZMClBjLwTCAQJkR00B9mwRCcjmWZeIV7doWwA64d+iIqKomef/gTcucPcHc7Mjg5FHwnWKnEvFv6vO9SVsq+hocHmbbuw6tyem9ev0craiotuByiVygbl5UuX5sgOF5p37cKVGze4cecuYwcPYoCtXay2uPPwAeucnZk8fz7Xbt9m9/oNydJL2ZXMzloRuiN9kSgUCoUS6/44AgMD0dfX56XXJ3TT4EuLQJAcfp4X/4MfqbJLbBJOg0yMRw/uU75ipSwxrvQH0dHR+H79QkREBEY5c8U7fUahUDB98gTWrVpON+se9B84BP2CpfD2C6OAoSZej26yavliLpw7w+IVaxOdzALQx9YKjzdvOHP5OrzxQFanYYJrVa9dpG0/e4xy5mLHHrdknc3r7Vvat2zM508faVKvPke2b0ddXTkxkxDDJk1k444d7N/iSJumTeF75F/m9S724fva05PmXbuQ09CQa0ePZaseL8oSFRVF75Ej2OnmRr1atXCws6NKhYpER0dz6fo11jk78+TFC6aMHk33zhbkMjJKk+BTfPjZOySY/mrkvC5d9szuBAYFYVS2DAEBAeiJ52ssQncIMpP00B1/EikNYMlkMqqULY65RVdmzV+M/NVrZtYyYa08HAmwRlWH9lKN2PWBxw9So20zxk6czOBho5TeJ+DbNzq3b8XjRw8oUrAgF9wOUDB//mSf81ffKzRswJu3b1EA3Ttb4Lh8OXJPrzi64+iZM1j06c0AW1uWzZyVqj0FSSN0R/JJju7IOt+SBIK/iLROld3tsp3WTeszZ8aUNPIwdXz6+IFF82ZTo2IpKpcpRs3KZSldOA+9e1hy8fxZfo65SiQSps6cy9xFy7h04SzNG5pi3aoOMx3MMW9UjS4d2/D+vQ/OLq5JBj4AbHv15cnjh9y49h+SEsWRNGkEP42cg5iHiKRJI+4H+HP39i3se/VN9hkLFynCjj1uaOfQ5tyVy/QZNRK5XJ5sOz/4+PkzG3fsYPrYsbRp2hT5twD87B340qwD/r0G8aVpe/zsHShmaMjOdeu59/gxR8+cTvF+WRk1NTWcV6xkz4aNqKmqYTtkCJWbNKZa82aMnDKFsiVLcWbvPto2a059sw5Y9OlDREREmvsRO/IunrKpHyPvBAKBIDuQXUp0MotCRjmoUzJnsjN3VFVV6W7Xk907txMSHIy0ZAkmNm9DdxVNFMAwWTCP5LJY3bH7ygXkcjmWNrbJ2kffwIBd+w9SvERJ3np709raii++vsk8ZVwOnzrF67dvmT95CqqqquzYv4/JjZr9pjtam5gwbcwYNmzfzuevX1O1pyBxhO5If0Tmh7iBEWQiaZUqu9tlO8MH9QNg9oIl9Ok/MA29TB7nzpyir70NCoWCLt2sadaiFeoaGrx+9ZJtTpt5/vQJnbtasmz1ht8yJWQyGSeOHua/yxcJCQlB38CAVm3aU6defaXHs8nlcprUq0m0TIb78TMYqagSPWBwTO+P70iaNCJowWw6W3clIiKcSzfuofJrgERJzp89TY9u5shkMsYMGsS8Sf+myM6c5cuZu2I5XrfvYGhgkGTkv2779ujp6nB8564U7ZedeOvtzbv3PqhIVShepAh5jI0BuPfoEU0sOhMUHIxlx45sW7U6TTOfws9fwr/XoAR/bui4Bs3GDdJsvz8FkfkRP0J3CLICWb1EJzvyzustDWpVpVXb9qze4IhKcDCR/Qcx5PQRjJAwQ0UblaaNeTLUgc7WFnTo2Jmlq1J2g//O6y0d2zTjvY8PNSpX5tQe1xSXfraysiQkNJTLBw+x020/8/+ZyFaZOsY/pwd91x0sm0thkxpMGj6CCcOGpWg/QdII3ZEykqM7RPBDiBDBH8KyRfOZN2saEomETc4utDPrlOE+XL96ha4d29KoSXNWrd+M/i8jSBUKBQf27WH4oP506NSZVeu3pMvM+TevX2HWuhm6urr8O20Wrdq2R8XLC4WHJ9GFCnLm5XNmT5/M1y9fOHDsNGXKlkvVfnt27mDYwJjskWUzZzKkd59k22htbUUOLS32b3FE9saTL806JLjW+OxhVp48zr/z5xHyxiNVvmd3Tl28QAdbW2QyGaMcHFgwOe2yn5T5PWSnJm4ZhQh+xI/QHQLBn8uRgwfo36sHDRo1YeyEf6luUgvZy5dIvd4Rmic3e6//x5wZUyhRshT7Dh5HW0cnxXu9evmCjq2a4uvnSwNTU45u34GWVvL6tigUCrSLF2PuxEkM79cP2RtPPjRtj2oCmsz47GG6TJ9CZFQUR3e4pNh3QeII3ZEykqM7/rxicYHgL2X46HG89/Fmq+MmBvfvhXHu3NQyrZth+ysUCiaMGUmVatXZvG1nbFaHl28oPv7/v2Uy72KJXC5ncP/eWHe3p36jxmnuS/ESJTly6jzDBvalj501+fLnp0rV6kgkEh7cv4uPtzc1atbCycWVEiVLKW339auX7NjqyMvnz4mWR1OwYCG6WXenq5UNH977MHfmVEZOmUL+PHnp3K5dsnwOCQ0lf568AMi83iW6VvbWCwN9PSIiIpDJZH9k3w9ladGwEZsWL6Hn8GEsWbeOQvnzM7RP8suY4kOMvBMIBILsx6+6IyNoZ9aJ7XvcGD9qGO1aNKZc+YoUL1mSiIgIrl65RGhICEWLF2fBkpVKBz4UCgVXr1xm724XPn78gKqKKmXLl6e7XW92uR2mc7uWXLp2jW79+7Nv8+Zk9R2TyWRERkZi8P2LoszrXZzAh2t0ONGA1feGrbK3Xhjo6fPGS5RdpCdCd6Q/oueHQPCHIJFImLNwKS1btyM8PBw7qy68fPE8w/a/ef0qTx4/ZPT4SairqxMYFsUol3vYrL3G2F33sV5zjVEu9wgMi6JzVytKlSmL05YN6eZPkaLFcD92htMXr9GmnRmRUVGER0TQonU7Tpy/wpFTF5QOfHz+9JHu3cypZ1KZXdu3AqCupsa5M6do37IJLRvVpWnzltj17odCocB2yGAu37ieLH8N9Q3w+T76TrVwoUTXqhYpjM+Hj+hoa//VgY8f9OjShVn/TABg1NSp7Dt8OM1sZ5WRdwKBQCBInMR0R0bQpFkLrt19zA7XA1SoVDmmB4hEyoBBw+hu1wuP16/p1aMb3u+8krR1++Z1Gtc1oXP7llz77zLqampEy6Nx2rQB02rlWbpwLqs3OaGpqcmxs2foNWJ4ssbRqqmpoZ0jBz4fP8IvuuOGPIpR0SGMiw7hsDymn5ZqkcL4fPyIoZg2ku4I3ZG+iLIXkX4qyEKkxW1FaGgoXcxac+fWTYaPHseEydPT3M/4mDB2BKdPHOf6vSdIpdIkO8tvWLOS6ZMn8Mr7S7LTNTOSTx8/0KFVUyIiwpk0dRZm5hZoasbchMjlcs6fPc3cGVN58+YVu/YfYvWyxRw/ehgDfX0uuR+kXCnlAiwbtm1jyMQJvLx6jSIFCyba88PAcQ3lGtSndvXqbF25Kr2Onq1QKBQMnTiRdVudaWBqytm9+9K0pCqzRt5lR0TZS/wI3SHIimRGlkR6kZUn2nz9+gXzti14+eI5JUqW4sCx0xgb54537ZVLF+netSMVKlVmwr/TqdewUezzLCQkhAP79jB7+hRy5srF6PETGdK/NzKZjP49bFk9b57Sz77ugwZy58FDHl+8iFQqjdUdCpmMCdEh7JBHoAZsq2qKybrllKpjyroFC+hj0z1NPxtB/AjdoTyi54cSCBEiyEoEhkX9Nme+VvGYLux6WonPVI9PuHz9+oX9e3bRb+CQRB+CPx6irrtc+PDeB1VVVcqULYdtr740atIsWc0j+9rbEBQYyG63w3j5hmKz9lqCa3cOMuXF7Ut079qJu09ekS9/AaX3yWg6t2+Fx5tXHDx+lkKFYx4+v37mIcHBWHZuj9fbt5y7chM7awtu37xB4QIFuHzwEPnz5k1yn+CQEApVr4Ztly6smD0HeUAA34bFP+d9/8WLWDkM4OIBd+rWrJmu589OREdHs3jdWgb36o12juwt4rMzIvgRP0J3CLISaa07MhtldEdm++rj/Q6z1s3w8X5HxUpV2Hfo+G+90b5988e0agUqVanKtt37Yy9bfv3MX796SYdWTalV25ROXboxsI89CoWCsYMHM3fiJKX8uXT9Ok06m7N7/QYs2rePozuiFQqGRgdzSB6JlqYmrRo35tx//+F1+454vgqyHKLnh0CQzZjm9phbHn5xXrvl4cc0t8cJ3lYkJlxy5TKm/6Chsa/LZDIUCgVqav8XNIfc9zNm2GACAwNo0rwl7TvGTCy5dP4c1hZmlCpTli3bdlGqdBmlzqChocGX8DAAfPzDEl3r7RdGeFjMGnUNDaXsZwYP79/jv8sX2eTsQqHCRRL9zFdvcMS0WgVOHj/K1l37MGvVNEac2Pbg3H63JLux62hrM23MWEZPm0qhAgUYM3AQRs7rfov8n7l0iT6jRtKxdWvqmJhkwKeQfVBRUWHc4CFxXgsPD48VjwKBQCCIIa11R1IBk/RGGd2R2cGPAgUL4ep+lI5tmvPo4X1srTqzc98htLW1Y9fscdlOcHAQq9ZvRlNTM9HPfMqMOYwY3J9ps+ezcNkqxgwfzMLVqzHU1//tWRgf9WvVwqxVK3qPHIGhgQFN69ePozt25M+H5cxpHDt7lgPHjzPKYaAIfAiyPaLnh0CQyXj5hnLjTdw0TQC5Am688eOdX2i870tMuPxMaGgovXtYMXKIAz8Svdz27qZ/zx40bNKU6/ee4uJ6gMnTZzN99nzOXL7OweNnkEqldGzdjNevXip1joqVqnD39i2+fv1CAcPEy1gKGmlx+uRxChQsiKGhkVL2M4NtzlvImy8frdvFdN5O7DMvUrQYTZq3ZKvjRnLmzIXLXneMc+Xi/pMndO3Xl8jIyCT3G9a3LxOHj2DC7NmYtm2D466dvFOR8LV0CU6+eUWnnva0traifu3abFu1Kl0m5fwpKBQKpi9eRL0O7QkMCspsdwQCgSDLkN66IzNQRndkBYqXKMmufQfR1zfgxrWrDOnfK87Ptzltpp1ZJ/LkzQdJfOYdO3fBwMCQbU6b6WHfmykz5wAwcc4c1m/dmqQvEomEbatWU69WLVpbW9Gppz1Hz5zho4YaH4oXYdftG3z49On/vrnu4ePnz2n0SQgEmYMIfggEqcDLN5Srr3wTFArKvEeZ24r4bCgjXLx8Q3E5fI4zp46zd7cL82ZN4/Onj4wYPACLbtas37KNwkX+X8px9ZUv3v5h1DKty4Gjp8iZKxdDBvT+bf/Pnz6yecNa5s2axuL5czh+5BAWltZIJBJctjpROGcOahU3QvrLd3OpJObGQkcSjtve3dj16pes0pqM5tmTR9Rv2ARVVVWlPvMmTZvz7EmMCCxStBjb97qTI0cOzly6RL/Ro0mqylAikTBj3DiOuriQO5cx/ceMoVQdU4rWNMHMzhbv9+9Zt2ABBxydyKElbl8S44uvLxu2beP+kyd06dtHqeCTQCAQZHWyg+5Q1r+UnCUhktIdmZ318TMVKlVm+5795M6Tl34D/5+lGxUVxcsXz2nUpDko8Zl/DVNQp159nn7XHYOGjmT46HEADJk4gV0H3JL0RTtHDtydnFkzbz7vfHwws7OlaE0TStUxZcDYseTPmw/XTZuoXqkS/XrYksfYOG0/DIEggxFlLwJBCkhJ6mdC7+nbqFiie8V3W5GUcHnxMYilx19830uLnM2H8PnEcpYvXsDTx4+QSqXMmr8IqVSa6Fkmz5iDnZUFd+/colp1E955vWX29MkcOXgAiUSCce48REZG8uXzJ/IXKEDFKlVZsmAOpnXrMc285m92TYoZMaFNCQb17Y6aujo2tvaJniOziYqKih0dp4xYVFVTIzIyEoVCgUQioUrV6mzauhNby87s2L+PAvnzMWfCxCT3bdmoMS0bNcbLx5vnr18jk0VTMF8+KpYtK7I9lCR3rlwc3LqNphadOXv5Mn1Hj8Jp+YosHWwTCASChMheuiNx/9KrfGaaeYV4dcc08woptple1Kxdh+v3nsRp+C6TyQCSrTuCg4NjX/vn32kEBATgtGk9PYcPR1dHl3bNmydqR01Njb7du9PHxoaHT5/i8/EjqqoqlClRgsIFCgLQunGTLN2cXiBQFqECBYIUkJLUz4Tes+mCR7JvK5JK79x30zvOXnqVWpKzXkx37pPHj2JSyxQDA8Mkz9KsRSsKFirMDmdHnj97SrsWjbl5/SpTZszhwQtPbj96wcMXnpy6cJUmzVpy5+YNtHV06dapHVtWL2FCi/zsHGTKQqsqbB9QkzY5P2DXpS1Xr1xiy7ZdGOfOk+g5Mps8efLy4vlTUDKl9sXzp+TNly9OgKJp85YsWr4GgAWrVrHGyVHp/QsXKEiLho1o07QplcqVE4GPZFKjcmX2bNyEqqoqLvv3M2ne3Mx2SSAQCFJEdtMdifmXXuUzelpqLLGpGqs7dg4yZYlN1UzvR5IQPwcTnj55zNpVy9DV1VNadxQw1OTF82exJTJ8zyCds2AJFt2skMlkWPbvx4WrV5XyRyKRULl8edo0bUqLho1iAx8/+6pQKAgNC2XU1Kl8CwhI9pkFgsxGBD8EgmSSklrZpN7Tr3FxTIrF7X2R2G1FYumdlQvp8+BdwG97GZhao1upJQBX/7vMrRvXkvTrfUAE1U1q8vrVC7p37YRRzpwcP3eFfgOHYGBgGJuyalCoNItXrGGj0w78/XwpXaYcyxbNo3r5kgyybsfiUT2waFIdW8vORMui2XfoOA0aNUnqo850LCytuXXjOk8ePUwypdZIQ8He3Tux6Gb9mx3rHnaMmzgFgOH//ov78WMZdYS/nlaNG7N+wUIAFq5enazgk0AgEGQFsqvuiM+/lPYb+fn9SZXKFDLKQZ2SObNUqUti+Pv7YdG+FQtmz6BUmTLs3L6VyMjIJHXHx5f3ef70CV0s4+oOqVTKstUbaNm6HeEREXS0t+f2gwdp5m+v4SNYsWkjHexsCQlNfcmSQJCRiOCHQJBMUlIrm9R7voVGJfu2Ypp5hXiFi0XNgvGul0gkGDcbCIAsKooBve3w/Jx41N7bLwyJRMLnT5947+ON0449GBvnJjAsilEu97BZe42xu+5jveYao1zu0bBle4aMGM3r1y+5fPM+k6fPpljxkuQyNqZt+44cPXORE+evUKNm7UT3zSq0btuBPHnzMnvGFKKjoxP8zKeZV2DFkgWEBAdj27NPvLZGjv0H2559UCgUdB80iP9u3sygUwjsLS2ZPjamDnrE5Mm8eP06s10SCAQCpcmuuiM+/1JyFr6XysSnOwLDohK1lx0wNDRixJjxANy5dZMvnz+xfs0KSOQzn9iuFHNnTqNY8RI0bNz0N5tqampscNpO3foNCQ4JprW1NU9fKtfAPjEkEgkThw/HQF+fq7du0bVfXyIiIlJtVyDIKETPD4EgmaSko7iy7ylklEPpm4of6Z3v/ELx9vv/7Hcv34Sj8FJVdXLnyYeamiobnXeQK7d+onvkN9Dg/t07fPvmT8vWbSlarDgkkbI6pk9/Vi9fwqkTx+KM282OqKmpsXjFWuysLBjY156FS1exoFtFDp86xytPH/Ia6WBavSDrl81n+eIFTJwyg0KFi8RrSyKRMHfRMj59/MjJ40foaG/PpYPulC1ZKsPP9TcycfhwPn35TI3KVShdokRmuyMQCARKk511x6/+pXQqS0pG82Yn+g8aSkBAAIvnzwZg9rTJSCQSBgwaxvT2xTly2ot3H30plMcI0xpFGdnfjts3r7Nz36EEe1lpamqydedeunRsw707t2ltZcWFAwcoWqhQqnytUqECh7Zuo5WVJSfPn8d+2DB2rFmDiopKquwKBBmBCH4IBMnkRxriLY+4aZtSSUw0Pj4RkZL3KMuvwiWpvfL17M3aVcsoVaoMunqJr31z/yqeHm8AaN+xM/yUsvorP1JWo1uXxqRWbW5c+49efQek+FxZheYtW7PJ2YVB/Xpy9PBB1NXUCI0nzdPSxpahI8ckaktVVZW1m53pYtaau7dv0b5HDy4fPETe3LnT8QQCvgefVsyek9luCAQCQbLJ7rojpWt/kJTueOcXmm1KXBJjzD+TCPjmz6b1a5BIJMya+i+L581GJpMRFRU3w0VVVZX5S1ZQr0HDRG3q6OristedTm1b8OLZU1pZWXJ+vxv58qSu51odExP2bdlCR3t79h4+hJ6uDusXLhK9yQRZnmxZ9nLq1ClsbGwoUaIEEomEIUOGZLZLgr+MxMofUvuetBj9lthePex7ERUZyfTJE1AoFFgUiyDywkoU0bI4a8c0L8SMyRMpU7Y8ALq6uqBkyqqunj6hIX9OHahJrdoxGR2/jKrV0dGlQaMmlC5bjt0u21i7almStrS1tdm2ez/FipfA8907Otj2IOinTu2CjOHz169069ePD58+ZbYrgmyA0B2CzCY7647UrCUVpTLZDYlEwoy5C+lm3QPFd70RHR0dZ02+/AVo1KQZOXPmYuqk8Vy+eCFJu0ZGOdm9/xCFChfhtacnbbvb4Ofvn2p/WzRsxI7Va5BKpWzZuZPJ8+en2qZAkN5ky8yP48ePc//+fRo1aoSf3++RYIEgvfk19VNFCtFyCAiLSrBeNqF00R+k5ei3xPbS0yrAgqWrGDlkAGFhYZw7cxI/X1/aFTKgzz8LKZQzBwHeL+nZtQM+3u9wdT9K66b1ef/eB5RMWX3v7U2lKtk/DRUgIiKCHt06ExQUyOlL1ylTthyhoaHIo6PR0dVFIpGgUCiYO3MqMyZPxNg4D12tbBK1mSuXMTv3HaR984bcffSIbv37cdB5K2pqWbMj/Z9IrxHDOXHuHG/eenJ23370vgf3BIL4ELpDkNlkZ92RmrWkolQmOyKVShkyYjT7XXeRI4c25/+7Rd78+QkOCkJVTQ0tLS0kEgnBQUH0sbPG3qYLR09fpEzZconazZe/AK7uRzFr3YyHT5/Swc6OE7t2oaOtnSp/zdu2ZcOiRfwzaxad2rRJlS2BICOQKBS/XGVmA+RyeWx9W9GiRWnfvj2rVq1Klo3AwED09fV56fUJXT29dPJU8KeTlsJhlMu9BNNA06Oedc/OHYwfPYyI8HAUCgUKhYLadeoSHR3NrRvXKVS4CM4urpSvWInu3cz5+uUzJ85dSdJX+/JyWjWuh7OLK63atk9zvzMa110uDHXow4nzV6hStXrs616+ofj4/1+0KRQKBvS25fbN69y4/0yp2te7d27RuV1LwsLCsO3SlS3LlomU0QzitacnDTqa8fnrV5o3bMhB562oq6tntlt/BIFBQRiVLUNAQAB6f8jzVegOQVYhO+uO1JCdfE0tI4c4cO7MSU6e/4/cefLGvv6r7ggJDqZJvZrUrG3K6g3KTTJ7+uQx5m2a8S0ggKb163No6zY0NDRS7fO3gAAM9BPvIycQpBfJ0R3ZsuwlocY+guxHWqRaZiZpNas+taPfUkI36+7ce/KaGXMWkL9gTPOr61f/IzAggM1bd3L1ziPKV6wEgH3vfty/e4dzZ07BTymriugoQl7fIOD+MQw/XMG8SBjLF82nQMGCNG/1Z9wAOG/ZQMPGTWMDHwl1nA8KlzF4+Ch8vL05fUK5UbbVqpuw0dkFFRUVtu11ZcqCBel8GsEPShQtysGt29DOkYPTFy8yYOxYsuFdgCCDELrjz0HojhgyQ3ekhpSU/WRHvn3z58C+PfTsMwDj3HlQKBQEhkXRrv8kus51i6M7olU06NV3AIcO7OfLl89K2S9XvgIu+w+hnUObs5cv033wIGQymRLvTJyfAx837t5l1wG3VNsUCNID8TQXZAp/wsiytBQOmVXPqm9gQF+Hwdx++JzR4ycB8OrlC1RVVVFV/X9VXLMWrWjUpBn9e/Xg2n+XkUSFkfvNAfy39uOD23S+nl7N9e1z6NquKUcPH6RFq7Z/xJeFb9/8uXXjOl2tuse+lpjwrFK1OqXLluP0yeNK79G8ZWsWLo25QZ67Yjnrt25NwxMIEsOkShV2rd8QG3z6d968zHZJIBCkE0J3xCW79dH4USqTnNG82ZH/Ll0kLCyMrlY2sZmg1sOmcXvPEnz2TEIW9BV+0h1drbsTGRnJ5QvnlN6jeo2aOO/ci4a6OgeOHWPA2DHI5fI08f/5q1e0tOyG/bBhHDyhvBYSCDKK7P/tREkiIiIIDAyM848g80irm4vMJC2FQ1aoZx3zzyRsbHsil8tx6GPHg3t3Y3+moqLCJmcXKlepRqe2LahWoSRrVy6nWYsWOLm4MnnaLIoULYZEIqFc+Qo4bd7A+FHD0uxhmlkEBsT8PZH7e1d0ZYRn7tx5CAj4lqx9bOx6MuaffwEYOmkih06eSKsjCJKgTdOmrPuecTN/1Uq27HTJbJcEfwhCd2QthO6IS1bQHSmhkFEO6pTM+UdMd4mPH39P/Ch3eecXhm+uaqgZ5EMW+In3eycTHRYYqztCJTmQSqUEBAQka5/6jRqz3nE7KioqOO/Zw5hp09Ik+7FU8eJ0btuO6OhorBwcOHv5cqptCgRpSZZoeBoQEMCHDx+SXFe8ePEU12TPnTuX6dOnp+i9grTlTxlZlpbCIT1H0imLRCJh/pIVfPz4ARWpCiVKlY7zc109PbbvcaORaXXe+3gjk8lw3eWC6y4X1NTVqdOsHdOXbqB1k/q4bHNm1FAH8uTNx+jxE9Pd9/RCWyemEZi/f8yfV2WE5zd/fwoXKZrsvUaPn8iH9z7s2OqI9cCBnN7jimmNGin0XJAcellZ8+79e3a5udGkXv3MdkeQAQjd8XchdMfvZAXdkRp+7X/xp/BDd3zz98M4dx58/MNQ1TYif9fZeO8cS6SvF+/3TaVAt9lI1XPw4t1n5HI5OjrJb9rdul0Hlq3ewFCHPqzYvAl9fT2mjh6TKv+lUikbFi0iMDiIA8eOYd6rJ6f2uFKrWrVU2RUI0ooskfnh6upKuXLlkvznzZs3Kd5jwoQJBAQExP7z7t27ND2DQHmyW6plQvwQDtJf+lNKJTHNx5L7MM4K9axqampscnbBccdutOPpAH7x3Bm83nri6n6Mi9fv4ux6iOaj1lGwrxPvK/Rl1pVIRrnco30XGwYNG8malUsJysa3nUZGOSlXviIH9u4BJYRnlJ8Xjx7ep37DRsne60fwqVnL1oSHh9PBzo4Xr1+n2HdB8pg8chTXjh6jWOHCme2KIAMQuuPvQuiO+MkKuiO5/AnlS4lR27QuqqqquP2iO9T081Cg6yykWnpEfHzBB7eZyGWRPLp0FKlUimndeinar6uVDbMXLAFg5pIlLN+4MdVnUFVVZcfqNTRr0ICQ0FDa9+jBo2fPUm1XIEgLskTwo2/fvrHTJhL7p2zZsineQ0NDAz09vTj/CDKH7JpqGR9pKRyySj1rjhw5Yvt9KBQKtjltJiQ4GACnzRuoVsOEOvXqU7pMWU58yYWXSiFUcvy/0dWPNOK+AwYRHhaG6+7sW0YgkUjo2bc/J48f5c3rV0kKz0Mum8llnJt2ZuYp2k9VVZUNW7ZRpVp1/L/5065Hdz59+ZI2hxEkikQiiTPu9sjp0yL49AcjdMffhdAd8ZNVdEdy+BPKlxIjd568tDPrhOOm9YSHh8fRHeo5C5PfYgYSdS3C3j0g/PQi9u/YTKs27ShYKOWB+z79BzJ+0lQARk+bitPuXak+h4aGBvs2b6F29Rr4ffOnjY01b729U21XIEgtWSL4Ifi7SO3NRVbq1J4ewiEr1bPOnDqJsSOG0K9XDyIiIrh4/iydu1iCEv0vorWMqFu/IRfPnckc59OILt2sKVykKHZWFrz38U5QeJb8doVtTpsZPmpsqsbGaevosH2PG0WLFcfDywszO1uCQ0LS4CQCZXE7ehTzXj1p292Gj5+V66AvEAiyLkJ3JE5W0h2Jkd0m1KSUoSPG8OG9D4P79SQiIiKO7tDMW4r85lNRUdPAUBqC55vXDB01NtV7jhgzHochwwHoP2YM+48cSbVNHW1tDm/bRqVy5ahWsRK5c+ZMtU2BILVkiZ4fyeXt27fcvHkTgNDQUF6/fs3evXsB6NKlSyZ7J1CGaeYVfptTn9TNRVrOtk9rChnlyPKiISW0N+uE48Z1nD11gjHDBxMdHU3OXLlAyTRio5w5+ZrNMxe0dXRw2etO145taNGoLva9+zG2Z29krUvj9TUE78fXOLxrNS4njjJg0FD6OgxO9Z7GxrnZue8g7Zo15PaDB1gO6M8BRyfU1LLubdyfRL1atShWuDCvPT0xs7PlzN596OroZLZbgkxE6I7sj9Ad2R9ldMef8JlUrFyF9Vu20b9XD1o2rkvfAYOY2cUSv0gpr9/78ejSK3bfLcaLp49ZvdGR6jVqpnpPiUTC1JlzCQwIwGWbEz0GD8ZdV4cWKSjj/RlDAwNO7dmDvq6e0DCCLIFEkRatfTMYJycnevXqFe/PlD1OYGAg+vr6vPT6hK5IRc003vmF4u2nXMOqUS73EmzMtcSmavo7+5dy8tgRenbvhlwuRyKRMH32fPoPGoqXbyg2a68l+L6dg0wZYd8ZXV1dnFxcM9Tn9ODTxw8sXjCXfXt2EhIcjFaOHERFRiKTyahYqQoOQ4Zj0c0qdjRdWnDn9k06t2tJeHg4PS0t2bh4SZraFyTMKw8PGnQ044uvLy0bN8bdyVkINyUJDArCqGwZAgIC/phSD6E7/hyE7si+KKM7/oTgxw/u3b3N0gXzOHXiKHK5nBza2oSFxmS3NGvZmhGjx2FSyxR/fz8Ou7th27NPqveMjo5mQG9bDru7oaWlxcldu6ljYpIGp4lBoVCwztmZHl26iEsFQZqRHN2RLYMfaYEQIdmLv+2Bl9XY6riJcSOHAlCgYCFuPXyORCJJVBiOamBErSrlmLd4OXa9+mae82lMUGAgp08e48vnz6hraFCpchWqm9RKt6DEyeNH6WnTFblczqQRI5g+dly67CP4nRt379K8axdCw8Kw79aNTUuWiuCTEvyJwY+0QOiO7IXQHVmTvzEg9c7rLZfOnyMwMABdPT3qN2xMkaLFAAgPD6dN0wY8ffKIKTPnMGjoyFTvFxERQU+brpw7cwp9PT3O7dtP5fLl0+AkMHHuHBasWkWjOnU5vG0bWlrZp9+OIOuSHN0hen4IsgV/Sqf27PbAMOoAADzcSURBVIpdr76MHPMPAD7e71ixZCEk0Xht49pV5NDWxqKrVab4nF7o6ulh3sWS/oOG0rNPf2rUrJ2uX4hbtm7LgqUrAZi9bBkbt29Pt70EcalVrRo7161HRUUF5z17mLZoYWa7JBAIMgihO7Im2XFCTWopVLgINnY9cRgynO52vWIDHwCampp07toNgBmTJ7LdeUuq99PQ0GDT1p3UMq1DQGAgrayteJmKyVc/07ltO3R1dLhw9T+sBzoQFfVnTOkRZB9E8EOQLfiTOrVnV8ZNmkJXq+4ArFi6iEcP7ifYeM1tpxPr16xk2MixaIu0xlTTw743I8dOAGDwhH84fOpUZrv019CueXPWzJsHgJ+/v9IlDgKBIHsjdEfWJDtOqElvho4cy5ARowEYO2IIB/anvtRYW1ubbbv2U7FSFb58/UorK0u8379PtV2TKlU44OSMpqYmh0+dovfIEcjl8lTbFQiURQQ/BNmCtJ5tL0g+EomEJSvX4rLXnRIlS9GhVRPGDB/Mg3t3yaOjSuV8mjz67zTdOrVj/Khh9B0wiKEjx2S2238M4yZOxtLGFrlcjvVAB27cvZvZLv019LHpzrn9bqyYPUeUvQgEfwlCd2RtssuEmoxi0tSZ2PWKGeE9pH9vzpw6kWqb+gYG7Nx/kBIlS+Hl40MrK0u++Pqm2m6jOnXYtW49qqqq7HRzY/i/k8TFgiDDEMEPQbbhb0x1zGqoqanRtHlL3I6cZOjIsZw8foSWjetSOLc+JQrkolcPS0JCglm3ZSsz5y0SXxTTEIlEwqLlq2nSrAVhYWG0t7XllYdHZrv119Cg9v/Lm6Kionj+6lVmuyQQCNIZoTsE2QWJRMLcRcvoZNEVmUxGXztrrl+9kmq7xsa52e12mAIFC/L89WvadbchIDAw1Xbbt2iB0/LlSCQS1jo7M2XBglTbFAiUQTQ8FY3Hsh3J6dQuSD883rzGysIMNVVV+g8aho6ONmXKlqdCpcqZ7dofTUhwMObtWvLg/l1KFC3KJfeD5P4+fliQ/gSHhNCtfz/uPHjAJfeDlCpePLNdynKIhqfxI3RH9kXoDkF2ISoqip7du/HsyWP2HDhC8RIl0+Qi6tXLF3Rs1RRfP1/q167N0R07yKGV+v8X1m/dyrB/J7Fp8RJsu3ZNtT3B34mY9qIEQoQIBKnj1csXmLVqip+fLy1atcVxx25UVVUz262/gs+fPtK+ZRO83npiUrUqZ1z3op1DCPKMIDgkhGZdLLj94AHFixThkvtB8hgbZ7ZbWQoR/IgfoTsEAkFGEBYWxjd/P/LlL4BCoUizLNyH9+9h0b4lgUFBtG7alP2bt6Curp5qu688PChZrJgSKwWC+BHTXgQCQbpTslRptu7ai6amJqdOHOWf0cNFzWYGkTtPXnbuO4ihgSG37t3DasAAZDJZZrv1V6Cjrc3BrdsoXqQIb96+paO9HcEhIZntlkAgEAgEAGhpaZEvfwH4Xg5z8fxZ3nm9TbXdSlWqst31AJqamhw/e5aew4cRHR2dars/Bz4+fv7M0TNnUm1TIEgIEfwQCAQpxqSWKWs3OSOVStnuvIWlC+dltkt/DSVKlmLbnv1oamhw7OwZBk/4RwSfMog8xsYc2b6DXEZG3Lp/HysHEXwSCAQCQdbj1IljdO/aCUvz9nz5/CnV9mqZ1mXL9t2oqamx5+BBhkyYkGba49OXLzQy74RFn94cP3cuTWwKBL8igh8CgSBVtGlvxpyFSwFYMGcGO7dvzWyX/hpMapmydvNWpFIpm11cmLl0SWa79NdQqnhx3J23ovX9BmzQP+NF8EkgEAgEWYoKFSuRJ28+3rx+hVVnMwK+fUu1zabNW7J6oyNSqZSNO7Yzce6cNPE1l5ERJlWqEBUVRde+fbh843qa2BUIfkYEPwQCQarp2ac/w0aNBWDtqmVERUVltkt/DT8Hn2YsXsyWnS6Z7dJfQ+3q1XFZuxapVMqegwd57emZ2S4JBAKBQBBL/gIFcXU/inHuPDx+9IAeluaEpEGpplknCxYtWw3AwtWrmb9qZaptqqio4LR8BW2aNiMsPBwzOzvuPHyQarsCwc+I4IdA8Jfh5RvK1Ve+vPMLTVO7EyZPZ8Lk6bgdOYmamlqa2hYkTs8+/Rk+ehwAA8ePF/WyGUiHlq3YtHgJ5/bvFw3bBAKBIB7SS3cIlKNY8RLs3n8IfX0Dbl6/Rh9bKyIiIlJt18auJ1NnzgVg0ty5rN+a+sxfNTU1dm9YTwNTUwKDgmhrY8OzVy9TbVcg+IGY9iK6rgv+EgLDopjm9pgbb/xiX6tV3Ihp5hXQ00qfYEVkZGSadAIXJI1CoWDYwH647tqBlpYW5/btx6RKlcx266/kb/9zL6a9xI/QHYK/jczQHYKEuXXjGl07tSMsNJR2Zp1Yv2VbmkzpmzdrGssWzUcikbB15UqszTun2mZgUBAtunXl9oMHFMyXjwsH3ClSsGCq7Qr+TMS0F4FA8BvT3B5zy8Mvzmu3PPyY5vY4Xfbb7ryFZg1q8/XrlzSxp1AoRE+FRJBIJCxesYbGTZsTFhZGe9sevHmb+u7uguRx9dYtytavx8179zLbFYFAIMhUMlp3CBLHpJYpTjv2oK6ujo6ObprZHT9pKr36DUChUNBz+HAOnzqVapt6uroc2bGDcqVKoZ0jB9I0GtcrEIjgh0DwF+DlG8qNN37If4kdyBVw441fmqeihoSEsGzRfF4+f4adlQWhoSmz/+XLZ1YuXUid6hUpkFOHAjl1MK1WgRVLFvLly+c09flPQF1dnU3OLlSqXJWvvr60tbHhi69vZrv1V7F43Vq8fHwws7PllYdHZrsjEAgEmUJG6w6BcjRq0oxjZy6xdNW6NMn64Pvly+z5S+jSzZro6Ggs+/fj/H//pdpuLqOcHN+5i3P73ShUoECa+CoQiOCHQPAX4OMflujPvf0S/3ly0dbWxmWvOwYGhty5dZOBfeyTPQr0wH5XalYqw+L5c6hZuw7zFi9n3uLl1K5TjyUL5lCzUhkO7NuTpn7/Cejo6rLD1Y2ChQrzytODjvb2hIYJkZlROC5bTvVKlfji60v7Hj1E8EkgEPyVZLTuEChPhUqVkUpjvgJGR0dz8tiRVNuUSqUsXb2eVm3aExEZSUd7e27dv59quwXy5SN3rlyx/33q4gVCUnihJhAggh8CQQx/ejOuAoZaif68oFHiP08JpcuUZeuuvWhoaHDi2GEmjhuldNnKIff9DOxjT3szc+48ecWKtRux69UXu159Wb5mA3efvqZ9x8449LHn4IF9ae57did3nrzs3HcQA319bty9g83AgckOPglShq6ODge3bqNooUK88vTAzN5OCDWBQBCHP11zkEm6Q5A85HI5A3rbYmfdhU3r16TanpqaGusdt1GvQSNCQkNoY2PDkxcv0sRXgG2urrTr3p0uffukScNWwd+JCH4I/moCw6IY5XIPm7XXGLvrPtZrrjHK5R6BYX/WqNbCOXNQq7gR0l9KJqWSmOZjhYxypMu+tUzrsmajU0wTrC0bWbFkYZLvCQkOZtTQgZiZW7Bi3SaMjHLCL2LR0NCIFWs30rFzF0YPG0RIcHC6+J+dKVW6DFt370dDXZ3Dp04xdOJE0TMlg8ibOzdHtu/AyMCQm3fvYjPQQQSfBALBX6M5yETdkZb86UEqqVRK2XIVAPh3/Ghcd7mk2qampibOLq5UrV4D/2/+tLa2wsPLKw28hZLFiqGpocGpCxewGzqU6OjoNLEr+LsQwQ/BX83f1IxrmnkFTIoZxXnNpFhM1/X0pJ1ZJ2bNXwzA3JlTuXn9aqLr97nuIiQ4mMnTZyOVShMUi8ER0UyePpuQ4GD2ue5K1zNkV2qZ1mXt5q1IJBI27tjOnOXLM9ulv4YyJUtywMkJTU1Njpw+zfJNGzPbJYFAkMn8TZqDTNQdqeVvClKNHj+Rfg6DARgxuD/HjxxKtU0dXV1c9rpTplx53n/8SCsrSz58+pRqu3VMTNi3ZQvq6ursO3IYh3FjxaWOINmIUbdi5Nxfi5dvKDZrryX4852DTLPFzURyeecXirdfGAWNtDL0fLOm/Yuurh7DRo1FkkjX7g6tmmBomJOtu/YCMMrlHrc84jZNk0piBNQSm6rYWXXBz+8rh0+ez4hjZEu2bFzHxLEjAdi8ZCn2lpaZ7dJfg/vxY+x0O4DjsmVoaf0dad5i1G38CN3xd/O3ag4yUXeklKR0x5+GXC5n5BAHdrtsQ11dHRdXd+o3apxqux8/vMesdTO83npSsWxZzu7dh5GhYartHjh2jG79+yGXyxnRfwALp0xJVFcK/nzEqFuBQAn+1mZchYxyUKdkzgwXIJOmzkwy8AHw3seb8hUrgpLd4itUrMSH9z7p6Xq2p3c/B4aMGA3AgHFjOX7uXGa79NfQsXUbdq1f/9cEPgQCQfz8rZqDTNQdKeFvnFIjlUpZvGIN7Tp0JDIyEjubLty+eT3VdvPmy4+r+1Hy5M3Lo2fPaG9r+7/27jsqinuPAvhdqohUS2xY0Yhi773EGFFU7EpRRFDEFjSmGAuaWGOJJVZELCAICNijxhjFiD0xKPZCVZ9SFqWX9wcJeTwL4AzMsnM/53iOLOyPmzkbuH535jd49fq14HVtrKzguXoNAODHbVt5ViuVCIcfJFvcjKtsKRSKgsHH61evMN3VGU8eP37j6zQ1tQqu4yxOWczOyYampji3a1NncxcsxvBRY5CdnY1Rk1xw9cYNqSPJTl5eHuavWIFjp09LHYWIyhg7R/kg1yGVlpYWNnnuQo9efZCXm4vk5GRR1q1brz78g4/AxMgYl65fwzCnCUhPTxe87rhRo7B28WIAwMuEBF7+QsXG4QfJljpsxlVefTPHHQF+PrAbOQQJCYVvBdro4yYIO5t/CUtxymLY2TMwb/xxqeZVBxoaGli7cSu69+yN1NRUWDvYi7YJGRWP1z5fLFu/DmMmTxLlFoBEVH6wc5QPch5S6erqYudefxw4cgJ9+vYTbd0mFk3hc+Ag9Cvq43RYGOymuomyCfj0ic74JTAIqxct4mUvVGwcfpCsldfNuMq7uQsWoVbt2rh/7y7Gjx2BtLR/30kZ5zgR169ewR/XrxZZFhOibuP61SsY5zix7P8jyiEdHR147fFDM8sW+M+LFxhoZ4uXCQnFeCaJwWHESHzSvTtep6Zi8DgHPHzyROpIRFSG2DlUn9yHVPqVKqF1m3YFHz96+ECUS4vbtG2PXX5B0NXRQejx43CZPRu5ubmC1+3ZuXPB4CMjIwMXrlwRvCapN254yo3HqISbcUW9TEVsYvnZuEtV3bkdicGf9UFychIGWA/G9l2+0NTURE5ODrq2awEDA0McOPwz8rT14BF8E5ce/vuP9A4NTPFFXzOMH2ENpTIZ56/cgJYWL30prqfxcRj4aS/ExkSjU9u2OOHvj4p6fC2XBWVKCvoMH4Y/bt5E4wYNcDY0FFX+vp2zuuCGp2/H3kH/YOdQbcq0rLf2Do+hzWCopy1ptrIUeTMCo4Zaw8TUFMFHTqBy5SqC1/z56GE4OYxBTk4Opjk5Ye3i70Q5ayM1LRXDJ07Ebxcu4NDuPfike3fBa1L5UZLeweEHSwgVkzr/MpSqXIX/HobRQ62RkZEBR+fJWPbDWigUCkTejMAQq76obVYHC79fhu49eyM2KR0xCWmoaayLJxGX4PHt14iJjkLI0ZNoatm8zDKrizu3IzG4Xy8kK5UY/NlnCNjuCU1NTaljyULc06foNngQomJj0bFNW5zcr17DJw4/3o69g0pCnTsHyslQp7zdpUZsUU+eYIhVH8THxaFl6zYIDD0mys+uQP99mDbZCQAwz90dHl/MEbxmdnY2xrhORsixY9CvWBEn/PejY5s2gtel8oHDj2JgCaGSUsdbn6lCuToYEoTJExyQl5eHBd8thdv0/Fuy3o68BTdnR9y6+RcaNDRHm7btAYUC169exoP792DR1BKbPL1h0ZSnC3+o8N/DMNpmIDIyM+E6bjw2LF3K62bLSOS9e+hhMwSJSUkY/NlnCNrhpTbHnsOPt2PvoJJQx84BFekdVHx379yGjVVfJCS8ROeu3eEbGCrK3cu8tm/B3Dn5fW+1xyLMdHERvGZGRgaGOI7HqbNnYWJsjNOBQWhuYSF4XVJ9vNUtkcjU9dZnHsE3ceVR4T0frjxKgEfwzTLLMNhmOBYvXYlqH1VH9x69Cx5vYtEUv4RdRMjRk2jXoRNioqMQE/UEbdt3RMjRkzh9/hIHHwJ16tINP233hkKhwJbdu7Bi40apI8mGRaNGCPH2hqGBAUYOGqQ2gw8iEk5dOwdUpHdQ8TX+uAn2HTiISgYGuHD+HCZPcEBWVpbgdZ1cXPH1PA8AwGyPhfD29xO8pq6uLgI9d6Bjm7ZITEqCle1YPHjLXQVJ3jj8ICoGdbz1mSqVK5cp0/Bb+FU0b1n43SyFQoFOXbph/ebtCDl2CiHHTmH95u3o1KUb/7EoEushQ/Hdsh8AAPOWL8PewECpI8lG1/YdcP9COMYOHSZ1FCJSIerYOaBivYOKr2WrNtjjdwAVKlTAieNHMNPNRZTNSmfO/hJTpn8OAJj0xRc4cOSI4DUr6evj8J49aG5hgafPn6P/2DGIjY8XvC6pDw4/iIpBHW99pmrlysTk3x3wr16+iIgbvBVoWXF2nQq3GfmnnzrPnoUTv52ROpJsmJqYFPw9/tkzHPz5uKR5iEh66tg5oIK9g4qvc9du2L7LF1paWnj08AFev3oleE2FQoEFi5fCbtwE5Obmwm6qG34+I7x/mBgb45jvPpjXq4+XiYmIihV+txpSHxx+EBWDOt76TFXL1YXzYRgx2Aq2I20QHcVbgZaVeR7fY9jI0cjOzsZIZxdcj/hL6kiy8vT5c3QbPAijJk3i8IlI5tSxc0CFewcVz6efWcEnIAQBIUdF27dIoVBg5doNGGQzDFlZWRjhPBG/X74seN3q1arhuJ8fTgUEoHO7dsV4BskFhx9ExeQxtBna1Tct9Fi7+vmbdJVHqlqumjazRN36DfD82VPYjhiCxMSEYjyLhNLQ0MDajVvRtXtPvE59jUEODngcHS11LNmoVqUKunbogOzsbIxyccG1v25IHYmIJKRunQMq3Duo+Hr2/gSVDAwKPhbjLF1NTU38tG0nevfth7S0NFg72OPPm8L3gKlnZoY2zVsUfHzn/n2kpfHsIrnj3V646zqVkDrd+kxVd12Pi42Bdb9eiIuNRYdOneEffESU3cWpaMrkZAyx6ovIWxH4uGFDnA0JRWVT02I8k4TKzMyEtYM9ToeF4aOqVRF28BDq16kjdawS491e3o69gz6EOnUOqHDvoJJbv+YHLF28AD/8uBEOjhMFr/f69WuMHT4Il8IvoErlyjgbHILGDRuKkjX86lVYO9ija/v2CPTcAW1tvtbUCW91WwwsIUT/UsVyFXnrJob0/wRKZTIGDhqCbd4+0NTUlDqWLMTHxcK6Xy/ExsSgS/v2+HmfH4dPZUSZkoJeQ4fiRuStcjt84vDj7dg7iP6lir2DSmbJovnYsHYVFAoFNu/YBZthIwWvmZyUhOGD+iPirz9Rp1Yt/BYcArNatQSvezY8HAPsbJGeno6xQ4di1/oN0NDgBRDqgre6JaISMTOtiM7mlVWqgFg0bQZv3wDo6OjgyKFQLPhmDmQ6qy1zNWrWgk9AKIwMDfH75ctwmD4NOTk5UseSBUMDAxzaswdmNWvizoMHGOI4nqfpEpHaUcXeQSUzd8FijHNyQV5eHqZNcsKpE8I37DYyNsa+AwfR0LwRomJj0X/sGDx/8ULwuj06dYL/1m3Q0tLCvuBgzPj2W3ZKmeLwg4hUVpdu3bF+iyfw96Uw2dnZUkeSjSYWTeG9Lwg62joIOXYMsxYuYFEoI7Vq1MARH18YGxkhWalEYnKy1JGIiIgKUSgUWL7qRwwdMQrZ2dlwHjcWF86HCV63atVq8A8+jFq1a+POgwcYaGeLZKVS8LoD+/bFrvXroVAosGX3LsxfsULwmlT+cPhBRCrNZthIBIYeg+fufbxGs4x17toNG7btAAD8tHMnftj0k9SRZKNp48Y4vs8PvwWHoGb16lLHISIieoOGhgbWb/ZE38+skJ6eDocxw3Djj+uC161tVgf7Q46ismllXI+IwBDH8UhNSxW87ughNti0PH/osXzDeqzavEnwmlS+cPhBRCqvW89eBft95OXl4dHDB1JHko0hQ0dg8dKVAIC5S5diX/ABqSPJRruWLWFqYlLw8b2HDyXNQ0RE9P+0tbWx3dsHnbp0w6uUFFy8cF6UdRuaN4J/yBEYGhgg7OJFjJo0CZmZmYLXdbG3x7JvvwUA/PzrGZ5VLDMcfhCRIFEvU3Hh/ktEJwifyBclKysLM6a4oF+vLrgV8Vepfz/KN8ltOiZPnQEAcHJ3xy/nzkkdSXZ+2umFZj17wCcoSOooRESSKsveQcWjp6eHPX5B2OK1Gy5Tpom2rmWLltgbEIIKFSrg+OnTcJw5Q5Q9yOa4TYX3uvU4tHs3tLS0RMlK5UO5G37k5ORg5cqV6NGjB6pUqQJTU1P07t0b51jGicqUMi0Ls3z/gO3mcMzx+xNjN4Vjlu8fUKZlldr3zMnJQXTUE6QolbAdOQQx0VGl9r2osIXfLcOQYSOQlZWF4RMn4s+bN6WOJCuPo6ORm5uLibPccersWanjyAp7B5FqkKJ3UPEZGBoWuuPLq5QU/Oc/zwWv26FTF+z02Q9tbW3sP3gQU7/5WpQ9yOxHjECFChWAv88qfvD4seA1SfWVu+FHWloali1bhrZt22LXrl3w9fWFiYkJevfujdOnT0sdj0g2PIJv4sqjhEKPXXmUAI/g0vtHcYUKFeDtux+Nm1jgaXw8bEfaICkpsdS+H/3rn+t6O3ftjlevX8HawR5RsTFSx5KNFfPmY/SQIcjOzsZIF2f8EREhdSTZYO8gUg1S9A76MAkJLzFiiBVG21iL0tN6f/Ipftq+ExoaGvD08cHXS74XbRP2vLw8fLN0CVp+0gdnw8NFWZNUV7kbfujp6eHhw4dYu3YtBg4ciP79+yMgIACNGjXC2rVrpY5HJAtRL1Nx6WECcv/v905uHnDpYUKpnopqbGyCfYGhqF6jBu7ejoSj7Sikp6eX2vejf+nq6sLbZz+aNG2G+GfPMNDODgmJHD6VBQ0NDXit/RE9O3dByqtXGDTOAU9iOHwqC+wdRNKTsndQySmTkxEbE4NbN/+C/aiheP36teA1B9sMx6p1+RuUrt68GSs2bhQhaf7Zfbfu3EV6ejpsHMfj2l83RFmXVFO5G35oamrC5H82gPvnsRYtWiAuLk6yXERyEpuY9t7PxyS8//NC1aptBt+AUBgYGiL89zBMd52I3NzcUv2elM/I2Bg++4NRo2ZNRN67h2ETnTh8KiO6uroI2rEDlk2a/D18suXwqQywdxBJT+reQSVTr34D7A8+DGNjE1y5dBFO9qORkZEheF1bh/Hw+H45AGDe8mXY7O0teE0tLS34b92KHp07Q5mSggG2trh9/57gdUk1lbvhx9tkZ2cjPDwcFhYWUkchkoVaJnrv/Xxt0/d/XgxNLZtj5x5/aGtr49jhg/jzj2ul/j0pX8HwqVL+DuzjZ4izARkVzdjICIf37EXtGjVw+/59+IWGSB1Jltg7iMqWKvQOKhmLZpbwCQhGRX19/PbrL3BzcRTlziqu02bC/YuvAQAz5n0L3wPC70Knp6eHkJ3eaNuiBV4kJKD/mDE8u1JNqcXwY+XKlYiNjYW7u/s7vyYjIwNKpbLQHyIqvv/dXb1O5Yro0MAUGorCX6OhADo0MIWZacUyydStZy9s2LoDvoGhaN2mXZl8T8pn0cwSO30DoKOtg6Ajh/HFIg/Rrr+l96tdsyYO7/XBmkWLMWW8o9RxZIm9g6j0qWLvoJJp274jvH32Q0dHB0cOhuCLmVNFOVP3y28XwMnFFXl5eZjw+UwcPnlS8JqGBgY44uMDi0aNEBMfj89Gj8bT58I3bCXVoshTgbaanJyM+Pj4Ir+uQYMG0NHRKfTYyZMnMWDAAMyfPx8LFix453M9PDywaNGiNx6/F/UMBoaGH5icSP0p07LgEXwTlx7+u8lYhwammG3VGKuP3X3jcY+hzWCopy1R2vx3ZHnbsrITErQfrhPHAwBWzl+AWa6uUkeSpezsbGhqakKhUBTjq0uXMiUFpk0+RnJyMgxV9PcreweR6ipvvYOKdvRQKJzH26JK1Wo4fvocataqLXjN3NxczJjigkB/X1TQ1cXhvT7o1aWL4HVj4+PRc6gNnsTEYO9PP2H0EBvBa1LpKknvUInhh6enJ1xcXIr8usjISDRp0qTg42vXrqFXr14YOnQodu3a9d7nZmRkFLrWTKlUwszMjCWEqAizfP/A5YcJ+N8fFBoKoF19U6yxbYXohFTEJKShtqme5O+83L93F462I7FizQZ07d5D0ixysnnDj1g0/xsAgM+mTSwKZSxZqcRIF2f069ULX0xxkzpOuRh+sHcQqa4p3lcREZNcLnoHFV9ocCBatGyN+g0airZmdnY2nMeNxfGjh6FfUR+nAgLQvlUrwevef/QI1//6CyMHDxYlJ5Wucjf8+BD3799H165d0bp1axw6dAja2iWb+CqVShgZGbGEEP0t6mUqYhMLl4lbsUpM2nnlnc/Z59ZJpYrH7Blu8Nm9E4aGRgg9/gssmjaTOpIs5OXlYcE3c7B9y0/Q1tbGUR9f9O7aVepYsrHL3x8TZ+VffrFn40aMHTpM0jzlYfjxIdg7iMT1/71DmZaFr/ffwI3o5Hc+R9V6B32458+eotpH1QWvk56eDvtRQxF29gxMjIxxJjgYzT7+WJSM/0hITIR+xYrQ1dUVdV0SR0l6R7nc8yM+Ph79+vVDnTp1EBgYWOICQkT/UqZlYZbvH7DdHI45fn9i7KZwzPL9A8q0LKw6due9z1W13dWXrFyDjp27QKlMhu2IwYiL5WZVZUGhUGDR0pUYZDMMWVlZGObkhL8iI6WOJRvjRo3CDOf8sxic3N1xOixM6khqh72DSDzv6h3zgv7CXzHvHnxABXsHfZhTJ46jY+tm2L/PR/BaFSpUgLfPfrRu2w6JyUmwsh2LR1FRouQEgLinT9F7+DDYT5sqyoatJK1yN/xIS0uDlZUVXrx4gQULFiAiIgLh4eEIDw/H9evXpY5HVO54BN/ElUcJhR678igBX/nfwN2nKe99rqrtrl6hQgV4+wag0cdNEB8XB9uRNkhOSpI6lixoaGhgw5Yd6NS5K1JepcDa3h7RsbFSx5IFhUKBVQsXYoT1IGRlZWGE80TcuHVL6lhqg72DSFxv6x2XHybg2uMkFHU+uqr1DvowYWfPIC01FZ9PnYSjh0IFr1fJwAA+ASH42KIp4p4+xWdjRiP+2TNRst59+BD3Hj1C8NGjcP1yjigbtpJ0yt1lL48fP0b9+vXf+rm6devi8ePHxVqHp58S5Z9yars5/IOe27h6JXg5dxA9kxiio57Aul8vPHv6FJ27doffgUM8VbGMJCUlYnD/T3D3diSaffwxfgsOgbGRkdSxZCE9PR1WdrY4Fx6OmtWrI+zgQdQRYVO5klK3y17YO4jE86G9QwGgfYP8PT+o/MvNzYX7NFf4++6Bjo4O9u4PRo9efQSv+zQ+DkOs+uLJ40ewbNIEpwODYGpiInjdkGPHMGqSS/4mq84uWO3hoRIbjFM+tb7spV69esjLy3vrn+IWECLKF5v44aePzhnQpBhfJQ2zOnXhGxCKSgYGuHD+HFYsefOOC1Q6jI1N4BsQguo1auDmnTsYNtGp0KaPVHoqVKiAAzu80LRxY8Q9fQo7NzfeflgE7B1E4vnQ3tHczAgeQ7mPl7rQ0NDA6vWbMHDQEGRmZsLRbhSuXr4oeN3qNWpif8hRfFS9OiJu34a1gwNevX4teF0bKyt4rl4DAFjvuR3f/7hW8JokjXI3/CAi8dQyef/poy3MjKDxf4NtDUX+reUsaqr2O5fNmreA1x4/dO3eE9Pdv5A6jqzUNqsD34BQGFQywNkLF+A4cwZPEy0jJsbGOLLXBx1at8Gm5Sv4zhQRqZSiesf/dw6FIr+LbBrflrezVTNaWlrY5LkLPXt/gtTXr2E3cigib0YIXrduvXrwDz4CEyNjXLp+DUMnTEB6errgdceNGoW1ixcDABatWoUNOzwFr0llj8MPIhmrU7kiOjQwfeeAY/moFmhX37TQ59rVNy0377706NUHgQePwcTEtBhfTWJqatkcO332Q1tbGwGHDmHO34WBSp9ZrVo4f+gQmltYSB2FiKiQ9/WONnWN3+gc7evndxFST7q6uvDa6492HToiKSkR3l7bRVm3iUVT+AYfgn5Fffx6Pgy2blNE2ax0+kRnLPwi/w219Z6eeJ2aKkJaKkvlbs8PsfDaW6J8yrQseATfxKWH/24+1qFB/oDjn3dZohNSEZNQ+Da45ZHX9i2oUrUqBtsMlzqKbBwI8IObywQAwKqFHvh80iSpI8nOuYsXcersb1g058sy+X7qtueHWNg7iPIV1TvUpXNQ8SUlJcJr2xbMnP0lNDU1RVs37OxvsBsxGBmZmbAfPgJeP/4IDQ1h7/3n5eVh9ZbNGDPEBrVr1hQtK324kvQODj9YQogANRpwvMvPRw9jvO1I6OjowD/4CDp37SZ1JNnYuG41vl84DwCwb/MWjBw8WOpIshEbH4+Pu3VFeno6fliwEO6TJ5f69+Tw4+3YO4gKU/feQR8uNzcXr1+9EuVn5YljRzDBfjRycnIwzckJaxd/J/oloclKJYz4c10yar3hKRGVDjPTiuhsXlltC0jfz6wwwHpw/sZatiNxO5K3Ai0rU2fMgpOLKwBg/IwZ+O3CBakjyUatGjXg8fcpunMWL8L+UOG3FCQiEoO69w76MNnZ2fh86mQMH2yFFKVS8Hr9rAZi/ebtUCgU2OjlhUWrV4mS8x/7Q0Nh3rkTwq9eFXVdKh0cfhCRLGhqauKn7d5o37ETkpOTYDtiMOLjYqWOJQsKhQLfLV+Vv6t7ViaGTnBExO3bUseSjdmuUzDNyQkA4Pj5TJz5/XepIxEREb1VXGwsTp04jht/XMO4sSOQlvbhdyb8x/BRY7H0h/w7tHy/di3Wbt0qQtL8S2B2BexHYlISrB3s8VdkpCjrUunh8IOIZENPTw+79gXCvFFjxMXGwnaEDZTJyVLHkgVNTU1s3LYTHTp1hjIlBdb2doiJi5M6liwoFAqs9liEoQMGIDMzE8MnOrGgERGRSqpTty78gg7CwNAQF86fg4ujHbKysgSvO8F5Mr6Zvwj4+0zInX77BK+pUCiwf9t2dGrbFknJybCyHYv7jx4JXpdKD4cfRCQrpqaV4Rt4ENU+qo7IWxFwchgjyg7gVLR/hk+NGn+MmPh4DBrngGQRTmmlomlqamL3+g3o2qEDkpVKWNvbI+7pU6ljERERvaFFq9bY4xeEChUq4NTPxzDTzQW5ubmC150xaw7cZrgDACbPmYOgw4cFr6lfsSIO79mLFhZN8fT5c/QfOwax8fGC16XSweEHEclOnbp14bM/GJUMDNDn036i7ixO72diYgqfgFBU+6g6/oqMxPCJE5GRkSF1LFnQ09NDsNdOWDRqhC7t26GyiYnUkYiIiN6qU5du8Ny9D1paWjgQ4I9v5rhD6H06FAoF5i9aAvvxTsjNzYX9tKn4+cwZwVmNjYxw1NcX5vXq43F0NPqPHYMXCS8Fr0vi4/CDiGSpectWuHAtAm7T3UXf9Zver07duvANCIF+RX2c+f08nNw/F+UdHSqaqYkJfj1wAD6bNkNXV1fqOERERO/Ut19/bNzmBYVCAd/dO3H71k3BayoUCqxYsx6Dhw5HVlYWhk90wvnLlwSvW71aNRz380Ot6jUQee8ePH18Ba9J4uPwg4hkq2rVagV/T1EqcezwQUnzyIlli5bw8vGHlpYW/END8fWS76WOJBtVTCtDQyP/139ubi58Dxzg8ImIiFSSzbCRWLXuJ+z2C4JFM0tR1tTU1MTGrV7o3bcf0tPTMcjBAX9ERAhet56ZGX7298M8d3d8NW2aKFlJXBx+EJHsvUpJgc2AT+HkMAaHQ4OljiMbPXt/grUb83dcX7NlCzbs8JQ6kuw4z5qFcdOn4avvv5M6ChER0VvZjZuA3p98WvCxGHeA0dHRwY7d+9CxcxcoU1LQ33Ys7j54IHjdJuaN4PHFnIKzirOzs0XZsJXEweEHEcmefqVKaNexE/Ly8jB10gRcvHBe6kiyMXKMLeYuWAwAmLVwoSibj1HxfdK9OwBg7datWLd9u9RxiIiI3uvB/Xvo0bE1QoL2C16rYsWK2ON3AM1btMKLly/x2ZjRiIqNESUnAGRkZGD05EmY8PlM5OTkiLYufTgOP4hI9hQKBZauXIP+A6yRkZGB8WNH4u6d21LHko3p7l/A0Xky8vLyMG76NJy7eFHqSLJhN3w4ls6dCwD4YpEHAg8dkjoSERHRO/n57EZ01BNMmzwRJ38+Jng9QyMj+AaFwrxRY0THxcFq7Fg8f/FClKxXb9zAkVOn4BcSghnffit4w1YSjsMPIqK/r//c5LkLbdt3QFJSIsYOH4yn8XFSx5IFhUKBJStWw2rgIGRkZsLGcTxu3b0rdSzZmOM2FW6OjvnDpxnTcTY8XOpIREREb/XN/EUYNnI0srOz4TLeFhfOhwles2rVavAPPoxatc1w58EDDLSzRbJSKXjdLu3bY8+GjVAoFNi6Zze+Xb5M8JokDIcfRER/q1ixInb7BaGheSPExkTDbuRQpIjwy4+K9s/wqV2HjkhWKmFtb4e4p0+ljiULCoUCaxd/BxsrK2RmZmKY0wTcvHNH6lhERERv0NDQwLpN2/HpZwOQnp4OhzHD8Ocf1wSvW6u2GfaHHEGVypVxPSICg8ePQ2paquB1Rw4ejM0rVgIAVm7ciJU/bRS8Jn04Dj+IiP5H5cpV4BsYiipVq+Hly//g6dN4qSPJhp6eXsHwKSo2FoMc7KFMSZE6lixoampiz4aN6NyuHVLT0nD/0UOpIxEREb2VtrY2tnnvReeu3fEqJQVjhw8R5XLlhuaN4B9yFIYGBjh/6RJGurggMzNT8LrOdnZY9u23AIC5S5di2549gtekD8PhBxHR/6lbrz78gg7i8IkzaNT4Y6njyIqpaWX4Bh5E1SpV8OetWxjhPFGU4kFF09PTQ8hOb5zcvx9D+ltJHYeIiOid9PT0sHtfIFq2boOEly/gMe9rUdZt1rwFfAJDoaenh59//RXjZ0wXZbPSOW5T8dW06QCAL79bLNq+IlQyHH4QEb2FZYuWqG1Wp+Dj6KgnkuaRk7r16sEn8CAqVqyI02FhcJ49C7m5uVLHkoXKpqbo2r5Dwcfxz55x+ERERCrJwNAQvoGhGDnGDj9t8xJt3fYdO8Nrrz+0tbURcOgQpn7ztSiblX7/9deYPWUKDu/di2pVqoiSlUqGww8ioiIcDg1Gt/YtsdNzq9RRZKNFq9bYsccPWlpa8D1wgJuESSDi9m10HjgAE2e5c/hEREQqqXLlKtiwxRMmJqYFj2VnZwtet/cnn2KTpzc0NDTg6eODr77/TvAARKFQYMW8+ejWoaOoWan4OPwgIirC3Tu3kZGRgblz3HHs8EGp48hG708+xap1mwAAP/z0EzZ575Q6kqzEPXuKp//5D/YFB2PusqVSxyEiIiqS59ZNGDrwU7x+/VrwWoOGDCvoIWu2bMHyDRtESPivPyIiYNmzJ67euCHquvRuHH4QERXBfc7XcHCciLy8PExxHo/LFy9IHUk2xtg54Ot5HgCAmfPmIeTYMakjyUa/nr2wfdVqAMCqTZuw0WuH1JGIiIje6eXLF1i17HtcvhgOJ/vRyMjIELymrcN4eHy/HAAwf8VybPb2FiFpvsVrVuP+40cYaGeL2/fvibYuvRuHH0RERVAoFFi26seC26qNGzMC9+7yVqBlZebsLzFugjPy8vJgP9UN5y9fkjqSbDiMHInvvsrfRM59wQIcOHJE6khERERvlX/HvhBU1NfHb7/+Ajfn8aJcVuI6bSbc53wDAJj+7Vz4BAWJkBbwXrcebVu0wIuEBPQfMwZPYmJEWZfejcMPIqJi0NLSwhav3Wjdth0SExNgO2IInj97KnUsWVAoFFj6w1r06z8Q6RkZGDJ+PN8hKUNfT5+OyQ7jkJeXB4fp0xB26aLUkYiIiN6qTbsO2OUbAB0dHRw5FIrZM9xE2bfqy7nzMXHSFACAk/vnOHTihOA1DQ0McMTHBxaNGiEmPh6fjR6Np8+fC16X3o3DDyKiYtLX18ce/wOo36AhoqOewGv7FqkjycY/w6c27dojKTkZA+3sEP/smdSxZEGhUGD9kiUY1K8fMjIysGDlSlF2vSciIioN3Xv2xlavPdDU1IS/7x54fPuVKJuVfrd8FUaOsUNOTg7GTJ6EX8+fF5y1imllHN/nh3pmZrj/+BEG2NoiMSlJ8Lr0dhx+EBGVQJUqVbEv6CDc53yDL+cukDqOrFSsWBG7/YLQoKE5nsTEYJCDPZQpKVLHkgVNTU34bNqEmS6TEOy1EwqFQupIRERE72RlPRhrN+bfpW/b5o04f/Y3wWtqaGhg7cYtsBo4CBmZmbBxdMSl69cFr1urRg387OeP6tWq4UbkLSxYuULwmvR2ijyZvn2jVCphZGSEe1HPYGBoKHUcIirHcnNzoVAo+A/CMvLk8SMM/KQ7Xrx8ib49euDgrt3Q0dGROpYs5ebmQkOj8PsoypQUmDb5GMnJyTDk79cC7B1ERGXPc+smpKenYdrM2aKtmZ6eDvtRQxF29gxMjIzx64EDsGzSRPC6f0VGYsmPP8JzzRpU0tcXJasclKR38MwPIiIBMjIyMG2yE1YsWSR1FNmoW68+9gSEQE9PD6fOnsWkL77gZRgS+HHbNgy0t0NmZqbUUYiIiN7KebJbocGHGH2hQoUK8PbZjzbt2iMxOQlWtmPx8MkTwes2t7CA39athQYf7Dfi0pI6gFT+eSGl8JRpIhLg9KkTOBDgj4+qV4f9eCcYGRlLHUkWzM0bY/2WHZg8wR6hPx/HjVu3UL9OHaljyUZsfDwWrFyB7JwcnLt4Ee1btSr4nPLVK4CF7Q3sHURE0kpJScG61Svw9XwPaGkK/2fwVq89sB1pg3t3bsNr3z58OXWqKDnx9++MTd7e6N6xI1o0bSrauuqoJL1Dtpe9xMTEwMzMTOoYREREaik6Ohq1a9eWOobKYO8gIiIqPcXpHbIdfuTm5iIuLg4GBgZvXKevVCphZmaG6OhoXq/8gXgMheMxFI7HUBw8jsLJ6Rjm5eUhJSUFNWvWfGM/EDl7V++Q02ujNPE4CsdjKByPoTh4HIWT0zEsSe+Q7WUvGhoaRU6GDA0N1f7FUtp4DIXjMRSOx1AcPI7CyeUYGhkZSR1B5RTVO+Ty2ihtPI7C8RgKx2MoDh5H4eRyDIvbO/iWDBERERERERGpNQ4/iIiIiIiIiEitcfjxFrq6uli4cCF0dXWljlJu8RgKx2MoHI+hOHgcheMxpHfha0McPI7C8RgKx2MoDh5H4XgM3062G54SERERERERkTzwzA8iIiIiIiIiUmscfhARERERERGRWuPwg4iIiIiIiIjUGocfRfjhhx/QunVrGBsbQ19fH82bN8fGjRvBrVKKJycnBytXrkSPHj1QpUoVmJqaonfv3jh37pzU0cqdkydPwtbWFg0bNoRCocC0adOkjqTSbt++jU8//RT6+vqoXr06vvzyS2RmZkodq1y5f/8+XF1d0apVK2hpacHS0lLqSOVKQEAAhgwZgtq1a0NfXx+tWrWCl5cXf3/Qe7F3CMPeIQ52jpJh5xCOnUM49o6iaUkdQNUlJSVh9OjRsLS0RIUKFfDLL79gxowZUCqVmDt3rtTxVF5aWhqWLVsGR0dHfPXVV9DU1MS2bdvQu3dvnDhxAn369JE6Yrlx/Phx/Pnnn+jZsycSEhKkjqPSEhMT0adPHzRq1AgHDhxAbGwsZs2ahdTUVGzcuFHqeOXGzZs3ceTIEXTs2BG5ubnIzc2VOlK5smbNGtSrVw+rV69G1apVcfLkSbi4uCA6OhoLFy6UOh6pKPYOYdg7xMHOUXzsHOJg5xCOvaNovNvLB7Czs8Ply5dx9+5dqaOovJycHCiVSpiYmBR6zNLSEubm5jh06JCk+cqT3NxcaGjkn6xVr149WFtb85fqOyxbtgxLlixBVFQUTE1NAQDbtm2Dm5sboqKiULNmTakjlgv/+5pzdHTElStXEBERIXWscuPFixeoUqVKoccmTZoEf39/JCYmFhxboqKwdxQfe4c42DmKj51DHOwcwrF3FI1H4ANUrlyZp7IVk6amZqEC8s9jLVq0QFxcnGS5yiP+wCq+Y8eOoW/fvgUlBABGjRqF3NxcnDhxQtJs5Qlfc8L8fwEBgNatW0OpVOL169eSZKLyib2j+Ng7xMGf/8XHziEOvuaEY+8oGl9lxZSdnY2UlBQcOXIEu3fvxsyZM6WOVG5lZ2cjPDwcFhYWUkchNXX79m00adKk0GPGxsaoUaMGbt++LVkuorCwMNSqVQsGBgZSRyEVx94hHvYOKk3sHKTK2DsK454fxXD//n00atSo4ON58+bB3d1d0kzl2cqVKxEbG8tjSKUmMTERxsbGbzxuYmLCa5dJMmFhYfDz88Pq1auljkIqjr1DXOwdVJrYOUhVsXe8SXbDj+TkZMTHxxf5dQ0aNICOjg4AwMzMDJcvX8arV69w7tw5LF++HBoaGli0aFEZJFY9H3IM/3Hy5EksXLgQCxYsQNu2bUsxpeoTchyJqHyJiYnB6NGj0bt3b8yYMUPqOFSG2DuEY+8Qjp2DSF7YO95OdsOPgIAAuLi4FPl1kZGRBaew6erqol27dgCAXr16wdDQELNnz8aUKVNQvXr1Us+saj7kGALAtWvXMHz4cNja2mLBggWlnFL1fehxpKKZmJggOTn5jccTExMLXZNLVBaSkpJgZWWFypUrIygoiNc1ywx7h3DsHcKxc5Qedg5SNewd7ya7I+Hs7Iy8vLwi/7zvB3/btm2Rk5ODx48fl2l2VfEhx/D+/fuwsrJCly5d4OnpKWl+VSHGa5HerkmTJm9cZ/vPu148nlSW0tLSYG1tjeTkZBw7dgxGRkZSR6Iyxt4hHHuHcOwcpYedg1QJe8f7yW74IYawsDAoFArUr19f6ijlQnx8PPr164c6deogMDAQ2traUkciNWdlZYVTp04hKSmp4LGAgABoaGigX79+kmYj+cjOzsaoUaMQGRmJ48ePo1atWlJHonKKvaNk2DuoLLFzkKpg7yia7C57KYnk5GQMGDAA9vb2MDc3R1ZWFs6cOYN169Zh8uTJ+Oijj6SOqPLS0tJgZWWFFy9eYN26dYXu162rq4vWrVtLmq88efLkCS5fvgwASE1NxYMHDxAYGAgAGDFihMTpVIurqys2bNgAGxsbzJ07F7GxsZgzZw5cXV1Rs2ZNqeOVG6mpqTh69Cjw9+tPqVQWvOZ69uyJqlWrSpxQtbm5ueHw4cNYvXo1lEolwsPDCz7XunVr6OrqSpqPVA97h3DsHeJg5yg+dg5xsHMIx95RNEVeXl6e1CFUVUZGBlxdXREWFobY2Fjo6enB3Nwcrq6uGDduHDQ1NaWOqPIeP378zneq6tatK9tTeD+Et7c3JkyY8NbP8X/jN0VGRmL69On4/fffYWBggHHjxmHJkiXcyK0E3vf/76+//opevXqVeabypF69enjy5MlbP/fo0SPUq1evzDORamPvEI69QxzsHCXDziEcO4dw7B1F4/CDiIiIiIiIiNQa9/wgIiIiIiIiIrXG4QcRERERERERqTUOP4iIiIiIiIhIrXH4QURERERERERqjcMPIiIiIiIiIlJrHH4QERERERERkVrj8IOIiIiIiIiI1BqHH0RERERERESk1jj8ICIiIiIiIiK1xuEHEamUixcvQqFQwN/fv+CxFy9ewNzcHNbW1sjJyZE0HxEREakHdg4ieVHk5eXlSR2CiOh/DRw4EFFRUbhx4wYyMzPRp08fpKWl4ezZs6hUqZLU8YiIiEhNsHMQyQeHH0Skcq5evYp27dph//79OHDgAH7//XeEh4ejRo0aUkcjIiIiNcLOQSQfHH4QkUqysbHByZMnoa2tjbCwMFhaWhZ8bvLkyTh8+DDi4uLAH2FEREQkBDsHkTxwzw8iUknm5uZITU3F7NmzC5UQALCzs8O1a9cky0ZERETqg52DSB545gcRqZzdu3dj4sSJaNmyJRITE3Hnzh1oaWm98XUKhYLvwhAREdEHY+cgkg+e+UFEKuXXX3+Fi4sL1q1bh7179+Lx48fYuXOn1LGIiIhIzbBzEMkLz/wgIpURGRmJLl26YMKECVizZg0AwNbWFufPn8e9e/ego6NT6Ov5LgwRERF9CHYOIvnh8IOIVMLz58/RqVMntGzZEkFBQdDQyD8xLTIyEpaWltiwYQPc3NwKPYdFhIiIiEqKnYNInjj8IKJyi0WEiIiIygI7B1H5xz0/iKjccXR0RO3atQEAtWvXhoODg9SRiIiISA2xcxCpD575QURERERERERqjWd+EBEREREREZFa4/CDiIiIiIiIiNQahx9EREREREREpNY4/CAiIiIiIiIitcbhBxERERERERGpNQ4/iIiIiIiIiEitcfhBRERERERERGqNww8iIiIiIiIiUmscfhARERERERGRWuPwg4iIiIiIiIjUGocfRERERERERKTWOPwgIiIiIiIiIrX2X65Dr3sW0eJyAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1100x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = plt.subplots(1, 2, figsize=(11, 4))\n",
    "for ax, C in zip(axes, (.05, 10)):\n",
    "    model = SVC(kernel=\"linear\", C=C).fit(X_geometry, y_geometry)\n",
    "    boundary_plot(ax, model, X_geometry, y_geometry, model.support_vectors_, (-1, 0, 1))\n",
    "    signed = y_geometry * model.decision_function(X_geometry)\n",
    "    ax.set_title(f\"C={C:g}, supports={len(model.support_)}\")\n",
    "    print(f\"C={C:g}: errors={np.sum(signed < 0)}, violations={np.sum(signed < 1-1e-3)}\")\n",
    "plt.tight_layout(); plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-009",
   "metadata": {},
   "source": [
    "## 2. Same classification problem as TP4 — 10 min\n",
    "\n",
    "Use the bundled breast cancer dataset. As in TP4, recode **malignant as +1**, benign as -1, and keep the same 20% test split (seed 42, stratified). We now use all remaining development observations for cross-validation. Only the encoding changes; the test observations are the same.\n",
    "\n",
    "Inspect class counts and feature scales. Explain why a scaler must be inside each pipeline. The geometry dataset above is independent and only illustrates margins.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "tp5-010",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.159667Z",
     "iopub.status.busy": "2026-10-07T13:44:06.159559Z",
     "iopub.status.idle": "2026-10-07T13:44:06.165837Z",
     "shell.execute_reply": "2026-10-07T13:44:06.165383Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Development shape: (455, 30) test shape: (114, 30)\n",
      "Development malignant fraction: 0.37362637362637363\n"
     ]
    }
   ],
   "source": [
    "data = load_breast_cancer()\n",
    "X = data.data\n",
    "y = np.where(data.target == 0, 1, -1)\n",
    "X_dev, X_test, y_dev, y_test = train_test_split(X, y, test_size=.2,\n",
    "                                             stratify=y, random_state=SEED)\n",
    "cv = StratifiedKFold(5, shuffle=True, random_state=SEED)\n",
    "print(\"Development shape:\", X_dev.shape, \"test shape:\", X_test.shape)\n",
    "print(\"Development malignant fraction:\", np.mean(y_dev == 1))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "tp5-011",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.167193Z",
     "iopub.status.busy": "2026-10-07T13:44:06.167099Z",
     "iopub.status.idle": "2026-10-07T13:44:06.168951Z",
     "shell.execute_reply": "2026-10-07T13:44:06.168483Z"
    },
    "tags": [
     "exercise"
    ]
   },
   "outputs": [],
   "source": [
    "# TODO: report min/max/std for three named features on X_dev.\n",
    "# TODO: define svm_pipeline = Pipeline with StandardScaler and SVC(kernel=\"linear\").\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "tp5-012",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.170101Z",
     "iopub.status.busy": "2026-10-07T13:44:06.169993Z",
     "iopub.status.idle": "2026-10-07T13:44:06.172997Z",
     "shell.execute_reply": "2026-10-07T13:44:06.172422Z"
    },
    "tags": [
     "correction"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean radius 6.981 28.11 3.575145842966192\n",
      "mean texture 9.71 39.28 4.285935362007162\n",
      "mean perimeter 43.79 188.5 24.6899414867669\n"
     ]
    }
   ],
   "source": [
    "for j in (0, 1, 2):\n",
    "    print(data.feature_names[j], X_dev[:, j].min(), X_dev[:, j].max(), X_dev[:, j].std())\n",
    "svm_pipeline = Pipeline([(\"scale\", StandardScaler()), (\"model\", SVC(kernel=\"linear\"))])\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-013",
   "metadata": {},
   "source": [
    "## 3. Select C and compare learning procedures — 20 min\n",
    "\n",
    "Select by **mean CV ROC-AUC on development data**. Use the same folds for each procedure. Compare linear SVM, logistic regression and k-NN, plus a dummy reference. Tune each real model rather than comparing a tuned SVM with arbitrary defaults.\n",
    "\n",
    "Use `GridSearchCV`: SVM and logistic `C` in `[.01, .1, 1, 10]`, k-NN `n_neighbors` in `[3, 7, 15, 31]`. AUC accepts SVM decision scores; `probability=True` is unnecessary. For k-NN, scores are positive-class probabilities.\n",
    "\n",
    "Report mean and standard deviation of CV AUC and selected parameters. Choose the procedure before the test evaluation. Does the largest training score guarantee the largest CV score?\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "tp5-014",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.174031Z",
     "iopub.status.busy": "2026-10-07T13:44:06.173941Z",
     "iopub.status.idle": "2026-10-07T13:44:06.175810Z",
     "shell.execute_reply": "2026-10-07T13:44:06.175384Z"
    },
    "tags": [
     "exercise"
    ]
   },
   "outputs": [],
   "source": [
    "# TODO: build scaled logistic and k-NN pipelines and a dummy pipeline.\n",
    "# TODO: run the four searches using cv=cv, scoring=\"roc_auc\", return_train_score=True.\n",
    "# Store them in searches, keyed by model name.\n",
    "# TODO: display a development comparison and set winner using CV results only.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "tp5-015",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.177049Z",
     "iopub.status.busy": "2026-10-07T13:44:06.176952Z",
     "iopub.status.idle": "2026-10-07T13:44:06.786108Z",
     "shell.execute_reply": "2026-10-07T13:44:06.785416Z"
    },
    "tags": [
     "correction"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model          CV AUC   CV std  Train AUC  Parameters\n",
      "Logistic       0.9958   0.0047     0.9977  {'model__C': 1}\n",
      "Linear SVM     0.9944   0.0061     0.9962  {'model__C': 0.1}\n",
      "k-NN           0.9893   0.0088     0.9925  {'model__n_neighbors': 31}\n",
      "Dummy          0.5000   0.0000     0.5000  {}\n",
      "Procedure selected before testing: Logistic\n"
     ]
    }
   ],
   "source": [
    "specs = {\n",
    "    \"Linear SVM\": (svm_pipeline, {\"model__C\": [.01, .1, 1, 10]}),\n",
    "    \"Logistic\": (Pipeline([(\"scale\", StandardScaler()),\n",
    "                           (\"model\", LogisticRegression(max_iter=3000))]), {\"model__C\": [.01, .1, 1, 10]}),\n",
    "    \"k-NN\": (Pipeline([(\"scale\", StandardScaler()), (\"model\", KNeighborsClassifier())]),\n",
    "              {\"model__n_neighbors\": [3, 7, 15, 31]}),\n",
    "    \"Dummy\": (Pipeline([(\"model\", DummyClassifier(strategy=\"prior\"))]), {}),\n",
    "}\n",
    "searches, rows = {}, []\n",
    "for name, (estimator, grid) in specs.items():\n",
    "    search = GridSearchCV(estimator, grid, cv=cv, scoring=\"roc_auc\", return_train_score=True, n_jobs=1)\n",
    "    search.fit(X_dev, y_dev)\n",
    "    searches[name] = search\n",
    "    i = search.best_index_\n",
    "    rows.append({\"model\": name, \"CV AUC\": search.best_score_,\n",
    "                 \"CV std\": search.cv_results_[\"std_test_score\"][i],\n",
    "                 \"train AUC\": search.cv_results_[\"mean_train_score\"][i],\n",
    "                 \"parameters\": search.best_params_})\n",
    "\n",
    "comparison_rows = sorted(rows, key=lambda row: row[\"CV AUC\"], reverse=True)\n",
    "print(f'{\"Model\":<12} {\"CV AUC\":>8} {\"CV std\":>8} {\"Train AUC\":>10}  Parameters')\n",
    "\n",
    "for row in comparison_rows:\n",
    "    print(f'{row[\"model\"]:<12} {row[\"CV AUC\"]:8.4f} {row[\"CV std\"]:8.4f} '\n",
    "        f'{row[\"train AUC\"]:10.4f}  {row[\"parameters\"]}')\n",
    "\n",
    "winner = max(rows, key=lambda row: row[\"CV AUC\"])[\"model\"]\n",
    "print(\"Procedure selected before testing:\", winner)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-016",
   "metadata": {},
   "source": [
    "## 4. Inspect the selected linear SVM — 20 min\n",
    "\n",
    "Work on development data only. Use `coef_[0]` and `intercept_[0]` to obtain $w$ and $b$ directly from the fitted SVC. These parameters and `support_vectors_` refer to **scaled coordinates**.\n",
    "\n",
    "1. Transform the development inputs with the fitted scaler and calculate $f(X)=Xw+b$. Compare with the pipeline's `decision_function`.\n",
    "2. Compute the signed margins and minimum slacks. Count misclassified observations and margin violations. Why are these counts different?\n",
    "3. Count the support vectors using `support_`. Inspect their signed margins. Are they all misclassified?\n",
    "\n",
    "Keep test data unused until Section 5.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "tp5-017",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.787877Z",
     "iopub.status.busy": "2026-10-07T13:44:06.787772Z",
     "iopub.status.idle": "2026-10-07T13:44:06.789821Z",
     "shell.execute_reply": "2026-10-07T13:44:06.789256Z"
    },
    "tags": [
     "exercise"
    ]
   },
   "outputs": [],
   "source": [
    "# TODO: get the scaler and SVC from searches[\"Linear SVM\"].best_estimator_.\n",
    "# TODO: transform X_dev using the fitted scaler.\n",
    "# TODO: read w and b from coef_ and intercept_, then compute the scores.\n",
    "# TODO: compare your scores with the pipeline's decision_function.\n",
    "# TODO: count development errors, margin violations and support vectors.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "tp5-018",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.791327Z",
     "iopub.status.busy": "2026-10-07T13:44:06.791226Z",
     "iopub.status.idle": "2026-10-07T13:44:06.796078Z",
     "shell.execute_reply": "2026-10-07T13:44:06.795506Z"
    },
    "tags": [
     "correction"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Scores agree: True\n",
      "Development classification errors: 8\n",
      "Development margin violations: 41\n",
      "Support vectors: 52\n",
      "First ten support margins: [0.98009408 0.42556043 0.07851644 0.86411348 0.99969088 0.96066075\n",
      " 0.75263867 0.31102579 0.99966522 0.94595659]\n"
     ]
    }
   ],
   "source": [
    "selected_svm = searches[\"Linear SVM\"].best_estimator_\n",
    "scaler = selected_svm.named_steps[\"scale\"]\n",
    "svc = selected_svm.named_steps[\"model\"]\n",
    "\n",
    "scaled_dev = scaler.transform(X_dev)\n",
    "w = svc.coef_[0]\n",
    "b = svc.intercept_[0]\n",
    "scores_dev = scaled_dev @ w + b\n",
    "print(\"Scores agree:\", np.allclose(scores_dev, selected_svm.decision_function(X_dev)))\n",
    "\n",
    "signed_margin = y_dev * scores_dev\n",
    "slack_dev = np.maximum(0, 1 - signed_margin)\n",
    "print(\"Development classification errors:\", np.sum(selected_svm.predict(X_dev) != y_dev))\n",
    "print(\"Development margin violations:\", np.sum(slack_dev > 1e-3))\n",
    "print(\"Support vectors:\", len(svc.support_))\n",
    "print(\"First ten support margins:\", signed_margin[svc.support_[:10]])\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-019",
   "metadata": {
    "tags": [
     "correction"
    ]
   },
   "source": [
    "### Interpretation\n",
    "\n",
    "A correctly classified observation can still have a signed margin below 1 and a positive slack. Support vectors are not limited to classification errors. The scaler used here is the one already learned on development data.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-020",
   "metadata": {},
   "source": [
    "## 5. Final test-performance table — 15 min\n",
    "\n",
    "Freeze the four procedures and parameters selected in Section 3. Evaluate each **once** on the same test set. Build a final printed table with:\n",
    "\n",
    "- model name and selected parameters;\n",
    "- ROC-AUC, accuracy, malignant precision, malignant recall and malignant F1 (`pos_label=1`).\n",
    "\n",
    "For SVM and logistic regression, use `decision_function` for AUC. For k-NN and the dummy reference, use the probability column corresponding to class +1. Use `predict` for the other metrics; no threshold is tuned on test data.\n",
    "\n",
    "Display the confusion matrix of the CV-selected `winner` with labels `[-1, +1]`, then print the test-row indices misclassified by the selected SVM. Explain one difference between AUC and recall. Do not change the selected procedure after reading this table.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "tp5-021",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.797229Z",
     "iopub.status.busy": "2026-10-07T13:44:06.797139Z",
     "iopub.status.idle": "2026-10-07T13:44:06.798967Z",
     "shell.execute_reply": "2026-10-07T13:44:06.798435Z"
    },
    "tags": [
     "exercise"
    ]
   },
   "outputs": [],
   "source": [
    "# TODO: for each fitted search, compute test predictions and positive-class scores.\n",
    "# TODO: print the final table: parameters, AUC, accuracy, precision, recall and F1.\n",
    "# TODO: display the winner's confusion matrix, with labels [-1, +1].\n",
    "# TODO: print the test-row indices misclassified by the selected SVM.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "tp5-022",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.800242Z",
     "iopub.status.busy": "2026-10-07T13:44:06.800151Z",
     "iopub.status.idle": "2026-10-07T13:44:06.822933Z",
     "shell.execute_reply": "2026-10-07T13:44:06.822180Z"
    },
    "tags": [
     "correction"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Final test performance (positive class = malignant):\n",
      "Model            AUC  Accuracy  Precision  Recall      F1  Parameters\n",
      "Linear SVM     0.996     0.982      1.000   0.952   0.976  {'model__C': 0.1}\n",
      "Logistic       0.996     0.965      0.975   0.929   0.951  {'model__C': 1}\n",
      "k-NN           0.997     0.947      1.000   0.857   0.923  {'model__n_neighbors': 31}\n",
      "Dummy          0.500     0.632      0.000   0.000   0.000  {}\n",
      "\n",
      "Model chosen by CV: Logistic\n",
      "Confusion matrix: rows=true, columns=predicted, order=[benign, malignant]\n",
      "[[71  1]\n",
      " [ 3 39]]\n",
      "SVM errors at test-row indices: [ 3 16]\n"
     ]
    }
   ],
   "source": [
    "print(\"Final test performance (positive class = malignant):\")\n",
    "print(f'{\"Model\":<12} {\"AUC\":>7} {\"Accuracy\":>9} {\"Precision\":>10} {\"Recall\":>7} {\"F1\":>7}  Parameters')\n",
    "\n",
    "test_results = []\n",
    "for name, search in searches.items():\n",
    "    model = search.best_estimator_\n",
    "    predictions = model.predict(X_test)\n",
    "    if name in (\"Linear SVM\", \"Logistic\"):\n",
    "        scores = model.decision_function(X_test)\n",
    "    else:\n",
    "        positive_column = np.flatnonzero(model.classes_ == 1)[0]\n",
    "        scores = model.predict_proba(X_test)[:, positive_column]\n",
    "\n",
    "    auc = roc_auc_score(y_test, scores)\n",
    "    accuracy = accuracy_score(y_test, predictions)\n",
    "    precision = precision_score(y_test, predictions, pos_label=1, zero_division=0)\n",
    "    recall = recall_score(y_test, predictions, pos_label=1, zero_division=0)\n",
    "    f1 = f1_score(y_test, predictions, pos_label=1, zero_division=0)\n",
    "    test_results.append((name, auc, accuracy, precision, recall, f1))\n",
    "    print(f\"{name:<12} {auc:7.3f} {accuracy:9.3f} {precision:10.3f} \"\n",
    "          f\"{recall:7.3f} {f1:7.3f}  {search.best_params_}\")\n",
    "\n",
    "print(\"\\nModel chosen by CV:\", winner)\n",
    "print(\"Confusion matrix: rows=true, columns=predicted, order=[benign, malignant]\")\n",
    "print(confusion_matrix(y_test, searches[winner].predict(X_test), labels=[-1, 1]))\n",
    "svm_test_predictions = selected_svm.predict(X_test)\n",
    "print(\"SVM errors at test-row indices:\", np.flatnonzero(svm_test_predictions != y_test))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-023",
   "metadata": {
    "tags": [
     "correction"
    ]
   },
   "source": [
    "### Interpretation\n",
    "\n",
    "AUC measures ranking across thresholds, whereas precision, recall, F1 and accuracy use the model's default decision rule. Recall concerns malignant observations; precision concerns observations predicted malignant. The same test cases are used for all frozen procedures. The winner remains the procedure chosen by CV, not whichever model has the largest test score.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-024",
   "metadata": {
    "tags": [
     "optional"
    ]
   },
   "source": [
    "## Optional A — Distance and support vectors\n",
    "\n",
    "Use only the selected SVM and development data.\n",
    "\n",
    "1. Compute the geometric margins $y_i f_i/\\|w\\|$ for all development observations.\n",
    "2. Compare the minimum and maximum geometric margins among support vectors and among the other observations.\n",
    "3. Compute the distance between the score planes $f=-1$ and $f=+1$: $2/\\|w\\|$.\n",
    "4. Explain why a negative labelled margin differs from an observation that is correctly classified but inside the margin.\n",
    "\n",
    "Use `coef_`, `intercept_`, `decision_function` and `support_` only.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "tp5-025",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.824508Z",
     "iopub.status.busy": "2026-10-07T13:44:06.824401Z",
     "iopub.status.idle": "2026-10-07T13:44:06.826184Z",
     "shell.execute_reply": "2026-10-07T13:44:06.825749Z"
    },
    "tags": [
     "exercise",
     "optional"
    ]
   },
   "outputs": [],
   "source": [
    "# TODO: calculate geometric margins and the width 2 / ||w||.\n",
    "# TODO: create a boolean support mask using svc.support_.\n",
    "# TODO: print the geometric-margin range for supports and non-supports.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "tp5-026",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.827278Z",
     "iopub.status.busy": "2026-10-07T13:44:06.827184Z",
     "iopub.status.idle": "2026-10-07T13:44:06.829915Z",
     "shell.execute_reply": "2026-10-07T13:44:06.829455Z"
    },
    "tags": [
     "correction",
     "optional"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Distance between margin planes: 1.4572451718677428\n",
      "Support geometric-margin range: -1.8299942890206307 0.7290593061512814\n",
      "Non-support geometric-margin range: 0.7403007225897912 13.509062742658708\n"
     ]
    }
   ],
   "source": [
    "geometric_margin_dev = signed_margin / np.linalg.norm(w)\n",
    "is_support = np.zeros(len(y_dev), dtype=bool)\n",
    "is_support[svc.support_] = True\n",
    "\n",
    "print(\"Distance between margin planes:\", 2 / np.linalg.norm(w))\n",
    "print(\"Support geometric-margin range:\",\n",
    "      geometric_margin_dev[is_support].min(), geometric_margin_dev[is_support].max())\n",
    "print(\"Non-support geometric-margin range:\",\n",
    "      geometric_margin_dev[~is_support].min(), geometric_margin_dev[~is_support].max())\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-027",
   "metadata": {
    "tags": [
     "optional"
    ]
   },
   "source": [
    "## Optional B — Check numerical KKT conditions\n",
    "\n",
    "This optional exercise uses dual coefficients; the core exercises do not need them. Work on development data only, with the selected linear SVC from Section 4.\n",
    "\n",
    "Scikit-learn stores $\\beta_i=\\alpha_i y_i$ in `dual_coef_[0]` for support vectors. Recover $\\alpha_i=\\beta_i y_i$ for these observations and set the remaining coefficients to zero.\n",
    "\n",
    "Check $0\\leq\\alpha_i\\leq C$, $\\sum_i\\alpha_i y_i=0$ and both complementarity conditions:\n",
    "\n",
    "$$\n",
    "\\alpha_i(y_i f_i-1+\\xi_i)=0,\n",
    "\\qquad (C-\\alpha_i)\\xi_i=0.\n",
    "$$\n",
    "\n",
    "Use the minimum slacks from Section 4. Report the largest absolute residual for each identity; allow numerical tolerance `1e-2` for this solver. Explain the three cases $\\alpha_i=0$, $0<\\alpha_i<C$ and $\\alpha_i=C$. Does an active constraint necessarily have a strictly positive multiplier?\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "tp5-028",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.831064Z",
     "iopub.status.busy": "2026-10-07T13:44:06.830969Z",
     "iopub.status.idle": "2026-10-07T13:44:06.832702Z",
     "shell.execute_reply": "2026-10-07T13:44:06.832253Z"
    },
    "tags": [
     "exercise",
     "optional"
    ]
   },
   "outputs": [],
   "source": [
    "# TODO: recover all alpha coefficients using svc.support_ and svc.dual_coef_[0].\n",
    "# TODO: check bounds and the equality sum(alpha*y_dev)=0.\n",
    "# TODO: print the two maximum complementarity residuals.\n",
    "# Interpret the three groups and explain why numerical tolerances matter.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "id": "tp5-029",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-07T13:44:06.833875Z",
     "iopub.status.busy": "2026-10-07T13:44:06.833775Z",
     "iopub.status.idle": "2026-10-07T13:44:06.837075Z",
     "shell.execute_reply": "2026-10-07T13:44:06.836448Z"
    },
    "tags": [
     "correction",
     "optional"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient bounds satisfied: True\n",
      "Equality residual: 1.6653345369377348e-16\n",
      "Margin complementarity residual: 2.2957909099199136e-05\n",
      "Slack complementarity residual: 2.8779770905699943e-05\n"
     ]
    }
   ],
   "source": [
    "alpha = np.zeros(len(y_dev))\n",
    "alpha[svc.support_] = svc.dual_coef_[0] * y_dev[svc.support_]\n",
    "C = svc.C\n",
    "\n",
    "print(\"Coefficient bounds satisfied:\", np.all(alpha >= -1e-8) and np.all(alpha <= C + 1e-8))\n",
    "print(\"Equality residual:\", abs(np.sum(alpha * y_dev)))\n",
    "margin_residual = np.max(np.abs(alpha * (signed_margin - 1 + slack_dev)))\n",
    "slack_residual = np.max(np.abs((C - alpha) * slack_dev))\n",
    "print(\"Margin complementarity residual:\", margin_residual)\n",
    "print(\"Slack complementarity residual:\", slack_residual)\n",
    "assert np.all(alpha >= -1e-8) and np.all(alpha <= C + 1e-8)\n",
    "assert abs(np.sum(alpha * y_dev)) < 1e-2\n",
    "assert margin_residual < 1e-2 and slack_residual < 1e-2\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "tp5-030",
   "metadata": {
    "tags": [
     "correction",
     "optional"
    ]
   },
   "source": [
    "If $\\alpha_i=0$, the point is on or beyond the correct margin. If $0<\\alpha_i<C$, it is on the correct margin. If $\\alpha_i=C$, it is on or inside the margin, possibly misclassified. Complementarity gives implications, not equivalences: an active constraint may have a zero multiplier in a degenerate case. The numerical solver satisfies these conditions approximately.\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "insa-iml-practicals (3.10.20)",
   "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.10.20"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
