{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

бизнес-цели и 2 задачи, которые нужно решить:
\n", "Снижение вероятности инсульта у пациентов с высоким риском путем раннего выявления предрасположенности.
\n", "Оптимизация медицинских услуг, предоставляемых пациентам, с учетом их риска инсульта.


\n", "Разработать модель, которая прогнозирует вероятность инсульта у пациента.
\n", "Определить значимые признаки для анализа риска инсульта, чтобы направить усилия медицинских работников на важные факторы.

" ] }, { "cell_type": "code", "execution_count": 330, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Количество колонок: 12\n", "Колонки: Index(['id', 'gender', 'age', 'hypertension', 'heart_disease', 'ever_married',\n", " 'work_type', 'Residence_type', 'avg_glucose_level', 'bmi',\n", " 'smoking_status', 'stroke'],\n", " dtype='object')\n" ] } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "# Загрузка данных\n", "data = pd.read_csv('./csv/option4.csv')\n", "\n", "# Обзор данных\n", "print(\"Количество колонок:\", data.columns.size)\n", "print(\"Колонки:\", data.columns)" ] }, { "cell_type": "code", "execution_count": 331, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Наличие пропущенных значений:\n", "id 0\n", "gender 0\n", "age 0\n", "hypertension 0\n", "heart_disease 0\n", "ever_married 0\n", "work_type 0\n", "Residence_type 0\n", "avg_glucose_level 0\n", "bmi 201\n", "smoking_status 0\n", "stroke 0\n", "dtype: int64\n", "\n", "\n", "\n", "\n" ] } ], "source": [ "print(\"\\nНаличие пропущенных значений:\")\n", "print(data.isnull().sum())\n", "\n", "print(\"\\n\\n\")\n", "\n", "print(data.describe)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Возьмем и заменим нулевые значения в столбце bmi на средние значения по столбцу

" ] }, { "cell_type": "code", "execution_count": 332, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Наличие пропущенных значений:\n", "id 0\n", "gender 0\n", "age 0\n", "hypertension 0\n", "heart_disease 0\n", "ever_married 0\n", "work_type 0\n", "Residence_type 0\n", "avg_glucose_level 0\n", "bmi 0\n", "smoking_status 0\n", "stroke 0\n", "dtype: int64\n" ] } ], "source": [ "data['bmi'] = data['bmi'].fillna(data['bmi'].median())\n", "print(\"\\nНаличие пропущенных значений:\")\n", "print(data.isnull().sum())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Взглянем на выбросы:

" ] }, { "cell_type": "code", "execution_count": 333, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAHqCAYAAADrpwd3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABscUlEQVR4nO3de1yUdf7//+cwHD0wiAcGChDPirIeKiOM3GTDU6vlZhaltX7081G0zG0rNw9hGFvblj9bsGz7mBau1ZZmZVpiylZoahoeWtMicdPBCgEPiQjX74++XB9HmRQdGAYe99ttbs28r9dc87rwlm988uZ9WQzDMAQAAAAAAAAAAM7j4+kGAAAAAAAAAABoqAjRAQAAAAAAAABwgRAdAAAAAAAAAAAXCNEBAAAAAAAAAHCBEB0AAAAAAAAAABcI0QEAAAAAAAAAcIEQHQAAAAAAAAAAFwjRAQAAAAAAAABwgRAdAAAAAAAAAAAXCNEBAACAemCxWPTYY495uo16tWHDBlksFm3YsMHTrTSoXgAAjddjjz0mi8WiH374oU4/55577lH79u3r9DMA/B9CdAAAAAAAAAAAXPD1dAMAAAAAAAAALt6LL76oqqoqT7cBNBmE6AAAAAAAAIAX8fPz83QLQJPCdi5AI3TgwAFNnjxZXbt2VVBQkFq3bq3bbrtN33777Xm1+fn5uuGGGxQUFKQrr7xS6enpWrx4sSwWy3n177//vq6//no1b95cLVu21LBhw7R79+76uSgAQJN1MfPa1q1bZbFYtGTJkvPev3btWlksFr377rvm2IYNG3TVVVcpMDBQHTt21AsvvGDuYVpbb7zxhnr06KHAwED17NlTK1asuKh9Sl3VuOrj1Vdf1TXXXKNmzZqpVatWSkxM1AcffOBUk5WVpdjYWAUEBCgiIkKpqakqKSlxqtm3b59GjRolu92uwMBAXXnllRozZoxKS0vP+7x+/fopKChIoaGhGjNmjA4ePHhRX5ML2bx5swYPHiybzaZmzZrphhtu0CeffGIe/+c//ymLxaKNGzee994XXnhBFotFu3btMsf+/e9/63e/+51CQ0MVGBioq666SqtWrXJLrwAAXIoffvhBo0ePVnBwsFq3bq37779fp06dMo9bLBZNmTLF/D4iKChI8fHx2rlzp6Sf57tOnTopMDBQAwcOPO/f5+yJDtQvVqIDjdCWLVv06aefasyYMbryyiv17bffauHChRo4cKD27NmjZs2aSZK+++47/frXv5bFYtGMGTPUvHlz/f3vf1dAQMB553zllVc0btw4JScn68knn9TJkye1cOFCDRgwQNu3b2fyBgDUmYuZ16666ip16NBBr7/+usaNG+f0/tdee02tWrVScnKyJGn79u0aPHiwwsPDlZaWpsrKSs2dO1dt27atdW/vvfeebr/9dvXq1UsZGRk6evSoxo8fryuuuMIt114tLS1Njz32mK677jrNnTtX/v7+2rx5s9avX6+bbrpJ0s/he1pampKSkjRp0iTt3btXCxcu1JYtW/TJJ5/Iz89Pp0+fVnJyssrLyzV16lTZ7XZ99913evfdd1VSUiKbzSZJmjdvnmbNmqXRo0frv/7rv/T999/rueeeU2JiorZv366QkJBLvpb169dryJAh6tevn+bMmSMfHx8tXrxYN954o/71r3/pmmuu0bBhw9SiRQu9/vrruuGGG5ze/9prryk2NlY9e/aUJO3evVsJCQm64oor9Mgjj6h58+Z6/fXXNXLkSL355pu65ZZbLrlXAAAu1ejRo9W+fXtlZGRo06ZNWrBggY4ePaqlS5eaNf/617+0atUqpaamSpIyMjI0fPhwPfTQQ8rKytLkyZN19OhRPfXUU/r973+v9evXe+pyABgAGp2TJ0+eN5aXl2dIMpYuXWqOTZ061bBYLMb27dvNsR9//NEIDQ01JBkFBQWGYRjGsWPHjJCQEGPChAlO53Q4HIbNZjtvHAAAd7rYeW3GjBmGn5+fUVxcbI6Vl5cbISEhxu9//3tz7OabbzaaNWtmfPfdd+bYvn37DF9fX6O23x736tXLuPLKK41jx46ZYxs2bDAkGdHR0U61kow5c+aYr8eNG3dejWEYxpw5c5z62Ldvn+Hj42PccsstRmVlpVNtVVWVYRiGceTIEcPf39+46aabnGr+9re/GZKM//3f/zUMwzC2b99uSDLeeOMNl9f07bffGlar1Zg3b57T+M6dOw1fX9/zxn/JRx99ZEgyPvroI7Pfzp07G8nJyWbvhvHzn3FMTIzxm9/8xhy74447jHbt2hlnzpwxxw4fPmz4+PgYc+fONccGDRpk9OrVyzh16pTT1+W6664zOnfu7LIXAADqQvU8/tvf/tZpfPLkyYYk44svvjAM4+fvCwICAsx/dxuGYbzwwguGJMNutxtlZWXm+IwZM5z+jW4Yrr+PAFA32M4FaISCgoLM5xUVFfrxxx/VqVMnhYSE6PPPPzePrVmzRvHx8erdu7c5FhoaqpSUFKfzffjhhyopKdEdd9yhH374wXxYrVb1799fH330UZ1fEwCg6brYee32229XRUWF3nrrLXPsgw8+UElJiW6//XZJUmVlpdatW6eRI0cqIiLCrOvUqZOGDBlSq74OHTqknTt3auzYsWrRooU5fsMNN6hXr161vk5XVq5cqaqqKs2ePVs+Ps7fvldv+7Ju3TqdPn1a06ZNc6qZMGGCgoOD9d5770mSudJ87dq1OnnyZI2f99Zbb6mqqkqjR492mvftdrs6d+58WfP+jh07tG/fPt1555368ccfzXOfOHFCgwYNUm5urnmTtNtvv11HjhzRhg0bzPf/85//VFVVlfnnWVxcrPXr12v06NE6duyYeb4ff/xRycnJ2rdvn7777rtL7hcAgEtVvbq82tSpUyVJq1evNscGDRrk9Fvd/fv3lySNGjVKLVu2PG/8m2++qat2AVwA27kAjdBPP/2kjIwMLV68WN99950MwzCPnb3f6YEDBxQfH3/e+zt16uT0et++fZKkG2+8scbPCw4OdkfbAADU6GLntV/96lfq1q2bXnvtNY0fP17Sz1t/tGnTxpzDjhw5op9++um8uU46f/67kAMHDrh8X6dOnZwC/svx9ddfy8fHRz169LhgL127dnUa9/f3V4cOHczjMTExmj59up555hllZ2fr+uuv129/+1vdddddZsC+b98+GYahzp071/hZl3Mjs+rvKc7dcudspaWlatWqlbln+muvvaZBgwZJ+vnPs3fv3urSpYskaf/+/TIMQ7NmzdKsWbNqPN+RI0fcvr0OAAAXcu482rFjR/n4+DjtbR4VFeVUUz0XR0ZG1jh+9OjROugUwMUgRAcaoalTp2rx4sWaNm2a4uPjZbPZZLFYNGbMGHN1V21Uv+eVV16R3W4/77ivL3+VAADqTm3mtdtvv13z5s3TDz/8oJYtW2rVqlW64447GuRc5eomppWVlXX6uX/96191zz336O2339YHH3yg++67z9yv9corr1RVVZUsFovef/99Wa3W895/9qr72qr+8/rLX/7i9JtwNZ0/ICBAI0eO1IoVK5SVlaWioiJ98skneuKJJ84734MPPmjueX+u2v5wBACAulDTvF/TPPtL42cvJABQvxrevyYAXLZ//vOfGjdunP7617+aY6dOnVJJSYlTXXR0tPbv33/e+88d69ixoySpXbt2SkpKcn/DAAD8goud16SfQ/S0tDS9+eabCgsLU1lZmcaMGWMeb9eunQIDAy9q/ruQ6Ohol++7mHO1atWqxmuoXjVerWPHjqqqqtKePXtcBs/Vvezdu1cdOnQwx0+fPq2CgoLz5u9evXqpV69emjlzpj799FMlJCTo+eefV3p6ujp27CjDMBQTE2Ou+HaX6u8pgoODL+p7ittvv11LlixRTk6OvvzySxmGYW7lIsm8Vj8/P75HAQA0KPv27VNMTIz5ev/+/aqqqnLavgWA92BPdKARslqt5/2E+rnnnjtvZVtycrLy8vK0Y8cOc6y4uFjZ2dnn1QUHB+uJJ55QRUXFeZ/3/fffu695AADOcbHzmiR1795dvXr10muvvabXXntN4eHhSkxMdDpXUlKSVq5cqUOHDpnj+/fv1/vvv1+rviIiItSzZ08tXbpUx48fN8c3btyonTt3XvD9HTt2VGlpqfLz882xw4cPa8WKFU51I0eOlI+Pj+bOnXveyvvqr0tSUpL8/f21YMECp6/VSy+9pNLSUg0bNkySVFZWpjNnzjido1evXvLx8VF5ebkk6dZbb5XValVaWtp5X3fDMPTjjz9e8Npc6devnzp27Kinn37a6WtW7dzvKZKSkhQaGmr+eV5zzTVOgUS7du00cOBAvfDCCzp8+PAFzwcAQH3JzMx0ev3cc89JUq3vwQKgYWAlOtAIDR8+XK+88opsNpt69OihvLw8rVu3Tq1bt3aqe+ihh/Tqq6/qN7/5jaZOnarmzZvr73//u6KiolRcXGz+ullwcLAWLlyou+++W3379tWYMWPUtm1bFRYW6r333lNCQoL+9re/eeJSAQBNwMXOa9Vuv/12zZ49W4GBgRo/fvx5N+N87LHH9MEHHyghIUGTJk1SZWWl/va3v6lnz55OP1i+GE888YRGjBihhIQE3XvvvTp69Kh5rppC4rONGTNGDz/8sG655Rbdd999OnnypBYuXKguXbo47afeqVMnPfroo3r88cd1/fXX69Zbb1VAQIC2bNmiiIgIZWRkqG3btpoxY4bS0tI0ePBg/fa3v9XevXuVlZWlq6++WnfddZckaf369ZoyZYpuu+02denSRWfOnNErr7wiq9WqUaNGSfo53E9PT9eMGTP07bffauTIkWrZsqUKCgq0YsUKTZw4UQ8++GCtvk7VfHx89Pe//11DhgxRbGys7r33Xl1xxRX67rvv9NFHHyk4OFjvvPOOWe/n56dbb71Vy5cv14kTJ/T000+fd87MzEwNGDBAvXr10oQJE9ShQwcVFRUpLy9P//nPf/TFF19cUq8AAFyOgoIC/fa3v9XgwYOVl5enV199VXfeead+9atfebo1AJfCANDoHD161Lj33nuNNm3aGC1atDCSk5ONf//730Z0dLQxbtw4p9rt27cb119/vREQEGBceeWVRkZGhrFgwQJDkuFwOJxqP/roIyM5Odmw2WxGYGCg0bFjR+Oee+4xtm7dWo9XBwBoamozrxmGYezbt8+QZEgyPv744xrPmZOTY/Tp08fw9/c3OnbsaPz97383/vCHPxiBgYG17m/58uVGt27djICAAKNnz57GqlWrjFGjRhndunVzqpNkzJkzx2nsgw8+MHr27Gn4+/sbXbt2NV599VVjzpw5Rk3fpv/v//6v0adPHyMgIMBo1aqVccMNNxgffvihU83f/vY3o1u3boafn58RFhZmTJo0yTh69Kh5/JtvvjF+//vfGx07djQCAwON0NBQ49e//rWxbt268z7vzTffNAYMGGA0b97caN68udGtWzcjNTXV2Lt370V/bT766CNDkvHRRx85jW/fvt249dZbjdatWxsBAQFGdHS0MXr0aCMnJ+e8c3z44YeGJMNisRgHDx6s8XO+/vprY+zYsYbdbjf8/PyMK664whg+fLjxz3/+84K9AADgTtXz+J49e4zf/e53RsuWLY1WrVoZU6ZMMX766SezTpKRmprq9N6CggJDkvGXv/zFabx6DnvjjTfMsXHjxhnR0dF1ei0A/o/FMLgrAQBn06ZN0wsvvKDjx4+7vKEJAACNzciRI7V7927t27fvss/Vu3dvtW3bVh9++KEbOgMAAADgSeyJDjRxP/30k9PrH3/8Ua+88ooGDBhAgA4AaLTOnf/27dun1atXa+DAgbU6T0VFxXl7jG/YsEFffPFFrc8FAAAAoGFiJTrQxPXu3VsDBw5U9+7dVVRUpJdeekmHDh1STk6O043YAABoTMLDw3XPPfeoQ4cOOnDggBYuXKjy8nJt375dnTt3Vmlp6XlB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UVGRRo8e7aErAgDgwn5p/ktJSdHy5cvNf8RK0muvvaaIiAhdf/31kqSxY8fq0KFD2rBhg958800tWrRIR44cuajPrqys1MiRI9WsWTNt3rxZixYt0qOPPnrZ1/Tee+/plltu0dChQ7V9+3bl5OTommuuMY/fc8892rp1q1atWqW8vDwZhqGhQ4eqoqJCkpSamqry8nLl5uZq586devLJJ9WiRQtJ7p/vp0yZory8PC1fvlz5+fm67bbbNHjwYO3bt0/BwcEaPny4li1b5vSe7Oxs8+tWUVGh5ORktWzZUv/617/0ySefqEWLFho8eLBOnz59iV9BAADq15IlS+Tr66vPPvtM/9//9//pmWee0d///nfz+LPPPquEhARt375dw4YN0913362xY8fqrrvu0ueff66OHTtq7NixTt+zAPAAA0CT8/333xuSjJ07dxoLFy40Wrdubfz000/m8RdffNGQZGzfvt0wDMN4/PHHjZtuusnpHAcPHjQkGXv37q3P1gEAuGRnz39HjhwxfH19jdzcXPN4fHy88fDDDxuGYRhffvmlIcnYsmWLeXzfvn2GJOPZZ5+94Ge9//77hq+vr3H48GFz7MMPPzQkGStWrDAMwzAKCgqc5tvFixcbNpvN6TwrVqwwzv6WPT4+3khJSanxM7/66itDkvHJJ5+YYz/88IMRFBRkvP7664ZhGEavXr2Mxx57rMb3X+58f8MNNxj333+/YRiGceDAAcNqtRrfffedU82gQYOMGTNmmNfWokUL48SJE4ZhGEZpaakRGBhovP/++4ZhGMYrr7xidO3a1aiqqjLfX15ebgQFBRlr1641DMMwxo0bZ4wYMeKCvQEA4Ak33HCD0b17d6e57OGHHza6d+9uGIZhREdHG3fddZd57PDhw4YkY9asWeZYXl6eIcn8nqKm7xcA1D1WogNNwL59+3THHXeoQ4cOCg4OVvv27SVJhYWF2rt3r+Li4hQYGGjWn72iTZK++OILffTRR2rRooX56NatmyQ5bQsDAEBD8kvzX9u2bXXTTTcpOztbklRQUKC8vDylpKRIkvbu3StfX1/17dvXPF+nTp3UqlWri/rsvXv3KjIyUna73Rw7d369FDt27NCgQYNqPPbll1/K19dX/fv3N8dat26trl276ssvv5Qk3XfffUpPT1dCQoLmzJmj/Px8s9ad8/3OnTtV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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def plot_numeric_boxplots(dataframe):\n", " # Фильтрация числовых столбцов\n", " numeric_columns = ['age', 'avg_glucose_level', 'bmi']\n", " \n", " # Построение графиков\n", " if numeric_columns:\n", " plt.figure(figsize=(15, 5))\n", " \n", " for i, col in enumerate(numeric_columns):\n", " if col != 'id':\n", " plt.subplot(1, len(numeric_columns), i + 1)\n", " sns.boxplot(y=dataframe[col])\n", " plt.title(f'{col}')\n", " plt.ylabel('')\n", " plt.xlabel(col)\n", " \n", " plt.tight_layout()\n", " plt.show()\n", " else:\n", " print(\"Нет подходящих числовых столбцов для построения графиков.\")\n", "\n", "plot_numeric_boxplots(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Видим выбросы в столбцах со средним уровнем глюкозы и в столбце bmi (индекс массы тела). устраним выбросы - поставим верхние и нижние границы

" ] }, { "cell_type": "code", "execution_count": 334, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAHqCAYAAADrpwd3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABcoElEQVR4nO3dfZiVVb0//vcgMIPADIIxAwmI+AAGPhuSZqQk4kOgnJSiNPPIqfCRThpH0SSJ9Fh5NMQ0j2lBmqUezcQUBcpQEUVNjdBQSAVKZUZQRmT2749+7m8j7BIFBobX67ruS/Za6177cw9erJn33HvdZYVCoRAAAAAAAGAtLZq6AAAAAAAA2FwJ0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAYBMoKyvLN7/5zaYuY5OaMWNGysrKMmPGjKYuZbOqBYDm65vf/GbKysryt7/9baO+zxe/+MXsuOOOG/U9gP9HiA4AAAAAACW0bOoCAAAAAID37pprrklDQ0NTlwFbDSE6AAAAAGxBWrVq1dQlwFbFdi7QDL3wwgv56le/mt122y1t2rRJp06d8pnPfCbPP//8WmOfeOKJfOITn0ibNm2yww475KKLLsp1112XsrKytcbfdddd+fjHP562bdumffv2OfLII/PUU09tmosCYKv1Xta1Rx55JGVlZbn++uvXOv/uu+9OWVlZfvWrXxXbZsyYkf322y8VFRXp1atXfvjDHxb3MF1fN998c3bfffdUVFSkb9++ufXWW9/TPqWlxpSq46c//Wk++tGPZtttt812222Xgw8+OL/5zW8ajbnyyivzkY98JOXl5enatWtGjx6d5cuXNxqzYMGCDB8+PDU1NamoqMgOO+yQESNGpLa2dq3323fffdOmTZt07NgxI0aMyOLFi9/T1+Rfeeihh3L44Yenqqoq2267bT7xiU/kgQceKPb/4he/SFlZWWbOnLnWuT/84Q9TVlaWP/zhD8W2P/7xj/m3f/u3dOzYMRUVFdlvv/1y++23b5BaAeD9+Nvf/pbjjjsulZWV6dSpU84444ysWrWq2F9WVpZTTz21+H1EmzZtMmDAgDz55JNJ/r7e7bzzzqmoqMjAgQPX+vncnuiwabkTHZqhOXPm5Pe//31GjBiRHXbYIc8//3wmT56cgQMH5umnn862226bJHnxxRfzyU9+MmVlZRk7dmzatm2bH/3oRykvL19rzp/85Cc58cQTM3jw4Fx88cV54403Mnny5Bx00EF57LHHLN4AbDTvZV3bb7/9stNOO+XnP/95TjzxxEbn33TTTdluu+0yePDgJMljjz2Www8/PF26dMmFF16YNWvWZPz48fnQhz603rXdeeedOf7449OvX79MnDgxr732Wk4++eR8+MMf3iDX/o4LL7ww3/zmN/Oxj30s48ePT+vWrfPQQw/lvvvuy2GHHZbk7+H7hRdemEGDBuUrX/lK5s+fn8mTJ2fOnDl54IEH0qpVq7z11lsZPHhw6uvrc9ppp6WmpiYvvvhifvWrX2X58uWpqqpKkkyYMCHjxo3Lcccdl3//93/PX//611xxxRU5+OCD89hjj6VDhw7v+1ruu+++DBkyJPvuu28uuOCCtGjRItddd10OOeSQ/Pa3v81HP/rRHHnkkWnXrl1+/vOf5xOf+ESj82+66aZ85CMfSd++fZMkTz31VA488MB8+MMfzje+8Y20bds2P//5zzNs2LD88pe/zDHHHPO+awWA9+u4447LjjvumIkTJ+bBBx/M5Zdfntdeey033HBDccxvf/vb3H777Rk9enSSZOLEiTnqqKNy9tln58orr8xXv/rVvPbaa7nkkkvypS99Kffdd19TXQ5QAJqdN954Y6222bNnF5IUbrjhhmLbaaedVigrKys89thjxbZXXnml0LFjx0KSwsKFCwuFQqHw+uuvFzp06FA45ZRTGs25ZMmSQlVV1VrtALAhvdd1bezYsYVWrVoVXn311WJbfX19oUOHDoUvfelLxbajjz66sO222xZefPHFYtuCBQsKLVu2LKzvt8f9+vUr7LDDDoXXX3+92DZjxoxCkkKPHj0ajU1SuOCCC4qvTzzxxLXGFAqFwgUXXNCojgULFhRatGhROOaYYwpr1qxpNLahoaFQKBQKy5YtK7Ru3bpw2GGHNRrzgx/8oJCk8L//+7+FQqFQeOyxxwpJCjfffHPJa3r++ecL22yzTWHChAmN2p988slCy5Yt12r/Z+6///5CksL9999frHeXXXYpDB48uFh7ofD3v+OePXsWPvWpTxXbPvvZzxY6d+5cePvtt4ttL7/8cqFFixaF8ePHF9sOPfTQQr9+/QqrVq1q9HX52Mc+Vthll11K1gIAG8M76/inP/3pRu1f/epXC0kKjz/+eKFQ+Pv3BeXl5cWfuwuFQuGHP/xhIUmhpqamUFdXV2wfO3Zso5/RC4XS30cAG4ftXKAZatOmTfHPq1evziuvvJKdd945HTp0yKOPPlrsmzZtWgYMGJC99tqr2NaxY8eMHDmy0Xz33HNPli9fns9+9rP529/+Vjy22Wab9O/fP/fff/9GvyYAtl7vdV07/vjjs3r16txyyy3Ftt/85jdZvnx5jj/++CTJmjVrcu+992bYsGHp2rVrcdzOO++cIUOGrFddL730Up588smccMIJadeuXbH9E5/4RPr167fe11nKbbfdloaGhpx//vlp0aLxt+/vbPty77335q233sqZZ57ZaMwpp5ySysrK3HnnnUlSvNP87rvvzhtvvLHO97vlllvS0NCQ4447rtG6X1NTk1122eUDrfvz5s3LggUL8rnPfS6vvPJKce6VK1fm0EMPzaxZs4oPSTv++OOzbNmyzJgxo3j+L37xizQ0NBT/Pl999dXcd999Oe644/L6668X53vllVcyePDgLFiwIC+++OL7rhcA3q937i5/x2mnnZYk+fWvf11sO/TQQxt9qrt///5JkuHDh6d9+/Zrtf/5z3/eWOUC/4LtXKAZevPNNzNx4sRcd911efHFF1MoFIp9/7jf6QsvvJABAwasdf7OO+/c6PWCBQuSJIcccsg636+ysnJDlA0A6/Re17U999wzvXv3zk033ZSTTz45yd+3/th+++2La9iyZcvy5ptvrrXWJWuvf//KCy+8UPK8nXfeuVHA/0E899xzadGiRXbfffd/Wctuu+3WqL1169bZaaediv09e/bMmDFj8r3vfS9TpkzJxz/+8Xz605/O5z//+WLAvmDBghQKheyyyy7rfK8P8iCzd76nePeWO/+otrY22223XXHP9JtuuimHHnpokr//fe61117ZddddkyTPPvtsCoVCxo0bl3Hjxq1zvmXLlm3w7XUA4F959zraq1evtGjRotHe5t27d2805p21uFu3butsf+211zZCpcB7IUSHZui0007LddddlzPPPDMDBgxIVVVVysrKMmLEiOLdXevjnXN+8pOfpKamZq3+li39UwLAxrM+69rxxx+fCRMm5G9/+1vat2+f22+/PZ/97Gc3y7Wq1ENM16xZs1Hf97vf/W6++MUv5v/+7//ym9/8Jqeffnpxv9YddtghDQ0NKSsry1133ZVtttlmrfP/8a779fXO39d///d/N/ok3LrmLy8vz7Bhw3LrrbfmyiuvzNKlS/PAAw/k29/+9lrz/ed//mdxz/t3W99fjgDAxrCudX9d6+w/a//HGwmATWvz+2kC+MB+8Ytf5MQTT8x3v/vdYtuqVauyfPnyRuN69OiRZ599dq3z393Wq1evJEnnzp0zaNCgDV8wAPwT73VdS/4eol944YX55S9/merq6tTV1WXEiBHF/s6dO6eiouI9rX//So8ePUqe917m2m677dZ5De/cNf6OXr16paGhIU8//XTJ4PmdWubPn5+ddtqp2P7WW29l4cKFa63f/fr1S79+/XLeeefl97//fQ488MBcddVVueiii9KrV68UCoX07NmzeMf3hvLO9xSVlZXv6XuK448/Ptdff32mT5+eZ555JoVCobiVS5LitbZq1cr3KABsVhYsWJCePXsWXz/77LNpaGhotH0LsOWwJzo0Q9tss81av6G+4oor1rqzbfDgwZk9e3bmzZtXbHv11VczZcqUtcZVVlbm29/+dlavXr3W+/31r3/dcMUDwLu813UtSfr06ZN+/frlpptuyk033ZQuXbrk4IMPbjTXoEGDctttt+Wll14qtj/77LO566671quurl27pm/fvrnhhhuyYsWKYvvMmTPz5JNP/svze/Xqldra2jzxxBPFtpdffjm33npro3HDhg1LixYtMn78+LXuvH/n6zJo0KC0bt06l19+eaOv1bXXXpva2toceeSRSZK6urq8/fbbjebo169fWrRokfr6+iTJsccem2222SYXXnjhWl/3QqGQV1555V9eWyn77rtvevXqlUsvvbTR1+wd7/6eYtCgQenYsWPx7/OjH/1oo0Cic+fOGThwYH74wx/m5Zdf/pfzAcCmMmnSpEavr7jiiiRZ72ewAJsHd6JDM3TUUUflJz/5SaqqqrL77rtn9uzZuffee9OpU6dG484+++z89Kc/zac+9amcdtppadu2bX70ox+le/fuefXVV4sfN6usrMzkyZPzhS98Ifvss09GjBiRD33oQ1m0aFHuvPPOHHjggfnBD37QFJcKwFbgva5r7zj++ONz/vnnp6KiIieffPJaD+P85je/md/85jc58MAD85WvfCVr1qzJD37wg/Tt27fRL5bfi29/+9sZOnRoDjzwwJx00kl57bXXinOtKyT+RyNGjMg555yTY445JqeffnreeOONTJ48Obvuumuj/dR33nnnnHvuufnWt76Vj3/84zn22GNTXl6eOXPmpGvXrpk4cWI+9KEPZezYsbnwwgtz+OGH59Of/nTmz5+fK6+8Mvvvv38+//nPJ0nuu+++nHrqqfnMZz6TXXfdNW+//XZ+8pOfZJtttsnw4cOT/D3cv+iiizJ27Ng8//zzGTZsWNq3b5+FCxfm1ltvzahRo/Kf//mf6/V1ekeLFi3yox/9KEOGDMlHPvKRnHTSSfnwhz+cF198Mffff38qKytzxx13FMe3atUqxx57bG688casXLkyl1566VpzTpo0KQcddFD69euXU045JTvttFOWLl2a2bNn5y9/+Usef/zx91UrAHwQCxcuzKc//ekcfvjhmT17dn7605/mc5/7XPbcc8+mLg14PwpAs/Paa68VTjrppML2229faNeuXWHw4MGFP/7xj4UePXoUTjzxxEZjH3vsscLHP/7xQnl5eWGHHXYoTJw4sXD55ZcXkhSWLFnSaOz9999fGDx4cKGqqqpQUVFR6NWrV+GLX/xi4ZFHHtmEVwfA1mZ91rVCoVBYsGBBIUkhSeF3v/vdOuecPn16Ye+99y60bt260KtXr8KPfvSjwte+9rVCRUXFetd34403Fnr37l0oLy8v9O3bt3D77bcXhg8fXujdu3ejcUkKF1xwQaO23/zmN4W+ffsWWrduXdhtt90KP/3pTwsXXHBBYV3fpv/v//5vYe+99y6Ul5cXtttuu8InPvGJwj333NNozA9+8INC7969C61atSpUV1cXvvKVrxRee+21Yv+f//znwpe+9KVCr169ChUVFYWOHTsWPvnJTxbuvffetd7vl7/8ZeGggw4qtG3bttC2bdtC7969C6NHjy7Mnz//PX9t7r///kKSwv3339+o/bHHHisce+yxhU6dOhXKy8sLPXr0KBx33HGF6dOnrzXHPffcU0hSKCsrKyxevHid7/Pcc88VTjjhhEJNTU2hVatWhQ9/+MOFo446qvCLX/ziX9YCABvSO+v4008/Xfi3f/u3Qvv27Qvbbbdd4dRTTy28+eabxXFJCqNHj2507sKFCwtJCv/93//dqP2dNezmm28utp144omFHj16bNRrAf6fskLBUwmAxs4888z88Ic/zIoVK0o+0AQAmpthw4blqaeeyoIFCz7wXHvttVc+9KEP5Z577tkAlQEAAE3JnuiwlXvzzTcbvX7llVfyk5/8JAcddJAAHYBm693r34IFC/LrX/86AwcOXK95Vq9evdYe4zNmzMjjjz++3nMBAACbJ3eiw1Zur732ysCBA9OnT58sXbo01157bV566aVMnz690YPYAKA56dKlS774xS9mp512ygsvvJDJkyenvr4+jz32WHbZZZfU1tauFbS/W01NTZ5//vkMGjQon//859O1a9f88Y9/zFVXXZWqqqr84Q9/KLlv+5buzTffTG1t7T8d07Fjx7Ru3XoTVQQAABuPB4vCVu6II47IL37xi1x99dUpKyvLPvvsk2uvvVaADkCzdvjhh+dnP/tZlixZkvLy8gwYMCDf/va3s8suuyRJzjjjjFx//fX/dI5CoZDtttsu++67b370ox/lr3/9a9q2bZsjjzwy3/nOd5ptgJ4kN910U0466aR/Oub+++93Nz4AAM2CO9EBAOBdnn766bz00kv/dMygQYM2UTWbn5dffjlPPfXUPx2z7777ZrvttttEFQEAwMYjRAcAAAAAgBI8WBQAAAAAAErY7PZEb2hoyEsvvZT27dunrKysqcsBgI2uUCjk9ddfT9euXdOixZb9+23rOABbG+s4AGy53us6vtmF6C+99FK6devW1GUAwCa3ePHi7LDDDk1dxgdiHQdga2UdB4At179axze7EL19+/ZJ/l54ZWVlE1cDABtfXV1dunXrVlwDt2TWcQC2NtZxANhyvdd1fLML0d/5yFhlZaVFG4CtSnP42LR1HICtlXUcALZc/2od37I3bAMAAAAAgI1IiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKaNnUBcB7sWrVqixatKipy4ANpnv37qmoqGjqMgA2Ces4zY11HNiaWMdpbqzjvB9CdLYIixYtyqhRo5q6DNhgrr766uy6665NXQbAJmEdp7mxjgNbE+s4zY11nPdDiM4WoXv37rn66qubuoxm74UXXsiECRNy7rnnpkePHk1dTrPWvXv3pi4BYJOxjm8a1vFNxzoObE2s45uGdXzTsY7zfgjR2SJUVFT4LeEm1KNHD19vADYY6/imZR0HYEOyjm9a1nHYPHmwKAAAAAAAlCBEBwAAAACAEtYrRF+zZk3GjRuXnj17pk2bNunVq1e+9a1vpVAoFMcUCoWcf/756dKlS9q0aZNBgwZlwYIFG7xwAAAAAADY2NYrRL/44oszefLk/OAHP8gzzzyTiy++OJdcckmuuOKK4phLLrkkl19+ea666qo89NBDadu2bQYPHpxVq1Zt8OIBAAAAAGBjWq8Hi/7+97/P0KFDc+SRRyZJdtxxx/zsZz/Lww8/nOTvd6FfdtllOe+88zJ06NAkyQ033JDq6urcdtttGTFixAYuHwAAAAAANp71uhP9Yx/7WKZPn54//elPSZLHH388v/vd7zJkyJAkycKFC7NkyZIMGjSoeE5VVVX69++f2bNnb8CyAQAAAABg41uvO9G/8Y1vpK6uLr17984222yTNWvWZMKECRk5cmSSZMmSJUmS6urqRudVV1cX+96tvr4+9fX1xdd1dXXrdQEAAAAAALCxrNed6D//+c8zZcqUTJ06NY8++miuv/76XHrppbn++uvfdwETJ05MVVVV8ejWrdv7ngsAAAC2Bt/5zndSVlaWM888s9g2cODAlJWVNTq+/OUvN12RANBMrNed6F//+tfzjW98o7i3eb9+/fLCCy9k4sSJOfHEE1NTU5MkWbp0abp06VI8b+nSpdlrr73WOefYsWMzZsyY4uu6ujpBOgAAAJQwZ86c/PCHP8wee+yxVt8pp5yS8ePHF19vu+22m7I0AGiW1utO9DfeeCMtWjQ+ZZtttklDQ0OSpGfPnqmpqcn06dOL/XV1dXnooYcyYMCAdc5ZXl6eysrKRgcAAACwthUrVmTkyJG55pprst12263Vv+2226ampqZ4+BkbAD649QrRjz766EyYMCF33nlnnn/++dx666353ve+l2OOOSZJih8lu+iii3L77bfnySefzAknnJCuXbtm2LBhG6N+AAAA2GqMHj06Rx55ZAYNGrTO/ilTpmT77bdP3759M3bs2Lzxxhsl56qvr09dXV2jAwBY23pt53LFFVdk3Lhx+epXv5ply5ala9eu+Y//+I+cf/75xTFnn312Vq5cmVGjRmX58uU56KCDMm3atFRUVGzw4gEAAGBrceONN+bRRx/NnDlz1tn/uc99Lj169EjXrl3zxBNP5Jxzzsn8+fNzyy23rHP8xIkTc+GFF27MkgGgWVivEL19+/a57LLLctlll5UcU1ZWlvHjxzfagw0AAAB4/xYvXpwzzjgj99xzT8mb1EaNGlX8c79+/dKlS5cceuihee6559KrV6+1xntGGQC8N+sVogMAAACb3ty5c7Ns2bLss88+xbY1a9Zk1qxZ+cEPfpD6+vpss802jc7p379/kuTZZ59dZ4heXl6e8vLyjVs4ADQDQnQAAADYzB166KF58sknG7WddNJJ6d27d84555y1AvQkmTdvXpKkS5cum6JEAGi2hOgAAACwmWvfvn369u3bqK1t27bp1KlT+vbtm+eeey5Tp07NEUcckU6dOuWJJ57IWWedlYMPPjh77LFHE1UNAM2DEB0AAAC2cK1bt869996byy67LCtXrky3bt0yfPjwnHfeeU1dGgBs8YToAAAAsAWaMWNG8c/dunXLzJkzm64YAGjGWjR1AQAAAAAAsLkSogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHgGZi1qxZOfroo9O1a9eUlZXltttuW2vMM888k09/+tOpqqpK27Zts//++2fRokXF/lWrVmX06NHp1KlT2rVrl+HDh2fp0qWb8CoAAABg8yJEB4BmYuXKldlzzz0zadKkdfY/99xzOeigg9K7d+/MmDEjTzzxRMaNG5eKiorimLPOOit33HFHbr755sycOTMvvfRSjj322E11CQAAALDZadnUBQAAG8aQIUMyZMiQkv3nnntujjjiiFxyySXFtl69ehX/XFtbm2uvvTZTp07NIYcckiS57rrr0qdPnzz44IM54IADNl7xAAAAsJlyJzoAbAUaGhpy5513Ztddd83gwYPTuXPn9O/fv9GWL3Pnzs3q1aszaNCgYlvv3r3TvXv3zJ49e53z1tfXp66urtEBAAAAzYkQHQC2AsuWLcuKFSvyne98J4cffnh+85vf5Jhjjsmxxx6bmTNnJkmWLFmS1q1bp0OHDo3Ora6uzpIlS9Y578SJE1NVVVU8unXrtrEvBQAAADYpIToAbAUaGhqSJEOHDs1ZZ52VvfbaK9/4xjdy1FFH5aqrrnrf844dOza1tbXFY/HixRuqZAAAANgs2BMdALYC22+/fVq2bJndd9+9UXufPn3yu9/9LklSU1OTt956K8uXL290N/rSpUtTU1OzznnLy8tTXl6+0eoGAACApuZOdADYCrRu3Tr7779/5s+f36j9T3/6U3r06JEk2XfffdOqVatMnz692D9//vwsWrQoAwYM2KT1AgAAwObCnegA0EysWLEizz77bPH1woULM2/evHTs2DHdu3fP17/+9Rx//PE5+OCD88lPfjLTpk3LHXfckRkzZiRJqqqqcvLJJ2fMmDHp2LFjKisrc9ppp2XAgAE54IADmuiqAAAAoGkJ0QGgmXjkkUfyyU9+svh6zJgxSZITTzwxP/7xj3PMMcfkqquuysSJE3P66adnt912yy9/+cscdNBBxXO+//3vp0WLFhk+fHjq6+szePDgXHnllZv8WgAAAGBzIUQHgGZi4MCBKRQK/3TMl770pXzpS18q2V9RUZFJkyZl0qRJG7o8AAAA2CLZEx0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAC2MN/5zndSVlaWM888s9i2atWqjB49Op06dUq7du0yfPjwLF26tOmKBIBmQogOAAAAW5A5c+bkhz/8YfbYY49G7WeddVbuuOOO3HzzzZk5c2ZeeumlHHvssU1UJQA0H0J0AAAA2EKsWLEiI0eOzDXXXJPtttuu2F5bW5trr7023/ve93LIIYdk3333zXXXXZff//73efDBB5uwYgDY8gnRAQAAYAsxevToHHnkkRk0aFCj9rlz52b16tWN2nv37p3u3btn9uzZm7pMAGhWWjZ1AQAAAMC/duONN+bRRx/NnDlz1upbsmRJWrdunQ4dOjRqr66uzpIlS9Y5X319ferr64uv6+rqNmi9ANBcuBMdAAAANnOLFy/OGWeckSlTpqSiomKDzDlx4sRUVVUVj27dum2QeQGguRGiAwAAwGZu7ty5WbZsWfbZZ5+0bNkyLVu2zMyZM3P55ZenZcuWqa6uzltvvZXly5c3Om/p0qWpqalZ55xjx45NbW1t8Vi8ePEmuBIA2PLYzgUAAAA2c4ceemiefPLJRm0nnXRSevfunXPOOSfdunVLq1atMn369AwfPjxJMn/+/CxatCgDBgxY55zl5eUpLy/f6LUDwJZOiA4AAACbufbt26dv376N2tq2bZtOnToV208++eSMGTMmHTt2TGVlZU477bQMGDAgBxxwQFOUDADNhhAdAAAAmoHvf//7adGiRYYPH576+voMHjw4V155ZVOXBQBbPCE6AAAAbIFmzJjR6HVFRUUmTZqUSZMmNU1BANBMebAoAAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdABoJmbNmpWjjz46Xbt2TVlZWW677baSY7/85S+nrKwsl112WaP2V199NSNHjkxlZWU6dOiQk08+OStWrNi4hQMAAMBmTIgOAM3EypUrs+eee2bSpEn/dNytt96aBx98MF27dl2rb+TIkXnqqadyzz335Fe/+lVmzZqVUaNGbaySAQAAYLPXsqkLAAA2jCFDhmTIkCH/dMyLL76Y0047LXfffXeOPPLIRn3PPPNMpk2bljlz5mS//fZLklxxxRU54ogjcumll64zdAcAAIDmToi+gSxdujS1tbVNXQZ8IC+88EKj/8KWqqqqKtXV1U1dxmanoaEhX/jCF/L1r389H/nIR9bqnz17djp06FAM0JNk0KBBadGiRR566KEcc8wxa51TX1+f+vr64uu6urqNUzwAAAA0kfUO0V988cWcc845ueuuu/LGG29k5513znXXXVf8gbtQKOSCCy7INddck+XLl+fAAw/M5MmTs8suu2zw4jcXS5cuzee/cEJWv1X/rwfDFmDChAlNXQJ8IK1al+enP7lBkP4uF198cVq2bJnTTz99nf1LlixJ586dG7W1bNkyHTt2zJIlS9Z5zsSJE3PhhRdu8FoBAABgc7FeIfprr72WAw88MJ/85Cdz11135UMf+lAWLFiQ7bbbrjjmkksuyeWXX57rr78+PXv2zLhx4zJ48OA8/fTTqaio2OAXsDmora3N6rfq8+ZOn0hDRVVTlwOwVWuxqjb588zU1tYK0f/B3Llz8z//8z959NFHU1ZWtsHmHTt2bMaMGVN8XVdXl27dum2w+QEAAKCprVeIfvHFF6dbt2657rrrim09e/Ys/rlQKOSyyy7Leeedl6FDhyZJbrjh73cC3nbbbRkxYsQGKnvz1FBRlYa22zd1GQCwlt/+9rdZtmxZunfvXmxbs2ZNvva1r+Wyyy7L888/n5qamixbtqzReW+//XZeffXV1NTUrHPe8vLylJeXb9TaAQAAoCm1WJ/Bt99+e/bbb7985jOfSefOnbP33nvnmmuuKfYvXLgwS5YsyaBBg4ptVVVV6d+/f2bPnr3OOevr61NXV9foAAA2rC984Qt54oknMm/evOLRtWvXfP3rX8/dd9+dJBkwYECWL1+euXPnFs+777770tDQkP79+zdV6QAAANCk1utO9D//+c+ZPHlyxowZk//6r//KnDlzcvrpp6d169Y58cQTi/ulvvvj89XV1fZSBYCNbMWKFXn22WeLrxcuXJh58+alY8eO6d69ezp16tRofKtWrVJTU5PddtstSdKnT58cfvjhOeWUU3LVVVdl9erVOfXUUzNixIh07dp1k14LAAAAbC7W6070hoaG7LPPPvn2t7+dvffeO6NGjSr+oP1+jR07NrW1tcVj8eLF73suANiaPfLII9l7772z9957J0nGjBmTvffeO+eff/57nmPKlCnp3bt3Dj300BxxxBE56KCDcvXVV2+skgEAAGCzt153onfp0iW77757o7Y+ffrkl7/8ZZIU90tdunRpunTpUhyzdOnS7LXXXuuc016qALBhDBw4MIVC4T2Pf/7559dq69ixY6ZOnboBqwIAAIAt23rdiX7ggQdm/vz5jdr+9Kc/pUePHkn+/pDRmpqaTJ8+vdhfV1eXhx56KAMGDNgA5QIAAAAAwKazXnein3XWWfnYxz6Wb3/72znuuOPy8MMP5+qrry5+zLusrCxnnnlmLrroouyyyy7p2bNnxo0bl65du2bYsGEbo34AAAAAANho1itE33///XPrrbdm7NixGT9+fHr27JnLLrssI0eOLI45++yzs3Llyowa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wIABueuuu4r9q1atyujRo9OpU6e0a9cuw4cPz9KlS5uwYgBoPoToANBMPPLII9l7772z9957J0nGjBmTvffeO+eff35efPHF3H777fnLX/6SvfbaK126dCkev//974tzTJkyJb17986hhx6aI444IgcddFCuvvrqprokAOD/t8MOO+Q73/lO5s6dm0ceeSSHHHJIhg4dmqeeeipJctZZZ+WOO+7IzTffnJkzZ+all17Kscce28RVA0DzYDsXAGgmBg4cmEKhULL/n/W9o2PHjpk6deqGLAsA2ACOPvroRq8nTJiQyZMn58EHH8wOO+yQa6+9NlOnTs0hhxySJLnuuuvSp0+fPPjggznggAOaomQAaDaE6BtQizeXN3UJAFs9/xYDAM3dmjVrcvPNN2flypUZMGBA5s6dm9WrV2fQoEHFMb1790737t0ze/ZsIToAfEBC9A2ozcJZTV0CAAAAzdSTTz6ZAQMGZNWqVWnXrl1uvfXW7L777pk3b15at26dDh06NBpfXV2dJUuWlJyvvr4+9fX1xdd1dXUbq3QA2KIJ0TegN3senIY2HZq6DICtWos3l/ulJgDQLO22226ZN29eamtr84tf/CInnnhiZs6c+b7nmzhxYi688MINWCEANE9C9A2ooU2HNLTdvqnLAAAAoBlq3bp1dt555yTJvvvumzlz5uR//ud/cvzxx+ett97K8uXLG92NvnTp0tTU1JScb+zYsRkzZkzxdV1dXbp167bR6geALVWLpi4AAAAAWH8NDQ2pr6/Pvvvum1atWmX69OnFvvnz52fRokUZMGBAyfPLy8tTWVnZ6AAA1uZOdAAAANjMjR07NkOGDEn37t3z+uuvZ+rUqZkxY0buvvvuVFVV5eSTT86YMWPSsWPHVFZW5rTTTsuAAQM8VBQANgAhOgAAAGzmli1blhNOOCEvv/xyqqqqsscee+Tuu+/Opz71qSTJ97///bRo0SLDhw9PfX19Bg8enCuvvLKJqwaA5kGIDgAAAJu5a6+99p/2V1RUZNKkSZk0adImqggAth72RAcAAAAAgBKE6AAAAAAAUIIQHQAAAAAAShCiAwAAAABACR4sCgBs9ZYuXZra2tqmLgM+kBdeeKHRf2FLVVVVlerq6qYuAwCgSIgOAGzVli5dms9/4YSsfqu+qUuBDWLChAlNXQJ8IK1al+enP7lBkA4AbDaE6ADAVq22tjar36rPmzt9Ig0VVU1dDsBWrcWq2uTPM1NbWytEBwA2G0J0AIAkDRVVaWi7fVOXAQAAwGbGg0UBAAAAAKAEIToAAAAAAJQgRAcAAAAAgBKE6AAAAAAAUMIHCtG/853vpKysLGeeeWaxbdWqVRk9enQ6deqUdu3aZfjw4Vm6dOkHrRMAAAAAADa5lu/3xDlz5uSHP/xh9thjj0btZ511Vu68887cfPPNqaqqyqmnnppjjz02DzzwwAcuFgAAAODdWry5vKlLANjqNed/i99XiL5ixYqMHDky11xzTS666KJie21tba699tpMnTo1hxxySJLkuuuuS58+ffLggw/mgAMO2DBVAwAAAPz/2iyc1dQlANCMva8QffTo0TnyyCMzaNCgRiH63Llzs3r16gwaNKjY1rt373Tv3j2zZ89eZ4heX1+f+vr64uu6urr3UxIAAACwlXqz58FpaNOhqcsA2Kq1eHN5s/2l5nqH6DfeeGMeffTRzJkzZ62+JUuWpHXr1unQoUOj9urq6ixZsmSd802cODEXXnjh+pYBAAAAkCRpaNMhDW23b+oyAGim1uvBoosXL84ZZ5yRKVOmpKKiYoMUMHbs2NTW1haPxYsXb5B5AQAAAADgg1qvEH3u3LlZtmxZ9tlnn7Rs2TItW7bMzJkzc/nll6dly5aprq7OW2+9leXLlzc6b+nSpampqVnnnOXl5amsrGx0AAAAAADA5mC9tnM59NBD8+STTzZqO+mkk9K7d++cc8456datW1q1apXp06dn+PDhSZL58+dn0aJFGTBgwIarGgAAAAAANoH1CtHbt2+fvn37Nmpr27ZtOnXqVGw/+eSTM2bMmHTs2DGVlZU57bTTMmDAgHU+VBQAAAAAADZn6/1g0X/l+9//flq0aJHhw4envr4+gwcPzpVXXrmh3wYAAAAAADa6Dxyiz5gxo9HrioqKTJo0KZMmTfqgUwMAAAAAQJNarweLAgAAAADA1kSIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAbOYmTpyY/fffP+3bt0/nzp0zbNiwzJ8/v9GYgQMHpqysrNHx5S9/uYkqBoDmQ4gOAAAAm7mZM2dm9OjRefDBB3PPPfdk9erVOeyww7Jy5cpG40455ZS8/PLLxeOSSy5poooBoPlo2dQFAAAAAP/ctGnTGr3+8Y9/nM6dO2fu3Lk5+OCDi+3bbrttampqNnV5ANCsuRMdAAAAtjC1tbVJko4dOzZqnzJlSrbffvv07ds3Y8eOzRtvvFFyjvr6+tTV1TU6AIC1uRMdAAAAtiANDQ0588wzc+CBB6Zv377F9s997nPp0aNHunbtmieeeCLnnHNO5s+fn1tuuWWd80ycODEXXnjhpiobALZYQnQAAADYgowePTp/+MMf8rvf/a5R+6hRo4p/7tevX7p06ZJDDz00zz33XHr16rXWPGPHjs2YMWOKr+vq6tKtW7eNVzgAbKFs5wIAzcSsWbNy9NFHp2vXrikrK8ttt93WqL9QKOT8889Ply5d0qZNmwwaNCgLFixoNObVV1/NyJEjU1lZmQ4dOuTkk0/OihUrNuFVAAD/zKmnnppf/epXuf/++7PDDjv807H9+/dPkjz77LPr7C8vL09lZWWjAwBYmxAdAJqJlStXZs8998ykSZPW2X/JJZfk8ssvz1VXXZWHHnoobdu2zeDBg7Nq1arimJEjR+app57KPffck1/96leZNWtWo7vaAICmUSgUcuqpp+bWW2/Nfffdl549e/7Lc+bNm5ck6dKly0auDgCaN9u5AEAzMWTIkAwZMmSdfYVCIZdddlnOO++8DB06NElyww03pLq6OrfddltGjBiRZ555JtOmTcucOXOy3377JUmuuOKKHHHEEbn00kvTtWvXTXYtAEBjo0ePztSpU/N///d/ad++fZYsWZIkqaqqSps2bfLcc89l6tSpOeKII9KpU6c88cQTOeuss3LwwQdnjz32aOLqAWDL5k50ANgKLFy4MEuWLMmgQYOKbVVVVenfv39mz56dJJk9e3Y6dOhQDNCTZNCgQWnRokUeeuihdc5bX1+furq6RgcAsOFNnjw5tbW1GThwYLp06VI8brrppiRJ69atc++99+awww5L796987WvfS3Dhw/PHXfc0cSVA8CWz53oALAVeOduterq6kbt1dXVxb4lS5akc+fOjfpbtmyZjh07Fse828SJE3PhhRduhIoBgH9UKBT+aX+3bt0yc+bMTVQNAGxd3IkOALxvY8eOTW1tbfFYvHhxU5cEAAAAG5QQHQC2AjU1NUmSpUuXNmpfunRpsa+mpibLli1r1P/222/n1VdfLY55t/Ly8lRWVjY6AAAAoDkRogPAVqBnz56pqanJ9OnTi211dXV56KGHMmDAgCTJgAEDsnz58sydO7c45r777ktDQ0P69++/yWsGAACAzYE90QGgmVixYkWeffbZ4uuFCxdm3rx56dixY7p3754zzzwzF110UXbZZZf07Nkz48aNS9euXTNs2LAkSZ8+fXL44YfnlFNOyVVXXZXVq1fn1FNPzYgRI9K1a9cmuioAAABoWkJ0AGgmHnnkkXzyk58svh4zZkyS5MQTT8yPf/zjnH322Vm5cmVGjRqV5cuX56CDDsq0adNSUVFRPGfKlCk59dRTc+ihh6ZFixYZPnx4Lr/88k1+LQAAALC5EKIDQDMxcODAFAqFkv1lZWUZP358xo8fX3JMx44dM3Xq1I1RHgDARtNiVW1TlwCw1WvO/xYL0QEAAIAtUlVVVVq1Lk/+PLOpSwEgSavW5amqqmrqMjY4IToAAACwRaqurs5Pf3JDamub792PbB1eeOGFTJgwIeeee2569OjR1OXA+1ZVVZXq6uqmLmODE6IDAAAAW6zq6upmGdiwderRo0d23XXXpi4DeJcWTV0AAAAAAABsroToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlNCyqQsAANgctHhzeVOXALDV828xALA5EqIDACRps3BWU5cAAADAZkiIDgCQ5M2eB6ehTYemLgNgq9bizeV+qQkAbHaE6AAASRradEhD2+2bugwAAAA2Mx4sCgAAAAAAJQjRAQAAAACgBCE6AAAAAACUYE/0DajFqtqmLgFgq+ffYgAAAGBDEqJvAFVVVWnVujz588ymLgWAJK1al6eqqqqpywAAAACaASH6BlBdXZ2f/uSG1Na6+5Et2wsvvJAJEybk3HPPTY8ePZq6HHjfqqqqUl1d3dRlAAAAAM2AEH0Dqa6uFtjQbPTo0SO77rprU5cBAAAAAE3Og0UBAAAAAKAEIToAAAAAAJQgRAcAAAAAgBKE6AAAAAAAUIIQHQAAAAAAShCiAwAAAABACUJ0AAAA2MxNnDgx+++/f9q3b5/OnTtn2LBhmT9/fqMxq1atyujRo9OpU6e0a9cuw4cPz9KlS5uoYgBoPoToAAAAsJmbOXNmRo8enQcffDD33HNPVq9encMOOywrV64sjjnrrLNyxx135Oabb87MmTPz0ksv5dhjj23CqgGgeWjZ1AUAAAAA/9y0adMavf7xj3+czp07Z+7cuTn44INTW1uba6+9NlOnTs0hhxySJLnuuuvSp0+fPPjggznggAOaomwAaBbciQ4AAABbmNra2iRJx44dkyRz587N6tWrM2jQoOKY3r17p3v37pk9e/Y656ivr09dXV2jAwBYmxAdAAAAtiANDQ0588wzc+CBB6Zv375JkiVLlqR169bp0KFDo7HV1dVZsmTJOueZOHFiqqqqike3bt02dukAsEUSogMAAMAWZPTo0fnDH/6QG2+88QPNM3bs2NTW1haPxYsXb6AKAaB5sSc6AAAAbCFOPfXU/OpXv8qsWbOyww47FNtramry1ltvZfny5Y3uRl+6dGlqamrWOVd5eXnKy8s3dskAsMVzJzoAAABs5gqFQk499dTceuutue+++9KzZ89G/fvuu29atWqV6dOnF9vmz5+fRYsWZcCAAZu6XABoVtyJDgAAAJu50aNHZ+rUqfm///u/tG/fvrjPeVVVVdq0aZOqqqqcfPLJGTNmTDp27JjKysqcdtppGTBgQA444IAmrh4AtmxCdAAAANjMTZ48OUkycODARu3XXXddvvjFLyZJvv/976dFixYZPnx46uvrM3jw4Fx55ZWbuFIAaH7WazuXiRMnZv/990/79u3TuXPnDBs2LPPnz280ZtWqVRk9enQ6deqUdu3aZfjw4Vm6dOkGLRoAAAC2JoVCYZ3HOwF6klRUVGTSpEl59dVXs3Llytxyyy0l90MHAN679QrRZ86cmdGjR+fBBx/MPffck9WrV+ewww7LypUri2POOuus3HHHHbn55pszc+bMvPTSSzn22GM3eOEAAAAAALCxrdd2LtOmTWv0+sc//nE6d+6cuXPn5uCDD05tbW2uvfbaTJ06NYccckiSv3+0rE+fPnnwwQftwwYAAAAAwBZlve5Ef7fa2tokSceOHZMkc+fOzerVqzNo0KDimN69e6d79+6ZPXv2Oueor69PXV1dowMAAAAAADYH7ztEb2hoyJlnnpkDDzwwffv2TZIsWbIkrVu3TocOHRqNra6uLj45/N0mTpyYqqqq4tGtW7f3WxIAAAAAAGxQ7ztEHz16dP7whz/kxhtv/EAFjB07NrW1tcVj8eLFH2g+AAAAAADYUNZrT/R3nHrqqfnVr36VWbNmZYcddii219TU5K233sry5csb3Y2+dOnSkk8ELy8vT3l5+fspAwAAAAAANqr1uhO9UCjk1FNPza233pr77rsvPXv2bNS/7777plWrVpk+fXqxbf78+Vm0aFEGDBiwYSoGAAAAAIBNZL3uRB89enSmTp2a//u//0v79u2L+5xXVVWlTZs2qaqqysknn5wxY8akY8eOqayszGmnnZYBAwbkgAMO2CgXAAAAAAAAG8t63Yk+efLk1NbWZuDAgenSpUvxuOmmm4pjvv/97+eoo47K8OHDc/DBB6empia33HLLBi8cAFg/a9asybhx49KzZ8+0adMmvXr1yre+9a0UCoXimEKhkPPPPz9dunRJmzZtMmjQoCxYsKAJqwYAAICmtV53ov/jD9mlVFRUZNKkSZk0adL7LgoA2PAuvvjiTJ48Oddff30+8pGP5JFHHslJJ52UqqqqnH766UmSSy65JJdffnmuv/769OzZM+PGjcvgwYPz9NNPp6KioomvAAAAADa99/VgUQBgy/P73/8+Q4cOzZFHHpkk2XHHHfOzn/0sDz/8cJK//7L8sssuy3nnnZehQ4cmSW644YZUV1fntttuy4gRI5qsdgAAAGgq67WdCwCw5frYxz6W6dOn509/+lOS5PHHH8/vfve7DBkyJEmycOHCLFmyJIMGDSqeU1VVlf79+2f27NlNUjMAAAA0NXeiA8BW4hvf+Ebq6urSu3fvbLPNNlmzZk0mTJiQkSNHJknxgeHV1dWNzquuri72vVt9fX3q6+uLr+vq6jZS9QAAANA03IkOAFuJn//855kyZUqmTp2aRx99NNdff30uvfTSXH/99e97zokTJ6aqqqp4dOvWbQNWDAAAAE1PiA4AW4mvf/3r+cY3vpERI0akX79++cIXvpCzzjorEydOTJLU1NQkSZYuXdrovKVLlxb73m3s2LGpra0tHosXL964FwEAAACbmBAdALYSb7zxRlq0aLz0b7PNNmloaEiS9OzZMzU1NZk+fXqxv66uLg899FAGDBiwzjnLy8tTWVnZ6AAAAIDmxJ7oALCVOProozNhwoR07949H/nIR/LYY4/le9/7Xr70pS8lScrKynLmmWfmoosuyi677JKePXtm3Lhx6dq1a4YNG9a0xQMAAEATEaIDwFbiiiuuyLhx4/LVr341y5YtS9euXfMf//EfOf/884tjzj777KxcuTKjRo3K8uXLc9BBB2XatGmpqKhowsoBAACg6QjRAWAr0b59+1x22WW57LLLSo4pKyvL+PHjM378+E1XGAAAAGzG7IkOAAAAAAAlCNEBAAAAAKAE27kAACRpsaq2qUsA2Or5txgA2BwJ0QGArVpVVVVatS5P/jyzqUsBIEmr1uWpqqpq6jIAAIqE6ADAVq26ujo//ckNqa119yNbthdeeCETJkzIueeemx49ejR1OfC+VVVVpbq6uqnLAAAoEqIDAFu96upqgQ3NRo8ePbLrrrs2dRkAANBseLAoAAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAbOZmzZqVo48+Ol27dk1ZWVluu+22Rv1f/OIXU1ZW1ug4/PDDm6ZYAGhmhOgAAACwmVu5cmX23HPPTJo0qeSYww8/PC+//HLx+NnPfrYJKwSA5qtlUxcAAAAA/HNDhgzJkCFD/umY8vLy1NTUbKKKAGDr4U50AAAAaAZmzJiRzp07Z7fddstXvvKVvPLKK01dEgA0C+5EBwAAgC3c4YcfnmOPPTY9e/bMc889l//6r//KkCFDMnv27GyzzTbrPKe+vj719fXF13V1dZuqXADYogjRAQAAYAs3YsSI4p/79euXPfbYI7169cqMGTNy6KGHrvOciRMn5sILL9xUJQLAFst2LgAAANDM7LTTTtl+++3z7LPPlhwzduzY1NbWFo/FixdvwgoBYMvhTnQAAABoZv7yl7/klVdeSZcuXUqOKS8vT3l5+SasCgC2TEJ0AAAA2MytWLGi0V3lCxcuzLx589KxY8d07NgxF154YYYPH56ampo899xzOfvss7Pzzjtn8ODBTVg1ADQPQnQAAADYzD3yyCP55Cc/WXw9ZsyYJMmJJ56YyZMn54knnsj111+f5cuXp2vXrjnssMPyrW99y53mALABCNEBAABgMzdw4MAUCoWS/XffffcmrAYAti4eLAoAAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQA2Iq8+OKL+fznP59OnTqlTZs26devXx555JFif6FQyPnnn58uXbqkTZs2GTRoUBYsWNCEFQMAAEDTEqIDwFbitddey4EHHphWrVrlrrvuytNPP53vfve72W677YpjLrnkklx++eW56qqr8tBDD6Vt27YZPHhwVq1a1YSVAwAAQNNp2dQFAACbxsUXX5xu3brluuuuK7b17Nmz+OdCoZDLLrss5513XoYOHZokueGGG1JdXZ3bbrstI0aM2OQ1AwAAQFNzJzoAbCVuv/327LfffvnMZz6Tzp07Z++9984111xT7F+4cGGWLFmSQYMGFduqqqrSv3//zJ49e51z1tfXp66urtEBAAAAzYkQHQC2En/+858zefLk7LLLLrn77rvzla98Jaeffnquv/76JMmSJUuSJNXV1Y3Oq66uLva928SJE1NVVVU8unXrtnEvAgAAADYxIToAbCUaGhqyzz775Nvf/nb23nvvjBo1Kqecckquuuqq9z3n2LFjU1tbWzwWL168ASsGAACApidEB4CtRJcuXbL77rs3auvTp08WLVqUJKmpqUmSLF26tNGYpUuXFvverby8PJWVlY0OAAAAaE6E6ACwlTjwwAMzf/78Rm1/+tOf0qNHjyR/f8hoTU1Npk+fXuyvq6vLQw89lAEDBmzSWgEAAGBz0bKpCwAANo2zzjorH/vYx/Ltb387xx13XB5++OFcffXVufrqq5MkZWVlOfPMM3PRRRdll112Sc+ePTNu3Lh07do1w4YNa9riAQAAoIkI0QFgK7H//vvn1ltvzdixYzN+/Pj07Nkzl112WUaOHFkcc/bZZ2flypUZNWpUli9fnoMOOijTpk1LRUVFE1YOAAAATUeIDgBbkaOOOipHHXVUyf6ysrKMHz8+48eP34RVAQAAwObLnugAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJWy0EH3SpEnZcccdU1FRkf79++fhhx/eWG8FAAAAAAAbxUYJ0W+66aaMGTMmF1xwQR599NHsueeeGTx4cJYtW7Yx3g4AAAAAADaKjRKif+9738spp5ySk046KbvvvnuuuuqqbLvttvnf//3fjfF2AAAAAACwUWzwEP2tt97K3LlzM2jQoP/3Ji1aZNCgQZk9e/aGfjsAAABo9mbNmpWjjz46Xbt2TVlZWW677bZG/YVCIeeff366dOmSNm3aZNCgQVmwYEHTFAsAzUzLDT3h3/72t6xZsybV1dWN2qurq/PHP/5xrfH19fWpr68vvq6rq9vQJdEMrFq1KosWLWrqMpq9F154odF/2Xi6d++eioqKpi4DYJOwjm8a1vFNxzpOU1i5cmX23HPPfOlLX8qxxx67Vv8ll1ySyy+/PNdff3169uyZcePGZfDgwXn66af9/8oHYh3fNKzjm451nPdjg4fo62vixIm58MILm7oMNnOLFi3KqFGjmrqMrcaECROauoRm7+qrr86uu+7a1GUAbBLW8U3LOr7xWcdpCkOGDMmQIUPW2VcoFHLZZZflvPPOy9ChQ5MkN9xwQ6qrq3PbbbdlxIgRm7JUmhnr+KZlHd/4rOO8Hxs8RN9+++2zzTbbZOnSpY3aly5dmpqamrXGjx07NmPGjCm+rqurS7du3TZ0WWzhunfvnquvvrqpy4ANpnv37k1dAsAmYx2nubGOs7lZuHBhlixZ0mhb1aqqqvTv3z+zZ88WovOBWMdpbqzjvB8bPERv3bp19t1330yfPj3Dhg1LkjQ0NGT69Ok59dRT1xpfXl6e8vLyDV0GzUxFRYXfEgLAFso6DrBxLVmyJEnWua3qO33rYntV3gvrOMBGeLBokowZMybXXHNNrr/++jzzzDP5yle+kpUrV+akk07aGG8HAAAArKeJEyemqqqqePhUOACs20YJ0Y8//vhceumlOf/887PXXntl3rx5mTZt2lq/FQcAAAA+mHe2Tn2v26q+Y+zYsamtrS0eixcv3qh1AsCWaqOE6Ely6qmn5oUXXkh9fX0eeuih9O/ff2O9FQAAAGy1evbsmZqamkyfPr3YVldXl4ceeigDBgwoeV55eXkqKysbHQDA2jb4nugAAADAhrVixYo8++yzxdcLFy7MvHnz0rFjx3Tv3j1nnnlmLrroouyyyy7p2bNnxo0bl65duxafVQYAvH9CdAAAANjMPfLII/nkJz9ZfD1mzJgkyYknnpgf//jHOfvss7Ny5cqMGjUqy5cvz0EHHZRp06aloqKiqUoGgGZDiA4AAACbuYEDB6ZQKJTsLysry/jx4zN+/PhNWBUAbB022p7oAAAAAACwpROiAwAAAABACUJ0AAAAAAAoQYgOAAAAAAAlCNEBAAAAAKAEIToAAAAAAJQgRAcAAAAAgBKE6AAAAAAAUIIQHQAAAAAASmjZ1AW8W6FQSJLU1dU1cSUAsGm8s+a9swZuyazjAGxtrOMAsOV6r+v4Zheiv/7660mSbt26NXElALBpvf7666mqqmrqMj4Q6zgAWyvrOABsuf7VOl5W2Mx+Xd7Q0JCXXnop7du3T1lZWVOXA1uVurq6dOvWLYsXL05lZWVTlwNbjUKhkNdffz1du3ZNixZb9k5r1nFoOtZxaBrWcWBDsI5D03iv6/hmF6IDTaeuri5VVVWpra21aAPAFsY6DgBbLus4bN627F+TAwAAAADARiREBwAAAACAEoToQFF5eXkuuOCClJeXN3UpAMB6so4DwJbLOg6bN3uiAwAAAABACe5EBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwCAJvD888+nrKws8+bNa+pSNoiBAwfmzDPP3KTv+cUvfjHDhg3bpO8JAO/Vxlgbf/zjH6dDhw4bdE7gXxOiAwAAAMAW4Pjjj8+f/vSnpi4Dtjotm7oAAAAAAOBfa9OmTdq0adPUZcBWx53osBWYNm1aDjrooHTo0CGdOnXKUUcdleeee67Y//vf/z577bVXKioqst9+++W2225b6+Plf/jDHzJkyJC0a9cu1dXV+cIXvpC//e1vTXA1APDe/LP172Mf+1jOOeecRuP/+te/plWrVpk1a1aS5OWXX86RRx6ZNm3apGfPnpk6dWp23HHHXHbZZe/p/f/4xz/moIMOSkVFRXbffffce++9KSsry2233bbO8ev6ePY7a/I/uuOOO7L//vunoqIi22+/fY455phi32uvvZYTTjgh2223XbbddtsMGTIkCxYsKPa/8MILOfroo7Pddtulbdu2+chHPpJf//rXxf4Nud7X19fnP//zP/PhD384bdu2Tf/+/TNjxowkSV1dXdq0aZO77rqr0Tm33npr2rdvnzfeeCNJsnjx4hx33HHp0KFDOnbsmKFDh+b5559/X/UAQFN4++23c+qpp6aqqirbb799xo0bl0KhkCTZcccdc9FFF+WEE05Iu3bt0qNHj9x+++3561//mqFDh6Zdu3bZY4898sgjjxTns50LNA0hOmwFVq5cmTFjxuSRRx7J9OnT06JFixxzzDFpaGhIXV1djj766PTr1y+PPvpovvWtb60VKixfvjyHHHJI9t577zzyyCOZNm1ali5dmuOOO66JrggA/rV/tv6NHDkyN954Y/GH2CS56aab0rVr13z84x9Pkpxwwgl56aWXMmPGjPzyl7/M1VdfnWXLlr2n916zZk2GDRuWbbfdNg899FCuvvrqnHvuuR/4mu68884cc8wxOeKII/LYY49l+vTp+ehHP1rs/+IXv5hHHnkkt99+e2bPnp1CoZAjjjgiq1evTpKMHj069fX1mTVrVp588slcfPHFadeuXZINv96feuqpmT17dm688cY88cQT+cxnPpPDDz88CxYsSGVlZY466qhMnTq10TlTpkwpft1Wr16dwYMHp3379vntb3+bBx54IO3atcvhhx+et956631+BQFg07r++uvTsmXLPPzww/mf//mffO9738uPfvSjYv/3v//9HHjggXnsscdy5JFH5gtf+EJOOOGEfP7zn8+jjz6aXr165YQTTmj0PQvQBArAVuevf/1rIUnhySefLEyePLnQqVOnwptvvlnsv+aaawpJCo899lihUCgUvvWtbxUOO+ywRnMsXry4kKQwf/78TVk6ALxv/7j+LVu2rNCyZcvCrFmziv0DBgwonHPOOYVCoVB45plnCkkKc+bMKfYvWLCgkKTw/e9//1++11133VVo2bJl4eWXXy623XPPPYUkhVtvvbVQKBQKCxcubLTeXnfddYWqqqpG89x6662Ff/yWfcCAAYWRI0eu8z3/9Kc/FZIUHnjggWLb3/72t0KbNm0KP//5zwuFQqHQr1+/wje/+c11nv9B1/tPfOIThTPOOKNQKBQKL7zwQmGbbbYpvPjii43GHHrooYWxY8cWr61du3aFlStXFgqFQqG2trZQUVFRuOuuuwqFQqHwk5/8pLDbbrsVGhoaiufX19cX2rRpU7j77rsLhUKhcOKJJxaGDh36L2sDgKbwiU98otCnT59Ga9k555xT6NOnT6FQKBR69OhR+PznP1/se/nllwtJCuPGjSu2zZ49u5Ck+D3Fur5fADY+d6LDVmDBggX57Gc/m5122imVlZXZcccdkySLFi3K/Pnzs8cee6SioqI4/h/vaEuSxx9/PPfff3/atWtXPHr37p0kjbaFAYDNyT9b/z70oQ/lsMMOy5QpU5IkCxcuzOzZszNy5Mgkyfz589OyZcvss88+xfl23nnnbLfddu/pvefPn59u3bqlpqam2Pbu9fX9mDdvXg499NB19j3zzDNp2bJl+vfvX2zr1KlTdttttzzzzDNJktNPPz0XXXRRDjzwwFxwwQV54oknimM35Hr/5JNPZs2aNdl1110bzTdz5sziXEcccURatWqV22+/PUnyy1/+MpWVlRk0aFCxnmeffTbt27cvnt+xY8esWrXK9x8AbDEOOOCARluzDRgwIAsWLMiaNWuSJHvssUexr7q6OknSr1+/tdre66fhgI3Dg0VhK3D00UenR48eueaaa9K1a9c0NDSkb9++7/mj0CtWrMjRRx+diy++eK2+Ll26bOhyAWCD+Ffr38iRI3P66afniiuuyNSpU9OvX79GP7Ruai1atFjro9rvbMPyjg/6ILF///d/z+DBg3PnnXfmN7/5TSZOnJjvfve7Oe200zboer9ixYpss802mTt3brbZZptGfe9sH9O6dev827/9W6ZOnZoRI0Zk6tSpOf7449OyZcviHPvuu2/xFx3/6EMf+tB61QMAm6tWrVoV//xO2L6utoaGhk1bGNCIO9GhmXvllVcyf/78nHfeeTn00EPTp0+fvPbaa8X+3XbbLU8++WTq6+uLbXPmzGk0xz777JOnnnoqO+64Y3beeedGR9u2bTfZtQDAe/Wv1r8kGTp0aFatWpVp06Zl6tSpxbvQk7+vj2+//XYee+yxYtuzzz671hyl7Lbbblm8eHGWLl1abHv3+vpuH/rQh/L6669n5cqVxbZ/fMh38ve71aZPn77O8/v06ZO33347Dz30ULHtna/D7rvvXmzr1q1bvvzlL+eWW27J1772tVxzzTVJNux6v/fee2fNmjVZtmzZWnP94935I0eOzLRp0/LUU0/lvvvua/R3sM8++2TBggXp3LnzWnNUVVWtVz0A0FT+cV1OkgcffDC77LLLWr9kBjZvQnRo5rbbbrt06tQpV199dZ599tncd999GTNmTLH/c5/7XBoaGjJq1Kg888wzufvuu3PppZcm+X+/8R49enReffXVfPazn82cOXPy3HPP5e67785JJ51U/AgaAGxO/tX6lyRt27bNsGHDMm7cuDzzzDP57Gc/W+zr3bt3Bg0alFGjRuXhhx/OY489llGjRqVNmzaNPpJdyqc+9an06tUrJ554Yp544ok88MADOe+885Kk5Pn9+/fPtttum//6r//Kc889l6lTp+bHP/5xozEXXHBBfvazn+WCCy7IM888U3w4aJLssssuGTp0aE455ZT87ne/y+OPP57Pf/7z+fCHP5yhQ4cmSc4888zcfffdWbhwYR599NHcf//96dOnT5INu97vuuuuGTlyZE444YTccsstWbhwYR5++OFMnDgxd955Z3HcwQcfnJqamowcOTI9e/ZstBXNyJEjs/3222fo0KH57W9/m4ULF2bGjBk5/fTT85e//GW96gGAprJo0aKMGTMm8+fPz89+9rNcccUVOeOMM5q6LGA9CdGhmWvRokVuvPHGzJ07N3379s1ZZ52V//7v/y72V1ZW5o477si8efOy11575dxzz83555+fJMV90rt27ZoHHngga9asyWGHHZZ+/frlzDPPTIcOHdKihX9GANj8/Kv17x0jR47M448/no9//OPp3r17o74bbrgh1dXVOfjgg3PMMcfklFNOSfv27Rs9R6SUbbbZJrfddltWrFiR/fffP//+7/+ec889N0lKnt+xY8f89Kc/za9//ev069cvP/vZz/LNb36z0ZiBAwfm5ptvzu2335699torhxxySB5++OFi/3XXXZd99903Rx11VAYMGJBCoZBf//rXxY+Fr1mzJqNHj06fPn1y+OGHZ9ddd82VV16ZZMOv99ddd11OOOGEfO1rX8tuu+2WYcOGZc6cOY2+zmVlZfnsZz+bxx9/vNFd6Emy7bbbZtasWenevXuOPfbY9OnTJyeffHJWrVqVysrK9a4HAJrCCSeckDfffDMf/ehHM3r06JxxxhkZNWpUU5cFrKeywrs3XgS2elOmTMlJJ52U2traD7z3KgA0F3/5y1/SrVu33HvvvSUf7vnPPPDAAznooIPy7LPPplevXhuhQgAAYGPwYFEgN9xwQ3baaad8+MMfzuOPP55zzjknxx13nAAdgK3afffdlxUrVqRfv355+eWXc/bZZ2fHHXfMwQcf/J7Ov/XWW9OuXbvssssuefbZZ3PGGWfkwAMPFKADAMAWRogOZMmSJTn//POzZMmSdOnSJZ/5zGcyYcKEpi4LAJrU6tWr81//9V/585//nPbt2+djH/tYpkyZklatWmXKlCn5j//4j3We16NHjzz11FN5/fXXc84552TRokXZfvvtM2jQoHz3u9/dxFexYSxatKjRw0nf7emnn15rOxwAAGgubOcCAADr6fXXX8/SpUvX2deqVav06NFjE1e0cb399tt5/vnnS/bvuOOOadnS/TkAADRPQnQAAAAAACihRVMXAAAAAAAAmyshOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACX8f+U3LgqAEG6qAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def remove_outliers(df):\n", "\n", " numeric_columns = ['age', 'avg_glucose_level', 'bmi']\n", " for column in numeric_columns:\n", " Q1 = df[column].quantile(0.25)\n", " Q3 = df[column].quantile(0.75)\n", " IQR = Q3 - Q1\n", " lower_bound = Q1 - 1.5 * IQR\n", " upper_bound = Q3 + 1.5 * IQR\n", " df[column] = df[column].apply(lambda x: lower_bound if x < lower_bound else upper_bound if x > upper_bound else x)\n", " return df\n", " \n", "data = remove_outliers(data)\n", "plot_numeric_boxplots(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Теперь можно и к конструированию признаков приступить) данные ведь сбалансированы (в выборках)

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Унитарное кодирование категориальных признаков

Применяем к категориальным (НЕ числовым) признакам: 'gender', 'ever_married', 'work_type', 'Residence_type', 'smoking_status'

" ] }, { "cell_type": "code", "execution_count": 335, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Данные после унитарного кодирования:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idagehypertensionheart_diseaseavg_glucose_levelbmistrokegender_Malegender_Otherever_married_Yeswork_type_Never_workedwork_type_Privatework_type_Self-employedwork_type_childrenResidence_type_Urbansmoking_status_formerly smokedsmoking_status_never smokedsmoking_status_smokes
0904667.001169.357536.61TrueFalseTrueFalseTrueFalseFalseTrueTrueFalseFalse
15167661.000169.357528.11FalseFalseTrueFalseFalseTrueFalseFalseFalseTrueFalse
23111280.001105.920032.51TrueFalseTrueFalseTrueFalseFalseFalseFalseTrueFalse
36018249.000169.357534.41FalseFalseTrueFalseTrueFalseFalseTrueFalseFalseTrue
4166579.010169.357524.01FalseFalseTrueFalseFalseTrueFalseFalseFalseTrueFalse
55666981.000169.357529.01TrueFalseTrueFalseTrueFalseFalseTrueTrueFalseFalse
65388274.01170.090027.41TrueFalseTrueFalseTrueFalseFalseFalseFalseTrueFalse
71043469.00094.390022.81FalseFalseFalseFalseTrueFalseFalseTrueFalseTrueFalse
82741959.00076.150028.11FalseFalseTrueFalseTrueFalseFalseFalseFalseFalseFalse
96049178.00058.570024.21FalseFalseTrueFalseTrueFalseFalseTrueFalseFalseFalse
\n", "
" ], "text/plain": [ " id age hypertension heart_disease avg_glucose_level bmi stroke \\\n", "0 9046 67.0 0 1 169.3575 36.6 1 \n", "1 51676 61.0 0 0 169.3575 28.1 1 \n", "2 31112 80.0 0 1 105.9200 32.5 1 \n", "3 60182 49.0 0 0 169.3575 34.4 1 \n", "4 1665 79.0 1 0 169.3575 24.0 1 \n", "5 56669 81.0 0 0 169.3575 29.0 1 \n", "6 53882 74.0 1 1 70.0900 27.4 1 \n", "7 10434 69.0 0 0 94.3900 22.8 1 \n", "8 27419 59.0 0 0 76.1500 28.1 1 \n", "9 60491 78.0 0 0 58.5700 24.2 1 \n", "\n", " gender_Male gender_Other ever_married_Yes work_type_Never_worked \\\n", "0 True False True False \n", "1 False False True False \n", "2 True False True False \n", "3 False False True False \n", "4 False False True False \n", "5 True False True False \n", "6 True False True False \n", "7 False False False False \n", "8 False False True False \n", "9 False False True False \n", "\n", " work_type_Private work_type_Self-employed work_type_children \\\n", "0 True False False \n", "1 False True False \n", "2 True False False \n", "3 True False False \n", "4 False True False \n", "5 True False False \n", "6 True False False \n", "7 True False False \n", "8 True False False \n", "9 True False False \n", "\n", " Residence_type_Urban smoking_status_formerly smoked \\\n", "0 True True \n", "1 False False \n", "2 False False \n", "3 True False \n", "4 False False \n", "5 True True \n", "6 False False \n", "7 True False \n", "8 False False \n", "9 True False \n", "\n", " smoking_status_never smoked smoking_status_smokes \n", "0 False False \n", "1 True False \n", "2 True False \n", "3 False True \n", "4 True False \n", "5 False False \n", "6 True False \n", "7 True False \n", "8 False False \n", "9 False False " ] }, "execution_count": 335, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# One-Hot Encoding\n", "categorical_columns = ['gender', 'ever_married', 'work_type', 'Residence_type', 'smoking_status']\n", "data_edit_categories = pd.get_dummies(data, columns=categorical_columns, drop_first=True)\n", "\n", "print(\"Данные после унитарного кодирования:\")\n", "data_edit_categories.head(10)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Дискретизация числовых признаков

Числовые признаки, такие как 'age', 'avg_glucose_level', 'bmi', можно разделить на категории (биннинг).

\n" ] }, { "cell_type": "code", "execution_count": 336, "metadata": {}, "outputs": [], "source": [ "# data_edit_categories['age_bins'] = pd.cut(data_edit_categories['age'], bins=[0, 18, 30, 50, 100], labels=['ребенок', 'молодой', 'средний', 'пожилой'])\n", "# data_edit_categories['bmi_bins'] = pd.cut(data_edit_categories['bmi'], bins=[0, 18.5, 25, 30, 50], labels=['низкий', 'норма', 'избыток', 'ожирение'])\n", "\n", "# print(\"Данные после дискретизации:\")\n", "# data_edit_categories[['age_bins', 'bmi_bins']].head(10)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Ручной синтез новых признаков

\n", "

  • Возрастной индекс глюкозы: age * avg_glucose_level\n", "
  • Индекс массы тела с поправкой на глюкозу: bmi / avg_glucose_level

    \n" ] }, { "cell_type": "code", "execution_count": 337, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Данные после синтеза новых признаков:\n" ] }, { "data": { "text/html": [ "
    \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    age_glucose_indexbmi_glucose_ratio
    011346.95250.216111
    110330.80750.165921
    28473.60000.306835
    38298.51750.203121
    413379.24250.141712
    513717.95750.171235
    65186.66000.390926
    76512.91000.241551
    84492.85000.369009
    94568.46000.413181
    \n", "
    " ], "text/plain": [ " age_glucose_index bmi_glucose_ratio\n", "0 11346.9525 0.216111\n", "1 10330.8075 0.165921\n", "2 8473.6000 0.306835\n", "3 8298.5175 0.203121\n", "4 13379.2425 0.141712\n", "5 13717.9575 0.171235\n", "6 5186.6600 0.390926\n", "7 6512.9100 0.241551\n", "8 4492.8500 0.369009\n", "9 4568.4600 0.413181" ] }, "execution_count": 337, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_edit_categories['age_glucose_index'] = data_edit_categories['age'] * data_edit_categories['avg_glucose_level']\n", "data_edit_categories['bmi_glucose_ratio'] = data_edit_categories['bmi'] / data_edit_categories['avg_glucose_level']\n", "\n", "print(\"Данные после синтеза новых признаков:\")\n", "data_edit_categories[['age_glucose_index', 'bmi_glucose_ratio']].head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

    Масштабирование признаков

    Применяем нормализацию (для сжатия в диапазон [0, 1]) и стандартизацию (для приведения к среднему 0 и стандартному отклонению 1)

    " ] }, { "cell_type": "code", "execution_count": 338, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Данные после нормализации:\n", "\n" ] }, { "data": { "text/html": [ "
    \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    idagehypertensionheart_diseaseavg_glucose_levelbmistrokegender_Malegender_Otherever_married_Yeswork_type_Never_workedwork_type_Privatework_type_Self-employedwork_type_childrenResidence_type_Urbansmoking_status_formerly smokedsmoking_status_never smokedsmoking_status_smokesage_glucose_indexbmi_glucose_ratio
    090460.816895011.0000000.7305561TrueFalseTrueFalseTrueFalseFalseTrueTrueFalseFalse11346.95250.216111
    1516760.743652001.0000000.4944441FalseFalseTrueFalseFalseTrueFalseFalseFalseTrueFalse10330.80750.165921
    2311120.975586010.4446880.6166671TrueFalseTrueFalseTrueFalseFalseFalseFalseTrueFalse8473.60000.306835
    3601820.597168001.0000000.6694441FalseFalseTrueFalseTrueFalseFalseTrueFalseFalseTrue8298.51750.203121
    416650.963379101.0000000.3805561FalseFalseTrueFalseFalseTrueFalseFalseFalseTrueFalse13379.24250.141712
    ...............................................................
    5105182340.975586100.2506180.4944440FalseFalseTrueFalseTrueFalseFalseTrueFalseTrueFalse6700.00000.335522
    5106448730.987793000.6134590.8250000FalseFalseTrueFalseFalseTrueFalseTrueFalseTrueFalse10141.20000.319489
    5107197230.426270000.2439650.5638890FalseFalseTrueFalseFalseTrueFalseFalseFalseTrueFalse2904.65000.368719
    5108375440.621582000.9731480.4250000TrueFalseTrueFalseTrueFalseFalseFalseTrueFalseFalse8480.79000.153948
    5109446790.536133000.2640110.4416670FalseFalseTrueFalseFalseFalseFalseTrueFalseFalseFalse3752.32000.307223
    \n", "

    5110 rows × 20 columns

    \n", "
    " ], "text/plain": [ " id age hypertension heart_disease avg_glucose_level \\\n", "0 9046 0.816895 0 1 1.000000 \n", "1 51676 0.743652 0 0 1.000000 \n", "2 31112 0.975586 0 1 0.444688 \n", "3 60182 0.597168 0 0 1.000000 \n", "4 1665 0.963379 1 0 1.000000 \n", "... ... ... ... ... ... \n", "5105 18234 0.975586 1 0 0.250618 \n", "5106 44873 0.987793 0 0 0.613459 \n", "5107 19723 0.426270 0 0 0.243965 \n", "5108 37544 0.621582 0 0 0.973148 \n", "5109 44679 0.536133 0 0 0.264011 \n", "\n", " bmi stroke gender_Male gender_Other ever_married_Yes \\\n", "0 0.730556 1 True False True \n", "1 0.494444 1 False False True \n", "2 0.616667 1 True False True \n", "3 0.669444 1 False False True \n", "4 0.380556 1 False False True \n", "... ... ... ... ... ... \n", "5105 0.494444 0 False False True \n", "5106 0.825000 0 False False True \n", "5107 0.563889 0 False False True \n", "5108 0.425000 0 True False True \n", "5109 0.441667 0 False False True \n", "\n", " work_type_Never_worked work_type_Private work_type_Self-employed \\\n", "0 False True False \n", "1 False False True \n", "2 False True False \n", "3 False True False \n", "4 False False True \n", "... ... ... ... \n", "5105 False True False \n", "5106 False False True \n", "5107 False False True \n", "5108 False True False \n", "5109 False False False \n", "\n", " work_type_children Residence_type_Urban \\\n", "0 False True \n", "1 False False \n", "2 False False \n", "3 False True \n", "4 False False \n", "... ... ... \n", "5105 False True \n", "5106 False True \n", "5107 False False \n", "5108 False False \n", "5109 False True \n", "\n", " smoking_status_formerly smoked smoking_status_never smoked \\\n", "0 True False \n", "1 False True \n", "2 False True \n", "3 False False \n", "4 False True \n", "... ... ... \n", "5105 False True \n", "5106 False True \n", "5107 False True \n", "5108 True False \n", "5109 False False \n", "\n", " smoking_status_smokes age_glucose_index bmi_glucose_ratio \n", "0 False 11346.9525 0.216111 \n", "1 False 10330.8075 0.165921 \n", "2 False 8473.6000 0.306835 \n", "3 True 8298.5175 0.203121 \n", "4 False 13379.2425 0.141712 \n", "... ... ... ... \n", "5105 False 6700.0000 0.335522 \n", "5106 False 10141.2000 0.319489 \n", "5107 False 2904.6500 0.368719 \n", "5108 False 8480.7900 0.153948 \n", "5109 False 3752.3200 0.307223 \n", "\n", "[5110 rows x 20 columns]" ] }, "execution_count": 338, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "from sklearn.preprocessing import MinMaxScaler, StandardScaler\n", "\n", "scaler = MinMaxScaler()\n", "standardizer = StandardScaler()\n", "\n", "# Нормализация\n", "data_edit_categories[['age', 'avg_glucose_level', 'bmi']] = scaler.fit_transform(data_edit_categories[['age', 'avg_glucose_level', 'bmi']])\n", "print(\"Данные после нормализации:\\n\")\n", "data_edit_categories\n", "\n", "\n", "# # Стандартизация\n", "# X_encoded[['age', 'avg_glucose_level', 'bmi']] = standardizer.fit_transform(X_encoded[['age', 'avg_glucose_level', 'bmi']])\n", "# print(\"Данные после стандартизации:\\n\", X_encoded.head(10))\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

    Конструирование признаков с применением фреймворка Featuretools

    " ] }, { "cell_type": "code", "execution_count": 339, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Столбцы в data: ['id', 'gender', 'age', 'hypertension', 'heart_disease', 'ever_married', 'work_type', 'Residence_type', 'avg_glucose_level', 'bmi', 'smoking_status', 'stroke']\n", "id 0\n", "gender 0\n", "age 0\n", "hypertension 0\n", "heart_disease 0\n", "ever_married 0\n", "work_type 0\n", "Residence_type 0\n", "avg_glucose_level 0\n", "bmi 0\n", "smoking_status 0\n", "stroke 0\n", "dtype: int64\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_3\\venv\\Lib\\site-packages\\featuretools\\synthesis\\deep_feature_synthesis.py:169: UserWarning: Only one dataframe in entityset, changing max_depth to 1 since deeper features cannot be created\n", " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Сгенерированные признаки:\n", " gender age hypertension heart_disease ever_married work_type \\\n", "id \n", "9046 Male 67.0 0 1 True Private \n", "51676 Female 61.0 0 0 True Self-employed \n", "31112 Male 80.0 0 1 True Private \n", "60182 Female 49.0 0 0 True Private \n", "1665 Female 79.0 1 0 True Self-employed \n", "\n", " Residence_type avg_glucose_level bmi smoking_status stroke \n", "id \n", "9046 Urban 169.3575 36.6 formerly smoked 1 \n", "51676 Rural 169.3575 28.1 never smoked 1 \n", "31112 Rural 105.9200 32.5 never smoked 1 \n", "60182 Urban 169.3575 34.4 smokes 1 \n", "1665 Rural 169.3575 24.0 never smoked 1 \n" ] }, { "data": { "text/html": [ "
    \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    genderagehypertensionheart_diseaseever_marriedwork_typeResidence_typeavg_glucose_levelbmismoking_statusstroke
    id
    9046Male67.001TruePrivateUrban169.357536.6formerly smoked1
    51676Female61.000TrueSelf-employedRural169.357528.1never smoked1
    31112Male80.001TruePrivateRural105.920032.5never smoked1
    60182Female49.000TruePrivateUrban169.357534.4smokes1
    1665Female79.010TrueSelf-employedRural169.357524.0never smoked1
    ....................................
    18234Female80.010TruePrivateUrban83.750028.1never smoked0
    44873Female81.000TrueSelf-employedUrban125.200040.0never smoked0
    19723Female35.000TrueSelf-employedRural82.990030.6never smoked0
    37544Male51.000TruePrivateRural166.290025.6formerly smoked0
    44679Female44.000TrueGovt_jobUrban85.280026.2Unknown0
    \n", "

    5110 rows × 11 columns

    \n", "
    " ], "text/plain": [ " gender age hypertension heart_disease ever_married work_type \\\n", "id \n", "9046 Male 67.0 0 1 True Private \n", "51676 Female 61.0 0 0 True Self-employed \n", "31112 Male 80.0 0 1 True Private \n", "60182 Female 49.0 0 0 True Private \n", "1665 Female 79.0 1 0 True Self-employed \n", "... ... ... ... ... ... ... \n", "18234 Female 80.0 1 0 True Private \n", "44873 Female 81.0 0 0 True Self-employed \n", "19723 Female 35.0 0 0 True Self-employed \n", "37544 Male 51.0 0 0 True Private \n", "44679 Female 44.0 0 0 True Govt_job \n", "\n", " Residence_type avg_glucose_level bmi smoking_status stroke \n", "id \n", "9046 Urban 169.3575 36.6 formerly smoked 1 \n", "51676 Rural 169.3575 28.1 never smoked 1 \n", "31112 Rural 105.9200 32.5 never smoked 1 \n", "60182 Urban 169.3575 34.4 smokes 1 \n", "1665 Rural 169.3575 24.0 never smoked 1 \n", "... ... ... ... ... ... \n", "18234 Urban 83.7500 28.1 never smoked 0 \n", "44873 Urban 125.2000 40.0 never smoked 0 \n", "19723 Rural 82.9900 30.6 never smoked 0 \n", "37544 Rural 166.2900 25.6 formerly smoked 0 \n", "44679 Urban 85.2800 26.2 Unknown 0 \n", "\n", "[5110 rows x 11 columns]" ] }, "execution_count": 339, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import featuretools as ft\n", "\n", "print(\"Столбцы в data:\", data.columns.tolist())\n", "print(data.isnull().sum())\n", "\n", "# Создание EntitySet (основная структура для Featuretools)\n", "entity = ft.EntitySet(id=\"stroke_prediction\")\n", "\n", "entity = entity.add_dataframe(\n", " dataframe_name=\"data\", \n", " dataframe=data, \n", " index=\"id\",\n", ")\n", "\n", "# Генерация новых признаков\n", "feature_matrix, feature_defs = ft.dfs(\n", " entityset=entity,\n", " target_dataframe_name=\"data\", # Основная таблица\n", " max_depth=2 # Уровень вложенности\n", ")\n", "\n", "print(\"Сгенерированные признаки:\")\n", "print(feature_matrix.head())\n", "\n", "# Сохранение результатов\n", "feature_matrix.to_csv(\"./csv/generated_features_copy.csv\", index=False)\n", "feature_matrix" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

    Так, теперь разобьем на выборки

    " ] }, { "cell_type": "code", "execution_count": 340, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Размеры выборок:\n", "Обучающая выборка: (4088, 18)\n", "Тестовая выборка: (511, 18)\n", "Контрольная выборка: (511, 18)\n" ] }, { "data": { "text/html": [ "
    \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    idagehypertensionheart_diseaseavg_glucose_levelbmistrokegender_Malegender_Otherever_married_Yeswork_type_Never_workedwork_type_Privatework_type_Self-employedwork_type_childrenResidence_type_Urbansmoking_status_formerly smokedsmoking_status_never smokedsmoking_status_smokesage_glucose_indexbmi_glucose_ratio
    090460.816895011.0000000.7305561TrueFalseTrueFalseTrueFalseFalseTrueTrueFalseFalse11346.95250.216111
    1516760.743652001.0000000.4944441FalseFalseTrueFalseFalseTrueFalseFalseFalseTrueFalse10330.80750.165921
    2311120.975586010.4446880.6166671TrueFalseTrueFalseTrueFalseFalseFalseFalseTrueFalse8473.60000.306835
    3601820.597168001.0000000.6694441FalseFalseTrueFalseTrueFalseFalseTrueFalseFalseTrue8298.51750.203121
    416650.963379101.0000000.3805561FalseFalseTrueFalseFalseTrueFalseFalseFalseTrueFalse13379.24250.141712
    ...............................................................
    5105182340.975586100.2506180.4944440FalseFalseTrueFalseTrueFalseFalseTrueFalseTrueFalse6700.00000.335522
    5106448730.987793000.6134590.8250000FalseFalseTrueFalseFalseTrueFalseTrueFalseTrueFalse10141.20000.319489
    5107197230.426270000.2439650.5638890FalseFalseTrueFalseFalseTrueFalseFalseFalseTrueFalse2904.65000.368719
    5108375440.621582000.9731480.4250000TrueFalseTrueFalseTrueFalseFalseFalseTrueFalseFalse8480.79000.153948
    5109446790.536133000.2640110.4416670FalseFalseTrueFalseFalseFalseFalseTrueFalseFalseFalse3752.32000.307223
    \n", "

    5110 rows × 20 columns

    \n", "
    " ], "text/plain": [ " id age hypertension heart_disease avg_glucose_level \\\n", "0 9046 0.816895 0 1 1.000000 \n", "1 51676 0.743652 0 0 1.000000 \n", "2 31112 0.975586 0 1 0.444688 \n", "3 60182 0.597168 0 0 1.000000 \n", "4 1665 0.963379 1 0 1.000000 \n", "... ... ... ... ... ... \n", "5105 18234 0.975586 1 0 0.250618 \n", "5106 44873 0.987793 0 0 0.613459 \n", "5107 19723 0.426270 0 0 0.243965 \n", "5108 37544 0.621582 0 0 0.973148 \n", "5109 44679 0.536133 0 0 0.264011 \n", "\n", " bmi stroke gender_Male gender_Other ever_married_Yes \\\n", "0 0.730556 1 True False True \n", "1 0.494444 1 False False True \n", "2 0.616667 1 True False True \n", "3 0.669444 1 False False True \n", "4 0.380556 1 False False True \n", "... ... ... ... ... ... \n", "5105 0.494444 0 False False True \n", "5106 0.825000 0 False False True \n", "5107 0.563889 0 False False True \n", "5108 0.425000 0 True False True \n", "5109 0.441667 0 False False True \n", "\n", " work_type_Never_worked work_type_Private work_type_Self-employed \\\n", "0 False True False \n", "1 False False True \n", "2 False True False \n", "3 False True False \n", "4 False False True \n", "... ... ... ... \n", "5105 False True False \n", "5106 False False True \n", "5107 False False True \n", "5108 False True False \n", "5109 False False False \n", "\n", " work_type_children Residence_type_Urban \\\n", "0 False True \n", "1 False False \n", "2 False False \n", "3 False True \n", "4 False False \n", "... ... ... \n", "5105 False True \n", "5106 False True \n", "5107 False False \n", "5108 False False \n", "5109 False True \n", "\n", " smoking_status_formerly smoked smoking_status_never smoked \\\n", "0 True False \n", "1 False True \n", "2 False True \n", "3 False False \n", "4 False True \n", "... ... ... \n", "5105 False True \n", "5106 False True \n", "5107 False True \n", "5108 True False \n", "5109 False False \n", "\n", " smoking_status_smokes age_glucose_index bmi_glucose_ratio \n", "0 False 11346.9525 0.216111 \n", "1 False 10330.8075 0.165921 \n", "2 False 8473.6000 0.306835 \n", "3 True 8298.5175 0.203121 \n", "4 False 13379.2425 0.141712 \n", "... ... ... ... \n", "5105 False 6700.0000 0.335522 \n", "5106 False 10141.2000 0.319489 \n", "5107 False 2904.6500 0.368719 \n", "5108 False 8480.7900 0.153948 \n", "5109 False 3752.3200 0.307223 \n", "\n", "[5110 rows x 20 columns]" ] }, "execution_count": 340, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "# Определение признаков и целевой переменной\n", "\n", "# data_edit_categories = pd.read_csv('./csv/generated_features_copy.csv')\n", "\n", "\n", "X = data_edit_categories.drop(columns=['id', 'stroke']) \n", "y = data_edit_categories['stroke'] \n", "\n", "# Обучающая выборка\n", "X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.2, random_state=None, stratify=y)\n", "\n", "# Тестовая и контрольная выборки\n", "X_test, X_control, y_test, y_control = train_test_split(X_temp, y_temp, test_size=0.5, random_state=None, stratify=y_temp)\n", "\n", "print(\"\\nРазмеры выборок:\")\n", "print(f\"Обучающая выборка: {X_train.shape}\")\n", "print(f\"Тестовая выборка: {X_test.shape}\")\n", "print(f\"Контрольная выборка: {X_control.shape}\")\n", "\n", "data_edit_categories\n" ] }, { "cell_type": "code", "execution_count": 341, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "stroke\n", "0 4861\n", "1 249\n", "Name: count, dtype: int64\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAHHCAYAAABeLEexAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9kUlEQVR4nO3deXyM9/7//2d2IZlEkIRSQmqJpa0oglpDqlFVnFYpqpyWhhYtTs6ptfXVcmorqqeLpaUt1XLKsUQUVSkaja042sahjSRCk0ErieT6/dFP5mckthGZxPW4325zu5n39b7e1+uaTDJP1/W+rnExDMMQAACAibk6uwAAAABnIxABAADTIxABAADTIxABAADTIxABAADTIxABAADTIxABAADTIxABAADTIxABAADTIxABABz2/PPPq3Pnzs4uw2bx4sVycXHRd999d8tj5ebmqkaNGlqwYEExVIbSjkCEO1rBH8eCR7ly5VS3bl0NHz5caWlpzi4PKNOSk5P13nvv6e9///tNrbdz505NmjRJmZmZt6ewYuLh4aHRo0dr6tSpunjxorPLwW1GIIIpTJkyRR9++KHmzZunVq1a6e2331ZERIR+//13Z5cGlFlz5sxRSEiIOnTocFPr7dy5U5MnTy71gUiSBg0apIyMDC1fvtzZpeA2IxDBFLp27aqnnnpKQ4YM0eLFizVy5EglJydrzZo1zi4NKJNyc3O1bNkyPf7447d1O/n5+U49OuPv768uXbpo8eLFTqsBJYNABFPq2LGjpD8P+UvS2bNn9fLLL6tx48by8fGRxWJR165dtW/fvkLrXrx4UZMmTVLdunVVrlw5Va1aVT179tRPP/0kSTp+/LjdaborH+3bt7eNtXXrVrm4uOjTTz/V3//+dwUHB6tChQrq3r27Tp48WWjbu3bt0kMPPSQ/Pz+VL19e7dq10zfffFPkPrZv377I7U+aNKlQ348++kjh4eHy9vZWQECA+vTpU+T2r7Vvl8vPz9fs2bPVsGFDlStXTkFBQXruuef022+/2fWrVauWunXrVmg7w4cPLzRmUbXPmDGj0GsqSdnZ2Zo4caJCQ0Pl5eWlGjVqaOzYscrOzi7ytbpc+/btC403depUubq6FjpKcKOvxz//+U+1atVKlSpVkre3t8LDw/XZZ58Vuf2PPvpIzZs3V/ny5VWxYkW1bdtWmzZtsuuzfv16tWvXTr6+vrJYLHrggQcK1bZy5Urbz7Ry5cp66qmn9Ouvv9r1efrpp+1qrlixotq3b6+vv/76uq/Tjh07lJGRocjIyELL3nrrLTVs2NC2D82aNbPVN2nSJI0ZM0aSFBISYtv28ePHJf35cx4+fLiWLVumhg0bysvLSxs2bJAkff/99+ratassFot8fHzUqVMnffvtt9et9bffflPz5s1VvXp1HT16VNLNvUc6d+6sHTt26OzZs9fdFsoud2cXADhDQXipVKmSJOnnn3/W6tWr9Ze//EUhISFKS0vTO++8o3bt2umHH35QtWrVJEl5eXnq1q2b4uPj1adPH7344os6d+6c4uLidPDgQdWpU8e2jSeffFIPP/yw3XZjY2OLrGfq1KlycXHRuHHjlJ6ertmzZysyMlJJSUny9vaWJG3ZskVdu3ZVeHi4Jk6cKFdXVy1atEgdO3bU119/rebNmxcat3r16po2bZok6fz58xo2bFiR2x4/frwef/xxDRkyRKdPn9Zbb72ltm3b6vvvv5e/v3+hdZ599lk9+OCDkqTPP/9cX3zxhd3y5557TosXL9agQYP0wgsvKDk5WfPmzdP333+vb775Rh4eHkW+DjcjMzPTtm+Xy8/PV/fu3bVjxw49++yzatCggQ4cOKBZs2bpv//9r1avXn1T21m0aJFeeeUVvfnmm+rbt2+Rfa73esyZM0fdu3dXv379lJOTo08++UR/+ctftHbtWkVHR9v6TZ48WZMmTVKrVq00ZcoUeXp6ateuXdqyZYu6dOki6c95cc8884waNmyo2NhY+fv76/vvv9eGDRts9RW89g888ICmTZumtLQ0zZkzR998802hn2nlypU1a9YsSdIvv/yiOXPm6OGHH9bJkyeL/NkX2Llzp1xcXHT//ffbtb/77rt64YUX1Lt3b7344ou6ePGi9u/fr127dqlv377q2bOn/vvf/+rjjz/WrFmzVLlyZUlSlSpVbGNs2bJFK1as0PDhw1W5cmXVqlVLhw4d0oMPPiiLxaKxY8fKw8ND77zzjtq3b69t27apRYsWRdaZkZGhzp076+zZs9q2bZvq1Klz0++R8PBwGYahnTt3FhngcYcwgDvYokWLDEnG5s2bjdOnTxsnT540PvnkE6NSpUqGt7e38csvvxiGYRgXL1408vLy7NZNTk42vLy8jClTptjaPvjgA0OSMXPmzELbys/Pt60nyZgxY0ahPg0bNjTatWtne/7VV18Zkoy77rrLsFqttvYVK1YYkow5c+bYxr7nnnuMqKgo23YMwzB+//13IyQkxOjcuXOhbbVq1cpo1KiR7fnp06cNScbEiRNtbcePHzfc3NyMqVOn2q174MABw93dvVD7sWPHDEnGkiVLbG0TJ040Lv9T8vXXXxuSjGXLltmtu2HDhkLtNWvWNKKjowvVHhMTY1z55+nK2seOHWsEBgYa4eHhdq/phx9+aLi6uhpff/213foLFy40JBnffPNNoe1drl27drbx1q1bZ7i7uxsvvfRSkX1v5PUwjD9/TpfLyckxGjVqZHTs2NFuLFdXV+Oxxx4r9F4s+JlnZmYavr6+RosWLYw//vijyD45OTlGYGCg0ahRI7s+a9euNSQZEyZMsLUNHDjQqFmzpt04//rXvwxJxu7du4vc5wJPPfWUUalSpULtjz76qNGwYcNrrjtjxgxDkpGcnFxomSTD1dXVOHTokF17jx49DE9PT+Onn36ytaWkpBi+vr5G27ZtbW0Fv/N79uwxTp06ZTRs2NCoXbu2cfz4cVufm32PpKSkGJKMN95445r7hbKNU2YwhcjISFWpUkU1atRQnz595OPjoy+++EJ33XWXJMnLy0uurn/+OuTl5enMmTPy8fFRvXr1tHfvXts4q1atUuXKlTVixIhC27jyNMnNGDBggHx9fW3Pe/furapVq+o///mPJCkpKUnHjh1T3759debMGWVkZCgjI0MXLlxQp06dtH37duXn59uNefHiRZUrV+6a2/3888+Vn5+vxx9/3DZmRkaGgoODdc899+irr76y65+TkyPpz9fralauXCk/Pz917tzZbszw8HD5+PgUGjM3N9euX0ZGxnXnjPz666966623NH78ePn4+BTafoMGDVS/fn27MQtOk165/avZvXu3Hn/8cfXq1UszZswoss+NvB6SbEf5pD9P32RlZenBBx+0e2+tXr1a+fn5mjBhgu29WKDgvRUXF6dz587pb3/7W6GfbUGf7777Tunp6Xr++eft+kRHR6t+/fpat26d3Xr5+fm21ygpKUlLly5V1apV1aBBg2vu05kzZ1SxYsVC7f7+/vrll1+0Z8+ea65/Le3atVNYWJjteV5enjZt2qQePXqodu3atvaqVauqb9++2rFjh6xW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kWFb/8SJE9qxY0ehvufOnVOVKlU0b948DRkypHh3EECJ4wgRgDJp+/btys/PV1JSkn788UdNnz69UB+r1aoKFSpcdYzNmzerU6dOuuuuu+Tr66v+/fvrzJkz+v333yX9/0eIinL48GFlZ2dfdTmAsoVABKBMql27tuLj4xUWFqYFCxZo0qRJ2r9/v12flJQUVatWrcj1jx8/rm7duqlJkyZatWqVEhMTNX/+fElSTk6OJMnb2/uq27/WMgBlD4EIQJnUuHFjVa5cWZL0l7/8RT179tSAAQNsYebChQs6fPiw7r///iLXT0xMVH5+vt588021bNlSdevWVUpKil2fJk2aKD4+vsj177nnHnl7e191OYCyhUAE4I4wf/58paena/LkyTpy5IiefPJJ+fv7q2vXrkX2Dw0NVW5urt566y39/PPP+vDDD7Vw4UK7PrGxsdqzZ4+ef/557d+/X0eOHNHbb7+tjIwMlStXTuPGjdPYsWO1dOlS/fTTT/r222/1/vvvl8TuAihmBCIAd4SAgAC9++67euONNzRs2DBdunRJmzdvlo+PT5H97733Xs2cOVNvvPGGGjVqpGXLlmnatGl2ferWratNmzZp3759at68uSIiIrRmzRq5u7tLksaPH6+XXnpJEyZMUIMGDfTEE08oPT39tu8rgOLHVWYAAMD0OEIEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABM7/8DpNEDZYuGXjoAAAAASUVORK5CYII=", "text/plain": [ "
    " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "# Подсчет количества объектов каждого класса\n", "class_counts = y.value_counts()\n", "print(class_counts)\n", "\n", "# Визуализация\n", "sns.barplot(x=class_counts.index, y=class_counts.values)\n", "plt.title(\"Распределение классов (stroke)\")\n", "plt.xlabel(\"Класс\")\n", "plt.ylabel(\"Количество\")\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

    Напишем функцию и сделаем аугментацию данных

    " ] }, { "cell_type": "code", "execution_count": 342, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Данные ДО аугментации в ОБУЧАЮЩЕЙ ВЫБОРКЕ (60-80% данных)\n", "\n", "stroke\n", "0 3889\n", "1 199\n", "Name: count, dtype: int64\n", "\n", "После оверсемплинга\n", "\n", "stroke\n", "0 3889\n", "1 777\n", "Name: count, dtype: int64\n", "\n", "После балансировки данных (андерсемплинга)\n", "\n", "stroke\n", "0 777\n", "1 777\n", "Name: count, dtype: int64\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
    " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
    agehypertensionheart_diseaseavg_glucose_levelbmigender_Malegender_Otherever_married_Yeswork_type_Never_workedwork_type_Privatework_type_Self-employedwork_type_childrenResidence_type_Urbansmoking_status_formerly smokedsmoking_status_never smokedsmoking_status_smokesage_glucose_indexbmi_glucose_ratio
    25080.316406000.1765620.341667FalseFalseTrueFalseTrueFalseFalseFalseFalseFalseTrue1957.5400.300173
    24350.768066000.3516360.591667TrueFalseTrueFalseTrueFalseFalseTrueFalseFalseTrue6003.2700.331619
    25470.060059000.2506180.216667TrueFalseFalseFalseFalseFalseTrueTrueFalseFalseFalse418.7500.216119
    38850.914551000.3428820.691667TrueFalseTrueFalseFalseFalseFalseTrueFalseFalseFalse7071.7500.373316
    3350.426270000.5009740.544444FalseFalseTrueFalseTrueFalseFalseTrueFalseFalseFalse3932.2500.266133
    .........................................................
    46610.853516101.0000000.977778TrueFalseTrueFalseTrueFalseFalseFalseTrueFalseFalse11855.0250.268662
    46620.926758000.0245100.494444FalseFalseTrueFalseTrueFalseFalseTrueTrueFalseFalse4401.9200.485152
    46630.682617001.0000000.836111FalseFalseTrueFalseTrueFalseFalseTrueTrueFalseFalse9484.0200.238549
    46640.768066000.3132070.494444FalseFalseTrueFalseTrueFalseFalseTrueTrueFalseFalse5726.7000.309131
    46650.902344000.1561660.583333TrueFalseTrueFalseTrueFalseFalseTrueFalseFalseTrue5399.0400.429002
    \n", "

    1554 rows × 18 columns

    \n", "
    " ], "text/plain": [ " age hypertension heart_disease avg_glucose_level bmi \\\n", "2508 0.316406 0 0 0.176562 0.341667 \n", "2435 0.768066 0 0 0.351636 0.591667 \n", "2547 0.060059 0 0 0.250618 0.216667 \n", "3885 0.914551 0 0 0.342882 0.691667 \n", "335 0.426270 0 0 0.500974 0.544444 \n", "... ... ... ... ... ... \n", "4661 0.853516 1 0 1.000000 0.977778 \n", "4662 0.926758 0 0 0.024510 0.494444 \n", "4663 0.682617 0 0 1.000000 0.836111 \n", "4664 0.768066 0 0 0.313207 0.494444 \n", "4665 0.902344 0 0 0.156166 0.583333 \n", "\n", " gender_Male gender_Other ever_married_Yes work_type_Never_worked \\\n", "2508 False False True False \n", "2435 True False True False \n", "2547 True False False False \n", "3885 True False True False \n", "335 False False True False \n", "... ... ... ... ... \n", "4661 True False True False \n", "4662 False False True False \n", "4663 False False True False \n", "4664 False False True False \n", "4665 True False True False \n", "\n", " work_type_Private work_type_Self-employed work_type_children \\\n", "2508 True False False \n", "2435 True False False \n", "2547 False False True \n", "3885 False False False \n", "335 True False False \n", "... ... ... ... \n", "4661 True False False \n", "4662 True False False \n", "4663 True False False \n", "4664 True False False \n", "4665 True False False \n", "\n", " Residence_type_Urban smoking_status_formerly smoked \\\n", "2508 False False \n", "2435 True False \n", "2547 True False \n", "3885 True False \n", "335 True False \n", "... ... ... \n", "4661 False True \n", "4662 True True \n", "4663 True True \n", "4664 True True \n", "4665 True False \n", "\n", " smoking_status_never smoked smoking_status_smokes age_glucose_index \\\n", "2508 False True 1957.540 \n", "2435 False True 6003.270 \n", "2547 False False 418.750 \n", "3885 False False 7071.750 \n", "335 False False 3932.250 \n", "... ... ... ... \n", "4661 False False 11855.025 \n", "4662 False False 4401.920 \n", "4663 False False 9484.020 \n", "4664 False False 5726.700 \n", "4665 False True 5399.040 \n", "\n", " bmi_glucose_ratio \n", "2508 0.300173 \n", "2435 0.331619 \n", "2547 0.216119 \n", "3885 0.373316 \n", "335 0.266133 \n", "... ... \n", "4661 0.268662 \n", "4662 0.485152 \n", "4663 0.238549 \n", "4664 0.309131 \n", "4665 0.429002 \n", "\n", "[1554 rows x 18 columns]" ] }, "execution_count": 342, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "from imblearn.over_sampling import RandomOverSampler\n", "from imblearn.under_sampling import RandomUnderSampler\n", "\n", "def over_under_sampling(x_selection, y_selection):\n", "\n", " # сначала увеличение меньшинства\n", "\n", " oversampler = RandomOverSampler(sampling_strategy=0.2, random_state=42) \n", " x_over, y_over = oversampler.fit_resample(x_selection, y_selection) \n", "\n", " print(\"\\nПосле оверсемплинга\\n\")\n", " print(y_over.value_counts())\n", "\n", " # потом уменьшение большинства\n", "\n", " undersampler = RandomUnderSampler(sampling_strategy=1.0, random_state=42)\n", " x_balanced, y_balanced = undersampler.fit_resample(x_over, y_over)\n", "\n", " print(\"\\nПосле балансировки данных (андерсемплинга)\\n\")\n", " print(y_balanced.value_counts())\n", "\n", " plt.pie(\n", " y_balanced.value_counts(), \n", " labels=class_counts.index, # Метки классов (0 и 1)\n", " autopct='%1.1f%%', # Отображение процентов\n", " colors=['lightgreen', 'lightcoral'], # Цвета для классов\n", " startangle=45, # Поворот диаграммы\n", " explode=(0, 0.05) # Небольшое смещение для класса 1\n", " )\n", " plt.title(\"Распределение классов (stroke)\")\n", " plt.show()\n", " return x_balanced, y_balanced \n", "\n", "print(\"Данные ДО аугментации в ОБУЧАЮЩЕЙ ВЫБОРКЕ (60-80% данных)\\n\")\n", "print(y_train.value_counts())\n", "X_train, y_train = over_under_sampling(X_train, y_train)\n", "\n", "X_train\n", "\n", "# print(\"Данные ДО аугментации в ТЕСТОВОЙ ВЫБОРКЕ (10-20% данных)\\n\")\n", "# print(y_test.value_counts())\n", "# over_under_sampling(X_test, y_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

    Самое время оценить качество работы модели

    " ] }, { "cell_type": "code", "execution_count": 343, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Время обучения модели: 0.25 секунд\n", "ROC-AUC: 0.84\n", "F1-Score: 0.29\n", "Матрица ошибок:\n", "[[434 52]\n", " [ 12 13]]\n", "Отчет по классификации:\n", " precision recall f1-score support\n", "\n", " 0 0.97 0.89 0.93 486\n", " 1 0.20 0.52 0.29 25\n", "\n", " accuracy 0.87 511\n", " macro avg 0.59 0.71 0.61 511\n", "weighted avg 0.94 0.87 0.90 511\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAJwCAYAAACZACVsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABdI0lEQVR4nO3df3zN9f//8fvZbDObbYZt5vevCFukYsX8SOZH3kQ/pLJJiUb5GSs/kyYpFP2QGiqJ3kr0A/mZ35JFSIiW2OZNNpP9Pt8/fJ1Pp23n7DDnnO3cru/L6/Leeb6er9frcc46PDyez9fzZTAajUYBAACgUG6ODgAAAMCZkSwBAABYQLIEAABgAckSAACABSRLAAAAFpAsAQAAWECyBAAAYAHJEgAAgAXlHB0AADhKdna2zp8/r/z8fIWGhjo6HABOisoSAJfyww8/qF+/fqpSpYq8vLxUrVo19enTx9FhAXBiJEvAvyxcuFAGg0EGg0Fbt24tsN9oNKpmzZoyGAy69957HRAhrtXKlSvVpk0bHTp0SNOmTdO6deu0bt06vfvuu44ODYATYxgOKEL58uW1ZMkStWnTxqx98+bNOnXqlLy8vBwUGa7F+fPn9cQTTygqKkrLly+Xp6eno0MCUEpQWQKK0K1bNy1fvly5ublm7UuWLFHLli0VEhLioMhwLRISEpSZmamFCxeSKAGwCckSUISHH35Y586d07p160xt2dnZ+uyzz9SvX79Cj5k5c6buvPNOVa5cWd7e3mrZsqU+++wzsz5Xh/iK2tq3by9J2rRpkwwGgz799FM9//zzCgkJkY+Pj/7zn//ojz/+MDtn+/btTcddtWfPHtM5/339oUOHFoj93nvvVZ06dcza9u/fr5iYGNWrV0/ly5dXSEiIHn/8cZ07d87SR2eSmpqqgQMHKjg4WOXLl9ctt9yiRYsWmfU5efKkDAaDZs6cadberFmzAu9p/PjxMhgMysjIMHs/kydPNuv36quvmn2WkrRz5041b95cL7/8smrWrCkvLy81bNhQ06dPV35+vtnxubm5mjp1qurXry8vLy/VqVNHzz//vLKyssz61alTRzExMWZtgwYNUvny5bVp0ybrHxCAUoFhOKAIderUUUREhD755BN17dpVkvTNN98oLS1Nffv21RtvvFHgmDlz5ug///mPHnnkEWVnZ2vp0qV64IEHtHr1anXv3l2S9OGHH5r6f//995o/f75mzZqlKlWqSJKCg4PNzjlt2jQZDAaNHTtWqampmj17tjp16qTExER5e3sXGf/YsWOv+zNYt26dfvvtNw0YMEAhISE6ePCg5s+fr4MHD2rnzp0FErF/unz5stq3b69jx45p6NChqlu3rpYvX66YmBhduHBBzz777HXHV5gLFy4oPj6+QPu5c+e0detWbd26VY8//rhatmyp9evXKy4uTidPntQ777xj6vvEE09o0aJFuv/++zVq1Cjt2rVL8fHxOnz4sD7//PMirz1p0iS9//77+vTTTwskegBKMSMAMwkJCUZJxj179hjnzp1rrFixovHvv/82Go1G4wMPPGDs0KGD0Wg0GmvXrm3s3r272bFX+12VnZ1tbNasmbFjx44Wr3XixIkC+zZu3GiUZKxevboxPT3d1L5s2TKjJOOcOXNMbe3atTO2a9fO9Prrr782SjJ26dLF+O+vuSRjbGxsget1797dWLt2bYvvx2g0Gj/55BOjJOOWLVsKfU9XzZ492yjJ+NFHH5nasrOzjREREUZfX1/Tezpx4oRRkvHVV181O75p06Zm78loNBpfeOEFoyTjxYsXzd7PpEmTTK+fe+45Y1BQkLFly5Zmx7dr184oyTh58mSzc8bExBglGQ8cOGA0Go3GxMREoyTjE088YdZv9OjRRknGDRs2mNpq165tjI6ONhqNRuO7775rlGR88803LX4uAEofhuEACx588EFdvnxZq1ev1sWLF7V69eoih+AkmVV6/vrrL6Wlpalt27b68ccfrzmG/v37q2LFiqbX999/v6pVq6avv/660P5Go1FxcXHq06ePWrVqdc3XlczfT2Zmpv73v/+pdevWkmT1PX399dcKCQnRww8/bGrz8PDQM888o4yMDG3evPm6YivMn3/+qTfffFMTJkyQr69vgf3u7u4aMWKEWduoUaMkSV999ZUpbkkaOXKkxX7/tHLlSj399NMaM2ZMoUOcAEo3kiXAgqpVq6pTp05asmSJVqxYoby8PN1///1F9l+9erVat26t8uXLKzAwUFWrVtXbb7+ttLS0a46hYcOGZq8NBoMaNGigkydPFtr/448/1sGDB/Xyyy9f8zWvOn/+vJ599lkFBwfL29tbVatWVd26dSXJ6nv6/fff1bBhQ7m5mf8xc/PNN5v2l7RJkyYpNDRUTz31VIF9BoNBoaGh8vPzM2tv1KiR3NzcTJ/n77//Ljc3NzVo0MCsX0hIiAICAgrEnZiYqIcfflh5eXk6f/58yb4hAE6BOUuAFf369dOTTz6p5ORkde3aVQEBAYX2+/777/Wf//xHkZGReuutt1StWjV5eHgoISFBS5YssUus2dnZmjBhggYOHKibbrrpus/34IMPavv27RozZoyaN28uX19f5efnq0uXLgUmRTva4cOHtXDhQn300Ufy8PAosN/S/K7CWJqP9U8//fSTunbtqrvvvltjxozRo48+ynwloIwhWQKsuO+++/TUU09p586d+vTTT4vs99///lfly5fXmjVrzNZgSkhIuK7rHz161Oy10WjUsWPHFB4eXqDvW2+9pdTU1AJ3h12Lv/76S+vXr9eUKVM0ceLEIuMpSu3atbV//37l5+ebVZd++eUX0/6SFBcXp+bNm+uhhx4qdH/dunW1du1aXbx40WxY89dff1V+fr7pTsDatWsrPz9fR48eNVXBJCklJUUXLlwoEHdYWJiWL18ub29vLV++XIMGDdL+/ftVvnz5En1/AByHYTjACl9fX7399tuaPHmyevToUWQ/d3d3GQwG5eXlmdpOnjypL7744rquv3jxYl28eNH0+rPPPtOZM2dMd+hddfHiRU2bNk0jRowokTWg3N3dJV1Jzv5p9uzZxTq+W7duSk5ONkswc3Nz9eabb8rX11ft2rW77hiv2rFjh1auXKnp06cXWRHq1q2b8vLyNHfuXLP2119/XZJMdyt269ZNUsH3+e9+V916663y8fGRm5ubFixYoJMnT+rFF1+87vcEwHlQWQKKITo62mqf7t276/XXX1eXLl3Ur18/paamat68eWrQoIH2799/zdcODAxUmzZtNGDAAKWkpGj27Nlq0KCBnnzySbN+P/74o6pUqaLnnnvO6jmTkpL07bffmrWdPXtWly9f1rfffqt27drJz89PkZGRmjFjhnJyclS9enWtXbtWJ06cKFbcgwYN0rvvvquYmBjt3btXderU0WeffaZt27Zp9uzZZtUdSTpy5IhZTBkZGXJzczNr++233wq91tq1a3XPPfeoU6dORcbTrVs3derUSS+88IJOnDih5s2ba8OGDfrvf/+rwYMHq1mzZpKkW265RdHR0Zo/f74uXLigdu3aaffu3Vq0aJF69eqlDh06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C5srS4cOHdKtt95aoL1FixY6dOhQiQQFAADsg8KSdTZXlry8vJSSklKg/cyZMypXjvniAACgbLE5WercubPi4uKUlpZmartw4YKef/553XPPPSUaHAAAgKPZXAqaOXOmIiMjVbt2bbVo0UKSlJiYqODgYH344YclHiAAALhxDGIczhqbk6Xq1atr//79+vjjj/XTTz/J29tbAwYM0MMPPywPD48bESMAAIDDXNMkIx8fHw0aNKikYwEAAHbGopTW2TxnKT4+Xh988EGB9g8++ECvvPJKiQQFAADgLGxOlt599101bty4QHvTpk31zjvvlEhQAADAPgwGg9220srmZCk5OVnVqlUr0F61alWdOXOmRIICAABwFjYnSzVr1tS2bdsKtG/btk2hoaElEhQAALAPg8F+W2ll8wTvJ598UsOHD1dOTo46duwoSVq/fr2ee+45jRo1qsQDBAAAcCSbk6UxY8bo3Llzevrpp5WdnS1JKl++vMaOHau4uLgSDxAAANw4bqW55GMnNidLBoNBr7zyiiZMmKDDhw/L29tbDRs2lJeX142IDwAAwKGu+WFuvr6+uv3220syFgAAYGcUlqy7pmTphx9+0LJly5SUlGQairtqxYoVJRIYAACAM7D5brilS5fqzjvv1OHDh/X5558rJydHBw8e1IYNG+Tv738jYgQAADcI6yxZZ3Oy9PLLL2vWrFlatWqVPD09NWfOHP3yyy968MEHVatWrRsRIwAAgMPYnCwdP35c3bt3lyR5enrq0qVLMhgMGjFihObPn1/iAQIAgBvHWddZio+P1+23366KFSsqKChIvXr10pEjR8z6tG/fvkD1avDgwWZ9kpKS1L17d1WoUEFBQUEaM2aMcnNzbYrF5mSpUqVKunjxoiSpevXq+vnnnyVJFy5c0N9//23r6QAAAArYvHmzYmNjtXPnTq1bt045OTnq3LmzLl26ZNbvySef1JkzZ0zbjBkzTPvy8vLUvXt3ZWdna/v27Vq0aJEWLlyoiRMn2hSLzRO8IyMjtW7dOoWFhemBBx7Qs88+qw0bNmjdunW6++67bT0dAABwIGddZ+nbb781e71w4UIFBQVp7969ioyMNLVXqFBBISEhhZ5j7dq1OnTokL777jsFBwerefPmmjp1qsaOHavJkyfL09OzWLHYXFmaO3eu+vbtK0l64YUXNHLkSKWk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6fxXP6877rhDw4cPN1XK8vPz9eWXX+r5559X//795e7uXujxDRs21Lp167R9+3YdPnxYTz31lFJSUkz7y5cvr7Fjx+q5557T4sWLdfz4ce3cuVPvv/++JOnhhx9WSEiIevXqpW3btum3337Tf//7X+3YscOm9wHAsUiWACsqVKigsWPHql+/frrrrrvk6+urTz/91LQ/KipKq1ev1tq1a3X77berdevWmjVrlmrXri1Jmjlzpl599VVdvHhRDRo0ULVq1VStWjUtW7ZM3377rZ599llJ0k033aS1a9fqp59+0h133KGIiAitXLlS5coVXgB+6qmn1KxZMw0bNsz0unfv3nrooYfUqlUrnTt3zqxKJElfffWV2rdvr8aNG2vKlCl6/vnn9fjjjxf7+JKUlpYmb29v+fj46N5779V9992nkSNHFto3JydHAwYM0E033XTN15syZYry8/M1efJk/fXXX3r66acVHR2t1157rchjxo8fr1tvvVVRUVFq3769KfH5pwkTJmjUqFGaOHGibr75Zj300ENKTU2VdKXCtnbtWgUFBalbt24KCwvT9OnTi0zOADgnFqUELFi4cKGGDx9+XSt6X50rU9icmS+++EJffPGFFi5ceM3nBwDcWMxZAm6wf94V9m/ly5eXv7+/HaMBANiKyhJgQUlUlgAApRvJEgAAgAVM8AYAALCAZAkAAMACkiUAAAALSJYAAAAsIFkCAACwgGQJAADAApIlAAAAC0iWAAAALPh/9rcXK6O6ztAAAAAASUVORK5CYII=", "text/plain": [ "
    " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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UFdXF2xtbYUFCxbIDMt+9uxZwcXFRTAyMhI0NTUFKysrYeDAgTI/m7S/S9ra2sKLFy9kjpHRazO710UQBGHnzp0CAGHQoEEZnveePXuEBg0aCLq6uoKurq5QsWJFYejQoUJYWJi4TlbX7/vlaeeV9lBRURH/ZkZGRgqCkPFw5JkNN57Vciq4JIKQB+3WRESFzK1bt+Do6IiNGzfKjPhUGBTmc8svJBIJhg4dKtdtigquDRs2oG/fvrh27Vq6UykUVTm5Ln///Tc6dOiAc+fOid3IifIj3uNERJQNa9asgZ6eHjp16qTsVHJdYT43Isr/1qxZg3LlyqFBgwbKToUoU7zHiYgoEwcPHkRISAhWr14NDw+PLPvKFySF+dyIKP9LG2zi8OHD8Pf3z5MJiolyEwsnIqJMeHp64s2bN2jdunW6I6cVZIX53Igo/+vRowf09PTQv39/DBkyRNnpEGWJ9zgRERERERFlgfc4ERERERERZYGFExERERERURaK3D1OUqkUL1++hL6+Pm9CJCIiIiIqwgRBQGxsLMzNzaGiknmbUpErnF6+fAlLS0tlp0FERERERPnE8+fPYWFhkek6Ra5w0tfXB/D14hgYGCg5GyIiIiIiUpaYmBhYWlqKNUJmilzhlNY9z8DAgIUTERERERFl6xYeDg5BRERERESUBRZOREREREREWWDhRERERERElAUWTkRERERERFlg4URERERERJQFFk5ERERERERZYOFERERERESUBRZOREREREREWWDhRERERERElAUWTkRERERERFlg4URERERERJQFFk5ERERERERZYOFERERERESUBRZOSrRyJSCR/P9j5UplZ0RERERElHdevgQqVQKKF//678uXys4o+5RaOJ07dw5t27aFubk5JBIJ9u/fn+U2Z86cQY0aNaCpqYny5ctjw4YNeZ5nXpBIgMGDZWODB3+NExEREREVNqVKAaVLA6GhwMePX/8tXfprvCBQauEUFxeHatWqYdmyZdlaPzw8HG3atEGTJk0QHByM4cOHY8CAATh27FgeZ5q7siqOWDwRERERUWFSqhTw+nX6y16/LhjFk5oyD96qVSu0atUq2+uvXLkS1tbWWLhwIQDA3t4e//33HxYvXowWLVrkVZq5Krvd8VauBP78M29zISIiIiLKay9ffls0RQFIBmAis87r11/XMzf/ubkpokDd43Tp0iU0a9ZMJtaiRQtcunQpw20SExMRExMj81Cm77vn/eh6RERERET52deP71IA6wHYARieyXr5V4EqnF6/fg1TU1OZmKmpKWJiYvDly5d0t5kzZw4MDQ3Fh6Wl5c9IlYiIiIiIALx4cR1AfQD9AbwDsBXAObn13rz5uXkpqkAVTjkxfvx4REdHi4/nz58rOyUiIiIiokLvw4cP+PPPPxETUwvA5W+W/A7AWm7979pH8p0CVTiZmZnhzXel6Js3b2BgYABtbe10t9HU1ISBgYHMQ5lWrMjd9YiIiIiI8pPU1FSsWrUKdnZ2WLVqFQDhf0sqAjgBYCcA+V5gJ0/+vBxzokAVTvXq1cOpU6dkYidOnEC9evWUlJHisjvgAweGICIiIqKCJigoCHXq1MGff/6Jjx8/AgD09PSgr78AwC0A6d/IZGaWvweGAJRcOH3+/BnBwcEIDg4G8HW48eDgYERERAD42s3O1dVVXP/PP//EkydPMGbMGNy/fx/Lly/Hzp074e3trYz0c0wQfmw5EREREVF+9OjRI1y/fl183rNnT4SFhSEmZhTMzDTS3cbMDHj16mdlmHNKLZyCgoJQvXp1VK9eHQAwYsQIVK9eHZMnTwYAvHr1SiyiAMDa2hqHDx/GiRMnUK1aNSxcuBBr164tMEORf0sQ5LvjrVjBoomIiIiICq5u3bqhcePGqFKlCs6cOYMtW7bA/H9NSa9eAS9eAPb2gLHx139fvCgYRRMASAShaH1Uj4mJgaGhIaKjo5V+vxMRERERUUF18eJFHDp0CLNnz5aJv337FsbGxlBTU+qUsdmiSG2Q/8+GiIiIiIjyjdevX2Ps2LHYuHEjAKBx48Zo3ry5uLxkyZLKSi1PFajBIYiIiIiISDmSk5Ph5+eHChUqiEUTAKxdu1aJWf08LJyIiIiIiChTZ8+eRY0aNeDt7Y2YmBgAgJGREZYtW4Zt27YpObufg4UTERERERGl68WLF+jZsycaN26Mu3fvivH+/fvjwYMHGDJkCFRVVZWY4c/De5yIiIiIiEhOeHg4HBwc8PnzZzHm5OSEZcuWoXbt2krMTDnY4kRERERERHKsrKzg4uICAChevDhWr16Ny5cvF8miCWCLExERERER4esw4iYmJpBIJAAAiUQCf39/WFtbY/r06ShevLiSM1QutjgRERERERVhiYmJmDNnDqytrXHgwAGZZba2tli2bFmRL5oAFk5EREREREXW0aNHUbVqVUyYMAHx8fEYPnw4vnz5ouy08iUWTkRERERERczTp0/RoUMHtGrVCg8fPgQAqKiooG3btkhJSVFydvkT73EiIiIiIioivnz5ggULFmDOnDlISEgQ4w0aNEBAQACqVaumxOzyNxZORERERERFwMGDBzFs2DCEh4eLMTMzMyxYsAC9evUSB4Wg9LGrHhERERFRERAYGCgWTaqqqhgxYgTCwsLQu3dvFk3ZwMKJiIiIiKgIWLx4MbS0tNCkSRPcunULCxcuhIGBgbLTKjDYVY+IiIiIqBARBAH79u2DhoYGfvvtNzFetmxZ3LhxAxUrVmQLUw6wcCIiIiIiKiTCwsLg6emJEydOoHTp0rh//z709PTE5fb29krMrmBjVz0iIiIiogLu8+fPGDduHKpWrYoTJ04AAF68eIGtW7cqObPCgy1OREREREQFlCAI2LlzJ0aOHIkXL16I8TJlymDx4sXo2LGjErMrXFg4EREREREVQPfu3YOnpydOnz4txjQ0NDBmzBiMHz8eOjo6Ssyu8GHhRERERERUwGzduhWurq5ITU0VY61bt4a/vz/Kly+vxMwKL97jRERERERUwDRu3Bja2toAAGtraxw4cACHDh1i0ZSH2OJERERERJTPff78WWZ0PHNzc8yePRufPn3C6NGjxSKK8g4LJyIiIiKifCoqKgqTJ0/Gnj17cO/ePRgZGYnLPD09lZdYEcSuekRERERE+YxUKkVgYCDs7OywdOlSvHz5ElOmTFF2WkUaW5yIiIiIiPKR69evw8PDA5cvXxZjOjo6sLCwUGJWxBYnIiIiIqJ84OPHjxg8eDBq1aolUzT9/vvvuH//PkaPHq3E7IgtTkRERERESpSamop169ZhwoQJ+PDhgxi3t7fH0qVL0bRpUyVmR2nY4kREREREpESfPn3C2LFjxaJJT08PCxYsQHBwMIumfISFExERERGREpUoUQIzZswAAPTs2RNhYWEYNWoUNDQ0lJwZfYuFExERERHRT5KSkoIVK1bg/fv3MvE///wTFy9exJYtW2Bubq6k7CgzLJyIiIiIiH6CCxcuwMnJCUOGDMGECRNklqmpqaFevXpKyoyyg4UTEREREVEeev36Ndzc3NCgQQPcunULALBu3TqEh4crOTNSBAsnIiIiIqI8kJKSAj8/P1SoUAEbN24U446Ojjh//jysra2VmB0pisORExERERHlsrNnz8LDwwN3794VY0ZGRpg1axb++OMPqKqqKjE7ygkWTkREREREucjLywtLly6VifXv3x9z5syBiYmJkrKiH8XCiYiIiIgoF1WrVk38v5OTE5YtW4batWsrMSPKDSyciIiIiIh+QHJyMtTV1cXnffv2xd69e9G+fXv079+f3fIKCRZOREREREQ5EBERgREjRkBHR0dm8AcVFRUcPnxYiZlRXuCoekRERERECkhMTMSsWbNQsWJF7NmzB5s2bcJ///2n7LQoj7HFiYiIiIgom/755x94eXnh0aNHYszExAQfP35UYlb0M7DFiYiIiIgoC+Hh4ejQoQNat24tFk0qKirw8vLCgwcP0K5dOyVnSHmNLU5ERERERBn48uUL5s+fj7lz5yIhIUGMu7i4ICAgAA4ODkrMjn4mFk5ERERERBk4dOgQpk6dKj43MzODr68vevbsCYlEorzE6KdjVz0iIiIiogx06dIFDRs2hJqaGkaOHImwsDD06tWLRVMRxBYnIiIiIiIA8fHx+Pvvv9GjRw8xJpFIsHr1aqSmpqJSpUpKzI6UjYUTERERERVpgiBg7969GDFiBCIiImBiYoJmzZqJyytUqKDE7Ci/YFc9IiIiIiqy7t+/jxYtWqBLly6IiIgAAIwaNQqCICg5M8pvWDgRERERUZETGxuLMWPGoGrVqjhx4oQYb968OXbs2MF7mEgOu+oRERERUZEhCAJ27NiBkSNH4uXLl2K8TJky8PPzQ4cOHVg0UbpYOBERERFRkRATE4P27dvjzJkzYkxTUxNjxozBuHHjoKOjo7zkKN9j4URERERERYK+vj7U1dXF523atIG/vz9sbGyUmBUVFLzHiYiIiIgKpe8HeJBIJFi6dCkqVqyIgwcP4tChQyyaKNtYOBERERFRoXPr1i00bNgQhw4dkolXqFAB9+7dw2+//aakzKigYlc9IiIiIio0oqKi4OPjg+XLl0MqleLly5do1qwZtLS0xHVUVNh2QIrjq4aIiIiICjypVIr169fDzs4OAQEBkEqlAABVVVVxfiaiH8HCiYiIiIgKtOvXr8PZ2Rn9+/fHu3fvAAA6OjqYPXs27ty5Azs7OyVnSIUBu+oRERERUYH04cMHTJw4EatXr5YZCOL333/HwoULYWlpqcTsqLBh4UREREREBdLw4cOxefNm8bm9vT2WLl2Kpk2bKjErKqzYVY+IiIiICqTp06dDU1MTenp6WLBgAYKDg1k0UZ5hixMRERER5Xvv3r1DeHg4ateuLcasra2xbds21KlTB+bm5krMjooCtjgRERERUb6VmpqKZcuWwc7ODl26dEFcXJzM8o4dO7Joop+ChRMRERER5UsXLlyAk5MTPDw8EBUVhefPn2PevHnKTouKKBZORERERJSvvH79Gm5ubmjQoAGCg4PFuJubG4YMGaK8xKhI4z1ORERERJQvJCcnY9myZZgyZQpiYmLEuKOjIwICAlC/fn0lZkdFHQsnIiIiIlK627dvo1evXrh7964YMzIywqxZs/DHH39AVVVVidkRsXAiIiIionzA2NgY4eHhAACJRIL+/ftj9uzZMDExUXJmRF/xHiciIiIiUjoLCwv4+PjAyckJly9fxpo1a1g0Ub7CwomIiIiIfqqTJ0+iSZMmMvcxAcCIESNw+fJlmbmaiPILFk5ERERE9FNERESgS5cu+PXXX3HmzBlMmzZNZrm6ujrvZaJ8i4UTEREREeWpxMREzJ49G/b29tizZ48Yv3btGlJTU5WYGVH2sXAiIiIiojzzzz//oEqVKpg4cSLi4+MBACYmJggMDMSZM2fYwkQFBgsnIiIiIsp14eHh6NChA1q3bo1Hjx4BAFRUVODl5YUHDx7A3d0dKir8KEoFB4cjJyIiIqJclZiYiHr16uHNmzdizMXFBQEBAXBwcFBiZkQ5p/Qyf9myZbCysoKWlhbq1KmDq1evZrq+n58fKlSoAG1tbVhaWsLb2xsJCQk/KVsiIiIiyoqmpibGjx8PADAzM8PmzZtx9uxZFk1UoCm1xWnHjh0YMWIEVq5ciTp16sDPzw8tWrRAWFgYSpYsKbf+1q1bMW7cOKxfvx7Ozs5iM69EIsGiRYuUcAZERERE9OjRIxgbG8PY2FiMDR06FAkJCRg8eDAMDAyUmB1R7lBqi9OiRYswcOBA9O3bF5UqVcLKlSuho6OD9evXp7v+xYsXUb9+ffTs2RNWVlZo3rw5evTokWUrFRERERHlvvj4eEyaNAmVK1fGpEmTZJapqalh7NixLJqo0FBa4ZSUlITr16+jWbNm/5+MigqaNWuGS5cupbuNs7Mzrl+/LhZKT548wZEjR9C6desMj5OYmIiYmBiZBxERERHlnCAI2LNnD+zt7TFr1iwkJSVh5cqVuHHjhrJTI8ozSuuq9/79e6SmpsLU1FQmbmpqivv376e7Tc+ePfH+/Xs0aNAAgiAgJSUFf/75JyZMmJDhcebMmSM3uRoRERER5UxYWBg8PT1x4sQJMaauro6RI0fCzs5OiZkR5S2lDw6hiDNnzmD27NlYvnw5bty4gb179+Lw4cOYMWNGhtuMHz8e0dHR4uP58+c/MWMiIiKiwuHz588YO3YsqlatKlM0NW/eHHfu3MGcOXOgp6enxAyJ8pbSWpxKlCgBVVVVmWEqAeDNmzcwMzNLdxsfHx/06dMHAwYMAABUrVoVcXFxGDRoECZOnJjuXACamprQ1NTM/RMgIiIiKiL2798PDw8PvHjxQoyVLVsWixcvRocOHSCRSJSYHdHPoXCLU2pqKnx9fVG7dm2YmZmJI6h8P5JKVjQ0NFCzZk2cOnVKjEmlUpw6dQr16tVLd5v4+Hi54ihttmlBEBQ9FSIiIiLKhrdv34pFk6amJnx8fBASEoKOHTuyaKIiQ+HCadq0aVi0aBG6deuG6OhojBgxAp06dYKKigqmTp2q0L5GjBiBNWvW4K+//kJoaCgGDx6MuLg49O3bFwDg6uoqzgEAAG3btsWKFSuwfft2hIeH48SJE/Dx8UHbtm3FAoqIiIiIclf//v1Rs2ZNtGnTBvfu3cP06dOho6Oj7LSIfiqFu+pt2bIFa9asQZs2bTB16lT06NEDNjY2cHBwwOXLl+Hl5ZXtfXXr1g3v3r3D5MmT8fr1azg6OuLo0aPigBEREREyLUyTJk2CRCLBpEmT8OLFC5iYmKBt27aYNWuWoqdBRERERN8RBAGbN2/GnTt3MH/+fDGuqqqKU6dOwdDQUInZESmXRFCwj5uuri5CQ0NRpkwZlCpVCocPH0aNGjXw5MkTVK9eHdHR0XmVa66IiYmBoaEhoqOjOa8AERER0f/cunULQ4cOxYULFwB8nT8zo9sniAoLRWoDhbvqWVhY4NWrVwAAGxsbHD9+HABw7do1DsJAREREVMBERUXB09MTNWrUEIsmADhw4IASsyLKfxQunDp27CgO6ODp6QkfHx/Y2trC1dUV/fr1y/UEiYiIiCj3SaVSrF+/HnZ2dggICIBUKgUA2Nra4ujRo5gzZ46SMyTKXxTuqve9y5cv4+LFi7C1tUXbtm1zK688w656REREVNRdv34dHh4euHz5shjT0dGBj48PvL292YuIigxFagOFB4c4d+4cnJ2doab2ddO6deuibt26OcuUiIiIiH6qy5cvw9nZWWYql99//x0LFy6EpaWlEjMjyt8U7qrXpEkTfPz4MS9yISIiIqI8VqdOHTg7OwMA7O3tcfLkSezcuZNFE1EWFG5x4kSzRERERAXHo0ePUL58efG5RCJBQEAATp48CS8vL2hoaCgxO6KCQ+HCCQAuXbqEYsWKpbusYcOGP5QQEREREf24t2/fYvz48QgMDMSpU6fQpEkTcZmjoyMcHR2VlxxRAaTw4BDfTkgrtzOJBKmpqT+cVF7i4BBERERUmKWkpGDlypXw8fFBVFQUAKBy5cq4efMm1NXVlZscUT6Tp4NDAMDr169RsmTJHCVHRERERHnjv//+g4eHB27duiXGDAwMMGjQIEgkEiVmRlTwKTw4BH/piIiIiPKX169fw9XVFS4uLjJFk7u7Ox48eAAvLy9xRGQiyhkODkFERERUQEmlUixZsgRTpkxBTEyMGK9evToCAgLE0fOI6McpXDilzSpNRERERMolkUhw8OBBsWgqVqwYZs2ahUGDBkFVVVXJ2REVLgp31ftWbGwsvLy80LBhQwwdOhTR0dG5lRcRERERZUEikWDp0qXQ0NDAwIED8eDBAwwePJhFE1Ee+KHCaeTIkTh48CDq1q2Lc+fOwdPTM7fyIiIiIqJvJCUlYf78+Th+/LhMvFKlSggPD8fq1atRokQJJWVHVPj90F2CJ0+exLp16/DLL7+gX79+aNSoUW7lRURERET/c+LECXh6eiIsLAzly5fH3bt3oampKS43NzdXYnZERcMPtTi9f/8eVlZWAABra2u8f/8+N3IiIiIiIgARERHo0qULmjdvjrCwMADA48ePcfr0aSVnRlT0KFw4xcTEiA8A+Pz5M2JiYnh/ExEREVEuSUxMxKxZs1CxYkXs2bNHjNerVw9BQUFo2bKlErMjKpoU7qpnZGQkzuUkCAKqV68u/p9zPBERERH9mCNHjmDYsGF49OiRGCtZsiTmz5+PPn36QEXlhzoMEVEOKVw4sWmYiIiIKG/Mnj0bEydOFJ+rqqrCw8MDU6dOhZGRkfISIyJIhCI2o21MTAwMDQ0RHR0NAwMDZadDREREJHr8+DEqVaqEpKQkuLi4ICAgAA4ODspOi6jQUqQ2ULjF6cCBA5kub9eunaK7JCIiIipyBEHAu3fvULJkSTFmY2ODuXPnwtTUFD169OBtEET5iMItTpn1q5VIJEhNTf3hpPISW5yIiIhI2R49egQvLy/cu3cPoaGh0NHRUXZKREWSIrVBju4ufPXqFaRSqdwjvxdNRERERMoUFxeHSZMmoXLlyvjnn38QERGBuXPnKjstIsqGHE2Ay9FciIiIiLJPEATs3bsX3t7eeP78uRgvXbo0qlWrpsTMiCi7clQ4rVmzBsWKFYOuri7Mzc3h6OiIEiVK5HZuRERERAXe/fv34eXlhRMnTogxdXV1jBw5EhMnToSenp4SsyOi7FK4cCpTpgxWr16N5ORkxMTEIC4uDioqKmjTpg02bdrE+4aIiIiIAHz+/BnTp0/H4sWLkZKSIsabN2+OJUuWoEKFCkrMjogUpXCfu6dPn+Lp06d48eIFYmNjER0djWPHjuHBgwcYM2ZMXuRIREREVOB8/PgRy5YtE4umsmXLYu/evTh69CiLJqIC6IdvVtLX10fTpk2xfPlyHD9+PDdyIiIiIirwypQpg4kTJ0JTUxM+Pj4ICQlBx44dOcQ4UQHFCXCJiIiIflB0dDR8fX0xZswY6Ovri/HExERERkbCxsZGidkRUUbydDhyKysrTJ8+HRERETlOkIiIiKgwEAQBmzZtQoUKFTBz5kzMmDFDZrmmpiaLJqJCQuHCafjw4di7dy/KlSuHX3/9Fdu3b0diYmJe5EZERESUbwUHB8PFxQWurq548+YNAGDVqlWIjo5WcmZElBdyVDgFBwfj6tWrsLe3h6enJ0qVKgUPDw/cuHEjL3IkIiIiyjc+ffoEDw8P1KxZExcuXBDjHTt2xK1bt2BoaKjE7Igor/zwPU7JyclYvnw5xo4di+TkZFStWhVeXl7o27dvvrz5kfc4ERERUU5IpVJs2LAB48aNw7t378S4ra0tli5dihYtWigxOyLKCUVqgxxNgAt8LZj27duHwMBAnDhxAnXr1kX//v0RGRmJCRMm4OTJk9i6dWtOd09ERESUbwiCgJYtW8pMYqujowMfHx94e3tDU1NTidkR0c+gcOF048YNBAYGYtu2bVBRUYGrqysWL16MihUriut07NgRtWrVytVEiYiIiJRFIpHIFE5du3aFr68vLC0tlZwZEf0sChdOtWrVwq+//ooVK1agQ4cOUFdXl1vH2toa3bt3z5UEiYiIiH621NRUJCUlQVtbW4x5enriwoULGDJkCJo2barE7IhIGRS+x+nZs2coW7ZsXuWT53iPExEREWXm8uXL8PDwQL169bB06VJlp0NEeShP53F6+/Ytrly5Ihe/cuUKgoKCFN0dERERUb7w7t079O/fH/Xq1cP169exfPly3Lp1S9lpEVE+oXDhNHToUDx//lwu/uLFCwwdOjRXkiIiIiL6WVJSUhAQEAA7OzusX79ejFeuXBnJyclKzIyI8hOFC6eQkBDUqFFDLl69enWEhITkSlJEREREP8N///0HJycneHp6IioqCgBgYGAAf39/3LhxA05OTspNkIjyDYULJ01NTXF27G+9evUKamo5Ht2ciIiI6Kd59eoVXF1d4eLiItMdz93dHQ8ePICXlxc/1xCRDIULp+bNm2P8+PGIjo4WY1FRUZgwYQJ+/fXXXE2OiIiIKC/8/fff2LRpk/i8evXquHDhAgIDA2FqaqrEzIgov1J4VL0XL16gYcOG+PDhA6pXrw4ACA4OhqmpKU6cOJHv5zPgqHpERESUmpoKJycnPHv2DLNmzcKgQYOgqqqq7LSI6CdTpDZQuHACgLi4OGzZsgW3bt2CtrY2HBwc0KNHj3TndMpvWDgREREVLS9evMA///yDAQMGyMTv37+PEiVKoESJEkrKjIiULc8Lp4KMhRMREVHRkJSUBH9/f0yfPh2fP3/G5cuXUadOHWWnRUT5iCK1gcJ3PR44cCDT5e3atVN0l0RERES56uTJk/D09MT9+/fF2JQpU3D06FElZkVEBZnChVOHDh3E/0skEnzbYCWRSJCamporiREREREpKiIiAiNGjMCePXvEmIqKCv7880/MmDFDiZkRUUGn8Kh6UqlUfOjo6ODRo0ficxZNREREpAyJiYmYNWsWKlasKFM01atXD0FBQVi2bBmMjY2VmCERFXScoICIiIgKtMjISDRp0gSPHj0SYyVLlsT8+fPRp08fqKgo/D0xEZEcvpMQERFRgWZubi6OjKeqqophw4YhLCwMbm5uLJqIKNco3OIUExMj/l8ikeDz588yMY5UR0RERHkpOTlZZgoUFRUVBAQEYNSoUfD394eDg4MSsyOiwkrh4chVVFQgkUgAAIIgyP0/v9/nxOHIiYiICiZBEHDgwAF4e3tjw4YNaNiwobJTIqICLk+HIz99+nSOEyMiIiLKiYcPH8LLy0scTtzDwwM3btyAmhpv1yain0Phd5tGjRrlRR5EREREcuLi4jB79mz4+voiKSlJjJuYmODTp08wMTFRYnZEVJQoXDjdvn070+XsV0xEREQ/ShAE7NmzByNGjMDz58/FuIWFBRYtWoQuXbqItwsQEf0MChdOjo6OMvc1fasg3ONERERE+dv9+/fh6emJkydPijF1dXWMHDkSEydOhJ6enhKzI6KiSuHCqUGDBggODsa4cePQs2dPfttDREREucrLy0umaGrevDmWLFmCChUqKDErIirqFJ7c4Ny5c9iwYQM2bNiArl27IjIyEmXLlhUfRERERD9i0aJFUFVVRZkyZbB3714cPXqURRMRKV2OZoXr1KkTQkJC0LNnT7Rv3x6dOnWSma2biIiIKDvu3r2Ly5cvy8SqVKmCgwcPIjQ0FB07dmTvFiLKF3I8nbaamhqGDx+OR48ewdraGjVq1MDw4cNzMTUiIiIqrKKjo+Ht7Q1HR0e4u7vLjJgHAK1atYKOjo6SsiMikqfwBLjFihVL95ufuLg4pKSk5PvBITgBLhERkfIIgoBNmzZhzJgxePPmjRhfunQpPDw8lJgZERVFeToBrp+fX07zIiIioiIsODgYHh4euHDhghjT1tbGhAkTMGDAACVmRkSUNYULJzc3t7zIg4iIiAqpT58+wcfHBytWrIBUKhXjHTt2xOLFizm4FBEVCAoXTkRERETZdfz4cfTu3Rvv3r0TY3Z2dliyZAlatGihxMyIiBST48EhiIiIiLJiZWWFqKgoAICuri7mzp2LO3fusGgiogKHLU5ERESUawRBkBlEys7ODqNGjcKTJ0/g6+sLCwsLJWZHRJRzCo+qV9BxVD0iIqLcl5qaijVr1mDdunU4d+4ctLW1xWVSqRQqKuzkQkT5jyK1gcLvYtHR0fj48aNc/OPHj4iJiVF0d0RERFTAXb58GXXq1MHgwYMRFBSE+fPnyyxn0UREhYHC72Tdu3fH9u3b5eI7d+5E9+7dcyUpIiIiyv/evn2Lfv36oV69erh+/boYj4yMVGJWRER5Q+HC6cqVK2jSpIlcvHHjxrhy5UquJEVERET5V0pKCpYuXQo7OzsEBgaK8apVq+Ls2bNYs2aNErMjIsobCg8OkZiYiJSUFLl4cnIyvnz5kitJERERUf50/vx5eHh44Pbt22LMwMAAM2bMwJAhQ6CmxnGniKhwUrjFqXbt2li9erVcfOXKlahZs2auJEVERET5z4cPH9CiRQuZosnd3R0PHjyAl5cXiyYiKtQUfoebOXMmmjVrhlu3bqFp06YAgFOnTuHatWs4fvx4ridIRERE+UPx4sUxfvx4TJ48GdWrV8eyZctQr149ZadFRPRTKNziVL9+fVy6dAmWlpbYuXMnDh48iPLly+P27dtwcXFROIFly5bBysoKWlpaqFOnDq5evZrp+lFRURg6dChKlSoFTU1N2NnZ4ciRIwofl4iIiDJ39uxZfP78WSY2evRorF+/HteuXWPRRERFilLncdqxYwdcXV2xcuVK1KlTB35+fti1axfCwsJQsmRJufWTkpJQv359lCxZEhMmTEDp0qXx7NkzGBkZoVq1atk6JudxIiIiylxkZCRGjx6N7du3Y+zYsZg7d66yUyIiyhOK1AYKF06NGjVC//798fvvv8tMbpcTderUQa1atRAQEADg6wR5lpaW8PT0xLhx4+TWX7lyJRYsWID79+9DXV09R8dk4URERJS+pKQk+Pn5Yfr06YiLiwMAqKurIzQ0FDY2NkrOjogo9+XpBLjVq1fHqFGjYGZmhoEDB+Ly5cs5SjIpKQnXr19Hs2bN/j8ZFRU0a9YMly5dSnebAwcOoF69ehg6dChMTU1RpUoVzJ49G6mpqRkeJzExETExMTIPIiIiknXixAk4ODhg7NixYtFUvHhxLF++HNbW1krOjohI+RQunPz8/PDy5UsEBgbi7du3aNiwISpVqgRfX1+8efMm2/t5//49UlNTYWpqKhM3NTXF69ev093myZMn2L17N1JTU3HkyBH4+Phg4cKFmDlzZobHmTNnDgwNDcWHpaVltnMkIiIq7J49e4bOnTujefPmCAsLA/D1i8whQ4bgwYMHGDBgAFRUFP64QERU6OTonVBNTQ2dOnXC33//jcjISPTs2RM+Pj6wtLREhw4d8O+//+Z2ngC+duUrWbIkVq9ejZo1a6Jbt26YOHEiVq5cmeE248ePR3R0tPh4/vx5nuRGRERU0CxatAj29vbYu3evGKtXrx6CgoKwbNkyGBsbKzE7IqL85YcmXLh69SoCAwOxfft2lCxZEu7u7njx4gV+++03DBkyBL6+vhluW6JECaiqqsq1Ur158wZmZmbpblOqVCmoq6tDVVVVjNnb2+P169dISkqChoaG3DaamprQ1NTM4RkSEREVXqmpqeLk9SVLlsT8+fPRp08ftjAREaVD4XfGt2/fYuHChahSpQpcXFzw7t07bNu2DU+fPsW0adOwdu1aHD9+PNNWIADQ0NBAzZo1cerUKTEmlUpx6tSpDIc3rV+/Ph49egSpVCrGHjx4gFKlSqVbNBEREVHGhg0bhipVqmDYsGEICwuDm5sbiyYiogwo3OJkYWEBGxsb9OvXD+7u7jAxMZFbx8HBAbVq1cpyXyNGjICbmxucnJxQu3Zt+Pn5IS4uDn379gUAuLq6onTp0pgzZw4AYPDgwQgICMCwYcPg6emJhw8fYvbs2fDy8lL0NIiIiIqML1++YN68eUhISJAZWlxDQwNBQUHsmUFElA0KF06nTp3KcqJbAwMDnD59Ost9devWDe/evcPkyZPx+vVrODo64ujRo+KAERERETLffFlaWuLYsWPw9vaGg4MDSpcujWHDhmHs2LGKngYREVGhJwgCDhw4gOHDh+Pp06dQVVVFr169ULVqVXEdFk1ERNmj8DxOv/zyC/bu3QsjI6M8SilvcR4nIiIqCh4+fIhhw4bhn3/+EWNqampYvnw5Bg4cqMTMiIjyjzydx+ns2bNISkrKcXJERESUd+Li4jBx4kRUqVJFpmj65ZdfcOvWLRZNREQ5pHBXPUEQIJFI8iIXIiIiyiFBELBnzx6MGDFCZuoNCwsLLFq0CF26dOHfbyKiH5Cj4cg7duyY4Sh2eTWHExEREWVs7969+P3338Xn6urqGDVqFCZOnAhdXV0lZkZEVDjkqHCqV68e9PT0cjsXIiIiyqH27dvDwcEBt2/fRosWLbBkyRLY2dkpOy0iokJD4cEhVFVV8erVK5QsWTKvcspTHByCiIgKOkEQEBQUJDf1x+XLl/H69Wu0b9+e3fKIiLIhTweHULDOIiIiolx09+5d/PLLL6hTpw6CgoJkltWtWxcdOnRg0URElAcULpymTJnCbnpEREQ/WXR0NLy9veHo6IgzZ85AEAR4eHhAKpUqOzUioiJB4XucpkyZkhd5EBERUToEQcCmTZswZswYvHnzRoyXK1cOkyZNkpkonoiI8k6OBofYvXs3du7ciYiICLk5nW7cuJEriRERERV1wcHB8PDwwIULF8SYlpYWJkyYgNGjR0NLS0uJ2RERFS0Kf021ZMkS9O3bF6amprh58yZq166N4sWL48mTJ2jVqlVe5EhERFSkfPnyBR4eHqhZs6ZM0dSxY0eEhobCx8eHRRMR0U+mcOG0fPlyrF69GkuXLoWGhgbGjBmDEydOwMvLC9HR0XmRIxERUZGiqamJq1evivcv2dnZ4ejRo9i7dy+srKyUmxwRURGlcFe9iIgIODs7AwC0tbURGxsLAOjTpw/q1q2LgICA3M2QiIioiFFRUcGyZcvQtGlTTJw4EcOHD4empqay06JclpqaiuTkZGWnQVToqaurQ1VV9Yf3o3DhZGZmho8fP6Js2bIoU6YMLl++jGrVqiE8PJxDlRMRESnow4cPmDhxInr37o0GDRqI8Vq1auH58+cwNDRUYnaUVz5//ozIyEh+diL6CSQSCSwsLH54ZHCFC6dffvkFBw4cQPXq1dG3b194e3tj9+7dCAoKQqdOnX4oGSIioqIiNTUVa9euxYQJE/Dx40dcvnwZQUFBUFP7/z/NLJoKp9TUVERGRkJHRwcmJiacd4soDwmCgHfv3iEyMhK2trY/1PKkcOG0evVqsc/10KFDUbx4cVy8eBHt2rXDH3/8keNEiIiIiorLly/Dw8MD169fF2NPnjzB3bt34ejoqLzE6KdITk6GIAgwMTGBtra2stMhKvRMTEzw9OlTJCcn/9zCKTIyEpaWluLz7t27o3v37jlOgIiIqKh4+/Ytxo8fj/Xr18vEe/fujfnz56NUqVJKyoyUgS1NRD9Hbv2uKTyqnrW1Nd69e5crByciIioKUlJSEBAQgAoVKsgUTVWrVsW5c+ewadMmFk1ERPmcwi1OvImRiIhIMUOGDMGaNWvE5wYGBpgxYwaGDBkic08TERHlXzl6t46MjERCQkK6y8qUKfNDCRERERU2Hh4eWLduHaRSKdzd3TF37lyYmpoqOy0iIlJAjgqnWrVqycUEQYBEIkFqauoPJ0VERFRQJScn48WLFzIT1To4OGDhwoWoU6cO6tWrp7zkiH6Au7s7/vrrrwyXf/r0CUZGRj8vIaKfLEeF05UrV2BiYpLbuRARERVop0+fhoeHBwRBQHBwMDQ0NMRlw4cPV15iVChJpUBEBBAbC+jrA2XKACoK372umJYtWyIwMFAmdvHiRXTu3DlvD0yUDyj86yWRSFCmTBmULVs23QcREVFRExkZiW7duuGXX35BSEgIQkNDsXTpUmWnRYVYaCgwdy4weTIwY8bXf+fO/RrPS5qamjAzM5N5GBsby6yzYcMGGBkZYf/+/bC1tYWWlhZatGiB58+fy6y3YsUK2NjYQENDAxUqVMCmTZtklkskErlHQEAAgK+tXx06dEj3uNk9RlRUFGrXrg1DQ0Noa2ujRo0a+Oeff8Tl6R0jjZ+fn0yr8vfOnDkDiUQCBwcHmfjff/8NiUSCxo0bi7HExER4eXmhZMmS0NLSQoMGDXDt2jW5fTZu3Fjuevj5+cmss3btWtjb20NLSwsVK1bE8uXLFdrP06dPIZFIEBwcLK7v4+OT7rGKIoULJw4OQURE9FVSUhLmzZuHihUrYufOnWK8du3aaNSokRIzo8IsNBRYsgS4eRMoUQKoUOHrvzdvfo3ndfGUHfHx8Zg1axY2btyICxcuICoqSmb6mn379mHYsGEYOXIk7t69iz/++AN9+/bF6dOnZfYTGBiIV69eiY9+/fplO4esjqGhoYEJEybg2rVruHfvHpo3b47OnTsjMTExdy4CIE5unWbVqlUoXbq0zDpjxozBnj178Ndff+HGjRsoX748WrRogY8fP8rtb+DAgeK1sLCwkFm2ZcsWTJ48GbNmzUJoaChmz54NHx8fue6VgiBkup9vRUZGws/Pj/ON/Y/ChVN4eDi76RERUZF3/PhxVK1aFePGjUNcXBwAoESJEli7di0uXboEJycnJWdIhZFUCuzbB7x/D1SqBBgYAKqqX/+tVOlrfP/+r+spU3JyMgICAlCvXj3UrFkTf/31Fy5evIirV68CAHx9feHu7o4hQ4bAzs4OI0aMQKdOneDr6yuzHyMjI5nWLR0dnWznkNUxdHR00KFDB9jZ2cHa2ho2NjaQSCRITk7OtevQr18/cUTNiIgIXL9+He3atROXx8XFYcWKFViwYAFatWqFSpUqYc2aNdDW1sa6detk9pWYmAhDQ0PxWnw/keuUKVOwcOFCdOrUCdbW1ujUqRO8vb2xatUqmfWSk5Mz3c+3Jk6ciG7duqFkyZI/eikKBYULp3///Re7d++Wi+/atSvTGwaJiIgKg8jISHTu3BktWrTAgwcPAAAqKioYOnQowsLC0L9/f6jk9Y0mVGRFRAD37wOWlsD3c3pKJICFxdcWp4gI5eSXRk1NTWYwsYoVK8LIyAih/2sOCw0NRf369WW2qV+/vrg8Ow4dOgQ9PT3x8eeff8osz+4xKleuDE1NTYwdOxZ79uyBnp6e3DGKFSuGatWqyU1enRU3Nzfs378fMTExWLt2LXr37i1z7+Pjx4+RnJwsk6e6ujpq164tl+eHDx9gYGCQ7nHi4uLw+PFj9O/fX+aazJw5E48fP5ZZNyYmBrq6ulnmfuPGDezbtw8zZsxQ5JQLNYXf2efMmYMSJUrIxUuWLInZs2fnSlJERET51efPn3HgwAHxubOzM65fv46AgAC5ez2IcltsLJCQAGT0uVdX9+vy2Nifm5cyNGnSBMHBweJj+vTpOdrPkSNHcPXqVXTt2hVjxoyR6aqXdoyLFy/C1dUVAwYMSPf+o4wUL14cLVq0wMaNG7F+/XoMHDgwRzmmpKTg+fPnsLa2Tnf558+fAQBr1qyRuSZ3796V6SoIAC9fvoS5uXmWxxw5ciRGjRrFybm/oXDhFBERke4PrWzZsohQ9tcbREREeaxixYrw9vaGqakp/vrrL/z3339wdHRUdlpUROjrA1pawP96h8qJi/u6XF//5+b1vZSUFAQFBYnPw8LCEBUVBXt7ewCAvb09Lly4ILPNhQsXUKlSpWwfQ1dXF+XLlxcf33cny+4xypYtC0dHR8ybNw937tzBnTt35I5hb2+PkSNHonjx4rh161a2cwSAP/74AxMmTEC5cuVQsWJFmWVpA1d8m2dycjKuXbsmk+eVK1eQkJAAFxeXdI9hamoKc3NzPHnyROaalC9fXuZz++PHj/Hp0ydUr14905wPHDiABw8eYNSoUQqda2Gn8HDkJUuWxO3bt+VGErl16xaKFy+eW3kREREp3ZMnTzB//nz4+flBS0tLjE+ePBkTJ06EoaGhErOjoqhMGaBixa8DQVSqJNtdTxCAyEigRo2v6ymTuro6PD09sWTJEqipqcHDwwN169ZF7dq1AQCjR49G165dUb16dTRr1gwHDx7E3r17cfLkyVzLIatj3Lx5Ey9evEClSpXw5csX+Pn5QU9PD7a2tuI+pFIpEhISkJycjCNHjuDDhw+oUqWKXCtOZho1aoRp06alO4ebrq4uBg8ejNGjR8PY2BhlypTB/PnzER8fj/79+wMAXr9+DR8fH9SvXx+ampp4/fo1ACA1NRWxsbH48uULtLW1MW3aNHh5ecHQ0BAtW7ZEYmIigoKC8OnTJ4wYMQJBQUHw8vJC1apVs7wHc/78+Vi6dKlC95QVBQoXTj169ICXlxf09fXRsGFDAMDZs2cxbNgwmdFSiIiICqovX75g7ty5mDdvHhITE2FhYYFJkyaJy7+9B4LoZ1JRATp2BJ4/B0JCvt7TpKv7taUpMvLr6HodOuT9fE5Z0dHRwdixY9GzZ0+8ePECLi4uMoMddOjQAf7+/vD19cWwYcNgbW2NwMBAmWG6f1RWx/jy5Qt8fHzw4MEDqKuro1q1ajh8+LDMFyIHDx6EtrY21NTUYGVlhaVLl6Ju3boKFU4A4O3tneGyuXPnQiqVok+fPoiNjYWTkxOOHTuGYsWKAQC6d++Os2fPAoBct7nJkyfD0tIS7u7uGDBgAHR0dLBgwQKMHj0aurq6qFq1qjiHnLe3NywsLLBo0SJIvr9B7jvly5eHm5ubQudYFEgEBccXT0pKQp8+fbBr1y6oqX2tu6RSKVxdXbFy5UqZG97yo5iYGBgaGiI6OjrDG+yIiKhoEgQBBw4cwPDhw/H06VMxbmNjg9DQUKirqysvOSo0EhISEB4eDmtra5mWTEWEhn4dXe/+/a/3NGlpAfb2X4um//WGU5oNGzZg+PDhiIqKUm4ihUTjxo0xderUdIvK4cOHw9HREe7u7j89r4Iks985RWoDhVucNDQ0sGPHDsycORPBwcHQ1tZG1apVOfktEREVaA8fPoSXlxeOHj0qxtTU1ODt7Q0fHx8WTZSv2Nt/nb8pIuLrQBD6+l+75ym7pYlyn7GxcYYNEwYGBpxj6SdSuHBKY2trK9MHlIiIqCCKi4vD7Nmz4evri6SkJDHetGlTLF26VLyZnSi/UVEBvrvlnAqhvXv3ZrgspyMJUs7kuHAiIiIq6JKTk1GjRg1xPiYAsLS0xKJFi9C5c+cs7wMgInnu7u7sOkaFEht0iYioyFJXVxcHNlJXV8f48eMRGhqKLl26sGgiIiIZbHEiIqIiIzY2FqqqqjJD7I4bNw7Pnz/HuHHjYGdnp8TsiIgoP2OLExERFXqCIGDbtm2oWLEiZs2aJbNMW1sb69evZ9FERESZUrjF6fbt25kud3BwyHEyREREue3u3bvw8PAQ50Hx9fWFu7s7BzgiIiKFKFw4OTo6iv2+06aAkkgkEAQBEokEqampuZshERFRDkRHR2PKlCkICAiQ+dvUokWLfD/nIBER5T/Z6qpna2sLPz8/AECDBg2gq6uLGTNm4MmTJwgPD5f5l4iISJmkUik2btyIChUqwN/fXyyabGxscOjQIRw4cIBzDxIRkcKyVTidPn0aY8aMwefPn3Hu3Dls2LABGzZsQNeuXREZGYmyZcuKDyIiImUJDg6Gi4sL3Nzc8ObNGwBf72GaMWMG7t69izZt2ig5QyIiKqiyVTgVK1YMgiAgJSUFANCpUyeEhISgZ8+eaN++PTp16oRHjx7laaJERERZOXr0KC5evCg+79SpE0JDQzFp0iRoaWkpMTMiIiroslU4NWjQAIMHD4aRkZEYU1NTw/Dhw/Ho0SNYW1ujRo0aGD58eB6lSURElDVvb2/Y2dnBzs4Ox44dw549e9gbgiiXuLu7o0OHDjKxZ8+eQUtLi/OeUZGQrcEhzp07B319fQBfW5/S++VITEzE0qVLxXuhiIiI8lJQUBCuXr2KIUOGiDFNTU0cOXIElpaWHACC6Cfw8fFh0URFRrZanNKKJgDw8/PD4sWL5R6rV6/G+vXr8yxRIiIiAHj//j0GDRqE2rVrw8vLC/fu3ZNZbmNjw6KJCqRFixbBwsIiy0e7du3ktm3Xrl22tl20aFGu5Xvnzh1s2bIFnp6e6S63srKCRCKReezfv19cLpVKMWfOHFhbW0NbWxvVqlXD7t27xeWpqano37+/uDxtwJfvnTlzRu443/aSSq+l7FtTp06Fo6NjuvuMiooSY3v27EHlypWhqakJKysrLFy4UGabxMREjBo1CqVLl4auri7q1KmDM2fOZHhcAIiKisIff/wBU1NTaGlpoUqVKjh06FC2j/ntNdbV1YWzszOCgoLE5Y0bN5a7NhKJROZ8r127hl9//RUlSpSAoaEhGjVqhBs3bqR7nb7fz/fX9b///oOLiwu0tbVhaWkJLy8vxMXFyeT7fSPL9z+fxo0by/RiCwsLg7q6utzPaO3atbC3t4eWlhYqVqyI5cuXZ3CVc4/Cw5G7ubnlRR5ERESZSk1NxZo1azBx4kR8/PhRjPn5+WHNmjVKzo7ox8XExODFixdZrmdpaSkXe/fuXba2jYmJyVFu6Rk3bhzatm0LZ2fnDNeZPn06Bg4cCAAoVaqUzLI5c+Zg8+bNWLlyJWxtbXHu3Dn07t0bJiYmaNSoEaRSKSwsLLBr1y4UL14cFy9exKBBg1CqVCl07dpV3E/a9DhhYWEwMDDAjh07MGXKlFw7TwC4fv06unbtiqlTp6Jbt264ePEihgwZguLFi8Pd3R0A4OHhgZCQEGzfvh3m5ubYt28fWrZsiTt37qQ7b5xUKkWrVq0QGxuLzZs3w8bGBiEhIVBVVc32MYH/v8afPn2Cl5cXhg4diitXrojLBw4ciOnTp4vPfX19cfLkSfF5bGws3NzcsHTpUgiCgIULF6J169Z4+PChTOMJAFSuXFncdtiwYUhMTBSXPX78GC1btsTMmTOxfv16vHv3Dh4eHvDw8EBgYGCOr/3o0aPl7lHdsmULJk+ejICAAFSvXh03b97EwIEDoaurm6e1isKFU0RERKbLy5Qpk+NkiIiI0nPp0iV4eHjIfAuqr6+PqVOnZvhtN1FBY2BggNKlS2e5nomJSbqx7GxrYGCQo9y+d+7cORw7dgx37txBWFhYuuskJibC2NgYZmZm6S6bPXs2Tp48iXr16gEAypUrh//++w+rVq1Co0aNoK6ujmnTponbWFtb49KlS9i5c6dM4ZScnAwAYkuPoaFhrpzjtxYtWoSmTZvCx8cHAGBnZ4eQkBAsWLAA7u7uiIiIQGBgICIiImBubg4AGDVqFI4ePYrAwEDMnj1bbp8nT57E1atXERoaCjs7O/EaZPeYafT19WFmZgYjI6N0b6nR0dGR+Rno6enJLP/ll19knq9evRpGRkY4e/YsfvvtNzGemJgIbW1tcV/a2toyhdOcOXPQq1cvsbXI1tYWS5YsQaNGjbBixYocDdBz+vRpXLx4EQMGDMDp06fF+JQpU7Bw4UJ06tQJwNfXRkhICFatWpW/Cqe0JsE0aRPfcgJcIiLKbW/fvsW4cePkvq3s3bs35s+fL/cNNlFBNmLECIwYMSJH2x44cCCXs8ncuHHj4ObmBnt7+wwLp48fP2ZYqD169Ajx8fH49ddfZeJJSUmoXr26+HzZsmVYv349IiIi8OXLFyQlJcl12YqJiYGKigq0tbUzzPfQoUPQ09ODuro6ypQpg2HDhqFfv37i8jt37sgUFN9/ng0NDUX79u1lYvXr14efnx9SU1Nx584dpKamigVQmsTERBQvXjzdnIKDg2FhYSG3TXaPmdYyNXbsWEyaNAlfvnyBpaUlTpw4keF1SM+bN28wadIknDlzBm/fvkVqairi4+PlGks+fPiQaeF969Yt3L59G1u2bBFjgiBAKpUiPDwc9vb2MvmmSUxMTHeqCEEQMHLkSEyZMgUfPnwQ43FxcXj8+DH69+8vtmYCQEpKSp4Uzd9SuHC6efNmXuRBREQk49atW2jUqBGio6PFmIODAwICAuDi4qLEzIiKtn379uHmzZvYuXNnhutERkYiKSkJ1tbW6S7//PkzAODw4cNyLWWampoAgO3bt2PUqFFYuHAh6tWrB319fSxYsECmGxoAvHz5EqamplBRyfjW/SZNmmDFihVITk7GkSNHMGDAAFStWhW1atUCAFSoUEGm+Lxy5Qp69+6dyVWQPx9VVVVcv35dLGjSfN/CkyazQk8Ro0ePhru7O+Li4uDr64uuXbsiKChILo+MuLm54cOHD/D390fZsmWhqamJevXqISkpSWa9J0+eZPjzBL5egz/++ANeXl5yy77tkZaWb5qxY8em2/CyceNGxMXF4c8//8SsWbNkjgMAa9asQZ06dWS2ye4555TChVO1atXE/6empsLf3x/BwcGoWrUqvL29czU5IiIquipXrgxLS0tER0fD0NAQM2bMwODBg6GmpvCfLiLKJampqZg4cSI8PT1hYWGR4Xpnz56FtrY2nJyc0l1eqVIlaGpqIiIiAo0aNUp3nQsXLsDZ2Vlm5MzHjx/LrXft2jWZVqr06Orqonz58gAAe3t7zJ07F7du3RILJw0NDXE58LXw+5a9vT0uXLggl5+dnR1UVVVRvXp1pKam4u3bt9n+YsfBwQGRkZF48OBBuq1OWR0zTYkSJcTcx44di6pVqyI8PFzmfDJz4cIFLF++HK1btwYAPH/+HO/fv5dZJyEhAVevXkWfPn0y3E+NGjUQEhKS5XG/zRf42tXw20E4ACA+Ph4TJ05EQEAA1NXVZZaZmprC3NwcT548Qa9evbJzirnmh/76jBs3DmvXrsWvv/6KxYsXIyIiAkuXLs2t3IiIqAj5/PmzzDezampqCAgIwF9//YW5c+eiZMmSSsyOiICv9+VoaWlh/PjxGa7z+PFjzJ07F+3bt5f7QBwVFYWkpCTo6+tj1KhR8Pb2hlQqRYMGDRAdHY0LFy7AwMAAbm5usLW1xcaNG3Hs2DFYW1tj06ZNuHbtmtjq8fnzZ6xduxZbt27Fjh07Ms1bKpUiISFBbHH68OEDqlSpku3zHjlyJGrVqoUZM2agW7duuHTpEgICAsSR3Ozs7NCrVy+4urpi4cKFqF69Ot69e4dTp07BwcEh3a5ojRo1QsOGDdG5c2csWrQI5cuXx/379yGRSNCyZcssj5kmNjYWr1+/Rnx8PAICAqCvr5+t+93S2NraYtOmTXByckJMTAxGjx4t0xr2+fNncXCJBg0a4PXr1wCAL1++IDExUfxya+zYsahbty48PDwwYMAA6OrqIiQkBCdOnEBAQEC28wGArVu3ombNmhmOhjht2jR4eXnB0NAQLVu2RGJiIoKCgvDp06ccd3fNFuEH2NraCgcOHBAEQRCCgoIEc3PzH9ndTxEdHS0AEKKjo5WdChERCYKQlJQkLFy4UDAyMhJu3Lih7HSI8tyXL1+EkJAQ4cuXL8pORSFubm4CAGHOnDky8X379gnffqQsW7asACDDx+nTpwVBEASpVCr4+fkJFSpUENTV1QUTExOhRYsWwtmzZwVBEISEhATB3d1dMDQ0FIyMjITBgwcL48aNE6pVqyYIgiDs3btXqFSpkrBmzRqZfAIDAwVDQ0O5vAEIampqQvny5YWAgABx+ZQpU8R9pjl9+rQAQPj06ZMY2717t1CpUiVBXV1dKFOmjLBgwQKZbZKSkoTJkycLVlZWgrq6ulCqVCmhY8eOwu3btzO8ph8+fBD69u0rFC9eXNDS0hKqVKkiHDp0KNvH/PZaa2trC7Vq1RJOnTolLm/UqJEwbNgwmW2+P98bN24ITk5OgpaWlmBrayvs2rVLKFu2rLB48WJx/cx+nm5ubuK+rl69Kvz666+Cnp6eoKurKzg4OAizZs2SyTdtv2nc3NyE9u3by+QskUiEa9euZZizIAjCli1bBEdHR0FDQ0MoVqyY0LBhQ2Hv3r3pXufMfucUqQ0kgvC/MRxzwNDQEDdu3ICNjQ0SEhKgp6eHlJSUnO7up4iJiYGhoSGio6NzbWQZIiLKmdOnT4tD+AJAvXr18N9//2V6rwJRQZeQkIDw8HBYW1vnaKSx/M7KygpnzpyBlZWV3LIOHTpg+PDhaNy48U/Pi3Jm6tSpMv9+a//+/di/fz82bNjwU3NSVGa/c4rUBj/0l0kQBPGPW9rIekRERFmJjIxE9+7d8csvv4hFk0QiQdWqVWWGtyWigsfExCTDm/SLFSvGCaoLGD09vQwHuNDS0srzkezyE4VbnL4dHz4qKgoGBgZi8RQdHZ3vhyNnixMRkfIkJSVh8eLFmDFjhsxs8rVr10ZAQIB4ozZRYVbYW5yI8pvcanFSeHAIPz8/RTchIiLC8ePH4enpiQcPHoixEiVKYO7cuejbty+75xERUb6mcOGUl7PxEhFR4SSVSjFhwgSxaFJRUcHgwYMxffp0GBsbKzk7IuXgLQ5EP0du/a4pXDh9P4vw976d4IqIiAj4WigFBASgXr16cHZ2RkBAQJbzrhAVVmn3/yQlJeXaJKhElLG0yXx/dIJchQsnKysr8R6ntOotbWAIiUSS7+9xIiKivHfkyBGYmJjI3LNUt25d/Pfff3B2dhb/jhAVRWpqatDR0cG7d++grq7ObqpEeUgqleLdu3fQ0dH54QnUFd7axMQEGhoa6N+/P9q2bcsZ3ImISPTkyRMMHz4cBw8eRI0aNXD16lWZb/jq16+vxOyI8geJRIJSpUohPDwcz549U3Y6RIWeiooKypQp88Nf2ik8ql5KSgr27duH1atXIzQ0FG5ubhgwYIA4i3N+x1H1iIhy35cvXzB37lzMmzdPZjjx3bt3o3PnzkrMjCj/kkqlYhciIso7GhoaGbbsKlIb/NAEuE+ePMHq1auxatUq+Pr6on///jnd1U/DwomIKPcIgoADBw5g+PDhePr0qRgvVaoUfH190aNHD3bLIyKifOunTID75csXnD17FmfPnkXx4sXTnR2aiIgKr4cPH6J169bo0KGDWDSpqalh1KhRCAsLQ8+ePVk0ERFRoaHwDUrBwcFYvXo1du/ejcaNG2PGjBlo1qxZXuRGRET51Pr16zF48GCZbkZNmzbF0qVLYW9vr8TMiIiI8obChVONGjVgYWGBgQMHwtTUFCEhIQgJCRGXe3l55WqCRESU/9SoUQMpKSkAAAsLCyxatAhdunRhCxMRERVaCt/j9O1w5HI7k0jw5MmTXEksr/AeJyIixaWkpMiNojpixAhoaWlh4sSJ0NXVVVJmREREOffTBocoiFg4ERFlX2xsLKZPn45Tp07hypUrUFdXV3ZKREREueanDA6RlJSEsLAwsasGEREVHoIgYNu2bahYsSJ8fX1x8+ZNBAQEKDstIiIipVG4cIqPj0f//v2ho6ODypUrIyIiAgDg6emJuXPn5nqCRET0c929exdNmjRBz5498fLlSwCApqYmvygjIqIiTeHCafz48bh16xbOnDkDLS0tMd6sWTPs2LEjV5MjIqKfJzo6GsOHD4ejoyPOnj0rxtu2bYuQkBCMHj1aidkREREpl8Kj6u3fvx87duxA3bp1ZQaJqFy5Mh4/fpyryRERUd6TSqXYtGkTxowZg7dv34pxGxsb+Pv7o02bNkrMjoiIKH9QuHB69+4dSpYsKRePi4vjMLRERAXQkydPMGDAALErnra2NiZMmIBRo0bJ9CwgIiIqyhTuqufk5ITDhw+Lz9OKpbVr16JevXq5lxkREf0U5cuXF+fg69ixI0JDQzFp0iQWTURERN9QuMVp9uzZaNWqFUJCQpCSkgJ/f3+EhITg4sWLMn3iiYgo/5FKpdi2bRu6dOkCTU1NMT5lyhS0aNECzZs3V2J2RERE+ZfCLU4NGjRAcHAwUlJSULVqVRw/fhwlS5bEpUuXULNmzRwlsWzZMlhZWUFLSwt16tTB1atXs7Xd9u3bIZFI0KFDhxwdl4ioKLl27Rrq1q2L3r17Y9GiRTLLDAwMWDQRERFlQukT4O7YsQOurq5YuXIl6tSpAz8/P+zatQthYWHp3kuV5unTp2jQoAHKlSsHY2Nj7N+/P1vH4wS4RFTUvH//HhMmTMDatWuR9pavo6ODiIgIFC9eXMnZERERKU+eToDbqFEjbNy4EV++fMlxgt9atGgRBg4ciL59+6JSpUpYuXIldHR0sH79+gy3SU1NRa9evTBt2jSUK1cuV/IgIipsUlNTsWLFCtjZ2WHNmjVi0VSpUiUcOnSIRRMREZECFC6cqlevjlGjRsHMzAwDBw7E5cuXc3zwpKQkXL9+Hc2aNfv/hFRU0KxZM1y6dCnD7aZPn46SJUuif//+WR4jMTERMTExMg8iosLu0qVLqF27NoYMGYJPnz4BAPT19bFo0SIEBwejSZMmSs6QiIioYFG4cPLz88PLly8RGBiIt2/fomHDhqhUqRJ8fX3x5s0bhfb1/v17pKamwtTUVCZuamqK169fp7vNf//9h3Xr1mHNmjXZOsacOXNgaGgoPiwtLRXKkYiooBkyZAicnZ1x48YNMdanTx+EhYXB29sb6urqSsyOiIioYFK4cAIANTU1dOrUCX///TciIyPRs2dP+Pj4wNLSEh06dMC///6b23kCAGJjY9GnTx+sWbMGJUqUyNY248ePR3R0tPh4/vx5nuRGRJRfGBsbi/93cHDA+fPnsXHjRpQqVUqJWRERERVsCg9H/q2rV68iMDAQ27dvR8mSJeHu7o4XL17gt99+w5AhQ+Dr65vp9iVKlICqqqpcS9WbN29gZmYmt/7jx4/x9OlTtG3bVoxJpdKvJ6KmhrCwMNjY2Mhso6mpKTPkLhFRYSMIgswE5BMmTMDBgwcxcOBA/Pnnn1BT+6G3eiIiIkIOCqe3b99i06ZNCAwMxMOHD9G2bVts27YNLVq0EP9wu7u7o2XLllkWThoaGqhZsyZOnTolDikulUpx6tQpeHh4yK1fsWJF3LlzRyY2adIkxMbGwt/fn93wiKhIefXqFUaPHg0bGxtMmzZNjOvo6ODmzZtQUclRpwIiIiJKh8KFk4WFBWxsbNCvXz+4u7vDxMREbh0HBwfUqlUrW/sbMWIE3Nzc4OTkhNq1a8PPzw9xcXHo27cvAMDV1RWlS5fGnDlzoKWlhSpVqshsb2RkBABycSKiwio5ORlLly7F1KlTERsbC01NTbi6usq0uLNoIiIiyl0KF06nTp2Ci4tLpusYGBjg9OnT2dpft27d8O7dO0yePBmvX7+Go6Mjjh49Kg4YERERwQ8ARET/c/r0aXh4eCAkJESM6ejo4MGDB3JdlYmIiCj35HgC3Ldv3yIsLAwAUKFChUwnq81POAEuERVEkZGRGDlyJHbu3CnGJBIJBg4ciFmzZmV7wBwiIiL6f3k6AW7ayHalS5dGo0aN0KhRI5QuXRq9e/dGdHR0jpMmIiJ5SUlJmDdvHipWrChTNNWuXRtXr17FqlWrWDQRERH9BAoXTgMGDMCVK1dw6NAhREVFISoqCocOHUJQUBD++OOPvMiRiKjIWrVqFcaNG4e4uDgAX0cjXbt2LS5dugQnJyclZ0dERFR0KNxVT1dXF8eOHUODBg1k4ufPn0fLli3FP+75FbvqEVFBkpCQgCpVqiA8PByDBw/GjBkzUKxYMWWnRUREVCgoUhsoPDhE8eLFYWhoKBc3NDTkH3Mioh+QkJCACxcuoGnTpmJMS0sLf/31F3R1deHo6Ki85IiIiIo4hbvqTZo0CSNGjMDr16/F2OvXrzF69Gj4+PjkanJEREXF4cOHUaVKFbRs2RL379+XWVa/fn0WTUREREqmcFe96tWr49GjR0hMTESZMmUAfB0yXFNTE7a2tjLr3rhxI/cyzSXsqkdE+cnjx48xfPhwHDp0SIy1bNkS//zzjxKzIiIiKhrytKtehw4dcpoXERH9T3x8PObOnYv58+cjMTFRjDds2BDz589XYmZERESUnhzP41RQscWJiJRJEAT8/fffGD58OJ49eybGzc3N4evri+7du0MikSgxQyIioqIjT1uciIgoZ969e4c+ffrg2LFjYkxNTQ3e3t7w8fGBvr6+ErMjIiKizChcOBkbG2e6/OPHjzlOhoioMDMyMkJERIT4vGnTpli6dCns7e2VmBURERFlh8KFkyAIkEql8Pb2hrW1dV7kRERUKKmrqyMgIADu7u5YtGgROnfuzG55REREBYTC9zh9/PgRU6dORWBgIP78809MmjQp3Xmd8ive40REP0NoaCiGDx+O+fPno1q1ajLLEhMToampqaTMiIiIKI0itYHC8zgZGxtjyZIluH79Oh49eoTy5ctj6dKlSE1NzXHCRESFRWxsLEaPHg0HBwccP34cHh4e+P77KRZNREREBY/ChVMaOzs77Nu3D3v27MHGjRtRqVIl7N+/PxdTIyIqOARBwNatW1GhQgX4+voiJSUFABAZGYkXL14oOTsiIiL6UQrf49SpUye5WOnSpXH//n107tyZLU9EVOTcuXMHHh4eOHfunBjT1NTEuHHjMHbsWGhraysxOyIiIsoNChdOGd3P1KVLlx9OhoioIImKisLUqVMREBAg86VRu3btsHjxYpQrV06J2REREVFuUrhwCgwMzIs8iIgKnO7du8vMyWRjY4MlS5agdevWSsyKiIiI8kKO7nFKTk5GfHy8+P8bN24gNjY2VxMjIsrvfHx8AADa2tqYOXMm7t69y6KJiIiokFK4cDp69CiMjIxgamqK48ePw8nJCU5OTrCwsMCFCxfyIkciIqX79OkTHj16JBOrX78+li1bhtDQUEycOBFaWlpKyo6IiIjymsKF06RJk+Dl5YVFixahZ8+eqF+/PqKiotC1a1dMmjQpL3IkIlIaqVSKtWvXws7ODj179oRUKpVZPmTIEJQtW1ZJ2REREdHPovAEuDo6OggJCYGVlRU0NTVx7do1ODg44N69e3BxccHHjx/zKtdcwQlwiSi7goKCMHToUFy9elWMrV69GgMHDlRiVkRERJRb8nQCXA0NDXH0KFtbWxQrVgzA14IqOTk5B+kSEeUv79+/x6BBg1C7dm2Zoqlbt25o1aqVEjMjIiIiZVF4VL0KFSrg3r17sLGxwd27d8V4SEgIbG1tczU5IqKfKTU1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LFiwgJM5ExEREf0EeTKPExHlHj8/P6xdu1Z8XrlyZQQEBKBx48bKS4qIiIiIMlSghyMnKqjGjh2LUqVKQV9fH4sWLcLNmzdZNBERERHlY2xxIspjb968wbVr1/Dbb7+JMX19fezatQs2NjZZDr1PRERERMrHFieiPJKSkoIlS5agQoUK6Nq1K549eyazvH79+iyaiIiIiAoIFk5EeeDcuXOoUaMGhg0bhujoaHz58gU+Pj7KTouIiIiIcoiFE1EuevnyJXr37o1GjRrhzp07Yrx///7w9fVVYmZERERE9CN4jxNRLkhOTsaSJUswdepUfP78WYzXrFkTy5YtQ506dZSYHRERERH9KBZORD/o4cOHaN++PUJDQ8WYsbExZs+ejQEDBkBVVVWJ2RERERFRbmDhRPSDSpcujfj4eACARCLBoEGDMGvWLBQvXlzJmRERERFRbuE9TkQKEgRB5rmOjg4WL16MOnXq4OrVq1i5ciWLJiIiIqJChoUTkQKOHTuGatWq4eHDhzLxDh064OLFi3ByclJSZkRERESUl1g4EWXD06dP0bFjR7Rs2RJ37tzBsGHDZFqeJBIJVFT460RERERUWPGTHlEmEhISMGPGDNjb22P//v1iPCYmRmb0PCIiIiIq3Fg4EWXg0KFDqFy5MiZPnoyEhAQAgKmpKTZu3Ijz589DX19fyRkSERER0c/CwonoO48fP0bbtm3Rtm1bPHnyBACgqqoKb29vPHjwAH369IFEIlFylkRERET0M3E4cqJvCIKATp064fbt22KscePGCAgIQOXKlZWYGREREREpE1uciL4hkUgwb948AIC5uTm2bduGf//9l0UTERERURHHFicq0sLCwqCiogJbW1sx1rJlS2zYsAGdO3eGnp6eErMjIiIiovyCLU5UJH3+/Bnjxo1D1apV8eeff8pNauvm5saiiYiIiIhELJyoSBEEATt37oS9vT3mzZuH5ORk/Pvvv9i3b5+yUyMiIiKifIxd9ajICAkJgaenJ/79918xpqGhgdGjR6NFixZKzIyIiIiI8jsWTlToxcTEYNq0aViyZAlSUlLEeKtWreDv7y9zfxMRERERUXpYOFGhdvjwYQwYMACvX78WY1ZWVvD390fbtm05HxMR/V979x4WVbW/AfwdQC7KRYi4qCgqoB5RKExCMeikkphJN4lIUTH1AJFZeSMd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", "text/plain": [ "
    " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import time\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.metrics import roc_auc_score, f1_score, confusion_matrix, classification_report\n", "\n", "# Разделение данных на обучающую и тестовую выборки\n", "\n", "# X = data.drop(columns=['id', 'stroke']) # Признаки\n", "# y = data['stroke'] # Целевая переменная\n", "\n", "# # Преобразование категориальных признаков с помощью One-Hot Encoding\n", "# categorical_columns = ['gender', 'ever_married', 'work_type', 'Residence_type', 'smoking_status']\n", "# X = pd.get_dummies(X, columns=categorical_columns, drop_first=True)\n", "\n", "# # Заполнение пропущенных значений (например, медианой для числовых данных)\n", "# X.fillna(X.median(), inplace=True)\n", "\n", "# # Разделение данных на обучающую и тестовую выборки\n", "# # Обучающая выборка\n", "# X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)\n", "\n", "# # Тестовая и контрольная выборки\n", "# X_test, X_control, y_test, y_control = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42, stratify=y_temp)\n", "\n", "\n", "# Обучение модели\n", "model = RandomForestClassifier(random_state=42)\n", "\n", "# Начинаем отсчет времени\n", "start_time = time.time()\n", "model.fit(X_train, y_train)\n", "\n", "# Время обучения модели\n", "train_time = time.time() - start_time\n", "\n", "# Предсказания и оценка модели\n", "y_pred = model.predict(X_test)\n", "y_pred_proba = model.predict_proba(X_test)[:, 1] # Вероятности для ROC-AUC\n", "\n", "# Метрики\n", "roc_auc = roc_auc_score(y_test, y_pred_proba)\n", "f1 = f1_score(y_test, y_pred)\n", "conf_matrix = confusion_matrix(y_test, y_pred)\n", "class_report = classification_report(y_test, y_pred)\n", "\n", "# Вывод результатов\n", "print(f'Время обучения модели: {train_time:.2f} секунд')\n", "print(f'ROC-AUC: {roc_auc:.2f}')\n", "print(f'F1-Score: {f1:.2f}')\n", "print('Матрица ошибок:')\n", "print(conf_matrix)\n", "print('Отчет по классификации:')\n", "print(class_report)\n", "\n", "# Визуализация матрицы ошибок\n", "plt.figure(figsize=(7, 7))\n", "sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues', xticklabels=['Нет инсульта', 'Инсульт'], yticklabels=['Нет инсульта', 'Инсульт'])\n", "plt.title('Матрица ошибок')\n", "plt.xlabel('Предсказанный класс')\n", "plt.ylabel('Истинный класс')\n", "plt.show()\n", "\n", "\n", "plt.figure(figsize=(10, 6))\n", "plt.scatter(y_test, y_pred, alpha=0.5, color='blue', label='Прогнозы модели')\n", "plt.plot([0, 1], [0, 1], 'k--', lw=2, label='Идеальное совпадение')\n", "plt.xlabel('Фактический статус инсульта')\n", "plt.ylabel('Прогнозируемый статус инсульта')\n", "plt.title('Фактический статус инсульта по сравнению с прогнозируемым')\n", "plt.legend()\n", "plt.show()\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

    А ВОТ ТЕПЕЕЕЕЕЕЕЕЕЕЕРЬ я поправила недоразумения и вроде как модель проперло на выявление инсульта. Но, так как в данных ЛЮТЫЙ дисбаланс, то модель слаба на выявление инсульта все еще.

    " ] } ], "metadata": { "kernelspec": { "display_name": "venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.6" } }, "nbformat": 4, "nbformat_minor": 2 }