diff --git a/!kursach.ipynb b/!kursach.ipynb
new file mode 100644
index 0000000..d6c49fa
--- /dev/null
+++ b/!kursach.ipynb
@@ -0,0 +1,10495 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "2c1426ca",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "9085d8a1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.linear_model import LinearRegression\n",
+ "from sklearn.metrics import mean_squared_error\n",
+ "from sklearn.metrics import r2_score\n",
+ "from sklearn.metrics import mean_absolute_error\n",
+ "from sklearn.model_selection import GridSearchCV\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "from sklearn.metrics import roc_auc_score\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "from sklearn.manifold import TSNE\n",
+ "from sklearn.cluster import KMeans\n",
+ "from sklearn.decomposition import PCA\n",
+ "from sklearn.ensemble import RandomForestRegressor"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "c4697627",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#%matplotlib inline\n",
+ "%config InlineBackend.figure_format = 'svg'\n",
+ "plt.style.use('fivethirtyeight')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "475d292b",
+ "metadata": {},
+ "source": [
+ "# Загрузка данных"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "84f8f88d",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "train_df = pd.read_csv('kursach_dir/train.csv').set_index(['Id','DistrictId'])\n",
+ "test_df = pd.read_csv('kursach_dir/test.csv').set_index(['Id','DistrictId'])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "fe02de91",
+ "metadata": {},
+ "source": [
+ "Вывод информации о данных"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "40da78cb",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "colours = ['#000099', '#ffff00']\n",
+ "sns.heatmap(train_df.isnull(), cmap=sns.color_palette(colours))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "3d4aff40",
+ "metadata": {},
+ "source": [
+ "Процентная потеря данных и типы данных "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "a2ba185e",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Пропуск данных\n",
+ "\n",
+ "Rooms - 0% float64\n",
+ "Square - 0% float64\n",
+ "LifeSquare - 21% float64\n",
+ "KitchenSquare - 0% float64\n",
+ "Floor - 0% int64\n",
+ "HouseFloor - 0% float64\n",
+ "HouseYear - 0% int64\n",
+ "Ecology_1 - 0% float64\n",
+ "Ecology_2 - 0% object\n",
+ "Ecology_3 - 0% object\n",
+ "Social_1 - 0% int64\n",
+ "Social_2 - 0% int64\n",
+ "Social_3 - 0% int64\n",
+ "Healthcare_1 - 48% float64\n",
+ "Helthcare_2 - 0% int64\n",
+ "Shops_1 - 0% int64\n",
+ "Shops_2 - 0% object\n",
+ "Price - 0% float64\n"
+ ]
+ }
+ ],
+ "source": [
+ "print('Пропуск данных\\n')\n",
+ "for col in train_df.columns:\n",
+ " pct_missing = np.mean(train_df[col].isnull())\n",
+ " print('{:15} - {:3}% {}'.format(col, round(pct_missing*100), train_df[col].dtypes))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "6c8bc095",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Rooms \n",
+ " Square \n",
+ " LifeSquare \n",
+ " KitchenSquare \n",
+ " Floor \n",
+ " HouseFloor \n",
+ " HouseYear \n",
+ " Ecology_1 \n",
+ " Social_1 \n",
+ " Social_2 \n",
+ " Social_3 \n",
+ " Healthcare_1 \n",
+ " Helthcare_2 \n",
+ " Shops_1 \n",
+ " Price \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " count \n",
+ " 10000.000000 \n",
+ " 10000.000000 \n",
+ " 7887.000000 \n",
+ " 10000.000000 \n",
+ " 10000.000000 \n",
+ " 10000.000000 \n",
+ " 1.000000e+04 \n",
+ " 10000.000000 \n",
+ " 10000.000000 \n",
+ " 10000.000000 \n",
+ " 10000.000000 \n",
+ " 5202.000000 \n",
+ " 10000.000000 \n",
+ " 10000.000000 \n",
+ " 10000.000000 \n",
+ " \n",
+ " \n",
+ " mean \n",
+ " 1.890500 \n",
+ " 56.315775 \n",
+ " 37.199645 \n",
+ " 6.273300 \n",
+ " 8.526700 \n",
+ " 12.609400 \n",
+ " 3.990166e+03 \n",
+ " 0.118858 \n",
+ " 24.687000 \n",
+ " 5352.157400 \n",
+ " 8.039200 \n",
+ " 1142.904460 \n",
+ " 1.319500 \n",
+ " 4.231300 \n",
+ " 214138.857399 \n",
+ " \n",
+ " \n",
+ " std \n",
+ " 0.839512 \n",
+ " 21.058732 \n",
+ " 86.241209 \n",
+ " 28.560917 \n",
+ " 5.241148 \n",
+ " 6.775974 \n",
+ " 2.005003e+05 \n",
+ " 0.119025 \n",
+ " 17.532614 \n",
+ " 4006.799803 \n",
+ " 23.831875 \n",
+ " 1021.517264 \n",
+ " 1.493601 \n",
+ " 4.806341 \n",
+ " 92872.293865 \n",
+ " \n",
+ " \n",
+ " min \n",
+ " 0.000000 \n",
+ " 1.136859 \n",
+ " 0.370619 \n",
+ " 0.000000 \n",
+ " 1.000000 \n",
+ " 0.000000 \n",
+ " 1.910000e+03 \n",
+ " 0.000000 \n",
+ " 0.000000 \n",
+ " 168.000000 \n",
+ " 0.000000 \n",
+ " 0.000000 \n",
+ " 0.000000 \n",
+ " 0.000000 \n",
+ " 59174.778028 \n",
+ " \n",
+ " \n",
+ " 25% \n",
+ " 1.000000 \n",
+ " 41.774881 \n",
+ " 22.769832 \n",
+ " 1.000000 \n",
+ " 4.000000 \n",
+ " 9.000000 \n",
+ " 1.974000e+03 \n",
+ " 0.017647 \n",
+ " 6.000000 \n",
+ " 1564.000000 \n",
+ " 0.000000 \n",
+ " 350.000000 \n",
+ " 0.000000 \n",
+ " 1.000000 \n",
+ " 153872.633942 \n",
+ " \n",
+ " \n",
+ " 50% \n",
+ " 2.000000 \n",
+ " 52.513310 \n",
+ " 32.781260 \n",
+ " 6.000000 \n",
+ " 7.000000 \n",
+ " 13.000000 \n",
+ " 1.977000e+03 \n",
+ " 0.075424 \n",
+ " 25.000000 \n",
+ " 5285.000000 \n",
+ " 2.000000 \n",
+ " 900.000000 \n",
+ " 1.000000 \n",
+ " 3.000000 \n",
+ " 192269.644879 \n",
+ " \n",
+ " \n",
+ " 75% \n",
+ " 2.000000 \n",
+ " 65.900625 \n",
+ " 45.128803 \n",
+ " 9.000000 \n",
+ " 12.000000 \n",
+ " 17.000000 \n",
+ " 2.001000e+03 \n",
+ " 0.195781 \n",
+ " 36.000000 \n",
+ " 7227.000000 \n",
+ " 5.000000 \n",
+ " 1548.000000 \n",
+ " 2.000000 \n",
+ " 6.000000 \n",
+ " 249135.462171 \n",
+ " \n",
+ " \n",
+ " max \n",
+ " 19.000000 \n",
+ " 641.065193 \n",
+ " 7480.592129 \n",
+ " 2014.000000 \n",
+ " 42.000000 \n",
+ " 117.000000 \n",
+ " 2.005201e+07 \n",
+ " 0.521867 \n",
+ " 74.000000 \n",
+ " 19083.000000 \n",
+ " 141.000000 \n",
+ " 4849.000000 \n",
+ " 6.000000 \n",
+ " 23.000000 \n",
+ " 633233.466570 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Rooms Square LifeSquare KitchenSquare Floor \\\n",
+ "count 10000.000000 10000.000000 7887.000000 10000.000000 10000.000000 \n",
+ "mean 1.890500 56.315775 37.199645 6.273300 8.526700 \n",
+ "std 0.839512 21.058732 86.241209 28.560917 5.241148 \n",
+ "min 0.000000 1.136859 0.370619 0.000000 1.000000 \n",
+ "25% 1.000000 41.774881 22.769832 1.000000 4.000000 \n",
+ "50% 2.000000 52.513310 32.781260 6.000000 7.000000 \n",
+ "75% 2.000000 65.900625 45.128803 9.000000 12.000000 \n",
+ "max 19.000000 641.065193 7480.592129 2014.000000 42.000000 \n",
+ "\n",
+ " HouseFloor HouseYear Ecology_1 Social_1 Social_2 \\\n",
+ "count 10000.000000 1.000000e+04 10000.000000 10000.000000 10000.000000 \n",
+ "mean 12.609400 3.990166e+03 0.118858 24.687000 5352.157400 \n",
+ "std 6.775974 2.005003e+05 0.119025 17.532614 4006.799803 \n",
+ "min 0.000000 1.910000e+03 0.000000 0.000000 168.000000 \n",
+ "25% 9.000000 1.974000e+03 0.017647 6.000000 1564.000000 \n",
+ "50% 13.000000 1.977000e+03 0.075424 25.000000 5285.000000 \n",
+ "75% 17.000000 2.001000e+03 0.195781 36.000000 7227.000000 \n",
+ "max 117.000000 2.005201e+07 0.521867 74.000000 19083.000000 \n",
+ "\n",
+ " Social_3 Healthcare_1 Helthcare_2 Shops_1 Price \n",
+ "count 10000.000000 5202.000000 10000.000000 10000.000000 10000.000000 \n",
+ "mean 8.039200 1142.904460 1.319500 4.231300 214138.857399 \n",
+ "std 23.831875 1021.517264 1.493601 4.806341 92872.293865 \n",
+ "min 0.000000 0.000000 0.000000 0.000000 59174.778028 \n",
+ "25% 0.000000 350.000000 0.000000 1.000000 153872.633942 \n",
+ "50% 2.000000 900.000000 1.000000 3.000000 192269.644879 \n",
+ "75% 5.000000 1548.000000 2.000000 6.000000 249135.462171 \n",
+ "max 141.000000 4849.000000 6.000000 23.000000 633233.466570 "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "train_df.describe()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "cf2cefc6",
+ "metadata": {},
+ "source": [
+ "Номинативные переменные"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "344c8435",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "object_titel = train_df.select_dtypes(include='object').columns.tolist()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "6b9ab32f",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "B 0.9903\n",
+ "A 0.0097\n",
+ "Name: Ecology_2, dtype: float64\n",
+ "\n",
+ "B 0.9725\n",
+ "A 0.0275\n",
+ "Name: Ecology_3, dtype: float64\n",
+ "\n",
+ "B 0.9175\n",
+ "A 0.0825\n",
+ "Name: Shops_2, dtype: float64\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "for obj in object_titel:\n",
+ " print(train_df[obj].value_counts(normalize=True), end = '\\n\\n')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6bc37e56",
+ "metadata": {},
+ "source": [
+ "# Работа с данными"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "51d90268",
+ "metadata": {},
+ "source": [
+ "По параметру Healthcare_1 слишком большой процен утери данных, поэтому убираю его из выборки"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "be39737c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "train_df.drop (columns='Healthcare_1', axis= 1 , inplace= True )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c202d79b",
+ "metadata": {},
+ "source": [
+ "заполнение LifeSquare средним"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "5b757f89",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "train_df.loc[train_df['LifeSquare'].isnull(), 'LifeSquare'] = train_df['LifeSquare'].median()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b3539be9",
+ "metadata": {},
+ "source": [
+ "Устранение выбросов по LifeSquare, Rooms, Square, KitchenSquare"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "22b27ea8",
+ "metadata": {},
+ "source": [
+ "До устранения выбросов"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "90a9f85d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 2023-02-28T19:40:33.637692 \n",
+ " image/svg+xml \n",
+ " \n",
+ " \n",
+ " Matplotlib v3.7.0, https://matplotlib.org/ \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize = (10, 8))\n",
+ "\n",
+ "plt.subplot(221)\n",
+ "#train_df['LifeSquare'].hist()\n",
+ "sns.kdeplot(train_df['LifeSquare'], fill=True, legend=False)\n",
+ "plt.ylabel('count')\n",
+ "plt.xlabel('LifeSquare')\n",
+ "plt.title('среднее {:.4}'.format(train_df['LifeSquare'].median()), loc='left')\n",
+ "\n",
+ "plt.subplot(222)\n",
+ "#train_df['Rooms'].hist()\n",
+ "sns.kdeplot(train_df['Rooms'], fill=True, legend=False)\n",
+ "plt.ylabel('count')\n",
+ "plt.xlabel('Rooms')\n",
+ "plt.title('среднее {:.4}'.format(train_df['Rooms'].median()), loc='left')\n",
+ "\n",
+ "plt.subplot(223)\n",
+ "#train_df['Square'].hist()\n",
+ "sns.kdeplot(train_df['Square'], fill=True, legend=False)\n",
+ "plt.ylabel('count')\n",
+ "plt.xlabel('Square')\n",
+ "plt.title('среднее {:.4}'.format(train_df['Square'].median()), loc='left')\n",
+ "\n",
+ "plt.subplot(224)\n",
+ "#train_df['KitchenSquare'].hist()\n",
+ "sns.kdeplot(train_df['KitchenSquare'], fill=True, legend=False)\n",
+ "plt.ylabel('count')\n",
+ "plt.xlabel('KitchenSquare')\n",
+ "plt.title('среднее {:.4}'.format(train_df['KitchenSquare'].median()), loc='left')\n",
+ "\n",
+ "plt.subplots_adjust(wspace = 0.3, hspace = 0.3)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "6db869c3",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "train_df.loc[train_df['LifeSquare'] > 300, 'LifeSquare'] = train_df['LifeSquare'].median() \n",
+ "train_df.loc[~train_df['Rooms'].isin(range(1,6)), 'Rooms'] = train_df['Rooms'].median()\n",
+ "train_df.loc[train_df['Square'] > 500, 'Square'] = train_df['Square'].median()\n",
+ "train_df.loc[train_df['KitchenSquare'] > 60, 'KitchenSquare'] = train_df['KitchenSquare'].median()\n",
+ "train_df.loc[train_df['KitchenSquare'] < 2, 'KitchenSquare'] = train_df['KitchenSquare'].median()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "528a8ebb",
+ "metadata": {},
+ "source": [
+ "После устранения"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "8d4958cf",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 2023-02-28T19:40:43.799821 \n",
+ " image/svg+xml \n",
+ " \n",
+ " \n",
+ " Matplotlib v3.7.0, https://matplotlib.org/ \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize = (10, 8))\n",
+ "\n",
+ "plt.subplot(221)\n",
+ "#train_df['LifeSquare'].hist()\n",
+ "sns.kdeplot(train_df['LifeSquare'], fill=True, legend=False)\n",
+ "plt.ylabel('count')\n",
+ "plt.xlabel('LifeSquare')\n",
+ "plt.title('среднее {:.4}'.format(train_df['LifeSquare'].median()), loc='left')\n",
+ "\n",
+ "plt.subplot(222)\n",
+ "#train_df['Rooms'].hist()\n",
+ "sns.kdeplot(train_df['Rooms'], fill=True, legend=False)\n",
+ "plt.ylabel('count')\n",
+ "plt.xlabel('Rooms')\n",
+ "plt.title('среднее {:.4}'.format(train_df['Rooms'].median()), loc='left')\n",
+ "\n",
+ "plt.subplot(223)\n",
+ "#train_df['Square'].hist()\n",
+ "sns.kdeplot(train_df['Square'], fill=True, legend=False)\n",
+ "plt.ylabel('count')\n",
+ "plt.xlabel('Square')\n",
+ "plt.title('среднее {:.4}'.format(train_df['Square'].median()), loc='left')\n",
+ "\n",
+ "plt.subplot(224)\n",
+ "#train_df['KitchenSquare'].hist()\n",
+ "sns.kdeplot(train_df['KitchenSquare'], fill=True, legend=False)\n",
+ "plt.ylabel('count')\n",
+ "plt.xlabel('KitchenSquare')\n",
+ "plt.title('среднее {:.4}'.format(train_df['KitchenSquare'].median()), loc='left')\n",
+ "\n",
+ "plt.subplots_adjust(wspace = 0.3, hspace = 0.3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a71736bd",
+ "metadata": {},
+ "source": [
+ "Избавляюсь от нольэтажных домов, и домов из будущего"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "0ebe3090",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "train_df.loc[train_df['HouseFloor'] == 0, 'HouseFloor'] = train_df['HouseFloor'].median()\n",
+ "train_df.loc[train_df['HouseYear'] >2023, 'HouseYear'] = train_df['HouseYear'].median()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7649bd26",
+ "metadata": {},
+ "source": [
+ "Преобразую в бинарные призника"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "bc444cc0",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for obj in object_titel:\n",
+ " train_df[obj] = train_df[obj].replace({'A':0, 'B':1})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "750b1f05",
+ "metadata": {},
+ "source": [
+ "Избавляемя от случаев неправильного указания этажей и площадей"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "a8851004",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "train_df.loc[train_df['HouseFloor'] < train_df['Floor'], 'Floor'] = \\\n",
+ "train_df.loc[train_df['HouseFloor'] < train_df['Floor'], 'HouseFloor']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "609b46c3",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "train_df.loc[train_df['Square'] < (train_df['KitchenSquare'] + train_df['LifeSquare']), 'Square'] = \\\n",
+ "train_df.loc[train_df['Square'] < (train_df['KitchenSquare'] + train_df['LifeSquare']), 'KitchenSquare'] + \\\n",
+ "train_df.loc[train_df['Square'] < (train_df['KitchenSquare'] + train_df['LifeSquare']), 'LifeSquare']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "d85c604b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "Y_train = pd.DataFrame(train_df['Price'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "b43159db",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " Price \n",
+ " \n",
+ " \n",
+ " Id \n",
+ " DistrictId \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 14038 \n",
+ " 35 \n",
+ " 184966.930730 \n",
+ " \n",
+ " \n",
+ " 15053 \n",
+ " 41 \n",
+ " 300009.450063 \n",
+ " \n",
+ " \n",
+ " 4765 \n",
+ " 53 \n",
+ " 220925.908524 \n",
+ " \n",
+ " \n",
+ " 5809 \n",
+ " 58 \n",
+ " 175616.227217 \n",
+ " \n",
+ " \n",
+ " 10783 \n",
+ " 99 \n",
+ " 150226.531644 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Price\n",
+ "Id DistrictId \n",
+ "14038 35 184966.930730\n",
+ "15053 41 300009.450063\n",
+ "4765 53 220925.908524\n",
+ "5809 58 175616.227217\n",
+ "10783 99 150226.531644"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "Y_train.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "id": "ff3e49c6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x_train_df = pd.DataFrame(train_df.loc[:, train_df.columns != 'Price'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "id": "5d62cca8",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " Rooms \n",
+ " Square \n",
+ " LifeSquare \n",
+ " KitchenSquare \n",
+ " Floor \n",
+ " HouseFloor \n",
+ " HouseYear \n",
+ " Ecology_1 \n",
+ " Ecology_2 \n",
+ " Ecology_3 \n",
+ " Social_1 \n",
+ " Social_2 \n",
+ " Social_3 \n",
+ " Helthcare_2 \n",
+ " Shops_1 \n",
+ " Shops_2 \n",
+ " \n",
+ " \n",
+ " Id \n",
+ " DistrictId \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 14038 \n",
+ " 35 \n",
+ " 2.0 \n",
+ " 47.981561 \n",
+ " 29.442751 \n",
+ " 6.0 \n",
+ " 7 \n",
+ " 9.0 \n",
+ " 1969 \n",
+ " 0.089040 \n",
+ " 1 \n",
+ " 1 \n",
+ " 33 \n",
+ " 7976 \n",
+ " 5 \n",
+ " 0 \n",
+ " 11 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 15053 \n",
+ " 41 \n",
+ " 3.0 \n",
+ " 65.683640 \n",
+ " 40.049543 \n",
+ " 8.0 \n",
+ " 7 \n",
+ " 9.0 \n",
+ " 1978 \n",
+ " 0.000070 \n",
+ " 1 \n",
+ " 1 \n",
+ " 46 \n",
+ " 10309 \n",
+ " 1 \n",
+ " 1 \n",
+ " 16 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 4765 \n",
+ " 53 \n",
+ " 2.0 \n",
+ " 44.947953 \n",
+ " 29.197612 \n",
+ " 6.0 \n",
+ " 8 \n",
+ " 12.0 \n",
+ " 1968 \n",
+ " 0.049637 \n",
+ " 1 \n",
+ " 1 \n",
+ " 34 \n",
+ " 7759 \n",
+ " 0 \n",
+ " 1 \n",
+ " 3 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 5809 \n",
+ " 58 \n",
+ " 2.0 \n",
+ " 61.731512 \n",
+ " 52.731512 \n",
+ " 9.0 \n",
+ " 8 \n",
+ " 17.0 \n",
+ " 1977 \n",
+ " 0.437885 \n",
+ " 1 \n",
+ " 1 \n",
+ " 23 \n",
+ " 5735 \n",
+ " 3 \n",
+ " 0 \n",
+ " 5 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 10783 \n",
+ " 99 \n",
+ " 1.0 \n",
+ " 39.649192 \n",
+ " 23.776169 \n",
+ " 7.0 \n",
+ " 11 \n",
+ " 12.0 \n",
+ " 1976 \n",
+ " 0.012339 \n",
+ " 1 \n",
+ " 1 \n",
+ " 35 \n",
+ " 5776 \n",
+ " 1 \n",
+ " 2 \n",
+ " 4 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Rooms Square LifeSquare KitchenSquare Floor \\\n",
+ "Id DistrictId \n",
+ "14038 35 2.0 47.981561 29.442751 6.0 7 \n",
+ "15053 41 3.0 65.683640 40.049543 8.0 7 \n",
+ "4765 53 2.0 44.947953 29.197612 6.0 8 \n",
+ "5809 58 2.0 61.731512 52.731512 9.0 8 \n",
+ "10783 99 1.0 39.649192 23.776169 7.0 11 \n",
+ "\n",
+ " HouseFloor HouseYear Ecology_1 Ecology_2 Ecology_3 \\\n",
+ "Id DistrictId \n",
+ "14038 35 9.0 1969 0.089040 1 1 \n",
+ "15053 41 9.0 1978 0.000070 1 1 \n",
+ "4765 53 12.0 1968 0.049637 1 1 \n",
+ "5809 58 17.0 1977 0.437885 1 1 \n",
+ "10783 99 12.0 1976 0.012339 1 1 \n",
+ "\n",
+ " Social_1 Social_2 Social_3 Helthcare_2 Shops_1 Shops_2 \n",
+ "Id DistrictId \n",
+ "14038 35 33 7976 5 0 11 1 \n",
+ "15053 41 46 10309 1 1 16 1 \n",
+ "4765 53 34 7759 0 1 3 1 \n",
+ "5809 58 23 5735 3 0 5 1 \n",
+ "10783 99 35 5776 1 2 4 1 "
+ ]
+ },
+ "execution_count": 37,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "x_train_df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "id": "f0b07d39",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "scaler = StandardScaler()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "id": "93e5547e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_train_scaled = pd.DataFrame(scaler.fit_transform(x_train_df), columns=x_train_df.columns)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "id": "c82473ea",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_train, X_valid, y_train, y_valid = train_test_split(X_train_scaled, Y_train, train_size=0.70, random_state=42)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 66,
+ "id": "f8708c7a",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "model = RandomForestRegressor(n_estimators=500, max_depth=12, random_state=42)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 67,
+ "id": "b717feb0",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "RandomForestRegressor(max_depth=12, n_estimators=500, random_state=42) In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. "
+ ],
+ "text/plain": [
+ "RandomForestRegressor(max_depth=12, n_estimators=500, random_state=42)"
+ ]
+ },
+ "execution_count": 67,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "model.fit(X_train, y_train.values[:, 0])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 68,
+ "id": "f6b7d304",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "y_train_preds = model.predict(X_train)\n",
+ "y_valid_preds = model.predict(X_valid)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 69,
+ "id": "8e10fdde",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "check_valid = pd.DataFrame({\n",
+ " 'Тестовые данные valid': y_valid.values[:, 0], \n",
+ " 'Предсказание valid': y_valid_preds})\n",
+ "\n",
+ "check_train = pd.DataFrame({\n",
+ " 'Тестовые данные train': y_train.values[:, 0], \n",
+ " 'Предсказание train': y_train_preds})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 70,
+ "id": "aca3138f",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.7032729770876911"
+ ]
+ },
+ "execution_count": 70,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "r2_score(check_valid['Тестовые данные valid'], check_valid['Предсказание valid'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 71,
+ "id": "f23ebaf1",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.8985500168372904"
+ ]
+ },
+ "execution_count": 71,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "r2_score(check_train['Тестовые данные train'], check_train['Предсказание train'])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0ae392d3",
+ "metadata": {},
+ "source": [
+ "# Работа с тестовыми данными"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 72,
+ "id": "212b516a",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "test_df.drop (columns='Healthcare_1', axis= 1 , inplace= True )\n",
+ "test_df.loc[test_df['LifeSquare'].isnull(), 'LifeSquare'] = test_df['LifeSquare'].median()\n",
+ "test_df.loc[test_df['LifeSquare'] > 300, 'LifeSquare'] = test_df['LifeSquare'].median() \n",
+ "test_df.loc[~test_df['Rooms'].isin(range(1,6)), 'Rooms'] = test_df['Rooms'].median()\n",
+ "test_df.loc[test_df['Square'] > 500, 'Square'] = test_df['Square'].median()\n",
+ "test_df.loc[test_df['KitchenSquare'] > 60, 'KitchenSquare'] = test_df['KitchenSquare'].median()\n",
+ "test_df.loc[test_df['HouseFloor'] == 0, 'HouseFloor'] = test_df['HouseFloor'].median()\n",
+ "test_df.loc[test_df['HouseYear'] >2023, 'HouseYear'] = test_df['HouseYear'].median()\n",
+ "for obj in object_titel:\n",
+ " test_df[obj] = test_df[obj].replace({'A':0, 'B':1})\n",
+ "test_df.loc[test_df['HouseFloor'] < test_df['Floor'], 'Floor'] = \\\n",
+ "test_df.loc[test_df['HouseFloor'] < test_df['Floor'], 'HouseFloor']\n",
+ "test_df.loc[test_df['Square'] < (test_df['KitchenSquare'] + test_df['LifeSquare']), 'Square'] = \\\n",
+ "test_df.loc[test_df['Square'] < (test_df['KitchenSquare'] + test_df['LifeSquare']), 'KitchenSquare'] + \\\n",
+ "test_df.loc[test_df['Square'] < (test_df['KitchenSquare'] + test_df['LifeSquare']), 'LifeSquare']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 73,
+ "id": "ba5724aa",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " Rooms \n",
+ " Square \n",
+ " LifeSquare \n",
+ " KitchenSquare \n",
+ " Floor \n",
+ " HouseFloor \n",
+ " HouseYear \n",
+ " Ecology_1 \n",
+ " Ecology_2 \n",
+ " Ecology_3 \n",
+ " Social_1 \n",
+ " Social_2 \n",
+ " Social_3 \n",
+ " Helthcare_2 \n",
+ " Shops_1 \n",
+ " Shops_2 \n",
+ " \n",
+ " \n",
+ " Id \n",
+ " DistrictId \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 725 \n",
+ " 58 \n",
+ " 2.0 \n",
+ " 49.882643 \n",
+ " 33.432782 \n",
+ " 6.0 \n",
+ " 6 \n",
+ " 14.0 \n",
+ " 1972 \n",
+ " 0.310199 \n",
+ " 1 \n",
+ " 1 \n",
+ " 11 \n",
+ " 2748 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 15856 \n",
+ " 74 \n",
+ " 2.0 \n",
+ " 69.263183 \n",
+ " 32.925087 \n",
+ " 1.0 \n",
+ " 1 \n",
+ " 1.0 \n",
+ " 1977 \n",
+ " 0.075779 \n",
+ " 1 \n",
+ " 1 \n",
+ " 6 \n",
+ " 1437 \n",
+ " 3 \n",
+ " 0 \n",
+ " 2 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 5480 \n",
+ " 190 \n",
+ " 1.0 \n",
+ " 27.948246 \n",
+ " 15.948246 \n",
+ " 12.0 \n",
+ " 2 \n",
+ " 5.0 \n",
+ " 1909 \n",
+ " 0.000000 \n",
+ " 1 \n",
+ " 1 \n",
+ " 30 \n",
+ " 7538 \n",
+ " 87 \n",
+ " 5 \n",
+ " 5 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 15664 \n",
+ " 47 \n",
+ " 2.0 \n",
+ " 73.046609 \n",
+ " 51.940842 \n",
+ " 9.0 \n",
+ " 22 \n",
+ " 22.0 \n",
+ " 2007 \n",
+ " 0.101872 \n",
+ " 1 \n",
+ " 1 \n",
+ " 23 \n",
+ " 4583 \n",
+ " 3 \n",
+ " 3 \n",
+ " 3 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 14275 \n",
+ " 27 \n",
+ " 1.0 \n",
+ " 47.527111 \n",
+ " 43.387569 \n",
+ " 1.0 \n",
+ " 17 \n",
+ " 17.0 \n",
+ " 2017 \n",
+ " 0.072158 \n",
+ " 1 \n",
+ " 1 \n",
+ " 2 \n",
+ " 629 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 8180 \n",
+ " 11 \n",
+ " 3.0 \n",
+ " 67.133911 \n",
+ " 50.809797 \n",
+ " 6.0 \n",
+ " 5 \n",
+ " 9.0 \n",
+ " 1973 \n",
+ " 0.000170 \n",
+ " 1 \n",
+ " 1 \n",
+ " 36 \n",
+ " 5992 \n",
+ " 0 \n",
+ " 1 \n",
+ " 1 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 4695 \n",
+ " 1 \n",
+ " 1.0 \n",
+ " 40.198472 \n",
+ " 21.807061 \n",
+ " 10.0 \n",
+ " 12 \n",
+ " 17.0 \n",
+ " 2017 \n",
+ " 0.007122 \n",
+ " 1 \n",
+ " 1 \n",
+ " 1 \n",
+ " 264 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 5783 \n",
+ " 12 \n",
+ " 3.0 \n",
+ " 77.842178 \n",
+ " 48.282625 \n",
+ " 9.0 \n",
+ " 22 \n",
+ " 22.0 \n",
+ " 1989 \n",
+ " 0.090799 \n",
+ " 1 \n",
+ " 1 \n",
+ " 74 \n",
+ " 19083 \n",
+ " 2 \n",
+ " 5 \n",
+ " 15 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 4780 \n",
+ " 62 \n",
+ " 2.0 \n",
+ " 81.305222 \n",
+ " 32.925087 \n",
+ " 0.0 \n",
+ " 4 \n",
+ " 12.0 \n",
+ " 1977 \n",
+ " 0.072158 \n",
+ " 1 \n",
+ " 1 \n",
+ " 2 \n",
+ " 629 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 12504 \n",
+ " 30 \n",
+ " 2.0 \n",
+ " 60.555693 \n",
+ " 32.925087 \n",
+ " 1.0 \n",
+ " 10 \n",
+ " 17.0 \n",
+ " 1977 \n",
+ " 0.000078 \n",
+ " 1 \n",
+ " 1 \n",
+ " 22 \n",
+ " 6398 \n",
+ " 141 \n",
+ " 3 \n",
+ " 23 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
5000 rows × 16 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Rooms Square LifeSquare KitchenSquare Floor \\\n",
+ "Id DistrictId \n",
+ "725 58 2.0 49.882643 33.432782 6.0 6 \n",
+ "15856 74 2.0 69.263183 32.925087 1.0 1 \n",
+ "5480 190 1.0 27.948246 15.948246 12.0 2 \n",
+ "15664 47 2.0 73.046609 51.940842 9.0 22 \n",
+ "14275 27 1.0 47.527111 43.387569 1.0 17 \n",
+ "... ... ... ... ... ... \n",
+ "8180 11 3.0 67.133911 50.809797 6.0 5 \n",
+ "4695 1 1.0 40.198472 21.807061 10.0 12 \n",
+ "5783 12 3.0 77.842178 48.282625 9.0 22 \n",
+ "4780 62 2.0 81.305222 32.925087 0.0 4 \n",
+ "12504 30 2.0 60.555693 32.925087 1.0 10 \n",
+ "\n",
+ " HouseFloor HouseYear Ecology_1 Ecology_2 Ecology_3 \\\n",
+ "Id DistrictId \n",
+ "725 58 14.0 1972 0.310199 1 1 \n",
+ "15856 74 1.0 1977 0.075779 1 1 \n",
+ "5480 190 5.0 1909 0.000000 1 1 \n",
+ "15664 47 22.0 2007 0.101872 1 1 \n",
+ "14275 27 17.0 2017 0.072158 1 1 \n",
+ "... ... ... ... ... ... \n",
+ "8180 11 9.0 1973 0.000170 1 1 \n",
+ "4695 1 17.0 2017 0.007122 1 1 \n",
+ "5783 12 22.0 1989 0.090799 1 1 \n",
+ "4780 62 12.0 1977 0.072158 1 1 \n",
+ "12504 30 17.0 1977 0.000078 1 1 \n",
+ "\n",
+ " Social_1 Social_2 Social_3 Helthcare_2 Shops_1 Shops_2 \n",
+ "Id DistrictId \n",
+ "725 58 11 2748 1 0 0 1 \n",
+ "15856 74 6 1437 3 0 2 1 \n",
+ "5480 190 30 7538 87 5 5 1 \n",
+ "15664 47 23 4583 3 3 3 1 \n",
+ "14275 27 2 629 1 0 0 0 \n",
+ "... ... ... ... ... ... ... \n",
+ "8180 11 36 5992 0 1 1 1 \n",
+ "4695 1 1 264 0 0 1 1 \n",
+ "5783 12 74 19083 2 5 15 1 \n",
+ "4780 62 2 629 1 0 0 0 \n",
+ "12504 30 22 6398 141 3 23 1 \n",
+ "\n",
+ "[5000 rows x 16 columns]"
+ ]
+ },
+ "execution_count": 73,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 74,
+ "id": "3d36776b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_test = test_df\n",
+ "X_test_scaled = pd.DataFrame(scaler.transform(X_test), columns=X_test.columns)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "id": "aeff24bd",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "y_test_preds = pd.DataFrame({\n",
+ " 'Price': model.predict(X_test_scaled)})\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "id": "18e11f42",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Price \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 161932.138440 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 200353.954987 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 234677.142834 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 313861.119272 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 132044.356213 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 4995 \n",
+ " 246670.219320 \n",
+ " \n",
+ " \n",
+ " 4996 \n",
+ " 124478.913625 \n",
+ " \n",
+ " \n",
+ " 4997 \n",
+ " 322968.655279 \n",
+ " \n",
+ " \n",
+ " 4998 \n",
+ " 218297.686478 \n",
+ " \n",
+ " \n",
+ " 4999 \n",
+ " 262240.260899 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
5000 rows × 1 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Price\n",
+ "0 161932.138440\n",
+ "1 200353.954987\n",
+ "2 234677.142834\n",
+ "3 313861.119272\n",
+ "4 132044.356213\n",
+ "... ...\n",
+ "4995 246670.219320\n",
+ "4996 124478.913625\n",
+ "4997 322968.655279\n",
+ "4998 218297.686478\n",
+ "4999 262240.260899\n",
+ "\n",
+ "[5000 rows x 1 columns]"
+ ]
+ },
+ "execution_count": 76,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y_test_preds"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "id": "c523dcdd",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 2023-02-28T19:50:08.700927 \n",
+ " image/svg+xml \n",
+ " \n",
+ " \n",
+ " Matplotlib v3.7.0, https://matplotlib.org/ \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize = (10, 8))\n",
+ "\n",
+ "sns.kdeplot(train_df['Price'], fill=True)\n",
+ "sns.kdeplot(y_test_preds['Price'], fill=True)\n",
+ "plt.xlabel('price')\n",
+ "\n",
+ "plt.suptitle('Распределение цены')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 79,
+ "id": "b7790d5c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "y_test_preds.to_csv (r'!price_predict.csv', index= False )"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/!price_predict.csv b/!price_predict.csv
new file mode 100644
index 0000000..0ea94ff
--- /dev/null
+++ b/!price_predict.csv
@@ -0,0 +1,5001 @@
+Price
+161932.13843985458
+200353.95498658431
+234677.1428339539
+313861.11927230086
+132044.35621325116
+175941.2685891259
+177619.65389090558
+212430.59555349214
+296077.0892610105
+206154.99059919402
+270218.0850023872
+228113.57475133459
+154119.21612655328
+183098.18636606593
+106462.5044520809
+176541.65058798614
+379076.6168404083
+171013.40831354278
+228991.23772685183
+237917.26605923113
+177042.35698512584
+149783.74660771244
+230396.55699192782
+155418.49390522297
+164595.5943375933
+184077.93979739118
+275414.70982409886
+110121.28383349827
+191876.61195661192
+269147.99553899036
+182019.5825766808
+264361.4982474169
+184793.11369352674
+166303.51948071722
+178430.2148157798
+233848.1611418961
+218436.38573147517
+192408.57117449393
+184745.8414553816
+119135.49928657303
+189211.57952796543
+178050.6078849245
+201580.67835046738
+145610.13921104703
+180911.84694342336
+205196.26765568097
+199391.23895315957
+259519.83380889668
+251577.6415358834
+169892.722310284
+126995.57898618499
+384305.37037254364
+242396.17185320318
+183386.8879476936
+188123.24652130672
+136591.0548688166
+174601.5190650877
+369331.3145422908
+123629.56387323438
+113727.45288040704
+262495.2749334639
+333073.97960005456
+262589.93226922234
+345824.0729821921
+241807.0383442819
+195677.43094169628
+381109.40451527707
+299011.6816103636
+189429.15621572378
+234461.3177799155
+251971.96358140797
+385467.06401759165
+372200.48683451867
+204530.42374788638
+148818.26125527444
+178410.6093851074
+250324.4416926296
+284390.8392012164
+487917.995180977
+177125.79087793146
+205065.70678524717
+257843.88573070674
+174926.21367123534
+309972.0551876646
+285289.9676766001
+331939.3772662329
+244961.64766519042
+198799.81600703706
+178380.10294956938
+187340.04791295694
+192859.76103204332
+166303.36843500484
+224244.9169342798
+154858.8372416212
+215480.93821255298
+175764.33902974415
+254306.49101764715
+228791.0778466009
+129897.41837600552
+142869.7854726765
+174784.76783925126
+187308.711522883
+183340.44901096562
+189135.3581703298
+155049.39186822527
+176860.55678876865
+179459.65126601237
+188930.65355953257
+172834.24904490352
+124729.03440334948
+251569.18825546873
+127570.68279491593
+252090.28835019353
+142330.28426704876
+293559.34791565133
+222725.86418063586
+170308.02052086397
+90810.72434398225
+165912.0329792488
+244287.07967998862
+107268.17118302175
+126890.48860614227
+274171.09227628366
+105020.37800074105
+158183.61952787574
+227064.20286324678
+544056.2954931818
+172915.2965048849
+126855.14125630804
+175988.0971269846
+130771.12496301762
+169195.87711145892
+166454.86736569979
+175344.5572392339
+131073.77937687453
+265414.9698130745
+211350.58216916682
+213248.92174920408
+200110.90783444207
+348168.3115858119
+157502.1098002078
+265832.77053768304
+268842.95136892836
+174699.15721294354
+199545.03736588065
+461667.03328188
+162209.8463971532
+180671.85605076814
+179076.12906967627
+434738.5170507336
+193268.93426078674
+244172.64714490125
+156978.95976960086
+447253.28235437575
+173242.97768920998
+221358.95199171046
+179966.67215760544
+140723.78477570077
+163019.87955430127
+176724.08306776654
+101459.31465349403
+424063.7944627796
+367076.76043361815
+192089.38815574942
+99146.30317630539
+154905.61450201523
+189727.8155623348
+86749.92560543393
+180330.10205815133
+199011.061213473
+234899.5350881842
+122937.39467363631
+194424.32907584155
+195677.82999672534
+65796.64012392181
+242680.10126748378
+175139.37651081797
+241328.4599938918
+295490.9533304997
+280267.72289267054
+241628.0075386149
+174672.8472112564
+263156.3897347058
+319288.5697473729
+383895.73666395596
+163567.19634499206
+273602.0055738335
+150876.98843530996
+404103.84097113024
+179569.18073262376
+178814.49999788144
+168130.7315152286
+112042.83984392587
+174885.1792314497
+216181.2744392942
+402385.7761795567
+232333.97132012655
+201810.73890541994
+259652.377738483
+243636.692974568
+238196.6844211576
+299878.85816325876
+213037.93024128926
+379571.81117715104
+170731.93220343682
+256456.97947481123
+244907.16570278144
+181669.9736169708
+146211.56810552004
+221177.53540005724
+193085.35810401317
+138292.02456395957
+177869.38488390492
+179713.43417437217
+129297.84744504066
+296072.0426110308
+173216.08875320968
+179508.68176832332
+224648.70592338167
+180521.22608443946
+178913.04307119088
+186002.30743969005
+200034.76029437242
+189804.39266592593
+224796.4810322381
+451821.13029750943
+394927.2132558642
+189079.5228319103
+202291.48471169206
+278467.7494446594
+238578.50206255843
+160587.15399242178
+121276.28689842821
+215017.69758626717
+197582.46784298835
+221470.77803049996
+295281.28266162536
+243949.5802078967
+171235.6195949961
+261942.25766964295
+165228.88653462866
+121470.13592655922
+174754.89920090386
+202786.07933252267
+273897.4240631818
+184188.89857551892
+306903.81834100117
+419653.6994543211
+323384.47290726454
+212863.6359911249
+265753.5106159763
+273988.6280590443
+191079.73564000556
+284741.2319408315
+198530.5981557977
+409673.9981745778
+400661.5644806757
+254583.840143471
+154853.12544031022
+229734.2506123505
+391288.85851523746
+186731.49984337835
+201083.52795248342
+199212.06049466532
+262095.20519930965
+172730.46618906414
+178312.07125193908
+331810.6136635103
+189658.0045496186
+288977.57843059325
+405099.53094414587
+404089.1481989824
+197729.13423671311
+187554.14409933952
+223634.2864551509
+447244.77002487855
+201708.19667468368
+219003.32841609177
+473793.8007595184
+187978.35025352097
+237407.19372899688
+320083.30930170417
+132471.79500213108
+211446.67895042078
+127054.81701773906
+193299.15740004907
+218333.91741007063
+249402.96298653778
+185422.4525008475
+256002.05659809217
+201576.5067193776
+159867.3503272236
+149320.2656571095
+140857.2652496584
+257006.7650470637
+185315.96389892808
+189653.51225897582
+67640.00282690214
+239721.75324199197
+170524.8414361239
+199079.90873412674
+147825.18622245087
+206276.63499195428
+179529.14962636546
+314418.39626710064
+228500.70955633564
+214513.19179943932
+229848.48773689877
+231986.41654862204
+122546.92193689203
+178863.00419800816
+219822.09190141846
+173602.42226325447
+217733.02466391737
+182503.50013895964
+184743.94604732454
+181195.42447300526
+475077.9248544271
+182446.54004792043
+86344.82332164269
+126847.27161818171
+287981.6320662595
+212488.9223802515
+175063.40160202968
+185109.20278204326
+133706.79241410294
+203723.27564159385
+157570.3184841645
+137498.73216231572
+241538.86274563085
+153480.86294772784
+275973.62453275616
+224552.20252105224
+179246.05929100513
+181136.35932404464
+218638.66355428487
+203904.87378738294
+84954.82721853207
+187496.37641501977
+200227.360041426
+151549.61906911185
+216806.34191290734
+389666.6536256551
+212734.30440650688
+175520.7504493741
+325894.4893876567
+154651.36968021316
+147211.9222311231
+212662.92663513756
+134449.0839360874
+164715.34467055099
+178693.3644278335
+137089.33871637934
+184242.60974632934
+222699.99872519114
+196665.35968851426
+181088.4256566278
+166969.24843063863
+218270.3867906355
+202765.95902582383
+153694.2768725655
+347454.08558184543
+178091.0129589631
+261028.47825953286
+173632.3494726706
+132664.35160917934
+74403.14512943514
+188663.5526491199
+266083.77329084394
+196217.46294582327
+159166.609824734
+150603.27681480872
+169082.2144481007
+163564.1213605476
+395560.96278079826
+234713.43695406054
+237706.4738806432
+212006.88225237082
+152756.5591806355
+190221.0596141449
+131503.9641794093
+179539.86313776224
+220464.77482297295
+176682.87321905102
+147319.1056005344
+400928.74987288646
+154155.15510618134
+247242.96235173446
+169621.66530857567
+232310.84416407184
+284585.54847595876
+172542.4613701902
+161485.03130888744
+135592.21001235506
+260872.25398345056
+304914.4385683101
+198995.6301826393
+160625.23799806868
+153143.4697108974
+321530.55534943944
+380602.0998061983
+341818.12822852004
+238978.57801823862
+237464.38608052826
+169134.3238819575
+180434.99025172344
+190002.14103243116
+170498.00719337887
+146067.01545053395
+396316.60040724
+181554.5819587722
+129217.09216124528
+211574.38076481444
+184017.7237750813
+227742.40391881097
+200049.946029783
+179103.86012239504
+143881.52282855063
+295530.01498355676
+286366.13877079636
+253632.16005540235
+218270.62320903034
+123254.47519801301
+353730.1699158085
+190952.92490103564
+169252.41256665616
+145562.50005902126
+174620.15764573234
+223149.65557695748
+338547.0057655211
+158644.05694915328
+211017.2677238034
+271994.39689014386
+158815.2165436466
+179614.60695379073
+132048.04803307314
+249742.8757423443
+189015.71598313304
+198386.4255666622
+219444.57376891474
+234551.58862077867
+165630.2647431263
+278428.93145018903
+100721.68673934996
+295098.3687403971
+317186.18409561954
+187268.35700794135
+124031.4211249376
+269421.35786269396
+205090.4210706494
+195557.4798333393
+163895.56805327948
+327237.13802187354
+178777.57077853705
+164121.69953074018
+176255.55066180634
+218091.34139109892
+190332.422363279
+261848.68427648672
+214678.87794518028
+281824.4284497958
+277135.54941022384
+145201.81169831633
+164044.50078131983
+231266.46471407588
+142840.6462338514
+389932.184652191
+274841.94679375953
+148437.15098541704
+243756.06672823138
+183406.15141318255
+298473.4874447095
+181122.37803900233
+175472.35743941064
+437315.8041905266
+200612.2385425309
+243252.0059144595
+213345.352227957
+212423.0363455815
+264264.8490429036
+207549.2743878215
+227352.25330700423
+156167.55590975768
+139357.0903538975
+99653.29373243696
+256327.06440465897
+180416.11872424098
+212905.56895308662
+196937.44261591596
+279107.3563768698
+132951.70016893788
+173336.34321025354
+259003.30352453038
+190506.97351146545
+201056.98026859175
+317577.0579313303
+365649.8975750776
+74165.18756478274
+225378.0773745679
+425419.3201251431
+234186.5715340764
+214369.7998142836
+289294.6853948189
+253917.89000124045
+202720.56431513416
+304965.9079806556
+204770.96333145638
+241331.54427889583
+186376.01087304784
+264088.8933084098
+243033.46576703683
+188182.07548150083
+116453.90589694638
+211333.88974301246
+466944.4931128143
+246311.38561912454
+261930.02473502926
+304855.09976290364
+170141.15741051015
+171758.54680173172
+179461.56532155033
+98663.96357088667
+348736.17751384486
+415183.34454374434
+315639.83757344185
+194815.65048661627
+206376.69568274144
+228415.19799746785
+411127.46326459653
+157740.17855139065
+158441.80057544852
+167063.6513063385
+150527.7585292089
+142555.79861969466
+277780.64650106773
+202534.65928895073
+153139.1362288873
+250167.57251615723
+172176.53106130174
+130432.85230865687
+187313.04333015584
+175785.03191832997
+474546.59226190794
+101005.99844377181
+190645.1383795209
+121735.18002172596
+173529.9212480755
+146790.08713952568
+423498.4078013321
+167747.33269986848
+304530.00090430287
+210524.93319068916
+147631.97360529494
+362622.98121632193
+180946.22296369815
+234380.2764999031
+185487.19111663167
+131091.62609396302
+171262.278471305
+214826.73731555344
+197425.28089630243
+184328.52998289833
+135254.90019993932
+517171.20368548046
+212632.75421102915
+144086.5736116208
+191215.16965138336
+181079.079701792
+145397.26700165565
+492426.17011665204
+91308.70409248563
+358556.0499720733
+153523.40323183764
+354435.86303336354
+154306.14281385374
+343365.9055849898
+174747.99589599625
+228501.7051019446
+264918.2361939227
+118950.89565133033
+184774.7504600217
+164436.08567007625
+324147.01361952454
+146278.81698414576
+381045.26464293577
+233304.20262791833
+300088.6157632992
+180982.09422797017
+232211.80818164864
+199860.0584565313
+168414.88318451052
+230057.83914150225
+181076.23383606455
+202178.23271162555
+209949.3338073423
+197737.28816312377
+193828.96369103037
+243518.01565799562
+179951.27198764138
+183648.0026044508
+259961.92059744202
+300957.65896339325
+172097.08107686148
+123851.07955298579
+198018.2950456392
+120287.53410914043
+193352.39409227006
+237717.8581421242
+363742.84324807266
+155162.50068996687
+221580.53666783727
+187444.58756512078
+201787.1559576207
+167570.9551900851
+196479.3973472977
+179533.57974009466
+159777.77233609502
+225547.85568152674
+214280.5707693581
+329584.5373770138
+220068.67443070267
+222550.99065323896
+262026.41634830667
+477133.60407571436
+157660.9360509834
+184807.27695920452
+154951.0217653855
+131882.6104550564
+143126.11943267513
+253042.98369575667
+167507.87754766422
+198710.73396162307
+92256.74638357104
+178218.39506458535
+176913.0359550618
+228129.05437210642
+153261.52206835593
+381762.5286619973
+123092.16410764398
+215803.34055187946
+154766.66566980793
+131489.18114231882
+157417.19818429687
+230205.19789850002
+133343.2903074691
+160488.56638021767
+157054.6693974026
+370938.05162869324
+140394.75069999875
+183759.86338597472
+132878.38714950698
+169961.3162360179
+143832.5775360621
+234278.46618579526
+246873.13067378278
+173244.6987646645
+174871.1407318021
+100411.63741509448
+231036.50509626762
+129968.6204055118
+149272.9026583808
+272542.94389578234
+229605.36523640883
+103301.32038893945
+321380.23789139144
+146799.53760494327
+189285.37630041418
+295021.5138668741
+133453.3135200729
+178704.1391323754
+180127.03802135974
+259918.4533171644
+206346.92130157986
+225393.47980107364
+171677.83717777728
+110394.64882060568
+416278.87858926714
+178356.11689889667
+145140.18479292968
+265381.2939178033
+361290.8409113221
+189142.59697043124
+204850.0736877599
+146558.29662165648
+171793.94845751402
+214441.55149691764
+188547.72321173936
+180401.75748135592
+177420.3829696015
+205275.99552415631
+447963.82558776817
+246434.6430968885
+151888.56504285106
+201023.31807853314
+132192.91797896905
+208883.3033416188
+193476.75533553245
+158576.46440554428
+128441.29556133933
+120500.6377717639
+240974.4062026675
+151816.52351555106
+294832.06678319507
+223540.8108531911
+187028.87574775025
+176844.5914110995
+201894.48870288132
+267583.66633096454
+151036.30676807757
+352710.9650831986
+304869.34862065583
+183219.1085090604
+334081.6734284861
+117569.78481111025
+220099.99069135383
+65767.74610839687
+175052.66497696843
+215775.97686821525
+327751.8838964215
+323049.43279084505
+500519.68354424724
+154938.88561221192
+160657.70636273932
+119661.08706713206
+197537.8476583951
+483186.66906123195
+179151.55267456887
+153877.99085532496
+422820.85462784074
+179589.38480084357
+103110.56535738507
+242122.82633944156
+189681.98518777115
+211844.55664501688
+202023.9301303771
+211240.61281343087
+122969.50903167302
+170411.40036771298
+180539.7473658884
+166751.39169205964
+370598.6495984454
+197858.47939501776
+239683.12973210955
+190470.2282915452
+222643.24086169107
+380919.7970000182
+314988.6202387072
+203087.17086251703
+227435.14053751968
+202919.60298316594
+438398.9434375153
+154200.8298948424
+343281.36438403645
+118149.94837242576
+294844.8258401977
+133705.5469336533
+166785.8970776768
+194480.08438196636
+313965.04925196985
+165464.88173018862
+142004.36625046056
+380343.40986882756
+293107.17035626416
+244598.6147727653
+355464.8000456879
+197656.3192427629
+198569.9227833843
+127440.06578460043
+357213.6753980473
+195403.90952833436
+346843.7758647289
+321681.9325224671
+285664.40114286117
+179130.84013489235
+268121.85410910373
+217023.24842112683
+147639.640752933
+249885.26112163957
+288739.3101123652
+178320.82991350157
+174318.75419219077
+127222.46842374706
+226850.3422556779
+208200.62876507125
+156756.0638130754
+155675.4521638092
+200827.023656487
+240341.5975761427
+190633.26166858885
+219204.79169158128
+197992.14449511626
+328002.4883315021
+162129.55191702975
+180764.8193598822
+224806.16053928775
+88921.17112295529
+190863.37668590812
+196065.67555801498
+230547.99570930385
+281900.48824438645
+174195.06081365893
+228629.75116907895
+175283.1445243951
+206862.62850495017
+186305.37109172298
+224874.36291845268
+274198.22013759904
+194592.4092675016
+129962.16793409525
+214268.08169161226
+228533.0658527601
+198581.69998762658
+180072.26658870355
+229043.1784406807
+188781.30559289438
+181529.836943017
+167631.62864869717
+207369.190652427
+116636.13115405518
+168924.7810055939
+168730.57207839028
+177423.03738778448
+81140.05784518787
+162665.61301442786
+189408.51367562189
+129616.90816249806
+196877.15276286443
+198204.1593434876
+128554.02969572204
+156810.51547783043
+421397.38263134897
+188803.39554182935
+165276.7949463211
+172991.97739482526
+138365.09794526958
+408390.2324915224
+461435.42926433944
+116877.59998061202
+200497.59736227614
+333919.999710829
+165480.2919519919
+207929.96649426586
+251959.31326983665
+182843.52788087365
+143301.8702933991
+186669.240421113
+188860.29165945464
+204038.3041327448
+121618.04673767496
+168070.58236565796
+176715.30438709128
+258333.3518887889
+228223.43762850994
+144219.3434919652
+198720.19352898592
+394956.28960895224
+106129.84816588768
+260501.86708790957
+214832.60594121102
+173881.2894596666
+179063.96054898947
+380710.5519362361
+261014.9559892772
+210033.35349854903
+91556.31897764752
+306042.84331444313
+181448.50162288378
+154693.43973742242
+215351.46939943815
+172245.4526129654
+177442.96352754327
+168316.78523841425
+173773.96221001193
+328753.85985460866
+178161.41751310957
+135338.5359048219
+259748.41808279624
+276374.2946767146
+301774.17573121755
+335530.48444945266
+265489.29562550946
+210426.83408818394
+207893.84078911872
+200123.24981599158
+390552.2771323913
+142946.06685728542
+259829.3685453382
+227478.25523045144
+264794.29547697795
+179931.36456886918
+253021.40501847083
+210597.76870018197
+242465.77663898317
+330648.6134435722
+179149.78481528527
+180141.7450152217
+153529.56956117784
+205582.14421432224
+437695.1912131186
+397244.2288645283
+189316.11573258514
+242650.9495736908
+139615.69580209456
+186865.9469140552
+304331.40494905197
+156407.7958861709
+174703.42465863022
+188588.8422054357
+146615.50091183005
+167366.6464516793
+188010.32155172166
+261115.7765134639
+174550.61331563318
+251482.86916636268
+316409.1960373911
+221922.84209228208
+370094.9696970094
+170705.26773492328
+117462.9669711471
+157386.73418356062
+222867.32082667173
+90978.91132732801
+324573.0247153831
+221638.18098879163
+313544.48041672516
+203520.55694114536
+332465.3571797959
+404990.6425685537
+178275.11412064178
+192844.0638936967
+226005.76991252342
+81639.89658925855
+180384.74015026924
+128606.25116387937
+192912.6657910385
+186265.33050751314
+191474.2382681953
+222677.8874926326
+174488.06262351526
+114378.8217701255
+319478.7706408286
+220996.526382291
+175228.57881927615
+187349.13649291376
+329619.44267354195
+237527.35857189388
+462195.28106133454
+176708.78890832927
+205955.77561620844
+124596.17750665646
+263233.85382192687
+192305.39940526144
+358458.3167068627
+332833.9745065398
+212492.51576773552
+228662.38397693489
+163343.83820771312
+196550.38568726956
+194996.0699494512
+285961.9163825545
+154594.2852621947
+343489.3355403862
+106545.744033644
+230764.2177363482
+189131.3084140514
+153538.1216188206
+240924.604276886
+307953.3966472535
+409971.05336323334
+211848.15780689416
+178668.93321282268
+488071.1808841289
+346687.7622748963
+94418.62582540627
+127931.24278187493
+276024.1848722975
+126946.0142862244
+130146.47612996504
+183200.09526438208
+146673.62568969675
+130618.6857684528
+273948.0283711998
+256356.69400845535
+222069.65351597415
+167843.47714096442
+161944.56262249968
+219355.34166096317
+195505.18988682027
+153838.76254120044
+461302.83244536316
+202487.45646546202
+168447.17991502475
+178288.33086613182
+149604.3368171928
+155956.11740669137
+200265.77478948038
+213237.53519638954
+263021.7244401149
+256686.94598199654
+195469.44329843696
+229520.36892800897
+358543.82493852463
+172604.25666569843
+177272.71664443382
+147531.1367971774
+183482.99543114981
+174030.7309914857
+145450.00571598703
+336918.71071908413
+176368.7491227803
+302084.4231533337
+137527.63591710728
+158102.36707075842
+155324.37511652344
+153900.04158664815
+197009.16435629298
+135558.5431113533
+411284.7213995035
+144238.36915801564
+238103.0396679928
+174728.5158345318
+513613.309871187
+151331.1542634822
+99883.89225316688
+182569.1898082316
+242915.33373934205
+175705.61101178423
+384212.23492624564
+242206.0669242055
+300743.53926824045
+423497.65238626214
+231138.31644311396
+224760.58962327012
+179597.42682157256
+175095.61696054085
+205079.27154336963
+262015.57614132168
+339735.3034105704
+129458.6078658592
+373436.2823212175
+497944.6458415067
+173248.75342002857
+111275.357037187
+306787.74817567266
+175370.42887354273
+186594.5120968107
+188721.1691705173
+166149.48820533193
+196809.36253060855
+176453.80958759296
+227339.9209290891
+233044.82114012487
+156517.67172706462
+227742.3659862451
+276858.52266773395
+212810.26890031304
+206558.7359412631
+239815.67240273755
+170846.27441224796
+188446.5649322296
+178298.58263248377
+257661.80997686155
+162319.78483154427
+415193.62059536175
+204351.39008694244
+156178.2080426634
+157493.26214694596
+150861.83489253
+223775.11630000247
+200271.2266705568
+220358.95520745483
+199178.37632748188
+144781.23797545314
+124031.4211249376
+180169.5855155753
+282193.72109060746
+307439.87857751414
+252411.4048117717
+71303.36994476266
+204711.69653744163
+191529.48769034544
+162736.60851985923
+331527.8555861286
+172048.94761497073
+114402.91117625091
+221122.7609208533
+164994.5734917084
+399739.8064818462
+257621.3155732908
+258364.4640735854
+239383.92527280323
+172849.54287778246
+189308.0870472462
+194443.40577611557
+209664.28871493117
+168672.18393718914
+109822.69550453877
+149051.72090725947
+236178.12575974755
+177731.23966473836
+193549.8583784745
+253420.16501441118
+326806.988192991
+217081.07442115268
+370016.7664250526
+110084.28453793464
+209835.5664834948
+179586.06440658233
+216622.52762715434
+183421.46184528415
+187382.0106358233
+210859.32304557113
+177786.4011070365
+179522.39365610437
+176654.84180330497
+294766.05614083126
+192292.10360472984
+200426.77529426492
+204059.83993563527
+141746.23407028452
+206697.2080321265
+266924.75985362596
+299513.2164698088
+264676.1648507396
+233561.79713631357
+165215.71612549096
+179249.84247615494
+182444.57520212352
+500993.7969569166
+106077.3057272675
+277136.9384700659
+246902.145442748
+417860.2075821557
+183490.52379636467
+272910.7387834956
+322329.76750694215
+183337.18020169815
+241084.26299995318
+194108.05532169645
+180122.05937962077
+507179.6143462527
+64670.66879527495
+146302.08223185322
+253416.3885537944
+227315.98959151265
+209544.68513552187
+210956.29206607045
+237832.8842865225
+181875.07849869333
+140365.36388862107
+201580.44304482575
+169058.87605128865
+236351.9352762222
+252103.628756721
+367208.119045245
+224491.3789982726
+407719.68718505657
+191602.63930539877
+175645.24045246086
+127574.01292474629
+261730.06525444146
+253936.5908758717
+172868.13241313686
+259783.24266132835
+100415.90570917094
+114716.86750616485
+286705.6090172401
+152585.49319125587
+297253.7529233363
+126562.74948428382
+196528.7030104978
+319286.7741226255
+167458.9191233988
+248781.79518211004
+204131.48362887258
+197386.84353497386
+210559.94608091534
+255356.9143731909
+317932.1500305755
+440150.25592643494
+155558.84134181056
+197099.11334452327
+173973.09016880605
+231143.23455876985
+111196.57957284198
+191504.93950615948
+194748.9576445454
+241345.40497728178
+132549.27271200862
+202789.979814441
+178600.8632899173
+178418.17169854406
+157317.00392348936
+234987.42283947728
+139769.21371664008
+132936.5912088935
+141686.03466312203
+520650.0314730067
+212643.6699884582
+122155.43349509616
+244814.0961946146
+124974.53136187162
+419302.0907725263
+151900.80453423984
+155522.83772097362
+83778.7035519073
+256173.58826691445
+135499.91760769096
+203630.98224284887
+322586.4241453505
+446640.05426469236
+166736.1515388498
+176477.04274145397
+231778.06904643818
+146472.3408683322
+124265.22473326793
+153263.87567598588
+198023.06231686228
+264316.7404452
+233106.79836721977
+216698.21830317474
+174782.1936998455
+269796.1728877571
+181160.99701352496
+130938.48935969376
+211280.0060068793
+172766.72000732488
+175829.95572688218
+439750.66865131736
+162520.31269013762
+190613.076954893
+131593.68945943643
+178397.28233551024
+275226.612943958
+175869.76509010766
+193059.40682188995
+243514.21301594947
+132535.41067021427
+132000.46510298218
+397892.12805065216
+192667.04895265427
+284292.8427611736
+156337.70908966963
+117218.21670140016
+181983.38865737844
+127257.4334238866
+187400.31876383393
+317934.8614043004
+232401.12199876766
+117064.1708902374
+179955.33474485652
+136212.94762851964
+177873.19680308749
+132522.30541717238
+193147.6673978852
+267573.19501989917
+303474.3503365777
+130531.66094534144
+232924.79989063196
+198965.4813822013
+184889.5632683974
+309269.34380490286
+168977.0445383645
+315583.18644235516
+419958.41750216176
+140581.14854489735
+497085.6724885199
+313422.79172344296
+203367.5507621738
+262856.0577383203
+170769.92885819
+368947.57700842916
+198733.13891076276
+165351.2384266499
+385261.057293742
+91677.42977535739
+143592.03318225977
+169171.65868575874
+185953.73522501113
+160398.75830515588
+432440.5552259123
+155891.81371280988
+182059.2374064167
+171612.23502170187
+290200.0330440106
+237188.3397866185
+236905.3979705782
+187501.75730770695
+171666.52321714396
+204828.28946451933
+488460.7347539689
+178622.9672846855
+180170.54193599464
+196079.73596928624
+154492.18016726314
+230984.828929157
+233169.3262122146
+284845.26319376304
+169055.2447734456
+204437.48816305058
+117795.15807923561
+236506.96045403206
+126913.42318297837
+284527.57757734274
+249893.12396523607
+258292.53841256714
+251907.9876424014
+320290.06691344175
+175791.6623439032
+301244.4414561042
+193432.3056087071
+164425.7202730809
+131460.54734337787
+242951.77815909393
+331179.8588357893
+381541.7768610974
+181080.82127897514
+201746.68897693744
+211178.55644870808
+144993.84228894836
+232415.74411898275
+191447.82339714083
+236001.00262697073
+164458.64543599752
+175145.1140697777
+132474.98421513525
+270447.7710900672
+287479.9807575277
+178861.19759370992
+199617.40509966516
+187188.31094889823
+371049.8615082459
+169119.91542211198
+144554.83945223957
+205609.74775422184
+301317.9050196375
+186955.56727768775
+130113.7232569859
+192155.69343056565
+117100.3133112393
+129665.18069207903
+246100.1276603321
+158261.3833266883
+202241.39393334644
+176410.6981047596
+190331.0838160534
+111820.45943631663
+206897.50092917078
+131409.530343423
+263776.6214452475
+348832.78302560735
+230987.08954709236
+273512.74259802036
+220318.76293079962
+182846.25691449677
+212805.14282056433
+182242.5696804047
+168851.0217988929
+133313.33312944497
+154697.0924756041
+203373.10659885636
+183099.83830771863
+406530.19267204223
+271223.77806323173
+166887.88927027403
+128155.99887839626
+330643.265158014
+146058.26842969938
+117317.53810858916
+194947.83932480632
+175571.47446185598
+193710.15731516722
+265857.2071993133
+228013.64223772165
+162008.63774456247
+187437.2522561923
+304750.9500078618
+242101.21080967065
+274310.72086174967
+200787.37580314412
+202621.7881533731
+140997.33925892581
+285218.2395329188
+252213.41242136588
+253789.68811956138
+445859.7592585173
+163087.66274582897
+263940.637521526
+263049.71842859057
+239825.3646896271
+224903.18060992492
+140160.2597980643
+245283.14559514794
+402469.2079897052
+267444.15751151345
+325348.8615695392
+151000.24892656863
+235212.37377392288
+256050.45585751178
+245530.66140866495
+312791.89177221264
+145565.95343871549
+262311.363700989
+197713.61255399644
+176356.13832961643
+242883.74487195106
+152411.90604003266
+153673.98393846359
+167107.2318570227
+156282.33247632487
+134929.55585861925
+190557.89998945122
+192193.24665211077
+173323.97755860994
+407177.2381527251
+156711.03528535212
+189002.35002733395
+253564.98732574115
+200628.8523407239
+418949.06719174696
+143536.53587645348
+160608.47954810885
+235627.0654294815
+177807.33348863554
+182941.84186843294
+131014.6503171281
+277791.81747508707
+256332.59683008993
+315529.9628721943
+170935.90559993038
+248310.90488533993
+192049.8024231684
+264178.1349540732
+187474.02746042903
+198293.90341931477
+169214.76741257223
+99965.9678403899
+74159.50908394257
+359820.91792824137
+177718.1288702388
+226752.9425330859
+130903.82299331356
+292194.52252206375
+145795.438981964
+338250.3072193026
+200728.64220890426
+425743.72011238243
+171676.96939397973
+111448.26023212235
+215217.51530460094
+162044.8947917789
+312062.40443194145
+215048.49569774047
+197960.957960801
+175979.27777349917
+200277.24369880647
+339773.08176804555
+147480.25409838455
+281571.0706657967
+192828.37087979694
+193323.4584234291
+140309.6267475564
+208594.24309288373
+230182.39586857855
+197969.4121009786
+150479.07061941444
+142890.728665505
+344314.70480960474
+227760.23774848878
+107650.32689237368
+436144.01784893376
+156314.46250420413
+159277.58054071374
+183388.82530748183
+270526.3890858655
+393788.5625250115
+228154.92273551234
+128484.63014382658
+204453.12559595934
+161451.37617317622
+213545.2793926812
+370391.4354898529
+288853.8234696616
+238226.71529662257
+194348.61443965568
+258264.16693290145
+219279.37589223843
+400705.8857722
+178605.2303949194
+236168.51378285672
+209013.0674256935
+92785.49628933196
+155564.60032864206
+160205.8232666754
+199208.1619969726
+185214.9155613764
+286638.3413151851
+269140.83063182293
+227224.8617753001
+363249.8068904744
+233401.80127309743
+208207.82254799077
+232248.02500567393
+311439.24019229936
+208484.6359417487
+127434.62443182334
+165050.45985225227
+162295.54487335222
+171754.88615569373
+191260.91325384815
+156277.3824622739
+193179.16178522163
+177590.0693002398
+248236.41898269585
+170965.5414844892
+239106.19770824214
+257352.5422764084
+269337.12935871154
+177584.57796295686
+150112.6075296349
+156546.35357444952
+216607.13260537473
+139617.35638886894
+154823.32619371513
+157618.61274595078
+179014.09243925312
+380003.25827377697
+179700.29353876814
+394655.20755458873
+157961.4522863656
+295066.1630270055
+380447.6852471012
+174526.13609504024
+219036.10086378732
+153235.1179111407
+189995.77958219365
+319596.64259586204
+178535.0291122029
+272885.0998681466
+347438.08586498693
+187498.277467766
+110436.73295545348
+166477.60727077586
+98401.5389703272
+164219.70321927857
+260657.9040458178
+413036.222705436
+183826.8040920598
+231484.79642853243
+167616.04747585437
+103453.69886626267
+214626.52537963126
+316413.16865383467
+111048.62575998149
+245249.93924680943
+196380.1048409694
+166604.03457213164
+173959.7685680899
+207565.86915644654
+223641.52276830975
+223954.86277977607
+199667.76064136665
+198608.80354509727
+272429.06786074705
+174837.05454102054
+275515.64333674975
+329369.0332276265
+210679.87642177346
+273515.0841183053
+139395.0208135468
+181503.35053107524
+229556.6235483198
+119041.75341445385
+135651.73150547114
+183259.10942478766
+189717.19696526925
+311125.4734412172
+179638.9760434867
+392090.48771724035
+199729.0705992412
+178700.3922628635
+277248.46010907565
+261225.46076250775
+231040.27508885454
+182513.3387857928
+253117.8437654053
+331211.84907050035
+365003.2640257565
+196087.5601412243
+194562.3961221881
+177893.71549566253
+153950.48595808374
+178375.18687580826
+179854.08751742967
+211453.65708498465
+236304.8212569001
+122912.01446164
+193519.95152593212
+329175.6166952787
+237104.62768257761
+169769.0739556636
+203173.32165824925
+208777.5056215433
+111118.56331214534
+174641.22191425491
+282811.5309084123
+192247.52220404032
+233632.89999914967
+209431.1634864598
+317736.38804236666
+202733.9800935823
+418676.06484047306
+147395.74757817123
+260220.70653771414
+197872.35879207985
+208542.5719508968
+332807.97897999553
+221898.61507907516
+384840.48565401643
+180276.65395675992
+174744.7282081094
+260418.32171751643
+400197.83207551716
+283505.8758758025
+177374.22041263035
+142414.4515693653
+195416.32199838746
+176831.5267867046
+240031.16435277203
+167297.51933347367
+154324.78283223085
+175588.1253479159
+166606.20680231918
+237734.92742081822
+388687.13970657607
+180335.94651225387
+342884.5795990565
+238388.9497161157
+228589.3876961424
+213669.53440182467
+254193.02189276408
+155094.7560466638
+468161.29757576203
+225639.35178945283
+398547.3593584166
+179560.5903143464
+282310.5765858791
+425005.96418719937
+131055.82957377723
+119824.64034579284
+164155.83293326723
+301831.37382978684
+167048.41712440853
+111482.4764274171
+130982.62136242764
+149788.39266848154
+207552.1986823199
+133688.45553236493
+278596.2528455784
+273819.03388767113
+186669.04311858636
+219253.2478767158
+193182.25252991365
+192204.75006279684
+334680.8353796352
+173687.34435171736
+182829.63165001804
+202238.28771588733
+192569.6313258385
+194062.87597846636
+208117.0276784277
+217707.0994401457
+167695.41352732334
+207984.38266201966
+179211.46050281238
+456158.9140792327
+183881.84194757591
+399972.65307727206
+257579.43875683055
+177784.80172984058
+155093.29709462886
+185199.90756172303
+316267.14910188987
+247368.6790232478
+280169.2624117285
+203835.73927797755
+327086.68317061366
+370147.2449845562
+146060.93733420878
+243927.8387066546
+183425.69279788242
+177612.07021623506
+490463.16025267035
+170498.01192851376
+186332.07481212832
+352246.43631831015
+291970.81235829124
+226759.70116761656
+125838.0466068746
+177894.5974506552
+150651.97700898044
+142578.75523068671
+304780.25274029095
+316551.77879467624
+194838.45264113875
+246292.64852226846
+181228.7837634893
+172011.72473968397
+174396.28933816368
+142770.9713545624
+175523.14375081897
+169728.9691168631
+265807.59211936913
+181565.55688346922
+199339.37507154245
+202850.0966220675
+228070.0196466191
+321327.1161059257
+171721.947730222
+201374.06114067897
+176091.84743645185
+110821.04444161244
+280983.9225775386
+213078.75649585947
+91032.10813487186
+341753.1131692918
+298102.59181769646
+370514.2507664658
+137824.5925675558
+327277.4259546022
+170343.1702264454
+168547.8853987167
+179824.68035698312
+279356.0972133571
+145099.6761972631
+264276.5450913994
+414820.0538787517
+189206.31382364949
+184344.0104159349
+132556.12221243282
+193729.63423417247
+226841.082994567
+267854.40375611576
+262450.5746493507
+164320.67425579956
+180188.2218262813
+243447.634509749
+180023.3278602068
+191335.44832609236
+187262.48207692552
+190674.59912360428
+227647.20554840568
+154423.9313775927
+226948.95396600605
+202611.72968638162
+200637.06134382903
+190449.36817480568
+182612.15691725502
+340001.85849586973
+301709.8401029563
+182184.79230087748
+251666.02289562422
+132003.29468159098
+198199.6074434431
+212590.89685726102
+209500.59001500742
+314095.270277034
+127222.46842374706
+127188.55450892869
+195224.9516551967
+257056.7951659733
+154646.58314517085
+180118.94593265653
+470792.45535807544
+186455.9681518973
+214540.7749621772
+267710.83005617344
+265806.6482379385
+66934.02912154798
+244366.30837557695
+314704.0054204172
+181959.75985301664
+238863.4241377801
+361124.0711147607
+321772.53704240406
+174859.8022009131
+188235.1918254377
+136481.72154119945
+218327.79008401535
+173783.61137339668
+215374.18745414735
+128388.4105534477
+191259.5011446419
+196368.95343669158
+189253.30829972736
+255727.95211299602
+235568.43345536635
+166467.95923409957
+190174.15471807012
+167175.17625917922
+203640.33972147614
+153795.37464747077
+225172.98162734683
+226524.51943446638
+375960.1369242079
+420895.8903010286
+268496.45328956033
+66163.84289922523
+358458.27286002046
+209986.5141578405
+202280.18361746302
+164563.0777307143
+126931.06066095241
+199318.1654052334
+127387.45455341347
+82291.89858062562
+429245.0960823033
+126641.66134120522
+294055.5950063315
+186693.05617422314
+201533.51194410605
+128066.79831678615
+367257.362868325
+169148.56911916236
+293333.535279871
+198715.81818794872
+175644.83501849597
+179531.13057806127
+210101.7477292141
+256528.40500698294
+172799.10186323794
+185202.584489495
+199188.795910925
+110212.1908653167
+450439.101209949
+100414.45045656254
+407290.56008745095
+219490.00029540202
+166209.4175143197
+206166.42622330197
+257990.40276224393
+283215.8774235244
+300121.8700664749
+171032.2124190406
+237069.93152284803
+247655.3065823812
+161606.79098223514
+180870.09914455155
+130184.59435228296
+232551.9501469792
+189493.40406410737
+180923.05485985556
+235194.84565151212
+462163.6644920627
+203475.26951991516
+126948.3515888085
+195512.98799035753
+178861.66694300438
+258119.92608029663
+171515.3092108054
+197255.52995451997
+389382.8018817527
+235782.89809270648
+235358.10283437124
+201213.98989458865
+342248.4326687395
+154458.48586657443
+304855.0560646703
+123373.43754829382
+175834.9223923672
+235271.01921861814
+181471.28673298983
+183590.6256783682
+168656.353146617
+259206.65514176968
+359172.01006697054
+180353.63554362362
+292956.21114197397
+86573.21760244963
+341144.99732536
+154226.49782034804
+147288.2515598982
+264404.96992321603
+175922.107632412
+216681.20614023434
+265532.7295025041
+254104.5039671786
+190975.72255213317
+319803.7966991164
+222306.89034547002
+270787.5784887401
+286713.24401826836
+197450.34056432114
+189991.42430524097
+259474.9233333864
+192996.04619922413
+169069.6845603552
+177118.69850712572
+349895.3864191972
+149492.30327050085
+272605.8054736557
+358956.4413032581
+198924.19129173795
+152463.02745517105
+181424.0591657846
+234185.17088942337
+195094.35260786698
+149880.2456620207
+154353.35468886033
+295066.74230370973
+148147.6021962448
+153364.48764608434
+292312.67302283674
+207363.6587699298
+166739.26138148006
+343992.84154851973
+256614.13665671766
+190196.6005793567
+173957.71227291384
+253397.57956061413
+164249.40542163915
+252728.3117241703
+200842.43458416138
+189307.51638135518
+179056.78813937207
+192947.24084636624
+181762.83671160167
+333383.80545031116
+126793.4577021125
+235019.754948493
+98277.52024231917
+176773.66515788774
+180330.94096451544
+270595.4675088732
+107010.84754292526
+227400.5390926954
+146325.54377153018
+209722.72433905638
+249119.96160600078
+195815.2173813684
+473551.2034028091
+200006.03506400753
+125041.66324610011
+212908.748280587
+139120.92488669272
+261459.19859019393
+179026.8660162239
+186105.29919041187
+201594.68329561234
+191304.1300421018
+127222.46842374706
+395508.55070457817
+136890.15681334378
+337601.60436279397
+181206.14977123513
+217161.49950526928
+189420.24066298665
+193566.66390162858
+144327.70577537778
+153708.5608870479
+85437.01176546898
+431908.74573311623
+230087.8344778839
+168362.61898246725
+184804.30445650013
+176446.99720103046
+246551.19373959405
+186773.03076025023
+228956.5523206872
+199739.8687697893
+356276.94456462056
+385127.93871900963
+145505.07027014895
+265668.7011119258
+165095.93299134832
+207297.8608747238
+188072.1912917713
+144369.08226349752
+198084.469368208
+203822.8135529248
+267688.2047365703
+157817.61559860987
+252213.5547378668
+73940.04641119503
+236458.97068886805
+155822.16971057584
+219474.55220087996
+326037.22001781233
+123937.77581102833
+208180.60328698374
+219092.4928733476
+300325.5694639987
+268630.01716077287
+134689.9315830892
+236268.16831284307
+225897.0785339391
+194028.20664909494
+261549.18983300097
+192228.32390626878
+261575.40016967178
+254721.8938477237
+392190.1320229987
+135508.21894958935
+289505.82248650334
+184256.7290476552
+240856.99584606948
+173263.13825685735
+138276.09957052112
+180253.64170664732
+160188.50516072055
+97497.75824670082
+288082.9324438632
+243686.81184735365
+214306.69262554962
+433868.0325937241
+169035.77285487205
+221162.1117836021
+193433.71071416765
+260044.9919334374
+229177.49727334589
+357144.6846843564
+190367.54922217148
+247636.22179505054
+216342.6681113502
+193092.16751800894
+113648.31034211657
+180923.51130392659
+405645.0598897116
+115901.40169074801
+170190.6713222565
+228970.03063967678
+66815.54556065335
+342826.3213742458
+211202.91801962943
+198080.17757973657
+232911.8428940271
+160557.5160732105
+144779.91419520642
+167324.58399852086
+423352.1318924857
+160897.79353743378
+271202.8541907217
+215178.5299476083
+282850.5056222616
+194924.80975623088
+203659.7147456755
+160898.595931819
+157066.4520268424
+190615.4919917467
+176045.42887956667
+197260.73525106785
+186264.8214516722
+216818.8197729915
+331085.9775391974
+255608.4262087944
+133885.38341602552
+274633.1413712477
+100548.97920542404
+172872.40520553922
+251569.18825546873
+111401.74779084463
+228582.17758928592
+350499.56674839364
+166323.24645274447
+262874.75727633585
+330262.4809701815
+301354.4688908862
+178924.90472257358
+180914.74915128772
+417081.0730766427
+190566.82412660983
+223995.14433084542
+193464.29081582272
+196122.71502378013
+163878.91359517066
+182529.88582786132
+281157.3853180624
+177735.80461750922
+164939.70302927887
+189965.720528009
+274301.12604091875
+262381.59436223604
+460946.4390391151
+150329.1537272536
+282275.33465839026
+301445.51726457296
+302638.6390797869
+386530.379687604
+317671.33577431063
+240752.42164300324
+242716.8864035405
+238404.79153817563
+127069.59037779049
+203120.9442147228
+190777.75637099007
+221347.34302540787
+220532.02819356302
+207146.11457522557
+264037.94517676067
+198509.46563837427
+157190.73397855644
+245262.06985413062
+109776.81155083167
+145135.0102645534
+222395.63899608224
+173094.01390364382
+204399.69377315763
+152238.23941655213
+89468.69583460667
+413965.2128957062
+131181.74935730154
+236618.19139315072
+315180.7188239107
+246231.51097096378
+227084.31548305092
+540246.9593437591
+201925.75844137828
+300121.77144050616
+195897.7184082972
+216148.4780136804
+174559.4900244809
+291444.8068820084
+315424.2023593866
+201750.15743513516
+159827.29283876668
+134871.97091695358
+222882.3544571907
+214149.9201832919
+228086.92830573578
+233614.42508917168
+227490.60277451837
+125538.18109968814
+266932.08541933354
+178427.47660351382
+115528.07662771591
+200523.90282704754
+141509.22546927328
+390536.0053371405
+171781.66257409944
+206726.82783497742
+369729.7513415995
+241528.01014310535
+218942.25530388925
+235076.9818021423
+141909.09410013352
+188843.8356009286
+215581.30125280394
+179023.32352186806
+192608.60806904253
+262584.8460343919
+200076.27367081709
+152660.40164299964
+375367.2977097241
+118412.36760412634
+276857.40685671265
+134159.01621429465
+161016.1830376367
+389021.31415804336
+115702.86479053546
+174455.96025297302
+199869.5202004104
+302030.39021363016
+167891.63437321672
+149984.15015231367
+178369.94281446913
+164555.59272692655
+208623.49412461877
+202128.6061463301
+210496.18383446056
+248850.1111253837
+126811.5091271018
+324685.6194964965
+180528.78654802238
+429083.6735659143
+196947.92244910746
+254670.5834311322
+172429.3907429968
+196201.01040378472
+315316.9793680883
+150756.15894138292
+132608.37600324693
+323854.86306379345
+184925.5134850842
+284474.89963114297
+186454.83292690365
+367740.5026785117
+297486.4083640257
+148317.8844089725
+185126.43888069523
+179852.47807001875
+205609.67968182362
+193216.0065380121
+223277.80352183504
+181045.80633996468
+180906.73407676403
+180012.9180531181
+187121.297392239
+275919.8228452206
+408563.88909225
+304061.6448918515
+112092.11586020133
+207454.0523363044
+251177.82186737613
+392586.5209846208
+256804.90968563082
+193081.5183782047
+174717.1264558092
+70468.81705868038
+192460.98446576612
+224331.46163255483
+304552.03120446444
+463305.6960474775
+135933.80638663578
+165036.5835533006
+191457.1905912171
+262666.8602569976
+377791.0804173816
+270176.8966196352
+190226.14866196812
+221918.09905579334
+222420.54300181332
+175850.80078724283
+162992.0577128562
+141234.67719606042
+179463.2408851637
+239966.37195050227
+235214.01342443598
+282801.2574504304
+122594.08326133848
+123598.19028234182
+274580.1009471091
+201657.49880673323
+126855.14125630804
+214645.42868592928
+190581.31322062918
+235041.34347589474
+244195.31302638198
+238142.8220421116
+179620.15750003554
+108164.5594450886
+203495.2275434282
+195815.2173813684
+257277.5833343981
+215854.66002693234
+172549.9228332806
+204832.71487277598
+319017.7035628827
+241496.5931172284
+202932.13321688716
+202117.83216526374
+188211.90116542394
+262238.4479034816
+252985.94001432369
+162636.46044271844
+441740.2965234314
+186983.67541420413
+326686.1629705698
+262971.86161517847
+315700.2777510478
+201078.4858019427
+266803.78806263785
+128423.71292756406
+442366.34487161355
+160424.50038615667
+160210.05305882002
+122380.20676287176
+207838.0244841956
+181114.69200593777
+121558.69818273821
+243000.33048624775
+151505.18595908856
+158023.44282798318
+382745.80361700634
+181529.86133409906
+260887.64317724333
+189633.48153695892
+361681.69004205364
+224402.84433967
+179521.3130710327
+165703.3185061944
+193877.2766411179
+180283.00783483576
+304135.2640680353
+323938.7892328567
+323590.33871575
+336813.68197878916
+366202.7882133027
+181116.4311168595
+143596.34127577813
+157513.79597787865
+157408.0014554147
+222041.94248464456
+378845.94142564194
+263562.9100788972
+216121.24063177194
+346071.9678041303
+307052.72999698133
+227456.93818075277
+323490.8354181959
+304768.212533815
+131624.74044375616
+184162.80347990163
+104504.79369800272
+287041.026524409
+396842.26118576236
+306790.4015788572
+249114.41105732086
+178675.8668796671
+179326.83285090778
+239158.28203975045
+234889.62409772386
+182140.22928704877
+285923.20332139585
+240042.97865835964
+201249.89283243605
+179378.2041858911
+296643.30769070477
+196465.52041797418
+230514.26030737048
+211213.14339521906
+221159.62283376453
+200704.01283875504
+195503.84251313767
+450558.11751806684
+104650.64083385553
+179181.5007506591
+189938.69335214738
+153086.67242312242
+392584.0394636119
+329469.2744596251
+190129.56917477425
+141076.2508881627
+156851.87925353297
+155519.78749476554
+171047.86898244565
+111137.7024018485
+215489.71624818558
+215064.5920957277
+153892.99119270965
+157932.38267307117
+227694.64403931054
+150457.22899465062
+292351.28589136247
+152275.60419573824
+117178.57611459444
+250370.5691260814
+244435.03600331428
+129435.33672080692
+163144.8153759645
+180966.84878623317
+411549.3726602179
+164761.0064637955
+261131.13139098533
+136245.21754038232
+225077.1414270692
+175807.2368772406
+198687.94523903038
+113078.94951799398
+166689.4313281611
+178121.04851011955
+122388.99117690716
+197137.1014163484
+173776.51226730048
+321287.48461336375
+113515.77348959987
+408161.7637069964
+129051.8271373205
+201216.05236971084
+316004.00328718335
+350635.0804502635
+240194.549203586
+275033.3341844016
+146107.86696568827
+99040.52510642176
+153119.00218729538
+180966.4445079152
+175549.67544966473
+138737.30332578698
+144794.225702057
+154823.93212775944
+175502.19181770858
+214348.67968162958
+257982.94178798262
+216219.567502338
+152491.3542748008
+297325.71140737477
+188321.6626724355
+208901.52908613713
+255139.57225003684
+474317.0029013759
+163772.58590518218
+342892.46232288383
+174319.7045256228
+310322.1665807139
+332608.3854255701
+177165.93322557246
+180514.04134353632
+240269.76317981776
+364929.22327337775
+179416.5821139842
+313569.1507983103
+232699.40193016955
+178620.30425386073
+302098.8405130361
+178425.2248525929
+191773.9921804397
+319632.2833071794
+184083.78760578195
+173511.5163021899
+189171.8064388124
+226469.01739681017
+128515.88941106625
+176728.62204468655
+87209.66938870784
+145124.86357317952
+202727.59191532803
+161264.5876833101
+178200.40116509894
+378788.5414236279
+169671.2527457897
+151343.17546322852
+128856.02354641528
+152773.6839329661
+182480.53793993674
+192637.10684118303
+128899.22955796134
+200783.16279406304
+170397.03279911226
+172146.0138944767
+68425.43673515448
+295615.3709585437
+425605.20936657663
+203102.98921312758
+229023.1892304559
+155934.9787038171
+162333.29945591788
+188447.69272915082
+458444.2762001296
+217233.83731214865
+176705.9736687196
+175492.30772611557
+140094.7797633263
+153880.29403453314
+162763.35070920075
+149891.4241584493
+149034.38244713296
+198076.20513278872
+214926.79623597322
+205562.0077131375
+182294.91211008892
+137254.22217714402
+186043.71382552973
+236316.84174193017
+177838.16608730901
+253309.2574694072
+200833.22664178084
+152065.38949315716
+126576.80345694677
+118123.40315739665
+119987.4322056816
+209803.56865015434
+250219.84784122583
+179465.5403111007
+186038.08305108696
+197145.66539592223
+147963.45036486955
+194475.1384615517
+176274.72208481515
+255064.99758837695
+200750.39490443136
+300656.57037482853
+305787.2542859092
+147767.23420937138
+175531.84635342725
+219989.37348102473
+184500.036379915
+175461.813010138
+171942.43348039608
+192934.24732253494
+184424.54942770005
+131806.29537282375
+181916.36189484043
+184634.25755979985
+156309.08923012792
+86870.4933699625
+179235.3061469284
+404390.4890435044
+197532.78546085305
+161091.87935128654
+281282.35431340465
+181261.91381260531
+184438.13851173106
+106561.61798800317
+126946.0142862244
+255797.94011942693
+404761.1635113921
+117648.23387846956
+175956.88672343094
+190867.40594148662
+300930.49579262646
+178218.5312301908
+272081.91795869207
+300740.00561080856
+154290.365645957
+175751.62518267287
+174585.20381749485
+154099.3865442856
+270419.509894267
+201358.64689881116
+189877.09137547654
+178009.73555314477
+139105.55438427452
+276651.1588485065
+182967.68618902733
+280269.3611410533
+195214.38812525643
+145049.57398320097
+126855.14125630804
+158482.5517658767
+146524.5741922059
+196983.70826424536
+221931.68536933453
+214935.0894360796
+364709.280853861
+191475.81298731305
+280811.1752081472
+276392.30158966646
+211556.0777230456
+171086.93506630452
+178598.9821649196
+170505.7261026503
+269809.71702454734
+174087.22432648749
+231435.41135114696
+274023.2135670778
+270825.2087382056
+263296.3561552241
+178149.3562951361
+190767.86877481337
+161713.75658198365
+205848.1319970384
+140591.46168627116
+336238.0970222528
+196652.84914086308
+352008.489480751
+301726.6383060583
+211860.8270751915
+328491.66716636444
+267012.58933798457
+244332.67203299497
+167016.01585454145
+224799.86399891198
+136576.9793321073
+171400.38153111382
+342218.1559144713
+148775.89739859378
+221368.03387369367
+397960.6712197052
+155350.86541476677
+65590.16724407265
+241514.10427643024
+142812.98696638958
+169189.39990521446
+156769.83520529838
+352643.6050151366
+205756.9037201126
+184592.30355424935
+183569.5803673881
+223602.40343730725
+380307.1931496249
+201069.18549737523
+220404.51410409657
+230342.84405835887
+241443.56300611005
+171928.07358946124
+132307.16929950292
+142787.5809878113
+245576.89023413046
+378610.859065841
+185608.5052949878
+228396.7789269078
+310641.7867042298
+424681.47035747906
+436337.470357636
+161787.32905303888
+337574.52685080894
+227994.77302222326
+230453.0584025436
+183672.08888672563
+169055.9398765507
+396418.68343149015
+167041.38325071803
+416241.72555106645
+283011.1692063221
+420606.063167142
+157830.78641083973
+232245.2696782174
+198670.40672004016
+270007.1434477998
+175441.6191349745
+196010.1653105741
+179442.71444313755
+126130.07319969834
+175567.07603858
+151206.56560767285
+317273.2644491056
+333034.0033823846
+192397.18866415392
+242115.36098005317
+108709.16456392666
+127737.55530202252
+137696.0852222444
+126743.71147249936
+168751.30568507555
+179018.17502996896
+241268.74667068565
+225991.611400833
+156437.57338953533
+370277.89810475445
+228189.11806368644
+152583.82115024317
+236451.01597508296
+202926.50289288233
+173118.9671937237
+277648.7456594088
+229746.13665517906
+178560.22359736497
+198160.16569848967
+325538.54580965656
+179105.55946921353
+204687.7304420393
+229002.57850823321
+175094.1378883162
+177120.7630189904
+153378.70998225696
+157234.84248307755
+198859.02293372172
+177851.48824790434
+145700.73980894536
+230087.46429917475
+180525.7024155689
+202367.37755953724
+284644.0895269281
+127339.5121171143
+404278.2813638509
+181076.400710213
+175736.766079261
+132871.11656005812
+205277.4199284446
+181210.01407746642
+194566.70989016202
+233985.3787372864
+146085.0622070585
+223303.39248273926
+162049.54067759507
+365262.25631014124
+191035.60810141894
+339566.71715457767
+221898.38741231422
+251849.6237207754
+113435.85259357878
+176447.0343245332
+190414.17521390502
+184475.83888524742
+282158.51675339683
+201089.90723598452
+238153.02374624807
+211403.2478435835
+136962.29172808412
+208313.4597982045
+195167.46628495734
+95972.0701644216
+318986.9133084428
+183377.33429255037
+272280.5105522588
+220070.46954071804
+161181.2876108331
+177718.9914805574
+159716.822916864
+177846.17081424844
+182668.22840403015
+145175.67096103975
+257985.14575224323
+227945.84141922137
+410155.70647273806
+369520.21126115887
+263144.94762287225
+220246.9643325204
+194928.7227374204
+339378.91789367393
+332150.23517567187
+341501.3202887922
+194639.15737056037
+172670.7157654876
+254297.03171995567
+165091.44710559078
+145783.48200044053
+204804.29480051144
+239849.56499196697
+241068.92012312904
+174159.96313482604
+265169.84659504506
+357208.803084659
+87478.79164247961
+134891.00841295414
+182340.89812296123
+199857.1015714627
+193340.81609639706
+190663.30680211325
+188089.97669199627
+148395.4692660018
+203680.84568430088
+205838.33600982453
+205575.06290064132
+204677.78661344698
+267117.0351838526
+97028.5574806752
+199783.88895072517
+279662.735399848
+170517.99078808734
+74403.14512943514
+233349.8029100458
+126855.14125630804
+248964.55080310395
+104975.75919279327
+244831.06957887864
+243274.39792517608
+116265.0378995444
+177077.62971752876
+180996.5851881374
+248599.75810027675
+86137.42986482527
+164767.6343331681
+210130.17545404338
+193222.5125840681
+184168.68058222742
+207681.4898919505
+146422.14604152914
+203300.79899405802
+155563.76129928778
+300208.5180452407
+358540.79264107865
+406273.70984337217
+220365.08135796944
+133437.86252121392
+175713.31018271213
+345571.3807422594
+214135.9560395302
+206502.31185925592
+185652.9897589695
+193095.34806323785
+204392.10604920078
+268721.4507965046
+157117.77471586977
+272941.122634205
+222494.92511199485
+117551.93076821469
+180858.55616570392
+205218.13823111367
+152703.91606808204
+317929.8637159463
+160072.40103342116
+192144.64911081278
+415106.04386364383
+488660.9437565888
+326749.56143423944
+169067.95901695534
+253293.12147451183
+245506.8250849166
+129551.81222599825
+323032.5394786483
+170554.3649886332
+266154.4030506755
+66524.28978495617
+191861.6457242861
+208370.18673352996
+241313.64789254987
+137624.62558172175
+200048.48160654312
+219356.1680582027
+196728.9496234138
+184504.70230711746
+370949.8322497363
+145865.47935727346
+194992.5074885037
+373785.70899558644
+111965.80571310208
+394459.7594501851
+205581.3603515085
+175203.81440228052
+120396.62838425065
+148141.80357695356
+263099.0578803859
+122234.64039809153
+130856.35947882921
+422866.15803529887
+285541.78584380756
+155705.49834174206
+379091.93218097824
+184417.23780448156
+252358.43133599233
+160537.36814247363
+223990.57044358054
+207642.51950244815
+145288.770981348
+341078.6267579511
+250478.46903091
+232178.19485702756
+215809.93694940268
+156962.8098220781
+241712.4191946992
+243488.63522330907
+221453.594237278
+342463.5895886538
+164947.87994975323
+269381.34605915745
+410623.315306219
+201153.56830273598
+259946.76317870783
+190405.82768910466
+189484.4491974557
+163067.1561526334
+180533.57035961316
+165751.92803271237
+261423.13536854504
+234236.80431958908
+121145.84549848367
+165598.3819347521
+365271.4044266572
+153634.1001942743
+252513.60665807305
+163514.3927851897
+131776.89483664773
+328718.39843844785
+217994.11382368964
+167281.88160650674
+339868.54107062315
+180944.05710901995
+281649.8542667032
+186992.951050946
+224550.1032087327
+163428.52877356572
+145450.8907123243
+176310.31124637884
+169559.668107895
+130567.41455616262
+190646.86184130132
+261643.7555696594
+214863.8160873192
+160532.75844924626
+200626.99392569353
+207536.55712373788
+182721.9885128907
+210455.52609134323
+255366.1438096553
+196544.68888060967
+418828.01668680075
+214046.39100763953
+190680.80894228
+353046.64098553953
+374670.91327563446
+176248.3215544144
+240394.71214335435
+296355.10751487786
+192271.24095386875
+256385.6201086095
+202798.21092724422
+245862.46445299007
+192160.82721419432
+182273.21772286075
+446183.1085872607
+200691.53663579925
+207085.05231893744
+212522.9948025023
+317823.751469394
+196708.69526406244
+227692.46696719844
+180448.4130918783
+243533.62457200402
+408139.1312921747
+380672.96737539076
+524089.7847197343
+413953.01373773254
+225815.1010637045
+306737.81914340676
+241143.1124148833
+129499.55057569861
+168261.8179165368
+156055.65235216042
+181005.10864819845
+318033.0101359239
+174859.67724215362
+154184.7296028365
+195540.54136328207
+94481.63507242323
+131078.76931353277
+161759.63698437152
+147082.99184530717
+165778.29925833846
+173826.32699622458
+159482.34040615847
+171138.40952652675
+127201.61756388994
+389772.99330332695
+216630.37208743618
+167970.43857078918
+179757.3626796917
+190419.96936607792
+176538.12585385086
+196565.39762675573
+190023.38077904898
+224967.6158823615
+295194.44393520604
+195328.00304753077
+248301.4031218966
+157414.31991016964
+175704.4590654303
+261314.04382084662
+264812.5389312179
+200322.25696710005
+437206.28506944847
+215927.51296260516
+194628.28006018
+109298.32090012805
+163389.31106313565
+199750.7603209249
+297852.4907119506
+161990.14758359097
+190294.29205296809
+180089.66521889082
+124463.42974311783
+212825.64244223706
+182220.06104541026
+107670.70993729294
+251732.53443974015
+182135.58605323694
+193934.24646095338
+228587.17690968176
+182457.9154225713
+134893.50542636943
+175922.49922065742
+170303.94692423005
+193394.55455963418
+146674.89360229045
+241981.9932554509
+180185.07588591293
+314104.1266281199
+240949.554223089
+172148.2657053211
+245985.74702000385
+167641.93752906699
+280245.31615243334
+176392.25592832247
+155415.2241055979
+239512.50674775164
+316269.7923276988
+397947.42236283957
+76898.68551051206
+388725.7011941562
+242453.1932074974
+256138.36799364528
+364113.46405770886
+315119.03188658773
+217127.13425030286
+225017.0233412499
+316007.08921542234
+189684.73438820595
+301598.1991285966
+195445.3680279134
+248869.66521046538
+267714.36385941994
+297735.38429850823
+119810.36855209019
+264183.01089601207
+403450.12010878656
+127927.18562329894
+182463.1076498525
+192666.40872402335
+263383.20624914265
+181653.65662810768
+212888.91143920826
+88903.61366104227
+171578.6231794334
+121733.22201703541
+167888.50264946194
+378298.73110259423
+173278.88431694644
+331226.44394740235
+314226.8982219349
+216330.0700113665
+197493.88421440296
+127821.492781941
+183375.6761639379
+297263.6583204297
+241414.0157319072
+146837.16340719842
+164967.84779722264
+236666.4260984811
+238665.1817166468
+121607.62949093479
+235705.74730923612
+221345.849721279
+326337.4967784449
+216416.55235192124
+101699.24087653082
+219651.64688868285
+168876.9381350531
+158246.1589464939
+499370.65883732203
+101804.76608546788
+74403.14512943514
+167439.26085047386
+178369.72735446892
+138997.42809149716
+330299.93301171163
+238165.65627149807
+209325.0437710181
+446686.94472443656
+236736.03623005227
+193293.89253233073
+230317.49959173307
+249755.79407297564
+94402.29381596732
+199162.01848984143
+317527.754084821
+309776.89554831653
+434912.3682046505
+206562.2385271909
+322089.5319827845
+124025.84492717288
+502323.19986047625
+290435.8289905211
+253243.9112542981
+236716.98838413003
+256878.53149650083
+179861.72787562732
+218090.52816445014
+143337.2248262942
+218153.4606533523
+400410.9336462115
+190577.00456003787
+156231.04840291344
+167345.6959217665
+284414.8162735481
+317951.96843407163
+197647.30106377628
+250150.11439339872
+174835.38700688188
+155844.77377525115
+239715.78609645792
+181363.42566227232
+148641.6449295365
+250373.6823127864
+137876.00362906602
+124118.31181870686
+234419.97417831153
+232261.26735974045
+139510.93423523215
+117412.35552324555
+139839.17462977394
+181249.2781176774
+213979.42174984072
+162052.63859445075
+131985.21863454438
+134777.0799222088
+145425.2252355278
+187267.35803086773
+117050.7512662539
+199181.65442201766
+189161.30597572285
+198369.51231003884
+305616.6546511618
+184201.08905138655
+181560.6906469594
+221825.5555569086
+254257.74604806906
+190429.95783779852
+110394.64882060568
+128264.81749159112
+155151.8390449397
+279281.8384964073
+179675.81005082693
+213601.16927958853
+477693.7007811632
+150027.26116997827
+155529.98800292896
+186833.63501035562
+200437.68804660934
+144711.29230613157
+179912.72638855857
+155667.7243928401
+166318.05016365933
+269156.55199213786
+200218.06014773843
+216928.9123303858
+223558.0893490245
+256576.27113465706
+251374.6566694786
+145374.5344471076
+176360.14661607245
+173053.65954329557
+270391.61144351226
+153012.8571287935
+350652.478063018
+133312.222494043
+205248.83637409232
+239458.88434648013
+167443.93322133203
+205382.1083321633
+165711.7315118393
+178450.39886045753
+341847.8369262502
+243455.7651437845
+201753.83044523952
+138202.68384907514
+200040.2380065123
+285321.9024507465
+153566.97818655713
+183244.6022842387
+246491.99599870836
+211037.78071582475
+210345.1032837257
+255251.88615701764
+254545.35853817043
+177653.02649109054
+188262.74866056378
+261005.87470464144
+126488.97420378934
+153195.19531424934
+250338.79189272257
+285763.8987233407
+188084.22213472342
+202525.18166746598
+231321.6273718385
+177533.16105814336
+318869.49951617495
+105951.94574700139
+167468.10546519497
+244121.65398041616
+279041.6901036172
+196980.96051321266
+394635.68473923963
+275334.1308960722
+141579.08130183196
+275995.91623766633
+150535.62445204906
+214936.4688900219
+226897.71445005073
+311910.4474194352
+142218.99319871474
+126591.87297978486
+267729.3534611628
+128449.36093943205
+296598.3480409202
+238115.54385053198
+307989.3329218289
+194389.8739451943
+182305.7040806715
+254876.17940573467
+161799.9362116705
+210213.66552989505
+396924.0261846949
+190754.2192143405
+221365.66107473438
+162053.72584479587
+202049.331580503
+226962.8656867111
+150814.39901651983
+155108.66286472115
+129884.12445199903
+122133.50795519803
+194660.04689523185
+244629.94034791237
+151345.17252908755
+171247.40319479877
+197716.2275815859
+328332.31048107735
+156428.94712464156
+161048.26311062506
+310795.12042931106
+180163.5475078031
+109529.11774284279
+178607.08508849374
+173246.32998312238
+258964.74107238915
+198046.45565558336
+209814.7152710583
+155126.4615637033
+189624.77804772183
+198970.58621331237
+365742.9752685915
+188864.93155279077
+164425.6975165542
+478459.5214950189
+170983.37572341433
+180017.67426951384
+464176.92432896956
+305518.85467728716
+200145.80718259103
+191559.76263245163
+112630.1812507877
+182088.55454974415
+176132.85243925854
+157422.49078578604
+106707.1140262323
+173956.54161043576
+246640.68661787262
+178881.470516235
+158354.2004546216
+209920.24347277463
+122680.53223887621
+282288.30360357213
+172504.231871256
+385787.3674876134
+233451.1604480001
+119312.5328317455
+279689.2941425477
+424785.79573735985
+194982.29935684122
+139755.24577888355
+166620.07703385473
+177972.09623129474
+180606.62315401967
+267818.61108293175
+155856.06131392223
+440264.2150818704
+168534.17776592934
+380648.6674532946
+333691.91227746784
+71464.20950862733
+176736.13081170374
+139031.70121833388
+149354.70346947838
+323931.21377581643
+108979.5511035604
+96630.33760898051
+179502.43593063543
+144171.42180460104
+201261.5264009803
+233767.56990167688
+201705.139928335
+95775.24616084424
+176185.43677639798
+357062.96333539305
+170993.10933664453
+280062.6808124405
+179442.18331935647
+213127.82073373263
+177251.02136009038
+329314.43571674277
+226499.99315986008
+213221.33154616304
+94592.80531140284
+292551.38893738796
+350740.8240985384
+241825.31720139054
+233722.08044207023
+281892.71685006825
+497262.00183776
+181088.42715674688
+393216.28187528613
+237713.71074551187
+248317.62654238218
+178405.34760959705
+127515.47765619801
+272012.8635022291
+237146.89051779092
+237348.18527744594
+179079.83260229827
+166455.21970533388
+210634.02118259048
+175450.97389636165
+175071.0214393515
+293465.27986081835
+287873.3407064669
+200124.81352397564
+325544.6975911433
+200872.14672307821
+160120.51754108007
+243861.74780279936
+252097.72864775744
+243303.35779490083
+433913.1421798705
+141270.27957264805
+148455.69381484707
+168922.79378936728
+129404.0109136994
+129533.04003081609
+288850.4667490469
+154021.99015653066
+195062.49466383862
+147498.99215498936
+341731.0955157722
+262495.4628574481
+147421.41532707255
+266342.936778032
+216541.77405112676
+343473.7385203768
+192277.75635645783
+145256.2028708817
+159499.73220995726
+377131.57385721034
+154097.9498094554
+136622.81243660464
+154210.22180169253
+134869.12608461938
+353957.332819127
+194796.70721473533
+186148.27093021668
+130423.40636725903
+145887.35811999723
+107507.8218889993
+129970.12292290249
+338795.45781678957
+244346.53307557403
+267617.7693041099
+315197.3294758066
+133118.24585396858
+181575.8409295934
+322310.35234162613
+168877.75364949479
+279736.51872699807
+207631.03231891437
+203748.71841727465
+234373.24256238574
+139853.92911116435
+181292.64313302856
+233023.3950136538
+235204.56919027728
+287129.15858241514
+113160.24117528572
+289189.5943274583
+188404.27112235193
+141134.2510726933
+151833.58665280553
+186151.71931147433
+76325.97355730475
+248483.44294796267
+165253.54612645358
+423020.029035176
+179652.43628988304
+170769.95952637997
+270285.40573066735
+200886.86056397163
+197404.18804312308
+386767.536555889
+192115.9564559535
+161645.88302153343
+264885.4527856831
+281129.66609494254
+163386.71489422073
+183834.53390733458
+207939.28532747377
+156640.12837081708
+278099.50098480453
+154588.41526751994
+511522.8562621273
+205159.99771514436
+198568.88548346507
+71176.20815774016
+173182.11586616669
+118908.29719211796
+222139.88669953958
+146051.87282393593
+159816.67858841273
+95492.90166208336
+392115.4742160836
+263725.02841017186
+369779.67807197577
+189393.62021351402
+279236.6287252901
+279080.969436197
+175991.3697638767
+213405.02566442828
+245862.57941408467
+188860.33210001411
+166983.9500754178
+159996.62948259458
+170045.1549678969
+187981.77529992157
+255659.5521634242
+116348.35035305159
+178274.40799984976
+187397.75658335214
+156275.8254300348
+168363.24265437626
+182817.27561781424
+210127.06058262294
+176269.3826041713
+127415.61012294238
+139153.05919535036
+236212.3202418425
+170643.06139041454
+254490.6480176072
+180969.93287632242
+229313.7283843666
+432247.65163430915
+245787.61533306143
+270624.22966382187
+229613.32127920262
+256314.439931492
+396443.7402530565
+179544.35414457464
+150716.84802039145
+258474.5986642722
+178951.37004838313
+181531.94535641634
+179362.75182641728
+97023.5550915458
+239173.5227180168
+190309.56073316617
+176038.76263664613
+178441.60196653203
+146532.1706009744
+192839.94466908628
+127350.27228449313
+156589.38813505726
+346354.1700129345
+257127.7424439713
+187625.9201761703
+208850.88827494608
+235995.32266362544
+158553.56802977255
+273060.2420186074
+268018.8619229844
+210412.20066250025
+209955.8173151435
+241650.07366794007
+262745.8723348775
+197808.0473820677
+155919.47905368826
+127762.5187699532
+220997.95880410675
+194270.34280543026
+206125.40314457548
+130997.52740664486
+204014.37750207388
+179342.3641312625
+325133.4471103145
+324150.5042732095
+140466.2890983633
+193241.98447834916
+235908.55103498464
+181406.20578605373
+239395.4274528921
+207385.4412261021
+106723.98232417235
+171721.58464429676
+231370.4730268449
+394694.79911663814
+437031.92118771013
+189986.76450776367
+236147.16709352375
+187242.5093210964
+173048.968258465
+264057.2752484281
+173075.43777896502
+211179.48712687625
+221531.15203906558
+200716.54728607656
+204847.42455726388
+323444.5095991327
+160461.86788044142
+174322.5813367872
+175317.06023600255
+459115.2869548769
+245443.66350071254
+257106.8978095335
+145068.00687991228
+186000.25786584016
+361773.4236665256
+157229.72046694733
+121609.06005175952
+233515.26952746548
+126168.65413542108
+157775.7922470759
+110349.72060618144
+224778.8751567218
+278708.3619260734
+214895.16510866568
+156500.92416454785
+70623.02453909602
+286191.89736193506
+141640.92001893974
+170145.38013528596
+321651.21245037
+381334.7050835397
+180855.7594989775
+233820.79793610153
+177208.24986610937
+173945.4279838111
+140077.8569443673
+180850.69795707194
+148351.87030258783
+188895.23736458537
+180337.04033022065
+221961.43090184111
+170821.3967429986
+180024.50924125567
+294245.04613704386
+169709.09128271794
+248158.12582472942
+198220.60103372895
+342091.44252723723
+232974.21961511765
+249380.81879743122
+371477.65261144645
+382438.1816526258
+231509.6670729371
+128987.97234611669
+189505.60585481935
+473951.5336352542
+100550.49477195127
+159521.90011319588
+224893.8857290082
+241506.06668280295
+253871.26466859315
+284148.3974309039
+408893.59563290735
+230177.88425256504
+146057.9101597693
+260692.1272734024
+161004.76380826085
+178705.7680904896
+247078.2029775849
+382947.89546160155
+148681.7079282832
+70365.20425812736
+144931.62984525936
+225457.6606752632
+181624.91909596557
+362532.14597285003
+189532.59069777446
+382829.8562275781
+198774.82283530638
+162037.94118432046
+234702.32112622916
+164342.82182471652
+259871.4777969636
+137634.19845664123
+195956.05546479957
+152769.88640054053
+187012.17718550458
+262277.78242509207
+216408.80417238717
+104925.87525318512
+182911.29999868947
+233415.6489685597
+136577.77367360538
+302173.7085554025
+201760.84499168547
+194828.8922528313
+259836.4123163085
+222305.38420258678
+530175.925468935
+231583.20456328444
+168189.3283073648
+266452.3642176717
+200708.6744552637
+153705.76092559577
+161231.7920111077
+384181.66159299033
+256060.95040978357
+216324.56620129762
+192653.9474333654
+191690.7321741008
+234869.49813109083
+154361.5501170126
+250580.3526917124
+132981.77930161
+152597.74432571276
+356138.3860746941
+288794.90696103644
+204406.45971231032
+259469.85103826105
+176920.59249002856
+277898.00881434727
+232407.07186539675
+178945.14006668577
+249788.60665908386
+190879.06082077295
+306138.0737798746
+477985.99053349736
+203161.87079210608
+153058.11037768703
+491799.4540692203
+179573.31297383583
+162313.76622243243
+183876.90086384775
+139847.1354439199
+397451.7143806417
+464991.8576582855
+166351.30313412973
+173871.35847802158
+190917.62753176814
+180037.23216324585
+152953.9328951417
+82673.7790082391
+121309.78057515324
+244954.50222336088
+381794.9441698821
+163967.57826843014
+216353.04609954802
+172734.850457646
+189926.52668920596
+206196.2523202084
+219696.46751721043
+172873.19638445927
+130339.66530124696
+180706.49149123603
+174983.7239171774
+176858.8236800406
+228973.02113170878
+210451.37524628078
+237423.88184405363
+177831.3745734775
+304377.58361890126
+201539.8137911574
+396394.4131841532
+283289.9345765852
+168690.3149174646
+342838.227092768
+192597.31556700874
+149301.7095593701
+179923.64295718732
+345349.1620986684
+170458.22180434022
+198441.66701982418
+139109.4550343454
+153167.34146217702
+328099.2500360027
+158838.15509144228
+201253.25096333673
+161553.26450865436
+191281.01347247272
+179357.87871124464
+276001.95344594854
+324080.1757176184
+189881.84403101457
+372060.7602023032
+171564.69152374342
+222675.4404270736
+189681.20885624358
+257997.01187958813
+225199.32586362472
+115040.0021326703
+299004.08246006607
+150945.49841357648
+257519.82044683144
+162523.87802684488
+228635.5627703141
+144491.4893788556
+226896.3676921346
+134582.33214590902
+386852.6481738248
+253175.66703445194
+132977.21780765455
+194758.5926212759
+199055.50317256863
+148710.6256471261
+484860.1221533176
+115992.98455932384
+223542.48124605397
+209089.01211672393
+173796.62283602255
+271449.38288098184
+113637.49309945999
+272037.4233461859
+274518.1864267762
+92908.3834656475
+175059.6137131738
+200233.03535822566
+148624.5285777688
+182533.05855745086
+197155.65635255084
+368857.92940281745
+176572.32968601355
+172193.67149544077
+132450.15400725463
+163414.2441571537
+165109.37444726648
+507448.032290658
+171733.85869439755
+277932.0297243256
+285256.52313370764
+112652.26297697709
+163634.6171192888
+147229.23091876906
+78129.65235541809
+172988.6737286693
+192810.7257884281
+370302.7444286723
+242054.42861603136
+421428.6186046257
+241868.28643901314
+230414.23382748073
+260946.15868731606
+355140.6123199638
+256954.15919674633
+240975.005562117
+174307.8847826274
+209259.45271224956
+239412.51585605682
+192204.45931735114
+217170.33564221542
+509452.52208024194
+171180.79041075622
+279697.25832780614
+163654.64174067977
+218140.36623426943
+125641.06178153519
+285661.72140281665
+158979.34256480326
+197322.86234863038
+238697.6512756997
+141265.85124368453
+194985.019826624
+356677.8981734121
+123591.91963440953
+179882.14771645473
+375294.8530693372
+274301.1456432809
+185995.90226606157
+139156.66845050547
+127219.63372384451
+149151.37564523873
+181038.2273587443
+185374.62099700706
+148867.70507500434
+146002.6669927376
+193719.05509438767
+270680.87566431914
+193210.35533653147
+259425.21528612587
+370464.3917073678
+250220.15663008718
+177594.93185869107
+231977.72360015684
+155923.07726919494
+267837.348809595
+199706.85565032632
+159150.72337304172
+157474.70911800867
+187235.42996041008
+184132.69576462716
+226827.51392049898
+181113.13040392974
+233568.031377493
+131641.69415523368
+132830.79839298365
+163725.24762934627
+278188.555511208
+238066.51202918563
+130491.9304649354
+220951.62501444021
+215469.04315363115
+152080.16547014745
+67715.73652698188
+262368.4466837559
+123839.26637195602
+349221.6485825577
+174384.93598917648
+71779.28975524646
+231094.89517009683
+121636.52762202933
+154563.73206707768
+172073.22111837604
+187142.5111279263
+169984.19565309773
+188183.15785076297
+401381.7109963246
+285654.56523167616
+147830.87509476295
+231187.88282698713
+268751.35327617166
+193809.5879851854
+127178.70559707559
+195550.31020856457
+198289.69814101636
+248858.25930957723
+241123.9293327222
+346049.9637403037
+220675.2501913293
+234170.07853719298
+155223.5430021596
+191693.72484992587
+189940.3265742999
+230028.67989011318
+261109.06090736928
+190511.41010219764
+223916.97613638904
+195679.12394718127
+159054.26098005322
+180429.75708694558
+179915.91637622294
+230001.3278520754
+221461.04071470315
+293056.1205399626
+247450.27354614434
+240961.88346793235
+191280.60739909715
+263599.1334588448
+220459.55410508544
+240878.23290389034
+202288.4645585554
+262370.9063901024
+263786.8259399796
+244984.673396699
+171829.8487311559
+119422.0051418141
+204005.41734467604
+435759.8763019332
+153235.51514062524
+170902.92647515718
+97840.51980701229
+192119.81457259777
+155126.64120416477
+280548.0957021232
+158878.58852324553
+147910.37901828496
+182461.86335769692
+130647.75076885003
+165955.56812411002
+244204.79021135485
+77360.86582653444
+221282.64655540753
+236532.2307353158
+150390.68014526877
+229226.30320002098
+143421.91509388317
+206866.96604822655
+179852.49450080216
+275964.6413752957
+301677.6573949258
+214233.97784612447
+167312.92799762264
+199928.06505402125
+187145.76544026833
+154446.4678503752
+108902.0419510804
+236079.16812810014
+145993.0319445087
+195120.21886832296
+117031.30705394514
+210879.1442634508
+201273.5904716427
+254506.90191337335
+200890.64723557417
+190332.52484097512
+98224.11153472248
+190420.27140419788
+181227.8200180358
+215234.58386562802
+69945.85466367495
+220482.52533528415
+191544.24546945663
+243729.93763168273
+143116.97187962945
+179022.30755276617
+120876.74880016086
+256025.1553781807
+170149.01015280295
+216000.87236906702
+272305.83535731747
+223823.10287235322
+152683.88064910716
+351089.9631853498
+201494.53397537943
+329790.74635405635
+225358.76689429182
+315751.7246984513
+196649.30750871604
+170018.40555512975
+177678.5130093103
+153954.95308237025
+384027.1059797375
+239383.68107212367
+267700.3873226668
+169126.79253408063
+210506.06071911307
+241223.72931653337
+408220.98428599804
+129968.58372228245
+262392.50360963517
+289451.4440374792
+177889.62268766382
+244370.33343423976
+217683.8198325423
+230371.7752676661
+327166.03828673804
+177873.01223869523
+154980.96132515898
+272489.2937544752
+409460.4898509855
+189305.46774298765
+133948.4452266154
+178739.57047126288
+143626.86098976876
+131014.6503171281
+324754.1566117973
+243355.48642816592
+205195.61786403714
+490774.4740705456
+154681.1409435044
+207934.85928931163
+248599.63435573792
+176453.34057496098
+306641.49197321926
+249392.4687843917
+359440.45694790356
+351632.75568741007
+139563.3010167352
+251168.381561325
+175504.7159261761
+251427.37641753966
+253909.31590268592
+225208.44443824285
+163313.76792582517
+254933.54345190583
+199341.79376536564
+191439.21319144897
+186177.73135984258
+198732.34523994368
+334777.85520747054
+361435.3005614319
+326200.8959661165
+294611.4391945192
+288399.119375613
+66934.02912154798
+390113.8688826178
+206461.67071231315
+107071.63041495344
+404552.9534113191
+291003.66327383375
+200614.3228212076
+383008.9263289897
+233662.2222838383
+250690.25667376275
+172476.1937634696
+64660.90022930132
+146421.77564115627
+330982.8054914805
+273424.34896990925
+256132.7445826166
+197939.98667421605
+180591.39833846077
+225024.0078228516
+202085.65702452342
+100301.80475139158
+368547.3336051899
+155902.3191082867
+133942.99581679085
+141270.0411315504
+189192.46249469873
+248863.1651385955
+99351.44425297824
+250930.51265790456
+179377.18743443454
+164972.4064437676
+261047.79937079415
+154192.40489717314
+164506.09715093006
+132637.72603810107
+198470.06813119017
+108496.54240635123
+252546.97968598086
+261356.53082420846
+235755.5300187699
+153524.98238259467
+228524.1291213832
+287014.9609286523
+200838.96119094768
+159254.43095599342
+220855.0437010667
+180375.8527771937
+213927.90663221804
+180448.03150374815
+124710.44425910941
+212625.80515991713
+250297.26861854058
+190602.86460267488
+199847.89637168622
+187241.56184972197
+238472.98787850817
+261612.69341872676
+208463.16628621417
+281695.661185726
+121391.02488533732
+129890.33810805115
+193750.8735242179
+285532.93822711066
+193991.19591923885
+205899.70292101172
+195782.64579525433
+310035.81776498485
+197497.58755663133
+262875.25350749324
+377014.07371317403
+347617.9730736922
+175533.8702750137
+261151.1202687273
+128445.76782378946
+278791.71121056954
+178100.0159503179
+219143.13223540643
+264649.3611806608
+140148.47395244293
+179268.52764542657
+189270.84068482055
+166091.57812366233
+202564.23670848878
+145055.9032043131
+337600.36559447675
+172301.36817755393
+232244.97089890792
+171978.03532733355
+192523.2230698053
+195169.13704453266
+182388.20045352876
+393273.90133627556
+184837.63457115958
+187834.34394564526
+205931.9671730341
+245550.07252296637
+197110.47207034443
+180161.83880594018
+169039.40194385432
+177940.8153725814
+181230.43686986723
+257688.01701663138
+414582.39887383557
+273927.6519041758
+353276.5999998846
+225817.82003797294
+186635.4337860648
+331241.6595289073
+145412.05845518858
+144159.9309912861
+181025.68641149966
+190358.34901996702
+158411.29910086546
+205509.12464638904
+138826.79468682368
+176294.61496884786
+197384.2592688496
+347467.24150243896
+187327.91851397557
+154918.11700127998
+179408.1610247354
+278284.0204480753
+118123.40315739665
+169050.21045292087
+279092.34566379845
+196702.4292587455
+193079.1329871864
+159581.5833369543
+178768.26911220868
+320172.5645480549
+198849.84750962377
+117256.31473107763
+299464.176361879
+260742.21336321367
+154163.36613105517
+167710.82694293073
+361578.0961604814
+191098.45228325613
+180221.52148013344
+102406.34359089559
+238959.57393522168
+153211.18953715582
+154553.225734596
+235311.52825142862
+396060.43707378075
+225811.45752621832
+161673.69880605603
+181142.56911832376
+218554.02701486822
+215567.91963950655
+178582.84583970526
+176088.0740695491
+201945.38212014988
+200994.18508366134
+184569.3738788763
+299591.05590571027
+196951.32469069934
+153073.6991519858
+126938.20731318588
+203827.9668489013
+187328.94942976043
+154953.95458626255
+201523.36556908648
+267016.74675359833
+117050.7512662539
+176603.95893639748
+453762.38138172723
+174449.94454098272
+224290.63168255336
+320857.2411636048
+126793.4577021125
+185214.7959127144
+170931.32535904858
+251077.767910602
+86867.87004983053
+222143.26519752905
+170229.234194031
+159869.29540165697
+383016.37116024806
+226845.10178076988
+127387.96309121413
+261877.1482545877
+163899.18678123978
+209056.79837643346
+133463.99082291435
+122528.49156693871
+117338.93420890746
+142431.57594608897
+255791.05578766874
+156009.28325507412
+177903.5298097137
+217815.0070798236
+377387.85725052544
+166824.22564807718
+282815.4144255527
+165194.65174138837
+180716.88567790855
+222258.61448428885
+168191.54647423644
+188688.95190547305
+153832.38772944766
+165474.35325897313
+246429.82386934164
+200354.56169350698
+330980.759366224
+137131.6307509224
+136461.43517574598
+178088.32619876193
+228708.5560518457
+175005.9972546695
+289643.72050145053
+339133.77655354014
+68425.43673515448
+174680.77051358044
+179393.63335624544
+216506.54984896042
+175194.8320827514
+127693.64631354572
+207576.20195867823
+370713.7507630686
+261590.34003737837
+193859.6753327647
+142900.85368733283
+154378.5037818811
+251940.262698216
+152040.501154527
+239581.6732523159
+237155.89754067376
+268828.4534317733
+211875.770213038
+327005.3825793547
+474169.9225189422
+180100.31734428578
+190285.5681601378
+153627.73461662183
+97022.78044596859
+130108.09366302784
+188045.76506648748
+296152.63200398965
+316187.91229641356
+181977.17512876578
+293605.719336674
+64611.9487015381
+139559.30442987187
+219685.9832412292
+145407.19547683588
+328075.5308865882
+238431.37571197673
+394101.92994675355
+66559.9180514689
+237821.6656723923
+191992.8466771971
+287476.5444093911
+145657.94859163786
+114041.87352886824
+244845.3010952724
+189773.86400504262
+132698.18331296105
+127001.79434157557
+195033.37896702683
+160681.34455983868
+131307.37752286362
+204406.89125964115
+268385.25696085225
+170052.5261062795
+180961.39262148418
+260747.09731962817
+195527.28732146288
+211104.26761000333
+113336.00155800395
+169949.2472701243
+122219.9521169443
+135794.6332685244
+288912.3142314821
+189942.28577906804
+140119.45937180604
+234198.9904414655
+191567.4742655516
+174409.43674004535
+163701.91149030734
+137232.60111333424
+202512.84097781664
+179401.48401787513
+278419.1370597912
+376393.5896192808
+240153.58631941702
+175462.8766622458
+290967.26796446746
+266528.9130149012
+385094.71859146655
+300950.0884522642
+156115.48209013153
+343060.25603137247
+242911.43622373216
+178509.18914970136
+237399.54348459022
+126913.42506938905
+165401.60154879536
+162512.68652613126
+380384.85110448586
+189680.2030132273
+167779.80580033435
+192600.9487058048
+345444.5680061901
+231306.9371326909
+196685.01181426595
+160064.33255956235
+203087.17086251703
+230751.71909805073
+192282.96298910852
+109598.28344091606
+229121.97170191546
+222829.29642656312
+153124.37348956143
+226335.90229585397
+111730.81574754084
+187411.79849238202
+267907.4138442095
+319963.6690373591
+372065.7425707296
+173105.08530918977
+197820.4635962677
+152315.00746584815
+416053.0140016465
+144210.21641844054
+173007.41732597415
+167793.16470218834
+113889.40531228468
+184392.1898173877
+142204.37380489815
+193335.7440367382
+133999.40538372638
+110047.14673484671
+123662.81661075965
+216927.0065347988
+275330.4232690015
+205885.92070171915
+193188.778323121
+360795.10013109964
+246907.19566172027
+195256.718430703
+167177.73118429753
+176366.67706451783
+98050.32244535936
+172780.64652656266
+177535.32178270872
+174162.31965816853
+165973.6485494334
+200519.211207981
+176794.61918875002
+270123.7592532158
+169291.6537148785
+118953.58307729998
+121848.30135749545
+146302.75984329457
+174129.59589745698
+148017.8118328885
+247451.57674467092
+266370.52537017595
+267377.08193616976
+190911.49361908826
+174556.35924718156
+377594.2782927283
+219066.76855965986
+205871.862494858
+212577.00377297134
+181153.902871307
+99578.89785349183
+205555.5837281235
+264089.16681620834
+298899.9284579514
+207258.3267021292
+179358.90500912146
+162324.03699802366
+514884.70363156695
+209484.5328160468
+267378.8703053381
+163828.7760857895
+178639.1022422607
+240270.62263817614
+160274.91772569928
+247683.77907697938
+229862.4910474353
+260484.56664435274
+179491.14542230894
+244533.11039726296
+154847.49180015005
+92113.63562663933
+178313.07629263416
+166109.71639848058
+205001.9980764782
+368538.91408412793
+241010.50904364878
+381530.85385034437
+189924.43481995544
+250291.0520868402
+287327.58090746345
+196899.29104323057
+74482.4148243041
+380025.9819875018
+166763.36135979908
+80279.86995539184
+185809.4972530864
+190366.48704078965
+262470.8579788562
+188146.52612138283
+144905.6124259202
+409422.77817060443
+199229.29638455462
+197975.79868344177
+242297.15630389244
+264289.9878603585
+134223.17664913755
+181332.89249629955
+160686.56269768951
+259498.05688376725
+272749.0566942106
+126627.60736854227
+157003.37486847438
+366375.4560221248
+484181.40613396
+144677.26642257496
+129349.4234254411
+126562.74948428382
+401134.0064873465
+322960.7945282788
+249053.7657089867
+140387.6872390796
+157725.0046677948
+175651.85520073172
+136347.50465962972
+215951.29667239255
+235546.25893289247
+155310.08409602358
+305743.45769196685
+195486.65585164676
+153612.43179889192
+126686.65212805057
+258795.54455958566
+403883.39375122567
+192485.95853552522
+166999.25947757676
+345582.24281544663
+142184.0573134615
+266226.3721289427
+185005.2841958572
+184025.40231147315
+168799.03658700865
+168092.10604008552
+338235.9233130511
+318536.18093849724
+175793.0348598562
+76374.08602379083
+160296.9847317529
+180748.26253227112
+266001.33918294107
+221989.91162560458
+127434.62443182334
+151109.43496777245
+156400.5272653887
+265161.8311352517
+280250.406617347
+237575.18674427737
+158107.03453633556
+225643.36336517736
+336428.9422228134
+130136.27120602719
+167388.86069142423
+370828.4878627317
+213800.08283297176
+152122.00155439458
+94189.51356667036
+157438.66009984937
+323331.21711120225
+173492.63041020982
+138864.9719750681
+180357.19651313362
+204482.4113593591
+273830.00676676625
+158815.1116823661
+194997.35467292008
+166957.39507902897
+210388.0766511609
+140719.30383664859
+228249.5659481968
+209871.83002499398
+226972.4012449323
+75459.29463537062
+196242.43176478602
+125196.27841374592
+248781.01834397874
+243296.38730377378
+167446.03761173945
+339120.560162986
+259385.51547565754
+160706.81621333418
+184182.23125910686
+223213.51991209813
+179030.7905180886
+228893.52078408017
+185951.18953683466
+196748.10068195843
+234869.35476852197
+175895.99836695852
+412122.1467388112
+154446.61228134553
+212200.2280129179
+181920.38707886657
+269174.79411273694
+221851.5519192441
+176863.39782972785
+186568.89648021443
+152987.82779804044
+330886.2030348428
+180571.31065485958
+190132.36200309542
+155075.39692439671
+236266.8097856425
+267209.69523507386
+299354.07587791304
+155768.07846003302
+482732.7750987069
+195449.2383128363
+253845.5045107864
+238940.4557087165
+312562.0787724133
+231095.8266415507
+153589.05306183736
+174183.18854733204
+132074.56093297896
+284611.05340664677
+175916.63298922576
+170498.05992498368
+192613.6700783594
+168926.78977822498
+247376.07020420572
+163697.8961255211
+189538.7744591918
+153785.67657926836
+305381.72119701013
+216319.24391483175
+248604.88275169051
+178016.37302728053
+161121.94194240362
+296290.2053937466
+181328.6168619772
+205008.9523526504
+262125.7212643105
+254454.74856600814
+310505.50048906135
+191272.52263772374
+110670.13800326634
+245269.55001272855
+117408.86688559182
+129623.53843590632
+257858.64299392517
+323811.8948269824
+233083.54040430364
+192395.70750787645
+92486.37097925818
+273010.20305331686
+193394.18618862503
+101401.90557363005
+147070.0436521162
+207163.2245488553
+278480.91580721893
+337960.02910469245
+278507.4440231322
+230490.3933627485
+127375.62591879684
+193866.0402184195
+200635.71207219947
+151693.393764789
+145757.5891177767
+198064.88273816623
+277336.7639690759
+226247.31255932536
+294002.98969135643
+144341.35670670058
+212433.24145214687
+214219.68680445186
+167918.2006560246
+127305.88320662496
+254389.640649759
+210305.56027388136
+218219.26658801103
+197500.50925824465
+345306.9515765752
+250628.53017736512
+218709.4544373395
+264419.0730824983
+185225.99498201135
+212203.55486619336
+222424.42398487063
+111002.18821487021
+164705.99096497748
+198159.298944281
+346066.52042301185
+312547.18628600205
+168624.2087744524
+181277.86966533537
+292251.6903855177
+187159.3148506486
+142606.16901130485
+182692.6811238612
+181080.53331432905
+127319.02211847111
+174142.25457691005
+126562.74948428382
+105295.3472599951
+323899.0411949394
+250569.71641415008
+111427.94629286286
+267860.0905095363
+152285.3967170403
+65388.02480817655
+391440.5280398486
+240477.66813721752
+453377.2636957584
+152057.29274808493
+242497.75192380822
+476855.09518055746
+244900.95437320496
+243181.37779084296
+159035.64209435662
+179838.78116427767
+194529.37726040668
+146483.11261958457
+274139.28997124743
+366182.760144383
+325238.75533198396
+180681.63847678647
+150126.87447707186
+256531.78868055737
+141458.19757142777
+104066.7217543591
+130934.78679197004
+155508.3078311567
+200336.02257172918
+432053.8913163966
+285457.1780787378
+198676.93227847555
+321982.8555363175
+248519.6115106322
+177430.50509021056
+349538.3447147101
+152416.93277210486
+153265.0585226442
+179033.3205914889
+201332.86629451698
+66214.18187263631
+246489.74138481592
+253346.19975065993
+138397.74370454781
+196003.8119979107
+254531.1127713034
+144219.3434919652
+285778.98880621576
+325712.33170146175
+179609.005739481
+210295.95871925753
+240574.15245523685
+236598.22437754134
+65767.74610839687
+376089.71876643604
+150735.45836933813
+250693.88842567414
+229615.83163915397
+176603.5048114023
+198972.38034400897
+260991.0855970167
+291137.0032439356
+196041.87661671103
+244688.9731434468
+204459.13805834058
+182673.64488393927
+157608.27250874267
+151722.91660158904
+241003.09631357575
+166200.81005012925
+186349.68657701797
+151184.01784288164
+188962.92932477072
+174059.83927460367
+180738.91540382733
+266544.6267285394
+126855.14125630804
+168544.95134657557
+171125.30147964662
+203984.94091599534
+200626.90081320217
+283354.2213212675
+132167.97410116124
+200275.1787877686
+227766.47525784746
+197781.04938730403
+377578.86501901684
+209651.58384313816
+221126.42759467987
+171704.0565371663
+191410.59048056515
+328080.8625737825
+230407.23043774735
+207747.85865074833
+182155.08255083903
+405763.64604132535
+211572.02462911682
+191085.85527749913
+207436.12782937393
+163431.40621295664
+173998.68576407948
+245617.92144587752
+179711.47599591807
+378250.7943864049
+254349.44289203023
+420287.90666665917
+211931.33763803344
+70768.64087670256
+168996.0985196238
+222388.3909762546
+330682.8412036622
+137913.1158971137
+124488.5567780238
+250344.83617599815
+231894.0445585945
+175641.7787997875
+231183.73885235065
+237460.83322449573
+185860.0958104101
+143778.1555161166
+140119.0369223041
+160996.1893515986
+145735.40618350854
+122357.64114145019
+133660.69349772832
+185788.7331821124
+138660.63782723155
+168619.8231495909
+209310.31909590386
+175832.36932876558
+187813.85161544778
+145535.04175540418
+196031.84160099959
+108406.45083516305
+317908.7946658831
+170768.3496411853
+164668.36531035998
+196397.21607681073
+116302.73988092486
+223595.04421091275
+214915.02958002914
+186334.60693903535
+219763.1867566218
+107174.1079230352
+228070.5742948734
+199530.42257109986
+397699.16178408795
+256504.43407653816
+279505.8046932191
+245542.35754503697
+175356.47983372817
+113717.84115789518
+245194.26166399103
+155500.21287868905
+173281.82323066515
+92907.59175609957
+297188.4874763094
+182330.50347241588
+128125.81896746357
+194142.10181167195
+336784.65690927906
+131576.665176131
+212445.83363110825
+273969.30589889246
+189440.63111649363
+193025.66712415218
+259612.79592950453
+70988.0405803407
+257256.73038642982
+153443.24904701737
+180137.63643036628
+133842.49578904893
+215876.51954165084
+451157.26045939355
+134739.6794893529
+179830.77115140355
+296915.00358199986
+272339.79087424517
+182379.1473623154
+255645.26782934624
+178845.5330209928
+278663.62672736327
+177017.29509470693
+184146.43117978697
+204013.74993600912
+126855.14125630804
+183021.7390512142
+174773.62840986502
+259366.23584889577
+298529.42710972496
+159492.87347543603
+236346.6480385029
+160157.11521063079
+196675.76968787305
+209459.37868272857
+197301.56444091414
+321988.40875048155
+241682.7452272124
+180422.60508220308
+372195.0201359382
+150995.38632420168
+187911.90110867328
+169826.16912062274
+133338.3161138769
+193880.63476535954
+224887.31312707975
+185044.58207350003
+261548.26986169277
+147622.41979031332
+232732.51763521234
+190363.28046383325
+224332.47961131032
+168973.35460177838
+185249.3746087483
+105360.31474237089
+227862.26333983152
+172350.36769208245
+165602.13002681473
+319405.97483705875
+326457.0172306393
+292501.767840397
+391012.11473288434
+200953.5954287339
+248973.8583866998
+206575.02347533457
+149603.9915492714
+325813.807134705
+252166.5018181398
+179006.94862723426
+254953.6539339151
+228857.65133086944
+190032.832099935
+126924.15334052291
+443867.1088554844
+178410.1021540808
+207384.75681549226
+240163.59314438739
+263386.54656087066
+377572.008580319
+189483.98957345137
+177086.57082712732
+76287.57792067959
+153791.6368011678
+196105.59869240742
+126924.15334052291
+183874.41316415105
+144590.67412314072
+171675.13511506963
+179986.57665279444
+190752.3928827951
+196704.0032361481
+179457.91515177107
+200170.9528909567
+256081.70020260915
+144352.40948323943
+125772.18677041301
+243793.1961813157
+210003.2373066147
+65942.29321743174
+201643.30361980677
+197782.8429729531
+203230.77237608942
+149602.6677748424
+182335.52467336998
+407921.741961918
+174487.507465295
+207647.5423101895
+291381.75720470527
+181227.35592706708
+147938.3726687317
+171670.6715844878
+160443.18510809154
+273849.53928018146
+124856.75162490984
+179488.07963362767
+176645.7115088086
+205643.03407053376
+126725.16915778547
+251198.77551832423
+149073.28347875865
+189732.26062024213
+357354.60258425126
+157654.95830711361
+185978.73800800776
+224862.32125591784
+194289.1595303489
+178549.8176389081
+154258.62579652664
+364343.0399817954
+240922.2104443172
+232917.42316003234
+325441.25550225854
+146275.8641622631
+401860.7442554066
+149954.45065731084
+183132.88059959546
+279315.09882854816
+179051.34205520814
+184138.5797596969
+117738.48926576272
+218513.83360461055
+127341.83939573215
+171111.86498336834
+286257.94855960604
+183711.84291535665
+460015.7264020464
+284869.9497346415
+228792.8646796134
+246012.04307070674
+259533.9701603163
+275267.0692451222
+202503.72179060985
+194508.92328711267
+234481.6624323464
+334518.1884466357
+176759.1104696104
+180442.59675492617
+263167.7973933793
+186382.05207964734
+262081.5023973419
+188792.44199042182
+145049.57398320097
+151111.28991906415
+189810.04094095482
+268324.93543163134
+200009.79411056783
+197622.0440146638
+216164.53707910032
+168805.71871497322
+180491.01335707898
+382346.6092644537
+232515.39915039428
+318907.37253005756
+198044.42229918056
+137318.77737119715
+171795.4411481831
+169087.22157221995
+169732.6964486531
+224160.78578331086
+260258.73714972913
+174377.51558112958
+227699.90862666385
+257319.28580252678
+223943.02037248036
+174348.35597230203
+289509.9110376346
+268924.2188614462
+149815.9752845057
+199889.44081242662
+328624.15455226885
+355232.81545470643
+256387.03592112463
+156020.08336668386
+183932.5651605596
+106614.63718483773
+170096.38448829038
+163749.610592017
+176147.8199072072
+168670.0711807759
+242311.02316048095
+206580.09535152273
+364285.10233680584
+168930.9522044272
+199969.09221005058
+381603.2238853473
+155644.33659691375
+190075.71564693967
+250296.4111953137
+372305.449846679
+344364.2800319369
+101285.76693248599
+168172.83559181087
+179914.56241328325
+291129.67177376064
+171413.49820328792
+149152.81653207226
+97517.64705813388
+193425.43427557137
+238029.8947952611
+233119.60444843912
+173986.50940254977
+311382.5306237302
+155533.56668704952
+258645.45548424195
+111088.43524147426
+246080.28048773186
+300804.15506052016
+407434.7548022283
+181101.23607697664
+253942.2519193583
+223234.8379955783
+268696.2448715941
+228136.02654223552
+194466.4998364173
+266530.19595707295
+285003.4190094245
+224741.84465115838
+141886.62167294722
+163205.68035492333
+265708.41420466016
+166845.56733344644
+179853.24335296484
+166411.01823074248
+178899.30650213792
+190154.03662060987
+145783.48200044053
+322996.74227958824
+125559.68375378642
+168606.57601467925
+370399.0016278991
+165478.64608506812
+215493.7415689709
+248497.20941030336
+183922.89459725018
+146396.88708849595
+200911.20399721357
+265560.964310026
+234991.35224695734
+106250.80409285305
+208817.80683153874
+316836.0786427753
+259163.42338110576
+322740.02218703023
+299138.74197795475
+156153.83231818545
+216911.47672909885
+176123.25417386988
+235322.57762243797
+210218.57601064024
+341251.24047075416
+251261.54992234596
+239242.82556392637
+195503.76711210608
+159237.70934486174
+101921.64686894251
+110185.08472913053
+130013.00653002285
+449893.0117198127
+363418.2569730059
+155765.9018603321
+172962.0392358917
+166378.89400373408
+287026.06912354974
+182282.45652446404
+77440.36546557196
+127132.2074032688
+170523.26223564267
+145584.37427769345
+405728.1278981616
+371486.78816599434
+283251.52433485404
+188247.64338472203
+195018.988499505
+211298.65149015494
+321022.7346352402
+189530.4690523632
+187289.0723907453
+246670.21931995745
+124478.9136248579
+322968.65527946403
+218297.6864776638
+262240.2608987086