master d0f64997c626 cached
112 files
79.0 MB
8.9M tokens
28 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (35,575K chars total). Download the full file to get everything.
Repository: sachinnpraburaj/Intelligent-Travel-Recommendation-System
Branch: master
Commit: d0f64997c626
Files: 112
Total size: 79.0 MB

Directory structure:
gitextract_pzr7p8zx/

├── README.md
├── Restaurants (Yelp) Dataset-EDA.ipynb
├── TripAdvisor_Crawler_Parser.ipynb
├── attraction_etl.ipynb
├── attractions_crawler.ipynb
├── attractions_details_crawler.ipynb
├── attractions_recc.py
├── combine_batches.ipynb
├── etl/
│   ├── attraction_reviews/
│   │   ├── part-00000-49e3efc3-a4b7-41e8-b45e-c3f57c21a6a5-c000.snappy.parquet
│   │   ├── part-00001-49e3efc3-a4b7-41e8-b45e-c3f57c21a6a5-c000.snappy.parquet
│   │   ├── part-00002-49e3efc3-a4b7-41e8-b45e-c3f57c21a6a5-c000.snappy.parquet
│   │   └── part-00003-49e3efc3-a4b7-41e8-b45e-c3f57c21a6a5-c000.snappy.parquet
│   ├── attraction_reviews.json
│   ├── attractions.json
│   ├── del_dup/
│   │   ├── part-00000-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json
│   │   ├── part-00001-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json
│   │   ├── part-00002-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json
│   │   └── part-00003-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json
│   ├── newh_df/
│   │   ├── part-00000-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json
│   │   ├── part-00001-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json
│   │   ├── part-00002-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json
│   │   └── part-00003-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json
│   └── u_id_df/
│       ├── part-00000-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json
│       ├── part-00001-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json
│       ├── part-00002-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json
│       └── part-00003-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json
├── final_hotel_recc.ipynb
├── get_att_recc.ipynb
├── hotel_etl.ipynb
├── hotel_recc.py
├── mf_models/
│   └── model_file/
│       ├── itemFactors/
│       │   ├── part-00000-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00001-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00002-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00003-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00004-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00005-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00006-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00007-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00008-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   └── part-00009-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       ├── metadata/
│       │   └── part-00000
│       └── userFactors/
│           ├── part-00000-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00001-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00002-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00003-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00004-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00005-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00006-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00007-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00008-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           └── part-00009-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
├── outputs/
│   ├── attraction_details/
│   │   ├── part-00000-24d79c41-ab21-4f52-bb5e-fed77bf823f8-c000.snappy.parquet
│   │   ├── part-00000-8b76e71d-55f4-47ef-a621-b32a2f3e1179-c000.snappy.parquet
│   │   ├── part-00001-24d79c41-ab21-4f52-bb5e-fed77bf823f8-c000.snappy.parquet
│   │   ├── part-00001-8b76e71d-55f4-47ef-a621-b32a2f3e1179-c000.snappy.parquet
│   │   ├── part-00002-8b76e71d-55f4-47ef-a621-b32a2f3e1179-c000.snappy.parquet
│   │   └── part-00003-8b76e71d-55f4-47ef-a621-b32a2f3e1179-c000.snappy.parquet
│   ├── attraction_reviews/
│   │   ├── part-00000-01b23ac3-b793-40dc-b90a-93a239db5d07-c000.snappy.parquet
│   │   ├── part-00000-603b562f-5b1d-4e02-9a5d-f66acc3232a1-c000.snappy.parquet
│   │   ├── part-00002-01b23ac3-b793-40dc-b90a-93a239db5d07-c000.snappy.parquet
│   │   └── part-00002-603b562f-5b1d-4e02-9a5d-f66acc3232a1-c000.snappy.parquet
│   ├── attractions_cat.json
│   ├── attractions_details_batch1.json
│   ├── attractions_details_batch2.json
│   ├── attractions_reviews_batch1.json
│   └── attractions_reviews_batch2.json
├── rbm.py
├── rbm_training.ipynb
├── recommendations/
│   ├── e10_r5000_lr0.01_hu64_bs8/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   ├── e20_r20000_lr0.01_hu128_bs16/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   ├── e20_r20000_lr0.01_hu64_bs16/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   ├── e20_r40000_lr0.01_hu128_bs8/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   ├── e20_r5000_lr0.01_hu128_bs8/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   ├── e50_r40000_lr0.01_hu128_bs16/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   └── e50_r40000_lr0.01_hu256_bs16/
│       ├── hb.npy
│       ├── user1_seen.csv
│       ├── user1_unseen.csv
│       └── vb.npy
├── requirements.txt
├── sample_table_widget.ipynb
├── tripadvisor_hotel_output/
│   ├── file_mainpage_url.txt
│   ├── hotel_info.csv
│   ├── hotel_info.json
│   ├── hotel_info_dedup.csv
│   ├── hotel_info_dedup.json
│   ├── reviews_dedup.csv
│   └── reviews_dedup.json
└── utils.py

================================================
FILE CONTENTS
================================================

================================================
FILE: README.md
================================================
# Intelligent Travel Recommendation System <br />
<br />
Video demo: https://youtu.be/V635gdcw1h0 <br />
Project Report: report.pdf <br />
Poster: poster.pdf

# Objective:
To provide a tailor made plan consisting of possible places to stay, attractions to visit and restaurants to eat at for the entire duration of travel. We recommend restaurants separately for each meal of the day (breakfast, lunch and dinner) and provide two recommendations per meal per day. We also recommend five possible stay options (hotels) for your travel alongside possible attractions to view. Attractions are recommended based on timing, (i.e) which ones to view during the day and which ones are better off at night. Again we provide two attraction recommendations per timing per day for the entire duration of travel.

# Project Overview:
We have used three different recommender systems (one each for attractions, hotels and restaurants).
1. RBM, a Deep learning technique for Attractions.
2. Matrix Factorization with ALS, a highly scalable and distributed Collaborative Filtering technique for hotels.
3. Hybrid- A combination of K-Means algorithm for Content Based Filtering and K-Nearest Neighbors for Memory based Collaborative Filtering for restaurants.

Few visualizations for the project were done using python libraries and others have been done using Tableau software. They can be accessed from [EDA](/EDA) folder.

# Steps for execution:
For restaurants- Dataset for the project should be downloaded from [Yelp dataset challenge](https://www.yelp.ca/dataset/download) and stored in yelp_dataset folder.

For hotels- We scraped TripAdvisor to obtain the dataset. Dataset can be read from [tripadvisor_hotel_output](/tripadvisor_hotel_output) folder.

For attractions- We scraped TripAdvisor to obtain the dataset. Dataset can be read from [outputs](/outputs) folder.

# Files: <br />
###### [attractions_crawler.ipynb](/attractions_crawler.ipynb)
  --  To collect urls of attractions from tripadvisor.

###### [attractions_details_crawler.ipynb](/attractions_details_crawler.ipynb)
  --  To extract attraction details and reviews on each attraction from collected urls in batches

###### [combine_batches.ipynb](/combine_batches.ipynb)
  --  To combine the data collected in batches

###### [attraction_etl.ipynb](/attraction_etl.ipynb)
  --  To perform ETL on attraction details and attractions reviews datasets.

###### [attractions_recc.py](/attractions_recc.py)
  -- The core code to provide attraction recommendation using the trained RBM model.

###### [final_hotel_recc.ipynb](/final_hotel_recc.ipynb)
  -- The final code that integrates ETL on hotels dataset and MF-ALS model output to display hotel recommendations.

###### [get_att_recc.ipynb](/get_att_recc.ipynb)
  -- The final code that integrates ETL on attractions dataset and RBM model output to display attraction recommendations.

###### [hotel_etl.ipynb](/hotel_etl.ipynb)
  -- To perform 'Extract Transform Load (ETL)' on hotels dataset that has been scraped from TripAdvisor.

###### [hotel_recc.py](/hotel_recc.py)
  -- The core code that models MF-ALS and outputs recommendations.

###### [rbm_training.ipynb](/rbm_training.ipynb)
  -- The code to perform training and tuning of the RBM, deep learning model.

###### [rbm.py](/rbm.py)
  -- The code that loads the best model and outputs recommendations for users.

###### [requirements.txt](/requirements.txt)
  -- File to handle dependencies for thus project.

###### [Restaurants (Yelp) Dataset-EDA.ipynb]
  -- The notebook that has the code and shows EDA visualizations for Yelp (restaurants) dataset.

###### [TripAdvisor_Crawler_Parser.ipynb](/TripAdvisor_Crawler_Parser.ipynb)
  -- The notebook performs collection, extraction, cleaning, parsing and obtaining hotel urls, hotel related information, user reviews, user ratings and user related information.

###### [utils.py](/utils.py)
  -- Consists of helper functions for the RBM model.

###### [Hybrid_Recommder.ipynb](/Hybrid_Recommder.ipynb)
  -- The core code for ETL on yelp dataset and hybrid recommender model.


# Folders:

###### [etl](/etl)
  -- Saved model parameters and model outputs from MF-ALS.

###### [input-output](/input-output)
  -- contains screenshots of input and output images of ITRS application on the whole.

###### [outputs](/outputs)
  -- Contains dataset for attractions.

###### [tripadvisor_hotel_output](/tripadvisor_hotel_output)
  -- Contains dataset for hotels.

###### [downloads](/downloads)
  -- Contains attraction images downloaded using google_download_images API.

###### [mf_models](/mf_models)
  -- Contains the saved best obtained Matrix Factorization- ALS (MF-ALS) model.

###### [rbm_models](/rbm_models)
  -- Contains saved RBM models, tried out for different parameters.

###### [EDA](/analysis)
  -- all results (visualizations) of Exploratory Data Analysis (EDA) are be stored here.


================================================
FILE: Restaurants (Yelp) Dataset-EDA.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script><script type=\"text/javascript\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script><script>requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min']},});if(!window._Plotly) {require(['plotly'],function(plotly) {window._Plotly=plotly;});}</script>"
      ],
      "text/vnd.plotly.v1+html": [
       "<script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script><script type=\"text/javascript\">if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script><script>requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min']},});if(!window._Plotly) {require(['plotly'],function(plotly) {window._Plotly=plotly;});}</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "headers loaded.. plotly plotting set..\n"
     ]
    }
   ],
   "source": [
    "# import libraries\n",
    "import os\n",
    "import json\n",
    "import re\n",
    "import sys\n",
    "import csv\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import plotly.plotly as py\n",
    "import plotly.graph_objs as go\n",
    "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n",
    "import seaborn as seab\n",
    "# Plot the data using plotly offline mode\n",
    "init_notebook_mode(connected=True)\n",
    "print('headers loaded.. plotly plotting set..')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Normalize function- to normalize values for review score and tip score//\n",
    "def normalize(x, new_min = 0, new_max = 100):\n",
    "    output = []\n",
    "    old_min, old_max = min(x), max(x)\n",
    "\n",
    "    for iter_val in x:\n",
    "        val = (new_max - new_min) / (old_max - old_min) * (iter_val - old_min) + new_min\n",
    "        output.append(val)\n",
    "\n",
    "    return output"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>business_id</th>\n",
       "      <th>cool</th>\n",
       "      <th>date</th>\n",
       "      <th>funny</th>\n",
       "      <th>review_id</th>\n",
       "      <th>stars</th>\n",
       "      <th>text</th>\n",
       "      <th>useful</th>\n",
       "      <th>user_id</th>\n",
       "      <th>sentiment_score_reviews</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3fw2X5bZYeW9xCz_zGhOHg</td>\n",
       "      <td>5</td>\n",
       "      <td>2016-05-07 01:21:02</td>\n",
       "      <td>4</td>\n",
       "      <td>G7XHMxG0bx9oBJNECG4IFg</td>\n",
       "      <td>3</td>\n",
       "      <td>Tracy dessert had a big name in Hong Kong and ...</td>\n",
       "      <td>5</td>\n",
       "      <td>jlu4CztcSxrKx56ba1a5AQ</td>\n",
       "      <td>0.9840</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>AakkkTuGZA2KBodKi2_u8A</td>\n",
       "      <td>0</td>\n",
       "      <td>2012-07-16 00:37:14</td>\n",
       "      <td>1</td>\n",
       "      <td>JVcjMhlavKKn3UIt9p9OXA</td>\n",
       "      <td>1</td>\n",
       "      <td>I cannot believe how things have changed in 3 ...</td>\n",
       "      <td>1</td>\n",
       "      <td>TpyOT5E16YASd7EWjLQlrw</td>\n",
       "      <td>-0.9455</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>y-Iw6dZflNix4BdwIyTNGA</td>\n",
       "      <td>0</td>\n",
       "      <td>2014-06-27 21:19:23</td>\n",
       "      <td>0</td>\n",
       "      <td>4bUyL7lzoWzDZaJETAKREg</td>\n",
       "      <td>3</td>\n",
       "      <td>Good selection of classes of beers and mains. ...</td>\n",
       "      <td>0</td>\n",
       "      <td>_N7Ndn29bpll_961oPeEfw</td>\n",
       "      <td>-0.9203</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>YSUcHqlKMPHHJ_cTrqtNrA</td>\n",
       "      <td>0</td>\n",
       "      <td>2017-12-29 13:55:19</td>\n",
       "      <td>0</td>\n",
       "      <td>E6B-2U2sGG3xgmnNWZAEew</td>\n",
       "      <td>1</td>\n",
       "      <td>Came here on a Thursday night at 6:30 p.m. My ...</td>\n",
       "      <td>0</td>\n",
       "      <td>DbccYu3OppWKl21OanZnTg</td>\n",
       "      <td>0.9806</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>m7ommfJFalI47UksyX04Iw</td>\n",
       "      <td>1</td>\n",
       "      <td>2014-09-25 08:15:44</td>\n",
       "      <td>2</td>\n",
       "      <td>eed44nI0eZ4BGKtKXsRJhQ</td>\n",
       "      <td>1</td>\n",
       "      <td>Met a friend for dinner there tonight. The ser...</td>\n",
       "      <td>6</td>\n",
       "      <td>tAcB1ZohRtjozsymvqqHzQ</td>\n",
       "      <td>0.6124</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              business_id  cool                 date  funny  \\\n",
       "0  3fw2X5bZYeW9xCz_zGhOHg     5  2016-05-07 01:21:02      4   \n",
       "1  AakkkTuGZA2KBodKi2_u8A     0  2012-07-16 00:37:14      1   \n",
       "2  y-Iw6dZflNix4BdwIyTNGA     0  2014-06-27 21:19:23      0   \n",
       "3  YSUcHqlKMPHHJ_cTrqtNrA     0  2017-12-29 13:55:19      0   \n",
       "4  m7ommfJFalI47UksyX04Iw     1  2014-09-25 08:15:44      2   \n",
       "\n",
       "                review_id  stars  \\\n",
       "0  G7XHMxG0bx9oBJNECG4IFg      3   \n",
       "1  JVcjMhlavKKn3UIt9p9OXA      1   \n",
       "2  4bUyL7lzoWzDZaJETAKREg      3   \n",
       "3  E6B-2U2sGG3xgmnNWZAEew      1   \n",
       "4  eed44nI0eZ4BGKtKXsRJhQ      1   \n",
       "\n",
       "                                                text  useful  \\\n",
       "0  Tracy dessert had a big name in Hong Kong and ...       5   \n",
       "1  I cannot believe how things have changed in 3 ...       1   \n",
       "2  Good selection of classes of beers and mains. ...       0   \n",
       "3  Came here on a Thursday night at 6:30 p.m. My ...       0   \n",
       "4  Met a friend for dinner there tonight. The ser...       6   \n",
       "\n",
       "                  user_id  sentiment_score_reviews  \n",
       "0  jlu4CztcSxrKx56ba1a5AQ                   0.9840  \n",
       "1  TpyOT5E16YASd7EWjLQlrw                  -0.9455  \n",
       "2  _N7Ndn29bpll_961oPeEfw                  -0.9203  \n",
       "3  DbccYu3OppWKl21OanZnTg                   0.9806  \n",
       "4  tAcB1ZohRtjozsymvqqHzQ                   0.6124  "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Read reviews dataframe\n",
    "reviews_df = pd.read_csv('reviews.csv')\n",
    "reviews_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>address</th>\n",
       "      <th>attributes</th>\n",
       "      <th>business_id</th>\n",
       "      <th>categories</th>\n",
       "      <th>city</th>\n",
       "      <th>hours</th>\n",
       "      <th>is_open</th>\n",
       "      <th>latitude</th>\n",
       "      <th>longitude</th>\n",
       "      <th>name</th>\n",
       "      <th>postal_code</th>\n",
       "      <th>review_count</th>\n",
       "      <th>stars</th>\n",
       "      <th>state</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>30 Eglinton Avenue W</td>\n",
       "      <td>{'RestaurantsReservations': 'True', 'GoodForMe...</td>\n",
       "      <td>QXAEGFB4oINsVuTFxEYKFQ</td>\n",
       "      <td>Specialty Food, Restaurants, Dim Sum, Imported...</td>\n",
       "      <td>Mississauga</td>\n",
       "      <td>{'Monday': '9:0-0:0', 'Tuesday': '9:0-0:0', 'W...</td>\n",
       "      <td>1</td>\n",
       "      <td>43.605499</td>\n",
       "      <td>-79.652289</td>\n",
       "      <td>Emerald Chinese Restaurant</td>\n",
       "      <td>L5R 3E7</td>\n",
       "      <td>128</td>\n",
       "      <td>2.5</td>\n",
       "      <td>ON</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Credit Valley Town Plaza, F2 - 6045 Creditview Rd</td>\n",
       "      <td>{'BusinessParking': \"{'garage': False, 'street...</td>\n",
       "      <td>68dUKd8_8liJ7in4aWOSEA</td>\n",
       "      <td>Shipping Centers, Couriers &amp; Delivery Services...</td>\n",
       "      <td>Mississauga</td>\n",
       "      <td>{'Monday': '9:0-19:0', 'Tuesday': '9:0-20:0', ...</td>\n",
       "      <td>1</td>\n",
       "      <td>43.599475</td>\n",
       "      <td>-79.711584</td>\n",
       "      <td>The UPS Store</td>\n",
       "      <td>L5V 0B1</td>\n",
       "      <td>3</td>\n",
       "      <td>2.5</td>\n",
       "      <td>ON</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1210 8th Street SW, Unit 220</td>\n",
       "      <td>{'BikeParking': 'False', 'ByAppointmentOnly': ...</td>\n",
       "      <td>fcXOEZdXYeZqnQ3lGlOXmg</td>\n",
       "      <td>Local Services, Professional Services, Compute...</td>\n",
       "      <td>Calgary</td>\n",
       "      <td>{'Monday': '9:0-17:0', 'Tuesday': '9:0-17:0', ...</td>\n",
       "      <td>1</td>\n",
       "      <td>51.041771</td>\n",
       "      <td>-114.081109</td>\n",
       "      <td>Nucleus Information Service</td>\n",
       "      <td>T2R 1L3</td>\n",
       "      <td>5</td>\n",
       "      <td>2.0</td>\n",
       "      <td>AB</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1455 16th Avenue</td>\n",
       "      <td>{'ByAppointmentOnly': 'False', 'BikeParking': ...</td>\n",
       "      <td>A98xW4qb7vOTguggHFs7Ng</td>\n",
       "      <td>Fitness &amp; Instruction, Active Life, Yoga</td>\n",
       "      <td>Richmond Hill</td>\n",
       "      <td>{'Monday': '16:0-23:0', 'Tuesday': '16:0-23:0'...</td>\n",
       "      <td>1</td>\n",
       "      <td>43.861503</td>\n",
       "      <td>-79.388499</td>\n",
       "      <td>Hot Yoga Wellness</td>\n",
       "      <td>L4B 3G6</td>\n",
       "      <td>4</td>\n",
       "      <td>4.0</td>\n",
       "      <td>ON</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>445 King Street W, Suite 101</td>\n",
       "      <td>{'AcceptsInsurance': 'True', 'ByAppointmentOnl...</td>\n",
       "      <td>zSpQmEBvRe3IhTUlMSA6HQ</td>\n",
       "      <td>Trainers, Health &amp; Medical, Active Life, Physi...</td>\n",
       "      <td>Toronto</td>\n",
       "      <td>{'Monday': '6:0-22:0', 'Tuesday': '6:0-22:0', ...</td>\n",
       "      <td>1</td>\n",
       "      <td>43.645041</td>\n",
       "      <td>-79.395799</td>\n",
       "      <td>Totum Life Science</td>\n",
       "      <td>M5V 1K4</td>\n",
       "      <td>23</td>\n",
       "      <td>4.0</td>\n",
       "      <td>ON</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                             address  \\\n",
       "0                               30 Eglinton Avenue W   \n",
       "1  Credit Valley Town Plaza, F2 - 6045 Creditview Rd   \n",
       "2                       1210 8th Street SW, Unit 220   \n",
       "3                                   1455 16th Avenue   \n",
       "4                       445 King Street W, Suite 101   \n",
       "\n",
       "                                          attributes             business_id  \\\n",
       "0  {'RestaurantsReservations': 'True', 'GoodForMe...  QXAEGFB4oINsVuTFxEYKFQ   \n",
       "1  {'BusinessParking': \"{'garage': False, 'street...  68dUKd8_8liJ7in4aWOSEA   \n",
       "2  {'BikeParking': 'False', 'ByAppointmentOnly': ...  fcXOEZdXYeZqnQ3lGlOXmg   \n",
       "3  {'ByAppointmentOnly': 'False', 'BikeParking': ...  A98xW4qb7vOTguggHFs7Ng   \n",
       "4  {'AcceptsInsurance': 'True', 'ByAppointmentOnl...  zSpQmEBvRe3IhTUlMSA6HQ   \n",
       "\n",
       "                                          categories           city  \\\n",
       "0  Specialty Food, Restaurants, Dim Sum, Imported...    Mississauga   \n",
       "1  Shipping Centers, Couriers & Delivery Services...    Mississauga   \n",
       "2  Local Services, Professional Services, Compute...        Calgary   \n",
       "3           Fitness & Instruction, Active Life, Yoga  Richmond Hill   \n",
       "4  Trainers, Health & Medical, Active Life, Physi...        Toronto   \n",
       "\n",
       "                                               hours  is_open   latitude  \\\n",
       "0  {'Monday': '9:0-0:0', 'Tuesday': '9:0-0:0', 'W...        1  43.605499   \n",
       "1  {'Monday': '9:0-19:0', 'Tuesday': '9:0-20:0', ...        1  43.599475   \n",
       "2  {'Monday': '9:0-17:0', 'Tuesday': '9:0-17:0', ...        1  51.041771   \n",
       "3  {'Monday': '16:0-23:0', 'Tuesday': '16:0-23:0'...        1  43.861503   \n",
       "4  {'Monday': '6:0-22:0', 'Tuesday': '6:0-22:0', ...        1  43.645041   \n",
       "\n",
       "    longitude                         name postal_code  review_count  stars  \\\n",
       "0  -79.652289   Emerald Chinese Restaurant     L5R 3E7           128    2.5   \n",
       "1  -79.711584                The UPS Store     L5V 0B1             3    2.5   \n",
       "2 -114.081109  Nucleus Information Service     T2R 1L3             5    2.0   \n",
       "3  -79.388499            Hot Yoga Wellness     L4B 3G6             4    4.0   \n",
       "4  -79.395799           Totum Life Science     M5V 1K4            23    4.0   \n",
       "\n",
       "  state  \n",
       "0    ON  \n",
       "1    ON  \n",
       "2    AB  \n",
       "3    ON  \n",
       "4    ON  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Read business (restaurants) dataframe\n",
    "business_df = pd.read_csv('business.csv')\n",
    "business_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>business_id</th>\n",
       "      <th>compliment_count</th>\n",
       "      <th>date</th>\n",
       "      <th>text</th>\n",
       "      <th>user_id</th>\n",
       "      <th>sentiment_score_tips</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0hudPyuCBlKg79OwKBw-eQ</td>\n",
       "      <td>0</td>\n",
       "      <td>2012-10-11 23:06:21</td>\n",
       "      <td>Only worth a visit in the summer time, to take...</td>\n",
       "      <td>w8p4JW6-ERsbg8aB5wjEAg</td>\n",
       "      <td>0.6369</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>r49iBfbnfoK7yt4rdsL_7g</td>\n",
       "      <td>0</td>\n",
       "      <td>2016-01-05 06:39:33</td>\n",
       "      <td>Hands down best AYCE in town! Love it!</td>\n",
       "      <td>CaFbX7topxdLpBJ_SNDfGQ</td>\n",
       "      <td>0.8745</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>wZhB4U003eg2GQ-F7D2D4A</td>\n",
       "      <td>0</td>\n",
       "      <td>2016-08-12 22:18:07</td>\n",
       "      <td>When you receive the bag of seafood tie it up ...</td>\n",
       "      <td>oIHhfloe5VQamDFDB2dr1Q</td>\n",
       "      <td>0.9379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>j9I2YkFCOKyAEb_3FbFqUA</td>\n",
       "      <td>0</td>\n",
       "      <td>2011-04-09 18:58:36</td>\n",
       "      <td>#poutinecrawl #yyc stop #1</td>\n",
       "      <td>JnHaPHkRO2_8V-DysmIBVw</td>\n",
       "      <td>-0.2960</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>XXGzCIcxzAZ6H98mxZbdqA</td>\n",
       "      <td>0</td>\n",
       "      <td>2010-04-26 15:34:54</td>\n",
       "      <td>Um. All kinds of awesome!  Big clean and all t...</td>\n",
       "      <td>qvvpeBLkV4Shx0Teh87lPA</td>\n",
       "      <td>0.7959</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              business_id  compliment_count                 date  \\\n",
       "0  0hudPyuCBlKg79OwKBw-eQ                 0  2012-10-11 23:06:21   \n",
       "1  r49iBfbnfoK7yt4rdsL_7g                 0  2016-01-05 06:39:33   \n",
       "2  wZhB4U003eg2GQ-F7D2D4A                 0  2016-08-12 22:18:07   \n",
       "3  j9I2YkFCOKyAEb_3FbFqUA                 0  2011-04-09 18:58:36   \n",
       "4  XXGzCIcxzAZ6H98mxZbdqA                 0  2010-04-26 15:34:54   \n",
       "\n",
       "                                                text                 user_id  \\\n",
       "0  Only worth a visit in the summer time, to take...  w8p4JW6-ERsbg8aB5wjEAg   \n",
       "1             Hands down best AYCE in town! Love it!  CaFbX7topxdLpBJ_SNDfGQ   \n",
       "2  When you receive the bag of seafood tie it up ...  oIHhfloe5VQamDFDB2dr1Q   \n",
       "3                         #poutinecrawl #yyc stop #1  JnHaPHkRO2_8V-DysmIBVw   \n",
       "4  Um. All kinds of awesome!  Big clean and all t...  qvvpeBLkV4Shx0Teh87lPA   \n",
       "\n",
       "   sentiment_score_tips  \n",
       "0                0.6369  \n",
       "1                0.8745  \n",
       "2                0.9379  \n",
       "3               -0.2960  \n",
       "4                0.7959  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Read tip dataframe\n",
    "tip_df = pd.read_csv('tip.csv')\n",
    "tip_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>business_id</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>--1UhMGODdWsrMastO9DZw</td>\n",
       "      <td>2016-04-26 19:49:16, 2016-08-30 18:36:57, 2016...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>--6MefnULPED_I942VcFNA</td>\n",
       "      <td>2011-06-04 18:22:23, 2011-07-23 23:51:33, 2012...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>--DaPTJW3-tB1vP-PfdTEg</td>\n",
       "      <td>2012-06-03 17:46:09, 2012-08-04 16:19:52, 2012...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>--Gc998IMjLn8yr-HTzGUg</td>\n",
       "      <td>2014-07-01 01:20:47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>--SrzpvFLwP_YFwB_Cetow</td>\n",
       "      <td>2011-02-10 03:51:06, 2011-02-28 20:35:49, 2011...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              business_id                                               date\n",
       "0  --1UhMGODdWsrMastO9DZw  2016-04-26 19:49:16, 2016-08-30 18:36:57, 2016...\n",
       "1  --6MefnULPED_I942VcFNA  2011-06-04 18:22:23, 2011-07-23 23:51:33, 2012...\n",
       "2  --DaPTJW3-tB1vP-PfdTEg  2012-06-03 17:46:09, 2012-08-04 16:19:52, 2012...\n",
       "3  --Gc998IMjLn8yr-HTzGUg                                2014-07-01 01:20:47\n",
       "4  --SrzpvFLwP_YFwB_Cetow  2011-02-10 03:51:06, 2011-02-28 20:35:49, 2011..."
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Read checkin dataframe\n",
    "checkin_df = pd.read_csv('checkin.csv')\n",
    "checkin_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>average_stars</th>\n",
       "      <th>compliment_cool</th>\n",
       "      <th>compliment_cute</th>\n",
       "      <th>compliment_funny</th>\n",
       "      <th>compliment_hot</th>\n",
       "      <th>compliment_list</th>\n",
       "      <th>compliment_more</th>\n",
       "      <th>compliment_note</th>\n",
       "      <th>compliment_photos</th>\n",
       "      <th>compliment_plain</th>\n",
       "      <th>...</th>\n",
       "      <th>cool</th>\n",
       "      <th>elite</th>\n",
       "      <th>fans</th>\n",
       "      <th>friends</th>\n",
       "      <th>funny</th>\n",
       "      <th>name</th>\n",
       "      <th>review_count</th>\n",
       "      <th>useful</th>\n",
       "      <th>user_id</th>\n",
       "      <th>yelping_since</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3.60</td>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>11</td>\n",
       "      <td>...</td>\n",
       "      <td>34</td>\n",
       "      <td>2017,2018</td>\n",
       "      <td>9</td>\n",
       "      <td>CfGCj80EdA-xS-mTWlAn4Q, JgD2Rk9K07MkZgG7Nb9YzA...</td>\n",
       "      <td>26</td>\n",
       "      <td>Peter</td>\n",
       "      <td>47</td>\n",
       "      <td>57</td>\n",
       "      <td>gvXtMj3XuPr0xHjgmlmtng</td>\n",
       "      <td>2014-01-05 20:45:54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3.45</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>64</td>\n",
       "      <td>16</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>42</td>\n",
       "      <td>10</td>\n",
       "      <td>32</td>\n",
       "      <td>...</td>\n",
       "      <td>974</td>\n",
       "      <td>2015,2016,2017,2018</td>\n",
       "      <td>71</td>\n",
       "      <td>tRC9YLo4LHquMVXZ9VO4Ag, -YpfTgz88rsPwsOvlfKn7w...</td>\n",
       "      <td>1007</td>\n",
       "      <td>Javier</td>\n",
       "      <td>470</td>\n",
       "      <td>1655</td>\n",
       "      <td>pU6GoRTcl1rIOi6zMynjog</td>\n",
       "      <td>2011-12-16 16:13:01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.31</td>\n",
       "      <td>23</td>\n",
       "      <td>5</td>\n",
       "      <td>23</td>\n",
       "      <td>10</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "      <td>39</td>\n",
       "      <td>...</td>\n",
       "      <td>399</td>\n",
       "      <td>2008,2009</td>\n",
       "      <td>13</td>\n",
       "      <td>o8H8CioXzL4ZR_zxZYcv3Q, yJB1hHDIq18Qvmo3yo9_KA...</td>\n",
       "      <td>316</td>\n",
       "      <td>allison</td>\n",
       "      <td>391</td>\n",
       "      <td>708</td>\n",
       "      <td>_ICqwy7SW8J6OJBab1HkwA</td>\n",
       "      <td>2007-10-06 02:42:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2.64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>5fvybUMH9N9Gx1zKw8UbBQ, I0HBD2I7uT_LU_gA9Gb9HA...</td>\n",
       "      <td>4</td>\n",
       "      <td>A</td>\n",
       "      <td>19</td>\n",
       "      <td>33</td>\n",
       "      <td>z5y4ejvC8uaUg5fGEJHbRA</td>\n",
       "      <td>2013-05-28 17:49:42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.95</td>\n",
       "      <td>201</td>\n",
       "      <td>1</td>\n",
       "      <td>201</td>\n",
       "      <td>146</td>\n",
       "      <td>0</td>\n",
       "      <td>22</td>\n",
       "      <td>163</td>\n",
       "      <td>112</td>\n",
       "      <td>118</td>\n",
       "      <td>...</td>\n",
       "      <td>2158</td>\n",
       "      <td>2014,2015,2016,2017,2018</td>\n",
       "      <td>58</td>\n",
       "      <td>HHmX2L4Gg6L0WJNcxs4Ptw, 8DEyKVyplnOcSKx39vatbg...</td>\n",
       "      <td>1338</td>\n",
       "      <td>Fred</td>\n",
       "      <td>431</td>\n",
       "      <td>3157</td>\n",
       "      <td>rnU1EFMSnVJGrQxrnjaODg</td>\n",
       "      <td>2010-12-28 01:37:20</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 22 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   average_stars  compliment_cool  compliment_cute  compliment_funny  \\\n",
       "0           3.60                5                0                 5   \n",
       "1           3.45               64                0                64   \n",
       "2           4.31               23                5                23   \n",
       "3           2.64                0                0                 0   \n",
       "4           3.95              201                1               201   \n",
       "\n",
       "   compliment_hot  compliment_list  compliment_more  compliment_note  \\\n",
       "0               1                0                0                4   \n",
       "1              16                0                8               42   \n",
       "2              10                4                6               21   \n",
       "3               0                0                0                0   \n",
       "4             146                0               22              163   \n",
       "\n",
       "   compliment_photos  compliment_plain         ...           cool  \\\n",
       "0                  3                11         ...             34   \n",
       "1                 10                32         ...            974   \n",
       "2                  1                39         ...            399   \n",
       "3                  0                 1         ...              3   \n",
       "4                112               118         ...           2158   \n",
       "\n",
       "                      elite  fans  \\\n",
       "0                 2017,2018     9   \n",
       "1       2015,2016,2017,2018    71   \n",
       "2                 2008,2009    13   \n",
       "3                       NaN     1   \n",
       "4  2014,2015,2016,2017,2018    58   \n",
       "\n",
       "                                             friends  funny     name  \\\n",
       "0  CfGCj80EdA-xS-mTWlAn4Q, JgD2Rk9K07MkZgG7Nb9YzA...     26    Peter   \n",
       "1  tRC9YLo4LHquMVXZ9VO4Ag, -YpfTgz88rsPwsOvlfKn7w...   1007   Javier   \n",
       "2  o8H8CioXzL4ZR_zxZYcv3Q, yJB1hHDIq18Qvmo3yo9_KA...    316  allison   \n",
       "3  5fvybUMH9N9Gx1zKw8UbBQ, I0HBD2I7uT_LU_gA9Gb9HA...      4        A   \n",
       "4  HHmX2L4Gg6L0WJNcxs4Ptw, 8DEyKVyplnOcSKx39vatbg...   1338     Fred   \n",
       "\n",
       "   review_count useful                 user_id        yelping_since  \n",
       "0            47     57  gvXtMj3XuPr0xHjgmlmtng  2014-01-05 20:45:54  \n",
       "1           470   1655  pU6GoRTcl1rIOi6zMynjog  2011-12-16 16:13:01  \n",
       "2           391    708  _ICqwy7SW8J6OJBab1HkwA  2007-10-06 02:42:28  \n",
       "3            19     33  z5y4ejvC8uaUg5fGEJHbRA  2013-05-28 17:49:42  \n",
       "4           431   3157  rnU1EFMSnVJGrQxrnjaODg  2010-12-28 01:37:20  \n",
       "\n",
       "[5 rows x 22 columns]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Read user dataframe\n",
    "user_df = pd.read_csv('user.csv')\n",
    "user_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "linkText": "Export to plot.ly",
        "plotlyServerURL": "https://plot.ly",
        "showLink": false
       },
       "data": [
        {
         "marker": {
          "color": "midnightblue"
         },
         "name": "Number of restaurants",
         "opacity": 0.5,
         "text": "Count per star value",
         "type": "bar",
         "uid": "cd0f5cdb-b7ad-49d6-be4f-d4113c231b4d",
         "x": [
          1,
          1.5,
          2,
          2.5,
          3,
          3.5,
          4,
          4.5,
          5
         ],
         "y": [
          352,
          541,
          1512,
          2822,
          5130,
          7297,
          7498,
          4439,
          2062
         ]
        }
       ],
       "layout": {
        "legend": {
         "bgcolor": "lightgray",
         "bordercolor": "gray",
         "borderwidth": 2
        },
        "showlegend": true,
        "title": {
         "text": "Distrubution of star rating (full dataset)."
        },
        "xaxis": {
         "linecolor": "#636363",
         "linewidth": 6,
         "mirror": true,
         "showline": true,
         "ticks": "outside",
         "title": {
          "text": "Star rating"
         }
        },
        "yaxis": {
         "linecolor": "#636363",
         "linewidth": 6,
         "mirror": true,
         "showline": true,
         "title": {
          "text": "Number of resturants"
         },
         "zeroline": true
        }
       }
      },
      "text/html": [
       "<div id=\"9f8cd363-3e54-4aa0-919a-7bad9371f75b\" style=\"height: 525px; width: 100%;\" class=\"plotly-graph-div\"></div><script type=\"text/javascript\">require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {};window.PLOTLYENV.BASE_URL=\"https://plot.ly\";Plotly.newPlot(\"9f8cd363-3e54-4aa0-919a-7bad9371f75b\", [{\"marker\": {\"color\": \"midnightblue\"}, \"name\": \"Number of restaurants\", \"opacity\": 0.5, \"text\": \"Count per star value\", \"x\": [1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0], \"y\": [352, 541, 1512, 2822, 5130, 7297, 7498, 4439, 2062], \"type\": \"bar\", \"uid\": \"7488acd0-e7c7-4475-bdb1-2dcd863fddbb\"}], {\"legend\": {\"bgcolor\": \"lightgray\", \"bordercolor\": \"gray\", \"borderwidth\": 2}, \"showlegend\": true, \"title\": {\"text\": \"Distrubution of star rating (full dataset).\"}, \"xaxis\": {\"linecolor\": \"#636363\", \"linewidth\": 6, \"mirror\": true, \"showline\": true, \"ticks\": \"outside\", \"title\": {\"text\": \"Star rating\"}}, \"yaxis\": {\"linecolor\": \"#636363\", \"linewidth\": 6, \"mirror\": true, \"showline\": true, \"title\": {\"text\": \"Number of resturants\"}, \"zeroline\": true}}, {\"showLink\": false, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\"})});</script><script type=\"text/javascript\">window.addEventListener(\"resize\", function(){window._Plotly.Plots.resize(document.getElementById(\"9f8cd363-3e54-4aa0-919a-7bad9371f75b\"));});</script>"
      ],
      "text/vnd.plotly.v1+html": [
       "<div id=\"9f8cd363-3e54-4aa0-919a-7bad9371f75b\" style=\"height: 525px; width: 100%;\" class=\"plotly-graph-div\"></div><script type=\"text/javascript\">require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {};window.PLOTLYENV.BASE_URL=\"https://plot.ly\";Plotly.newPlot(\"9f8cd363-3e54-4aa0-919a-7bad9371f75b\", [{\"marker\": {\"color\": \"midnightblue\"}, \"name\": \"Number of restaurants\", \"opacity\": 0.5, \"text\": \"Count per star value\", \"x\": [1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0], \"y\": [352, 541, 1512, 2822, 5130, 7297, 7498, 4439, 2062], \"type\": \"bar\", \"uid\": \"7488acd0-e7c7-4475-bdb1-2dcd863fddbb\"}], {\"legend\": {\"bgcolor\": \"lightgray\", \"bordercolor\": \"gray\", \"borderwidth\": 2}, \"showlegend\": true, \"title\": {\"text\": \"Distrubution of star rating (full dataset).\"}, \"xaxis\": {\"linecolor\": \"#636363\", \"linewidth\": 6, \"mirror\": true, \"showline\": true, \"ticks\": \"outside\", \"title\": {\"text\": \"Star rating\"}}, \"yaxis\": {\"linecolor\": \"#636363\", \"linewidth\": 6, \"mirror\": true, \"showline\": true, \"title\": {\"text\": \"Number of resturants\"}, \"zeroline\": true}}, {\"showLink\": false, \"linkText\": \"Export to plot.ly\", \"plotlyServerURL\": \"https://plot.ly\"})});</script><script type=\"text/javascript\">window.addEventListener(\"resize\", function(){window._Plotly.Plots.resize(document.getElementById(\"9f8cd363-3e54-4aa0-919a-7bad9371f75b\"));});</script>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Hotel rating distribution plot//\n",
    "\n",
    "# Preparing data//\n",
    "ratings_count = business_df.groupby(['stars']).size()\n",
    "# print(ratings_count)\n",
    "\n",
    "# Plot data//\n",
    "trace0 = go.Bar(\n",
    "        y = ratings_count.values,\n",
    "        x = ratings_count.index,\n",
    "        name = 'Number of restaurants',\n",
    "        text = 'Count per star value',\n",
    "        marker=dict(\n",
    "            color='midnightblue',\n",
    "        ),\n",
    "        opacity=0.5\n",
    "    )\n",
    "\n",
    "# Layout for the plot\n",
    "layout = dict(title = 'Distrubution of star rating (full dataset).',\n",
    "              xaxis=go.layout.XAxis(title='Star rating',\n",
    "                        showline=True,\n",
    "                        mirror=True,\n",
    "                        ticks='outside',\n",
    "                        linecolor='#636363',\n",
    "                        linewidth=6\n",
    "                    ),\n",
    "              yaxis = dict(title = 'Number of resturants',\n",
    "                        zeroline=True,\n",
    "                        showline=True,\n",
    "                        mirror=True,\n",
    "                        linecolor='#636363',\n",
    "                        linewidth=6\n",
    "                    ),\n",
    "              showlegend=True,\n",
    "              legend=dict(bgcolor='lightgray',\n",
    "                        bordercolor='gray',\n",
    "                        borderwidth=2\n",
    "                    )\n",
    "              )\n",
    "\n",
    "# Add our data to the plot\n",
    "data = [trace0]\n",
    "\n",
    "# Combine data and layout into a single figure\n",
    "fig = dict(data=data, layout=layout)\n",
    "\n",
    "# IPython notebook- plot\n",
    "iplot(fig, filename='bar-plot-starsdistrib')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>address</th>\n",
       "      <th>attributes</th>\n",
       "      <th>business_id</th>\n",
       "      <th>categories</th>\n",
       "      <th>city</th>\n",
       "      <th>hours</th>\n",
       "      <th>is_open</th>\n",
       "      <th>latitude</th>\n",
       "      <th>longitude</th>\n",
       "      <th>name</th>\n",
       "      <th>postal_code</th>\n",
       "      <th>review_count</th>\n",
       "      <th>stars</th>\n",
       "      <th>state</th>\n",
       "      <th>review_posneg_score</th>\n",
       "      <th>attributes_kmeans</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>30 Eglinton Avenue W</td>\n",
       "      <td>{'RestaurantsReservations': 'True', 'GoodForMe...</td>\n",
       "      <td>QXAEGFB4oINsVuTFxEYKFQ</td>\n",
       "      <td>Specialty Food, Restaurants, Dim Sum, Imported...</td>\n",
       "      <td>Mississauga</td>\n",
       "      <td>{'Monday': '9:0-0:0', 'Tuesday': '9:0-0:0', 'W...</td>\n",
       "      <td>1</td>\n",
       "      <td>43.605499</td>\n",
       "      <td>-79.652289</td>\n",
       "      <td>Emerald Chinese Restaurant</td>\n",
       "      <td>L5R 3E7</td>\n",
       "      <td>128</td>\n",
       "      <td>2.5</td>\n",
       "      <td>ON</td>\n",
       "      <td>0.003609</td>\n",
       "      <td>pricerange2 lunch dinner</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>Credit Valley Town Plaza, F2 - 6045 Creditview Rd</td>\n",
       "      <td>{'BusinessParking': \"{'garage': False, 'street...</td>\n",
       "      <td>68dUKd8_8liJ7in4aWOSEA</td>\n",
       "      <td>Shipping Centers, Couriers &amp; Delivery Services...</td>\n",
       "      <td>Mississauga</td>\n",
       "      <td>{'Monday': '9:0-19:0', 'Tuesday': '9:0-20:0', ...</td>\n",
       "      <td>1</td>\n",
       "      <td>43.599475</td>\n",
       "      <td>-79.711584</td>\n",
       "      <td>The UPS Store</td>\n",
       "      <td>L5V 0B1</td>\n",
       "      <td>3</td>\n",
       "      <td>2.5</td>\n",
       "      <td>ON</td>\n",
       "      <td>0.166667</td>\n",
       "      <td>pricerange2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>1210 8th Street SW, Unit 220</td>\n",
       "      <td>{'BikeParking': 'False', 'ByAppointmentOnly': ...</td>\n",
       "      <td>fcXOEZdXYeZqnQ3lGlOXmg</td>\n",
       "      <td>Local Services, Professional Services, Compute...</td>\n",
       "      <td>Calgary</td>\n",
       "      <td>{'Monday': '9:0-17:0', 'Tuesday': '9:0-17:0', ...</td>\n",
       "      <td>1</td>\n",
       "      <td>51.041771</td>\n",
       "      <td>-114.081109</td>\n",
       "      <td>Nucleus Information Service</td>\n",
       "      <td>T2R 1L3</td>\n",
       "      <td>5</td>\n",
       "      <td>2.0</td>\n",
       "      <td>AB</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>pricerange1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>865 York Mills Road, Unit 1</td>\n",
       "      <td>{'RestaurantsDelivery': 'False', 'RestaurantsP...</td>\n",
       "      <td>C9oCPomVP0mtKa8z99E3gg</td>\n",
       "      <td>Bakeries, Food</td>\n",
       "      <td>Toronto</td>\n",
       "      <td>{'Monday': '9:0-20:0', 'Tuesday': '9:0-20:0', ...</td>\n",
       "      <td>1</td>\n",
       "      <td>43.754093</td>\n",
       "      <td>-79.349548</td>\n",
       "      <td>Bakery Gateau</td>\n",
       "      <td>M3B 1Y6</td>\n",
       "      <td>8</td>\n",
       "      <td>4.5</td>\n",
       "      <td>ON</td>\n",
       "      <td>0.625000</td>\n",
       "      <td>pricerange2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>26 Bellair St</td>\n",
       "      <td>{'RestaurantsPriceRange2': '3', 'BusinessParki...</td>\n",
       "      <td>C9keC4mWuXdl2mYFHZXudQ</td>\n",
       "      <td>Fashion, Sporting Goods, Men's Clothing, Shopp...</td>\n",
       "      <td>Toronto</td>\n",
       "      <td>{'Monday': '11:30-19:0', 'Tuesday': '11:30-19:...</td>\n",
       "      <td>1</td>\n",
       "      <td>43.670744</td>\n",
       "      <td>-79.391385</td>\n",
       "      <td>Uncle Otis Clothing</td>\n",
       "      <td>M5R 2C7</td>\n",
       "      <td>12</td>\n",
       "      <td>5.0</td>\n",
       "      <td>ON</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>pricerange3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0                                            address  \\\n",
       "0           0                               30 Eglinton Avenue W   \n",
       "1           1  Credit Valley Town Plaza, F2 - 6045 Creditview Rd   \n",
       "2           2                       1210 8th Street SW, Unit 220   \n",
       "3           5                        865 York Mills Road, Unit 1   \n",
       "4           6                                      26 Bellair St   \n",
       "\n",
       "                                          attributes             business_id  \\\n",
       "0  {'RestaurantsReservations': 'True', 'GoodForMe...  QXAEGFB4oINsVuTFxEYKFQ   \n",
       "1  {'BusinessParking': \"{'garage': False, 'street...  68dUKd8_8liJ7in4aWOSEA   \n",
       "2  {'BikeParking': 'False', 'ByAppointmentOnly': ...  fcXOEZdXYeZqnQ3lGlOXmg   \n",
       "3  {'RestaurantsDelivery': 'False', 'RestaurantsP...  C9oCPomVP0mtKa8z99E3gg   \n",
       "4  {'RestaurantsPriceRange2': '3', 'BusinessParki...  C9keC4mWuXdl2mYFHZXudQ   \n",
       "\n",
       "                                          categories         city  \\\n",
       "0  Specialty Food, Restaurants, Dim Sum, Imported...  Mississauga   \n",
       "1  Shipping Centers, Couriers & Delivery Services...  Mississauga   \n",
       "2  Local Services, Professional Services, Compute...      Calgary   \n",
       "3                                     Bakeries, Food      Toronto   \n",
       "4  Fashion, Sporting Goods, Men's Clothing, Shopp...      Toronto   \n",
       "\n",
       "                                               hours  is_open   latitude  \\\n",
       "0  {'Monday': '9:0-0:0', 'Tuesday': '9:0-0:0', 'W...        1  43.605499   \n",
       "1  {'Monday': '9:0-19:0', 'Tuesday': '9:0-20:0', ...        1  43.599475   \n",
       "2  {'Monday': '9:0-17:0', 'Tuesday': '9:0-17:0', ...        1  51.041771   \n",
       "3  {'Monday': '9:0-20:0', 'Tuesday': '9:0-20:0', ...        1  43.754093   \n",
       "4  {'Monday': '11:30-19:0', 'Tuesday': '11:30-19:...        1  43.670744   \n",
       "\n",
       "    longitude                         name postal_code  review_count  stars  \\\n",
       "0  -79.652289   Emerald Chinese Restaurant     L5R 3E7           128    2.5   \n",
       "1  -79.711584                The UPS Store     L5V 0B1             3    2.5   \n",
       "2 -114.081109  Nucleus Information Service     T2R 1L3             5    2.0   \n",
       "3  -79.349548                Bakery Gateau     M3B 1Y6             8    4.5   \n",
       "4  -79.391385          Uncle Otis Clothing     M5R 2C7            12    5.0   \n",
       "\n",
       "  state  review_posneg_score          attributes_kmeans  \n",
       "0    ON             0.003609   pricerange2 lunch dinner  \n",
       "1    ON             0.166667                pricerange2  \n",
       "2    AB             0.025000                pricerange1  \n",
       "3    ON             0.625000                pricerange2  \n",
       "4    ON             0.500000                pricerange3  "
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Read updated restaurants dataframe//\n",
    "business_df_new = pd.read_csv('business_featurized.csv')\n",
    "business_df_new.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "linkText": "Export to plot.ly",
        "plotlyServerURL": "https://plot.ly",
        "showLink": false
       },
       "data": [
        {
         "marker": {
          "color": "maroon",
          "line": {
           "color": "red",
           "width": 1.5
          },
          "size": 7
         },
         "mode": "markers",
         "name": "Number of restaurants per sentiment score",
         "opacity": 0.7,
         "text": "Number of restaurants",
         "type": "scatter",
         "uid": "bdbe0f35-6053-4056-896e-7384d466b3c6",
         "x": [
          0,
          0.0007461177807087637,
          0.000894729855303332,
          0.0016387121650279545,
          0.0016775534441805227,
          0.0016979000531632113,
          0.0018828637249689879,
          0.0021780857570433986,
          0.0021833577160083346,
          0.002252977148374638,
          0.002272727272727273,
          0.0022853957636566327,
          0.0023549948947663127,
          0.002381133800670527,
          0.0024882277397260274,
          0.002506003967839616,
          0.002533239323126511,
          0.0025918625297180176,
          0.0026012373453318336,
          0.002671529968454259,
          0.002671716123677112,
          0.0027085165180253733,
          0.0027203856749311297,
          0.0027255639097744358,
          0.002741228070175439,
          0.0027417027417027413,
          0.002777777777777777,
          0.002810949131513648,
          0.00282989368355222,
          0.002880184331797235,
          0.002888247056209732,
          0.0029047976011994004,
          0.0029205607476635517,
          0.002925228310502283,
          0.002938196555217832,
          0.00300187617260788,
          0.0030131482834185536,
          0.003017140858208955,
          0.003064292321924144,
          0.0031202563670096137,
          0.003125,
          0.003195903888628606,
          0.003210778141526064,
          0.0032180331869204487,
          0.0032271944922547327,
          0.003229011425732737,
          0.0032356299961933768,
          0.0032619047619047623,
          0.003289473684210526,
          0.0033370552707709484,
          0.0033422459893048127,
          0.003349673202614379,
          0.0033596837944664037,
          0.003402847152847153,
          0.0034188034188034192,
          0.003451066260472201,
          0.003472222222222222,
          0.003475935828877005,
          0.00348667396860168,
          0.0035,
          0.003511794328120859,
          0.0035400390625,
          0.0035499585406301827,
          0.0035714285714285718,
          0.0035822686525022944,
          0.003585271317829457,
          0.003587113211974924,
          0.003609035326086957,
          0.003644314868804665,
          0.0036599099099099103,
          0.0036941856729842603,
          0.003703703703703704,
          0.0037259615384615382,
          0.003770277981576588,
          0.003774680603948897,
          0.003775797373358349,
          0.003783709411117226,
          0.003818118708781673,
          0.0038230371272063297,
          0.003831923890063425,
          0.0038484606157536986,
          0.003869348852901485,
          0.003872311636519015,
          0.00390625,
          0.003932178932178933,
          0.003949100482667837,
          0.003957485300768883,
          0.00395778364116095,
          0.003984674329501915,
          0.004032258064516129,
          0.004078762306610408,
          0.004087494476358816,
          0.004089083607155896,
          0.004092261904761905,
          0.004093792043052085,
          0.004104477611940299,
          0.004114490161001789,
          0.004136029411764706,
          0.004151100041511001,
          0.0041568065761614145,
          0.0041666666666666675,
          0.0041704125461991814,
          0.004173663933616517,
          0.004175171645945444,
          0.0042105263157894745,
          0.004219409282700422,
          0.004221686135093957,
          0.004224778580881604,
          0.00427827380952381,
          0.0042830882352941175,
          0.004308181361887234,
          0.004324324324324324,
          0.00434292160180485,
          0.004346182917611489,
          0.004360465116279071,
          0.004430670339761249,
          0.004441294590125207,
          0.004459770114942529,
          0.004504612149309373,
          0.004513888888888889,
          0.004528985507246377,
          0.0045402298850574715,
          0.004549561177077956,
          0.004586038961038962,
          0.004587572674418605,
          0.0046055563809240824,
          0.0046108861898335575,
          0.004616805170821792,
          0.004617766389066837,
          0.004640739695087521,
          0.004655934343434343,
          0.004660433635425032,
          0.004728583545377438,
          0.004729789886039885,
          0.004747474747474748,
          0.0047544480755265075,
          0.004756975253869663,
          0.004761234637395628,
          0.004786450662739323,
          0.004797979797979799,
          0.004847560975609756,
          0.00487012987012987,
          0.004873047972137961,
          0.004904097646033129,
          0.004906817645671149,
          0.0049121974371143795,
          0.004919137466307278,
          0.004940388698350482,
          0.004948045522018803,
          0.004950129839471199,
          0.004961993243243243,
          0.004967511065072041,
          0.005017841213202498,
          0.005024336630554248,
          0.005026663169857505,
          0.005036630036630037,
          0.005039787798408488,
          0.0050469483568075105,
          0.005051223676721684,
          0.005055415127357574,
          0.005058443283449925,
          0.005063153310104529,
          0.005067015364498203,
          0.005078835657974529,
          0.005100634132892197,
          0.005102040816326529,
          0.005128205128205128,
          0.0051381998582565565,
          0.005147630147630148,
          0.005154639175257732,
          0.005173576002696328,
          0.005177220230983672,
          0.00518341307814992,
          0.005183649289099526,
          0.005208333333333333,
          0.00521640826873385,
          0.0052166400850611385,
          0.005218824391137154,
          0.005239520958083832,
          0.005332425686407987,
          0.0053439153439153435,
          0.005347593582887701,
          0.00536983204134367,
          0.005380794701986755,
          0.005383702892599689,
          0.00540796963946869,
          0.0054219707685054215,
          0.005434782608695652,
          0.005481248360870706,
          0.005494505494505494,
          0.005496858937749857,
          0.00550691404349941,
          0.005513736746529202,
          0.005514705882352942,
          0.005518703784254024,
          0.005580357142857143,
          0.0055882352941176465,
          0.005603581352269219,
          0.005612244897959184,
          0.005623508353221957,
          0.0056240928882438325,
          0.0056262230919765155,
          0.005631132917038359,
          0.005641254462009179,
          0.005642361111111111,
          0.005645161290322581,
          0.005667258032722254,
          0.005684705284552846,
          0.0056907378335949756,
          0.005692599620493359,
          0.005742900608519268,
          0.005747126436781609,
          0.00574951171875,
          0.005756578947368421,
          0.005767130767130767,
          0.005769230769230769,
          0.0057766367137355576,
          0.0057997557997558,
          0.005861535058615351,
          0.0058715921161336,
          0.005875077303648732,
          0.0058784113060428855,
          0.005904307391091532,
          0.005933117583603021,
          0.005952380952380952,
          0.0059558823529411754,
          0.005980861244019139,
          0.0059931506849315065,
          0.006012110726643598,
          0.006041878055529933,
          0.00604666095890411,
          0.006060606060606061,
          0.0060655737704918035,
          0.006072874493927126,
          0.006076083127861923,
          0.006076388888888889,
          0.0060986467236467225,
          0.006108539094650207,
          0.0061224489795918356,
          0.006137322593018796,
          0.006143162393162393,
          0.006152647975077882,
          0.006183862433862435,
          0.006189948263118995,
          0.006198347107438018,
          0.006222455929487179,
          0.006231398809523809,
          0.006238859180035651,
          0.006243756243756244,
          0.006248929977743537,
          0.00625,
          0.006288261911099281,
          0.006298888431453272,
          0.006303879310344827,
          0.006368437402920161,
          0.0063729874776386405,
          0.0063732563732563745,
          0.0063743480780374725,
          0.006392045454545455,
          0.006395614435815441,
          0.0063988095238095245,
          0.00640495867768595,
          0.0064121300694190714,
          0.006422139830508475,
          0.006428571428571429,
          0.006436420722135008,
          0.006450827653359297,
          0.0064540175768989325,
          0.006455643481882549,
          0.006456801470588236,
          0.006464646464646465,
          0.00646551724137931,
          0.006481799450549451,
          0.0065149136577708,
          0.006519322845417236,
          0.006539424280350439,
          0.006547619047619048,
          0.006550218340611353,
          0.006555227794165847,
          0.006582278481012658,
          0.006611570247933884,
          0.006618195376584639,
          0.006620689655172414,
          0.006621621621621622,
          0.006623376623376622,
          0.006642512077294686,
          0.00665799856527977,
          0.006659335288367547,
          0.006696428571428572,
          0.006720024161884628,
          0.006723331534448642,
          0.00672514619883041,
          0.006730769230769229,
          0.006730769230769231,
          0.006746626686656672,
          0.006782225525589297,
          0.006790123456790124,
          0.006798756798756799,
          0.00679974184030979,
          0.006810897435897436,
          0.006815445476436189,
          0.006831983805668017,
          0.0068349106203995785,
          0.006847993827160494,
          0.006852343059239611,
          0.006853070175438597,
          0.006856994997412455,
          0.00686106346483705,
          0.006895193065405831,
          0.006896551724137931,
          0.006901041666666666,
          0.006942414498684595,
          0.006944444444444444,
          0.0069648093841642245,
          0.00696594427244582,
          0.0069687938288920045,
          0.006989832970225126,
          0.007004310344827586,
          0.007007575757575758,
          0.00701530612244898,
          0.007018125552608312,
          0.007019704433497536,
          0.007047872340425532,
          0.007053291536050156,
          0.007060778070053995,
          0.007064782724606772,
          0.007065217391304349,
          0.007065699911216336,
          0.007069762323943662,
          0.0070786516853932595,
          0.007086167800453516,
          0.007086999022482894,
          0.0070910973084886125,
          0.007094846900672144,
          0.007107023411371238,
          0.007111746291003131,
          0.007119514472455649,
          0.007131680308136736,
          0.007150900900900902,
          0.007160354249104954,
          0.007176763110307414,
          0.00718031968031968,
          0.007211538461538463,
          0.007214076246334311,
          0.00721879908179292,
          0.0072268326417704015,
          0.007246376811594201,
          0.007259001161440186,
          0.007291666666666667,
          0.007315025782467922,
          0.007321511090573013,
          0.007327586206896552,
          0.007337983144434756,
          0.007342342342342344,
          0.007348784624081402,
          0.007352941176470587,
          0.007355697151424288,
          0.007372444999219847,
          0.0073924731182795685,
          0.007401315789473685,
          0.007407407407407408,
          0.007411297852474324,
          0.007429534313725491,
          0.007435465768799101,
          0.007440476190476191,
          0.007449605609114811,
          0.007456571615863651,
          0.007459312839059675,
          0.0074641799407668295,
          0.007467994310099573,
          0.007473544973544973,
          0.007477168949771688,
          0.007486979166666667,
          0.0074962518740629685,
          0.0075,
          0.0075000000000000015,
          0.00750296559905101,
          0.007505886970172684,
          0.007514544279250163,
          0.007514662756598241,
          0.007522935779816512,
          0.007529624753127058,
          0.007545619648880049,
          0.007553834368882458,
          0.007554945054945055,
          0.007560483870967742,
          0.007568760262725779,
          0.00757120796156486,
          0.007589285714285714,
          0.0075980392156862735,
          0.0076058201058201045,
          0.007608034083992697,
          0.007624940826401569,
          0.007628734901462175,
          0.007630813953488372,
          0.007631257631257631,
          0.007634575569358178,
          0.007636248415716095,
          0.007648953301127214,
          0.007662408397702516,
          0.007675438596491229,
          0.007677434030937216,
          0.007680491551459293,
          0.007689006508833417,
          0.007692307692307692,
          0.007692307692307694,
          0.007715014088286595,
          0.007734389737785324,
          0.007743362831858406,
          0.007750000000000002,
          0.007759999999999999,
          0.00776219773930462,
          0.007768093974990527,
          0.007774538386783284,
          0.007779097387173395,
          0.007783145464304883,
          0.007797365362262689,
          0.0078125,
          0.00781818181818182,
          0.007820891514500538,
          0.0078397212543554,
          0.007843137254901959,
          0.007844756399669695,
          0.007859531772575251,
          0.00786019536019536,
          0.007868937048503612,
          0.007876106194690266,
          0.007884615384615384,
          0.007909328114807566,
          0.007913961038961038,
          0.007923789173789173,
          0.007930871212121212,
          0.007936507936507936,
          0.007954545454545455,
          0.007959905660377358,
          0.007961965860923358,
          0.00796245965687107,
          0.007971014492753623,
          0.00798076923076923,
          0.007988165680473374,
          0.008,
          0.008009153318077803,
          0.008019911504424779,
          0.00802139037433155,
          0.008033906882591094,
          0.008042328042328042,
          0.008048433048433048,
          0.008048780487804878,
          0.008062015503875971,
          0.008074935400516795,
          0.008083333333333335,
          0.008089539007092198,
          0.008101851851851851,
          0.008104575163398693,
          0.00811298076923077,
          0.008120939530234883,
          0.008122362869198313,
          0.00812308868501529,
          0.008125,
          0.008126777732629013,
          0.008163855820105821,
          0.008166491043203371,
          0.008166874739908448,
          0.00817123724489796,
          0.008173076923076924,
          0.008178374655647384,
          0.008184199039720647,
          0.00819252432155658,
          0.008197688133993866,
          0.008198198198198198,
          0.008219954648526078,
          0.008223684210526315,
          0.008226037195994278,
          0.00824,
          0.008241758241758242,
          0.008253054511278196,
          0.008264462809917356,
          0.008266620257570483,
          0.008267195767195767,
          0.008268127282211789,
          0.008272058823529412,
          0.008287685128829377,
          0.008288125376732972,
          0.008288770053475936,
          0.008297872340425531,
          0.008306781975421028,
          0.008309591642924977,
          0.008314436885865457,
          0.008317025440313111,
          0.008322981366459628,
          0.008333333333333333,
          0.008343508343508345,
          0.008348687240902809,
          0.008350202429149798,
          0.008352402745995424,
          0.008361204013377926,
          0.008364456893868659,
          0.0083700882117081,
          0.008391203703703705,
          0.008424908424908423,
          0.008441558441558441,
          0.008454106280193238,
          0.008455882352941176,
          0.008465959328028294,
          0.008467023172905527,
          0.008475855130784709,
          0.008478682170542635,
          0.008482758620689656,
          0.008486486486486486,
          0.008496240601503759,
          0.008503401360544218,
          0.008522727272727272,
          0.008531746031746031,
          0.008541362973760933,
          0.008541574524546661,
          0.008547008547008546,
          0.008547008547008548,
          0.008559782608695653,
          0.00857843137254902,
          0.008592592592592594,
          0.008597883597883597,
          0.008623787279913761,
          0.00863486842105263,
          0.008638083228247162,
          0.008664772727272728,
          0.008676582761250953,
          0.008680555555555556,
          0.008683473389355744,
          0.008687258687258687,
          0.008689175769612709,
          0.008689458689458689,
          0.008692365835222978,
          0.008695652173913044,
          0.008697591436217664,
          0.008712121212121213,
          0.008713618397412864,
          0.00871717606543263,
          0.008718414676358602,
          0.008723599632690544,
          0.008729460093896713,
          0.008734293594851365,
          0.008741721854304638,
          0.008743169398907106,
          0.008745214061956144,
          0.008768656716417909,
          0.008771929824561403,
          0.008781173164734809,
          0.008786231884057971,
          0.008786848072562359,
          0.0088,
          0.008803827751196173,
          0.00880893300248139,
          0.008810010214504595,
          0.008810935441370224,
          0.008823529411764706,
          0.008836206896551723,
          0.008838383838383838,
          0.008846153846153846,
          0.0088475499092559,
          0.008867276887871853,
          0.008876811594202899,
          0.008891928864569083,
          0.008897243107769423,
          0.008928571428571428,
          0.00892857142857143,
          0.00893440836783613,
          0.008936651583710407,
          0.00893852524287307,
          0.008952702702702703,
          0.008954248366013072,
          0.00895579268292683,
          0.008966114271580509,
          0.008986928104575163,
          0.00899209486166008,
          0.008996212121212122,
          0.00899778516057586,
          0.009002057613168725,
          0.009004884004884004,
          0.009019426456984274,
          0.00902061855670103,
          0.009025974025974026,
          0.00902777777777778,
          0.009029535864978904,
          0.0090311986863711,
          0.009032634032634034,
          0.009033778476040848,
          0.009035409035409036,
          0.00903799019607843,
          0.009043927648578809,
          0.009044715447154471,
          0.009072580645161293,
          0.009076923076923076,
          0.009079391891891893,
          0.009094806467417931,
          0.009098228663446051,
          0.009111384111384112,
          0.009119380987472364,
          0.009129901960784313,
          0.009140316205533598,
          0.00915032679738562,
          0.009154929577464787,
          0.009157822663471414,
          0.009166666666666668,
          0.009171195652173914,
          0.009180790960451976,
          0.009183673469387756,
          0.009185606060606059,
          0.009191176470588236,
          0.00919459962756052,
          0.009202453987730062,
          0.009203821656050956,
          0.009208937198067632,
          0.009216177523264138,
          0.009216589861751152,
          0.009217391304347828,
          0.009219212383337129,
          0.009230769230769232,
          0.009233926128590971,
          0.009234234234234234,
          0.009236453201970442,
          0.009246575342465755,
          0.009248442367601249,
          0.00925,
          0.009259259259259259,
          0.009267241379310344,
          0.009275237273511648,
          0.0092837361530715,
          0.009287587412587412,
          0.009309210526315791,
          0.009316770186335404,
          0.00932300631095812,
          0.009330985915492956,
          0.009345794392523364,
          0.009358288770053477,
          0.00935960591133005,
          0.009362549800796814,
          0.009371584699453551,
          0.009375,
          0.00937950937950938,
          0.009381469979296066,
          0.009386733416770964,
          0.009396914446002805,
          0.009397590361445782,
          0.009398496240601505,
          0.0093994140625,
          0.009400406504065041,
          0.009404388714733541,
          0.009408602150537636,
          0.009417808219178082,
          0.00945179584120983,
          0.009452936444086886,
          0.00946372239747634,
          0.00946969696969697,
          0.009490940465918895,
          0.009502324309543342,
          0.009512741046831957,
          0.009515570934256055,
          0.009517543859649124,
          0.009523809523809523,
          0.009533382066276805,
          0.009551495016611296,
          0.009560502283105022,
          0.009567430025445292,
          0.009567723342939479,
          0.009569377990430622,
          0.009582767978290366,
          0.00959079283887468,
          0.009603469640644362,
          0.009615384615384616,
          0.009621656881930854,
          0.00963898916967509,
          0.009641365757799069,
          0.009672619047619048,
          0.009685672514619884,
          0.00969529085872576,
          0.009708737864077669,
          0.009715475364330326,
          0.0097165991902834,
          0.00972847847847848,
          0.0097348303870043,
          0.00974025974025974,
          0.009750639386189258,
          0.009752374491180462,
          0.009765625,
          0.009770114942528735,
          0.009784075573549258,
          0.009786117836965294,
          0.009792626728110598,
          0.00982456140350877,
          0.009867009867009868,
          0.00986842105263158,
          0.00988051470588235,
          0.009881422924901186,
          0.009884806973848071,
          0.009885204081632655,
          0.009888438133874241,
          0.009888632872503841,
          0.00989057239057239,
          0.009895301327885598,
          0.009910485933503835,
          0.00992063492063492,
          0.009920634920634922,
          0.009929078014184398,
          0.009931582432134187,
          0.00993703266430539,
          0.009943181818181818,
          0.009946236559139784,
          0.009951636904761904,
          0.009957325746799429,
          0.009963768115942028,
          0.009980237154150196,
          0.009984554280670785,
          0.01,
          0.01001683501683502,
          0.01002055498458376,
          0.010025062656641605,
          0.010040885040885041,
          0.010047497259773474,
          0.01004947433518862,
          0.010051169590643276,
          0.010057471264367816,
          0.010083333333333331,
          0.010087719298245612,
          0.010091145833333334,
          0.010092832469775477,
          0.010093167701863354,
          0.0101010101010101,
          0.010107679804957337,
          0.01011029411764706,
          0.010113092648977815,
          0.010121457489878544,
          0.010121708892200695,
          0.010133779264214049,
          0.010135135135135136,
          0.010135607437438836,
          0.010138813282525857,
          0.010141093474426807,
          0.010141987829614604,
          0.010145846544071021,
          0.010151347360649687,
          0.01015625,
          0.01016260162601626,
          0.010164835164835163,
          0.0101775956284153,
          0.010204081632653059,
          0.010236220472440943,
          0.010250917992656058,
          0.010262725779967159,
          0.010263157894736842,
          0.0103125,
          0.010314685314685315,
          0.010315533980582523,
          0.010327635327635329,
          0.010342261904761904,
          0.010342950462710944,
          0.01034301188506093,
          0.010349978659837816,
          0.010357142857142856,
          0.010372714486638537,
          0.010378510378510378,
          0.010395537525354971,
          0.010396039603960395,
          0.010416666666666666,
          0.010420085329832622,
          0.010435571687840293,
          0.010436432637571158,
          0.01043956043956044,
          0.010441061670569868,
          0.010452401372212693,
          0.010454217736121126,
          0.010454498287848914,
          0.010460917587085812,
          0.010486059708857636,
          0.010488505747126436,
          0.01048951048951049,
          0.010493827160493827,
          0.010510510510510513,
          0.010514018691588784,
          0.010526315789473684,
          0.010526315789473686,
          0.01053113553113553,
          0.010535557506584723,
          0.01053639846743295,
          0.010546875,
          0.010565328023011395,
          0.010573650947982498,
          0.010576923076923078,
          0.010581734778982485,
          0.010584677419354838,
          0.010595238095238095,
          0.010618279569892471,
          0.010634920634920634,
          0.010638297872340424,
          0.010644418872266971,
          0.01065217391304348,
          0.0106544901065449,
          0.010655737704918034,
          0.010667014977359805,
          0.010668973471741635,
          0.010670731707317074,
          0.01068376068376068,
          0.010683760683760684,
          0.010686528497409326,
          0.010687022900763359,
          0.010692866161616162,
          0.0106951871657754,
          0.010695187165775402,
          0.0107,
          0.010706018518518521,
          0.010714285714285714,
          0.010721247563352828,
          0.010724331926863572,
          0.010732323232323232,
          0.010737628384687208,
          0.010738255033557048,
          0.010741138560687431,
          0.0107436021245775,
          0.010749385749385748,
          0.010758998435054772,
          0.010763888888888887,
          0.010775862068965518,
          0.010778275475923851,
          0.010786635096027359,
          0.010802469135802469,
          0.010804195804195805,
          0.010810810810810813,
          0.010827464788732396,
          0.010828625235404895,
          0.010838607594936708,
          0.010840108401084009,
          0.010844748858447488,
          0.010845588235294116,
          0.010851760851760851,
          0.010854341736694676,
          0.010855683269476371,
          0.010856708347414666,
          0.010858189429618002,
          0.010861561119293078,
          0.010869565217391304,
          0.010872206025267249,
          0.01087487781036168,
          0.01089417091114884,
          0.010897435897435895,
          0.010902255639097743,
          0.010903983656792644,
          0.010905760905760904,
          0.01091391268869849,
          0.010917030567685587,
          0.010929802955665023,
          0.0109347442680776,
          0.0109375,
          0.010945576162967468,
          0.01094812925170068,
          0.010957324106113034,
          0.010957792207792208,
          0.010960591133004929,
          0.010964912280701756,
          0.010969832959361756,
          0.010973011363636364,
          0.010980392156862744,
          0.010981912144702842,
          0.010982306284319707,
          0.01098503138580396,
          0.010989010989010988,
          0.010991058122205662,
          0.01099537037037037,
          0.011002886002886002,
          0.011006289308176102,
          0.01100948509485095,
          0.011010184420589044,
          0.01101050748938073,
          0.011019736842105264,
          0.011020324086789345,
          0.01102074493163602,
          0.01102657935285054,
          0.011028054632705795,
          0.01102941176470588,
          0.011047400611620795,
          0.01105263157894737,
          0.011067388096409246,
          0.011075949367088608,
          0.011091549295774649,
          0.011093911248710009,
          0.011108714408973252,
          0.01111111111111111,
          0.011111111111111113,
          0.011114690721649485,
          0.011117788461538462,
          0.01112012987012987,
          0.011128775834658187,
          0.011133603238866398,
          0.011147811725846408,
          0.011152882205513784,
          0.011160714285714286,
          0.011163032191069571,
          0.011166253101736972,
          0.011168384879725084,
          0.011168639053254438,
          0.011169024571854059,
          0.011174968071519796,
          0.011183261183261184,
          0.011194029850746268,
          0.011196319018404908,
          0.011204481792717087,
          0.011208576998050682,
          0.011216350947158523,
          0.011217948717948718,
          0.011233660130718954,
          0.01124031007751938,
          0.011245674740484428,
          0.011256354393609296,
          0.0112565445026178,
          0.011268143621084798,
          0.011270491803278687,
          0.011278195488721804,
          0.011284722222222222,
          0.011292996270203066,
          0.011307565789473685,
          0.011312217194570135,
          0.011316872427983541,
          0.011322463768115942,
          0.011334610472541508,
          0.011337868480725623,
          0.011339662447257384,
          0.011340852130325816,
          0.011346153846153846,
          0.011347517730496451,
          0.011351909184726523,
          0.011359921542987905,
          0.011363636363636364,
          0.011381475667189956,
          0.01138771186440678,
          0.011391880695940349,
          0.011395676691729324,
          0.011397058823529413,
          0.011403508771929824,
          0.011407766990291262,
          0.01141304347826087,
          0.011415816326530612,
          0.01142723880597015,
          0.011430678466076696,
          0.0114321608040201,
          0.011437908496732029,
          0.011446886446886448,
          0.01144894894894895,
          0.011452324397692568,
          0.01145912910618793,
          0.01146694214876033,
          0.011474609375,
          0.011485042735042734,
          0.011503824327658523,
          0.011509900990099013,
          0.011513157894736841,
          0.01153846153846154,
          0.011540120793787748,
          0.011541325390915859,
          0.011542012927054479,
          0.01154254805370424,
          0.01154970760233918,
          0.0115625,
          0.011572580645161291,
          0.011574074074074072,
          0.01159957627118644,
          0.011635220125786164,
          0.011646940317300429,
          0.011648223645893999,
          0.011656746031746032,
          0.011663286004056795,
          0.011664800298618886,
          0.011666666666666664,
          0.011670524691358023,
          0.011684125705076551,
          0.011685682738314315,
          0.011687725631768951,
          0.011688668866886687,
          0.011695906432748536,
          0.01169590643274854,
          0.01170058139534884,
          0.01171875,
          0.011720855038620442,
          0.011722488038277513,
          0.011722731906218144,
          0.0117296918767507,
          0.01173038728897716,
          0.011748120300751879,
          0.011759581881533102,
          0.011764705882352941,
          0.011778438030560272,
          0.0117816091954023,
          0.011784511784511785,
          0.011789473684210523,
          0.011794019933554816,
          0.011797752808988765,
          0.011801016702977488,
          0.011805555555555557,
          0.011812921890067505,
          0.011824324324324323,
          0.011827354260089688,
          0.011836441893830705,
          0.011839708561020035,
          0.011842105263157895,
          0.011844863731656186,
          0.011851851851851851,
          0.011857707509881422,
          0.011859939759036145,
          0.011863425925925928,
          0.011886886886886886,
          0.011889730639730641,
          0.011889862327909888,
          0.01189083820662768,
          0.01189689358889623,
          0.011901913875598084,
          0.011904761904761904,
          0.011904761904761906,
          0.011917372881355932,
          0.011923688394276629,
          0.011924342105263159,
          0.01193181818181818,
          0.011932404540763674,
          0.011933656957928805,
          0.011940979616671735,
          0.011951754385964913,
          0.011961722488038276,
          0.01196655132641292,
          0.011982570806100221,
          0.011989553656220323,
          0.011998685075608152,
          0.012,
          0.012001533742331287,
          0.012007389162561577,
          0.012019230769230768,
          0.01201923076923077,
          0.012035472972972971,
          0.012041823308270676,
          0.012044270833333334,
          0.012046485260770977,
          0.012053571428571427,
          0.012054507337526206,
          0.012055277859453102,
          0.012073863636363636,
          0.012075561932089907,
          0.012077294685990338,
          0.012085032032615028,
          0.012085769980506823,
          0.012096774193548387,
          0.01210826210826211,
          0.012115384615384616,
          0.012138188608776844,
          0.012142857142857144,
          0.012146892655367232,
          0.012152777777777778,
          0.0121684350132626,
          0.012169312169312168,
          0.01217329036877909,
          0.012175324675324674,
          0.012181238615664846,
          0.01220878136200717,
          0.012226362366092222,
          0.012228260869565218,
          0.01223199560197911,
          0.012234305486900642,
          0.012237762237762238,
          0.012239583333333331,
          0.012254901960784314,
          0.01225820962663068,
          0.012264150943396229,
          0.012276785714285714,
          0.012286324786324786,
          0.012299465240641712,
          0.012304921968787514,
          0.012321937321937322,
          0.012328767123287673,
          0.012335526315789472,
          0.01235702614379085,
          0.012362637362637364,
          0.012363352420614263,
          0.012366818873668188,
          0.012369406662724227,
          0.012369791666666666,
          0.012382864792503345,
          0.012388926862611073,
          0.012394957983193278,
          0.01240079365079365,
          0.012419871794871794,
          0.012422360248447204,
          0.012433862433862434,
          0.012446657183499287,
          0.012460815047021944,
          0.012472077438570366,
          0.012493492972410205,
          0.012493934983017952,
          0.0125,
          0.012524084778420038,
          0.01252723311546841,
          0.012544014084507043,
          0.012548138639281128,
          0.012566017118921871,
          0.012566137566137569,
          0.012568306010928962,
          0.012575075075075076,
          0.01260304375396322,
          0.012605042016806723,
          0.01260787486515642,
          0.012626262626262626,
          0.012629757785467129,
          0.012630662020905924,
          0.012633241215949468,
          0.01264172335600907,
          0.012648809523809522,
          0.012648809523809524,
          0.012666380420781451,
          0.012673611111111113,
          0.012681159420289856,
          0.012684124386252046,
          0.012706043956043956,
          0.012716450216450216,
          0.012745098039215686,
          0.012755102040816329,
          0.012765772046009064,
          0.012766768292682926,
          0.012768817204301076,
          0.012789768185451637,
          0.01279936899469382,
          0.01281055900621118,
          0.01282051282051282,
          0.012820512820512822,
          0.012836490528414755,
          0.012840670859538784,
          0.012841530054644808,
          0.012843137254901962,
          0.012854030501089323,
          0.012857142857142859,
          0.012867647058823529,
          0.012874531835205993,
          0.012882839086047643,
          0.012888888888888887,
          0.012895927601809956,
          0.012905162064825929,
          0.012907608695652174,
          0.012910798122065728,
          0.012912912912912912,
          0.012917329093799685,
          0.012917933130699086,
          0.012921348314606741,
          0.01293103448275862,
          0.012941176470588235,
          0.012941919191919192,
          0.012949956101843723,
          0.012952302631578948,
          0.012955182072829129,
          0.012959866220735786,
          0.012962962962962964,
          0.012968967114404815,
          0.012975778546712806,
          0.012980769230769231,
          0.012987012987012986,
          0.012987012987012988,
          0.012993762993762994,
          0.013020833333333334,
          0.013034188034188031,
          0.01303475935828877,
          0.01304945054945055,
          0.013068181818181816,
          0.0130718954248366,
          0.013077445652173914,
          0.013080922976925577,
          0.013088235294117649,
          0.01309328968903437,
          0.013095238095238096,
          0.013111888111888109,
          0.013114754098360656,
          0.013117283950617285,
          0.01311891663140076,
          0.013119533527696792,
          0.013125,
          0.013126727200947493,
          0.013157894736842105,
          0.013157894736842106,
          0.013186813186813187,
          0.013194444444444444,
          0.013203091455560326,
          0.013221153846153846,
          0.013233418367346941,
          0.013235294117647059,
          0.013237847222222222,
          0.01324786324786325,
          0.013248542660307366,
          0.013253968253968256,
          0.013257575757575758,
          0.013262781748213305,
          0.01327054794520548,
          0.01327683615819209,
          0.013278388278388278,
          0.013289036544850495,
          0.013290802764486976,
          0.013296935540683341,
          0.013300861745972276,
          0.01330532212885154,
          0.013311521683346164,
          0.013313609467455622,
          0.013322368421052631,
          0.01332720588235294,
          0.013329979879275651,
          0.013333333333333334,
          0.013342423061940008,
          0.013354700854700856,
          0.013359788359788358,
          0.013380459479929309,
          0.013392857142857142,
          0.013416815742397135,
          0.013418079096045196,
          0.013419913419913422,
          0.013424295774647887,
          0.013425925925925926,
          0.013436309775708843,
          0.013466042154566744,
          0.013468013468013471,
          0.013470319634703196,
          0.013480392156862744,
          0.013486842105263158,
          0.013501891984864121,
          0.013513513513513514,
          0.013536866359447005,
          0.01353874883286648,
          0.013541666666666664,
          0.013541666666666669,
          0.01354679802955665,
          0.013553113553113555,
          0.013558201058201056,
          0.01356589147286822,
          0.013566961000735836,
          0.013569078947368422,
          0.013571428571428571,
          0.013577168190634526,
          0.013602251407129456,
          0.013605442176870748,
          0.013607357357357358,
          0.013608870967741936,
          0.013611111111111112,
          0.013613445378151259,
          0.013616071428571429,
          0.013616557734204792,
          0.013619854721549637,
          0.013625789298770357,
          0.01363031914893617,
          0.013631479989255976,
          0.013636363636363636,
          0.013638771186440678,
          0.01365546218487395,
          0.013657407407407406,
          0.013663967611336031,
          0.013671875,
          0.013675213675213677,
          0.01368129218900675,
          0.01369047619047619,
          0.013703703703703704,
          0.013714474553866492,
          0.013719512195121951,
          0.013736263736263736,
          0.013738738738738735,
          0.013764880952380952,
          0.013773046532045656,
          0.01377504553734062,
          0.013778409090909093,
          0.01378676470588235,
          0.013793103448275862,
          0.013795045045045043,
          0.013798701298701298,
          0.013821138211382112,
          0.013829787234042554,
          0.01383399209486166,
          0.013846153846153848,
          0.013858946720049276,
          0.013872043662825956,
          0.0138763197586727,
          0.013878676470588236,
          0.013888888888888888,
          0.01388888888888889,
          0.01390796703296703,
          0.013915896937287313,
          0.013922518159806295,
          0.013929618768328446,
          0.013935574229691876,
          0.013958333333333331,
          0.013984674329501914,
          0.013986013986013986,
          0.014,
          0.014005602240896359,
          0.014008620689655173,
          0.014022435897435898,
          0.014024390243902438,
          0.014037433155080214,
          0.01405152224824356,
          0.01405325443786982,
          0.01406926406926407,
          0.014073581560283687,
          0.014076576576576575,
          0.014083157693044643,
          0.014097744360902257,
          0.0141025641025641,
          0.014102564102564103,
          0.014106583072100312,
          0.014112903225806453,
          0.014116379310344828,
          0.014130434782608697,
          0.014136904761904762,
          0.014141061452513969,
          0.01414141414141414,
          0.014146959459459459,
          0.014150943396226415,
          0.014156879194630871,
          0.014162561576354682,
          0.014168681171098575,
          0.014185855263157897,
          0.01419743429286608,
          0.014204545454545452,
          0.014215686274509804,
          0.014219576719576719,
          0.014227642276422762,
          0.014229910714285712,
          0.014233954451345752,
          0.014236111111111109,
          0.01424242424242424,
          0.014247311827956988,
          0.014251207729468597,
          0.014257294429708222,
          0.014285714285714284,
          0.014285714285714287,
          0.014299242424242424,
          0.014299802761341225,
          0.014302981466559225,
          0.01430722891566265,
          0.014309764309764309,
          0.014311270125223612,
          0.014313725490196078,
          0.014320785597381343,
          0.014329805996472662,
          0.01433270676691729,
          0.014335664335664338,
          0.014336016096579475,
          0.01434948979591837,
          0.014351851851851853,
          0.014356435643564357,
          0.01437847866419295,
          0.014384920634920634,
          0.014393939393939396,
          0.014400921658986175,
          0.01440329218106996,
          0.01440677966101695,
          0.014407467532467532,
          0.014409722222222225,
          0.014411764705882353,
          0.014414414414414416,
          0.014414612676056338,
          0.014423076923076926,
          0.014430147058823528,
          0.014434667309546768,
          0.014435695538057744,
          0.014438291139240509,
          0.014443277310924369,
          0.01446886446886447,
          0.014471476510067112,
          0.014476885644768856,
          0.014484978540772532,
          0.014492753623188406,
          0.014497041420118343,
          0.014507422402159244,
          0.014520202020202018,
          0.01453488372093023,
          0.014540816326530613,
          0.014545454545454544,
          0.014550264550264553,
          0.014568764568764568,
          0.014583333333333332,
          0.014583333333333334,
          0.014596273291925466,
          0.0146011396011396,
          0.014603174603174602,
          0.014610389610389612,
          0.014619883040935672,
          0.014660493827160491,
          0.014662756598240468,
          0.01466753585397653,
          0.01467710371819961,
          0.01469258589511754,
          0.014705882352941175,
          0.01470947265625,
          0.014717323651452282,
          0.014725719424460432,
          0.014749262536873156,
          0.014758497316636853,
          0.014759948096885812,
          0.01476648351648352,
          0.014772727272727272,
          0.01478494623655914,
          0.014792899408284025,
          0.014814814814814812,
          0.01482371794871795,
          0.014828821656050956,
          0.014833333333333334,
          0.01484230055658627,
          0.014849624060150375,
          0.014859068627450981,
          0.014880952380952382,
          0.01489028213166144,
          0.014905149051490513,
          0.014907407407407406,
          0.01491596638655462,
          0.01491862567811935,
          0.01492537313432836,
          0.014930555555555556,
          0.014938186813186812,
          0.014952153110047847,
          0.01495726495726496,
          0.014967873831775703,
          0.014988687782805429,
          0.015,
          0.015019379844961241,
          0.015021929824561403,
          0.015024038461538462,
          0.015026132404181184,
          0.0150419776119403,
          0.015051020408163262,
          0.015070921985815604,
          0.01507537688442211,
          0.015082956259426846,
          0.015088263358778624,
          0.015093537414965988,
          0.015097128378378382,
          0.01510989010989011,
          0.015112994350282488,
          0.0151183970856102,
          0.015123906705539359,
          0.0151252408477842,
          0.015128968253968252,
          0.015132408575031526,
          0.015137614678899082,
          0.015138888888888891,
          0.015141612200435731,
          0.01515151515151515,
          0.015151515151515154,
          0.015161725067385444,
          0.015167930660888406,
          0.015168970814132106,
          0.015174278846153846,
          0.015190972222222222,
          0.015205091937765206,
          0.015211640211640213,
          0.015217391304347828,
          0.015225563909774437,
          0.015231092436974791,
          0.015234765234765238,
          0.015238095238095238,
          0.015239477503628448,
          0.015248796147672553,
          0.01525297619047619,
          0.015262515262515262,
          0.015264797507788162,
          0.015267175572519085,
          0.015269151138716356,
          0.01527777777777778,
          0.015300546448087432,
          0.015303030303030303,
          0.015306122448979591,
          0.015313390313390313,
          0.01532567049808429,
          0.015330188679245285,
          0.01534090909090909,
          0.01535380507343124,
          0.015376984126984128,
          0.015384615384615384,
          0.015395894428152491,
          0.015398550724637682,
          0.015410958904109588,
          0.015416666666666669,
          0.01542056074766355,
          0.015422077922077922,
          0.015425531914893615,
          0.015429338103756709,
          0.015429958391123438,
          0.0154320987654321,
          0.01544289044289044,
          0.01544766708701135,
          0.01544943820224719,
          0.015471923536439662,
          0.015476190476190475,
          0.015488215488215487,
          0.015490533562822718,
          0.015495495495495497,
          0.015508684863523576,
          0.015512265512265512,
          0.015514184397163119,
          0.015517241379310345,
          0.015522875816993463,
          0.015526315789473685,
          0.015527950310559006,
          0.015530303030303031,
          0.015532544378698224,
          0.015535444947209653,
          0.015541490857946554,
          0.015547392384105959,
          0.01556122448979592,
          0.015566037735849057,
          0.015577507598784191,
          0.015584415584415584,
          0.015589569160997732,
          0.015599051008303678,
          0.015603328710124828,
          0.015607580824972128,
          0.015625,
          0.015637254901960784,
          0.01564537157757497,
          0.015652557319223985,
          0.01565934065934066,
          0.015660919540229884,
          0.015664160401002502,
          0.01567398119122257,
          0.015674603174603174,
          0.015676567656765675,
          0.0156794425087108,
          0.015686274509803918,
          0.015692640692640692,
          0.015698924731182794,
          0.015708812260536397,
          0.015712945590994374,
          0.015714285714285715,
          0.01572494669509595,
          0.015731292517006803,
          0.015733590733590732,
          0.01574074074074074,
          0.015755208333333333,
          0.01576576576576576,
          0.01578645235361653,
          0.015792759051186017,
          0.015794573643410855,
          0.015796703296703296,
          0.01580366774541532,
          0.015804597701149423,
          0.015804597701149427,
          0.015806111696522653,
          0.01582792207792208,
          0.01584022038567493,
          0.01584507042253521,
          0.01587005227781927,
          0.015873015873015872,
          0.015892857142857143,
          0.01590909090909091,
          0.01591350826044704,
          0.01593137254901961,
          0.015932452276064612,
          0.015934065934065933,
          0.01596980255516841,
          0.015970515970515967,
          0.015972222222222224,
          0.0159870250231696,
          0.015997023809523808,
          0.016,
          0.016001855287569575,
          0.016004043126684638,
          0.016025641025641024,
          0.016041162227602906,
          0.0160427807486631,
          0.016047297297297296,
          0.01605136436597111,
          0.016051912568306008,
          0.016066212268743912,
          0.01607142857142857,
          0.016071428571428573,
          0.016073194856577648,
          0.016075388026607542,
          0.016082659478885895,
          0.01610331632653061,
          0.016116352201257858,
          0.016119909502262445,
          0.016122766122766124,
          0.01614481409001957,
          0.016148325358851676,
          0.016149068322981366,
          0.016153846153846154,
          0.016163793103448273,
          0.016171328671328672,
          0.016175528507367073,
          0.016183035714285716,
          0.016191709844559584,
          0.016203703703703703,
          0.01620648259303721,
          0.016218721037998148,
          0.016218872870249014,
          0.016229838709677417,
          0.01623376623376624,
          0.016242937853107344,
          0.01625,
          0.016262755102040817,
          0.016272189349112426,
          0.016301169590643275,
          0.01630184331797235,
          0.016304347826086956,
          0.016317016317016316,
          0.016319444444444445,
          0.016332752613240416,
          0.0163358147229115,
          0.016346153846153847,
          0.016357206012378427,
          0.016357688113413302,
          0.01636546184738956,
          0.01636904761904762,
          0.016379310344827584,
          0.01638986013986014,
          0.016393442622950817,
          0.016396103896103898,
          0.016396761133603242,
          0.016414141414141412,
          0.016416510318949345,
          0.016426282051282052,
          0.016428571428571428,
          0.01646567717996289,
          0.016477272727272726,
          0.016483516483516484,
          0.01648578811369509,
          0.016492265696087353,
          0.016493055555555556,
          0.016502079002079003,
          0.01650943396226415,
          0.0165158371040724,
          0.016518737672583828,
          0.01652452025586354,
          0.016528925619834708,
          0.016544117647058824,
          0.01656025538707103,
          0.01658433309809457,
          0.01658950617283951,
          0.016589861751152075,
          0.016592920353982302,
          0.016609062980030724,
          0.016614906832298142,
          0.0166256157635468,
          0.01662971175166297,
          0.016631652661064426,
          0.01663961038961039,
          0.01665344964314036,
          0.016666666666666666,
          0.016679748822605964,
          0.016694843617920542,
          0.016715116279069766,
          0.016717325227963525,
          0.016722408026755852,
          0.01672979797979798,
          0.01673326673326674,
          0.016734972677595626,
          0.016741071428571428,
          0.0167420814479638,
          0.016774891774891776,
          0.01678302900107411,
          0.016798418972332016,
          0.01680672268907563,
          0.016826923076923076,
          0.016835016835016838,
          0.016848196051735875,
          0.01684952978056426,
          0.016865079365079368,
          0.016875,
          0.016877637130801686,
          0.016882183908045974,
          0.0168997668997669,
          0.016903606102635232,
          0.016908212560386472,
          0.016911764705882352,
          0.016929651545036162,
          0.016931902294596596,
          0.01693404634581105,
          0.016935483870967744,
          0.016941391941391944,
          0.016942148760330573,
          0.016944444444444443,
          0.016945925361766943,
          0.016951345755693584,
          0.01695804195804196,
          0.016964285714285713,
          0.016968325791855202,
          0.016975308641975308,
          0.016978516978516982,
          0.01698301698301698,
          0.016983016983016984,
          0.017001114827201784,
          0.01700404858299595,
          0.017013888888888887,
          0.017020335985853226,
          0.017022357723577238,
          0.017024818401937047,
          0.017036124794745484,
          0.017045454545454544,
          0.017045454545454548,
          0.017053571428571432,
          0.01705685618729097,
          0.01707175925925926,
          0.017075078206465068,
          0.01707589285714286,
          0.017076502732240442,
          0.017078071182548792,
          0.017090271691498685,
          0.017094017094017092,
          0.017094017094017096,
          0.017097264437689972,
          0.017105263157894738,
          0.01712076583210604,
          0.017123287671232876,
          0.01712962962962963,
          0.017136329017517136,
          0.017141350210970466,
          0.017142857142857144,
          0.01715176715176715,
          0.01715686274509804,
          0.017158385093167704,
          0.017161410018552876,
          0.01716465352828989,
          0.017171717171717168,
          0.0171875,
          0.017191142191142192,
          0.0171957671957672,
          0.017206477732793518,
          0.017222222222222222,
          0.01722873900293255,
          0.017246642246642244,
          0.017251131221719458,
          0.017279821627647716,
          0.017292490118577076,
          0.01730225988700565,
          0.01730343300110742,
          0.017316017316017316,
          0.017321331151118387,
          0.017322097378277154,
          0.01732409381663113,
          0.01733921815889029,
          0.017344497607655503,
          0.017354596622889306,
          0.017357642357642356,
          0.017361111111111112,
          0.017390289449112983,
          0.017391304347826087,
          0.01739618406285073,
          0.0173992673992674,
          0.01740506329113924,
          0.017407161803713527,
          0.017408675799086757,
          0.017412935323383085,
          0.017424242424242422,
          0.017427884615384616,
          0.01743589743589744,
          0.0174512987012987,
          0.017454954954954957,
          0.017462422634836428,
          0.017466478475652785,
          0.01746753246753247,
          0.017489711934156382,
          0.017499999999999998,
          0.0175,
          0.017510027769207036,
          0.017511177347242918,
          0.017512077294685992,
          0.017518939393939396,
          0.017524813895781637,
          0.01753393665158371,
          0.017543859649122806,
          0.017558528428093644,
          0.01755952380952381,
          0.01756198347107438,
          0.017565359477124183,
          0.01756756756756757,
          0.017568850902184237,
          0.017578125,
          0.017581475128644938,
          0.017589118198874296,
          0.017595307917888558,
          0.017598343685300208,
          0.017601043024771838,
          0.017615971814445096,
          0.0176252319109462,
          0.017642907551164433,
          0.017647058823529408,
          0.01765015806111696,
          0.017650462962962958,
          0.017654476670870112,
          0.01765536723163842,
          0.017660910518053376,
          0.017663043478260868,
          0.017668776371308016,
          0.017676767676767676,
          0.017704517704517704,
          0.017708333333333333,
          0.017722473604826542,
          0.017727272727272727,
          0.01773049645390071,
          0.01773648648648649,
          0.017738359201773836,
          0.017741935483870968,
          0.017746913580246913,
          0.017751479289940832,
          0.017759562841530054,
          0.017769607843137254,
          0.017777777777777778,
          0.017788461538461538,
          0.017816742081447963,
          0.01782128514056225,
          0.017825311942959002,
          0.017847260653016048,
          0.017857142857142856,
          0.01788124156545209,
          0.017883755588673618,
          0.017884615384615384,
          0.01789168278529981,
          0.017900981996726677,
          0.01790801790801791,
          0.01791958041958042,
          0.017921146953405017,
          0.017926356589147287,
          0.017948717948717947,
          0.01794871794871795,
          0.01795212765957447,
          0.01795814479638009,
          0.01796875,
          0.017970401691331926,
          0.01798642533936651,
          0.017990074441687345,
          0.01799242424242424,
          0.017992424242424244,
          0.017995765702187718,
          0.018010291595197257,
          0.018028846153846152,
          0.018036311514572384,
          0.018055555555555557,
          0.01805555555555556,
          0.018059351815696997,
          0.01807692307692308,
          0.018078512396694214,
          0.018092105263157892,
          0.018095373261424925,
          0.0180976430976431,
          0.018115942028985508,
          0.018125552608311227,
          0.01813707619394823,
          0.0181422351233672,
          0.01815181518151815,
          0.018153846153846152,
          0.018154761904761903,
          0.018155757286192068,
          0.01816239316239316,
          0.018162393162393164,
          0.018173758865248225,
          0.01818181818181818,
          0.01819923371647509,
          0.018199233716475097,
          0.018205128205128204,
          0.018227424749163883,
          0.01822916666666666,
          0.018243243243243244,
          0.018256333830104318,
          0.018261316872427984,
          0.01826298701298701,
          0.018263183357522982,
          0.01826923076923077,
          0.0182806324110672,
          0.01828703703703704,
          0.018292682926829267,
          0.01829988193624557,
          0.018317503392130258,
          0.01832329317269076,
          0.018328445747800588,
          0.018329326923076924,
          0.01833333333333333,
          0.018353174603174604,
          0.01836622807017544,
          0.0183752417794971,
          0.01837877312560857,
          0.018382352941176468,
          0.0183982683982684,
          0.01841085271317829,
          0.01841692789968652,
          0.018421052631578942,
          0.01843910806174957,
          0.018452380952380956,
          0.01846590909090909,
          0.01847826086956522,
          0.01849250936329588,
          0.01849894291754757,
          0.018506493506493502,
          0.018518518518518517,
          0.01853146853146853,
          0.0185340022296544,
          0.01854066985645933,
          0.018546747967479675,
          0.01855287569573284,
          0.01856060606060606,
          0.018568840579710144,
          0.018581081081081082,
          0.018586601307189542,
          0.01858974358974359,
          0.01859504132231405,
          0.018604651162790697,
          0.018617021276595744,
          0.01862745098039216,
          0.018633540372670808,
          0.018648018648018648,
          0.018668831168831168,
          0.01867816091954023,
          0.01868131868131868,
          0.01868556701030928,
          0.018692845615922542,
          0.0186950146627566,
          0.0187043795620438,
          0.018707482993197282,
          0.018726591760299626,
          0.01872895622895623,
          0.018739770867430443,
          0.01875,
          0.018750000000000003,
          0.01875901875901876,
          0.01876876876876877,
          0.01877062706270627,
          0.018790849673202614,
          0.018805309734513283,
          0.01882022471910112,
          0.018849206349206348,
          0.018877551020408164,
          0.01888888888888889,
          0.01889124293785311,
          0.0188953488372093,
          0.01889880952380953,
          0.018902439024390243,
          0.018907563025210083,
          0.018907563025210086,
          0.0189176245210728,
          0.01891891891891892,
          0.01893939393939394,
          0.01895161290322581,
          0.018956456456456456,
          0.018965517241379317,
          0.018978444236176197,
          0.01898148148148148,
          0.01900149031296573,
          0.01900826446280992,
          0.019021739130434784,
          0.019047619047619046,
          0.01904761904761905,
          0.019054878048780487,
          0.01906158357771261,
          0.019074675324675324,
          0.019078947368421053,
          0.019079685746352413,
          0.0190809968847352,
          0.019097222222222224,
          0.019105691056910568,
          0.019111570247933883,
          0.01911976911976912,
          0.019121004566210045,
          0.019138755980861243,
          0.01913956639566396,
          0.019153225806451613,
          0.01915708812260537,
          0.01916666666666666,
          0.01917177914110429,
          0.019185360094451005,
          0.0191860465116279,
          0.01920062695924765,
          0.01920289855072464,
          0.019206145966709345,
          0.0192080378250591,
          0.019214876033057854,
          0.019230769230769232,
          0.0192481884057971,
          0.01927083333333333,
          0.01928374655647383,
          0.01928490990990991,
          0.019318181818181814,
          0.01932367149758454,
          0.019345238095238096,
          0.01935483870967742,
          0.019356955380577433,
          0.01936026936026936,
          0.01936159079016222,
          0.01936848958333333,
          0.019374068554396426,
          0.019375,
          0.01937984496124031,
          0.019385026737967912,
          0.01939655172413793,
          0.01940993788819876,
          0.019412878787878788,
          0.019428152492668625,
          0.019444444444444445,
          0.01947463768115942,
          0.01948051948051948,
          0.01948924731182796,
          0.019509180790960454,
          0.01951219512195122,
          0.019512910798122063,
          0.019518716577540108,
          0.019520997375328083,
          0.01953125,
          0.019545454545454543,
          0.019556025369978858,
          0.019570707070707072,
          0.019576957695769576,
          0.019593253968253968,
          0.019601806239737275,
          0.0196078431372549,
          0.01962365591397849,
          0.01962809917355372,
          0.019642857142857142,
          0.01965962441314554,
          0.019667832167832168,
          0.019675925925925927,
          0.019678492239467847,
          0.0196969696969697,
          0.01970720720720721,
          0.01971153846153846,
          0.01971326164874552,
          0.019719251336898398,
          0.01973684210526316,
          0.01974288337924701,
          0.01975108225108225,
          0.019764957264957264,
          0.01976744186046512,
          0.019772727272727268,
          0.019782913165266102,
          0.01981351981351981,
          0.01981707317073171,
          0.01983695652173913,
          0.01984126984126984,
          0.019846350832266327,
          0.019871794871794874,
          0.01988636363636364,
          0.019915651358950327,
          0.019921436588103254,
          0.019930069930069932,
          0.019939198855507868,
          0.0199443413729128,
          0.01994949494949495,
          0.019954819277108432,
          0.019965277777777776,
          0.01999158249158249,
          0.02,
          0.02001356852103121,
          0.020018115942028986,
          0.020032051282051284,
          0.020053475935828874,
          0.02005347593582888,
          0.02005693581780538,
          0.020081967213114758,
          0.0200845665961945,
          0.02008928571428572,
          0.020098039215686272,
          0.020106589147286826,
          0.020114942528735632,
          0.0201219512195122,
          0.02012987012987013,
          0.020138089758342918,
          0.020138888888888887,
          0.02013888888888889,
          0.020151869158878503,
          0.02015437392795883,
          0.020174571805006588,
          0.02019230769230769,
          0.0202020202020202,
          0.020202020202020204,
          0.02022058823529412,
          0.020223420647149458,
          0.02023809523809524,
          0.02024793388429752,
          0.020270270270270268,
          0.02027629233511587,
          0.020283018867924527,
          0.02028347996089932,
          0.0202991452991453,
          0.02030947775628627,
          0.0203125,
          0.020320855614973262,
          0.020323426573426576,
          0.020327260458839404,
          0.020335325365205846,
          0.020338983050847456,
          0.020348837209302327,
          0.020368782161234996,
          0.02037037037037037,
          0.020376175548589344,
          0.020380434782608696,
          0.020384615384615383,
          0.02038770053475936,
          0.020394736842105264,
          0.0203962703962704,
          0.020408163265306117,
          0.02041666666666667,
          0.02042160737812912,
          0.02042483660130719,
          0.020429009193054137,
          0.020432692307692308,
          0.020433694745621348,
          0.020454545454545454,
          0.020462633451957292,
          0.0204731027857829,
          0.02049549549549549,
          0.0205,
          0.020505809979494187,
          0.020511996572407886,
          0.02052785923753666,
          0.02053571428571429,
          0.02056451612903225,
          0.0205761316872428,
          0.020577395577395574,
          0.020579813886900503,
          0.020588235294117647,
          0.020609318996415767,
          0.02061310782241015,
          0.0206140350877193,
          0.0206151832460733,
          0.020622895622895626,
          0.020634920634920638,
          0.02063740856844305,
          0.020645385149201945,
          0.02065217391304348,
          0.02067307692307692,
          0.020675902602854745,
          0.02067669172932331,
          0.02067977067977068,
          0.020689655172413796,
          0.020697167755991286,
          0.02072192513368984,
          0.02072927072927073,
          0.02073365231259968,
          0.020743145743145744,
          0.020744680851063832,
          0.020750988142292492,
          0.02075471698113208,
          0.02076167076167076,
          0.020763187429854096,
          0.02076802507836991,
          0.02076923076923077,
          0.020804195804195805,
          0.02081887578070784,
          0.02083333333333333,
          0.02083333333333334,
          0.02085285848172446,
          0.020871985157699443,
          0.02089041095890411,
          0.02090163934426229,
          0.02090909090909091,
          0.020958083832335328,
          0.020962047661076788,
          0.02097902097902098,
          0.020987654320987655,
          0.020989304812834224,
          0.020995670995670998,
          0.021002710027100267,
          0.02100840336134454,
          0.02101934523809524,
          0.021021021021021026,
          0.021022727272727276,
          0.021026592455163882,
          0.02103174603174603,
          0.02103331451157538,
          0.02103481624758221,
          0.02104377104377104,
          0.021052631578947368,
          0.021059216013344453,
          0.02106060606060606,
          0.02107142857142857,
          0.02107771260997068,
          0.021103896103896104,
          0.021111111111111112,
          0.021118262268704745,
          0.02113526570048309,
          0.021139705882352942,
          0.021165857043719642,
          0.021180555555555557,
          0.021195652173913043,
          0.021198830409356727,
          0.021205357142857144,
          0.021212121212121213,
          0.021226415094339618,
          0.021236959761549924,
          0.02124183006535948,
          0.02125,
          0.021260997067448682,
          0.02127659574468085,
          0.02128099173553719,
          0.021296296296296296,
          0.021299381247025226,
          0.02130681818181818,
          0.021306818181818184,
          0.021311475409836068,
          0.02133580705009276,
          0.021339347675225537,
          0.021341463414634148,
          0.02135579937304075,
          0.02135815991237678,
          0.021367521367521368,
          0.021370967741935483,
          0.021381578947368418,
          0.021385542168674696,
          0.021403353927625768,
          0.021428571428571432,
          0.02145454545454545,
          0.021464646464646464,
          0.02147335423197492,
          0.021484375,
          0.021487603305785124,
          0.021490414347557205,
          0.0215,
          0.02150537634408602,
          0.021505376344086027,
          0.02150974025974026,
          0.021511627906976742,
          0.021518987341772152,
          0.021527777777777774,
          0.0215311004784689,
          0.021534653465346533,
          0.021538461538461538,
          0.021538918597742127,
          0.021541501976284586,
          0.02154195011337869,
          0.02155172413793104,
          0.021568627450980395,
          0.02159090909090909,
          0.021604938271604937,
          0.02160493827160494,
          0.021621621621621626,
          0.021634615384615384,
          0.021641791044776117,
          0.021655231560891938,
          0.021659548505186088,
          0.021666666666666664,
          0.021666666666666667,
          0.021680216802168018,
          0.02168674698795181,
          0.02169117647058824,
          0.021723646723646718,
          0.021728271728271728,
          0.021739130434782608,
          0.02175125488008924,
          0.021764705882352943,
          0.02177177177177177,
          0.021774193548387097,
          0.021785714285714283,
          0.021794871794871797,
          0.021799628942486084,
          0.02181514138035877,
          0.021825396825396824,
          0.02183098591549296,
          0.0218676122931442,
          0.0218696397941681,
          0.021875,
          0.021880293619424056,
          0.02188160676532769,
          0.021885521885521887,
          0.0219017094017094,
          0.021917808219178082,
          0.02192038730500269,
          0.021923076923076924,
          0.02192982456140351,
          0.021951219512195124,
          0.021963824289405683,
          0.021978021978021976,
          0.02199074074074074,
          0.02201086956521739,
          0.02201492537313433,
          0.022024367385192128,
          0.02202581369248036,
          0.022039473684210525,
          0.02205882352941177,
          0.022066596194503168,
          0.022069872276483847,
          0.022072072072072072,
          0.022079772079772082,
          0.02208333333333333,
          0.0220959595959596,
          0.02210526315789474,
          0.022107438016528924,
          0.022119341563786008,
          0.022121212121212118,
          0.022135416666666668,
          0.022151898734177212,
          0.02215909090909091,
          0.02217741935483871,
          0.02222222222222222,
          0.022222222222222227,
          0.022223820483314158,
          0.02223675604970569,
          0.02225609756097561,
          0.02225963337074448,
          0.02230392156862745,
          0.022306397306397302,
          0.02232142857142857,
          0.02233333333333333,
          0.02234042553191489,
          0.022342995169082124,
          0.02235576923076923,
          0.02239229024943311,
          0.02239583333333333,
          0.022399790411317788,
          0.02242822966507177,
          0.022433385579937303,
          0.02243589743589744,
          0.022457627118644068,
          0.0224609375,
          0.022463768115942032,
          0.02248677248677249,
          0.0225,
          0.022509578544061302,
          0.02253086419753086,
          0.022536687631027254,
          0.022545454545454542,
          0.022556390977443608,
          0.02256077256077256,
          0.022569444444444444,
          0.022572815533980585,
          0.022580645161290318,
          0.02259259259259259,
          0.022609819121447033,
          0.02261904761904762,
          0.022629310344827583,
          0.022633744855967083,
          0.022649572649572645,
          0.02266666666666666,
          0.02267156862745098,
          0.022675736961451247,
          0.022685185185185187,
          0.02269230769230769,
          0.022727272727272724,
          0.022727272727272728,
          0.02274590163934426,
          0.022777777777777772,
          0.022784810126582282,
          0.022787610619469028,
          0.022794117647058826,
          0.02280265339966832,
          0.02282608695652174,
          0.02283653846153846,
          0.022839506172839502,
          0.02284172661870504,
          0.022844827586206897,
          0.022857142857142857,
          0.022875816993464054,
          0.02291666666666666,
          0.02291666666666667,
          0.02294117647058824,
          0.022945205479452054,
          0.022946859903381644,
          0.02295918367346939,
          0.02297008547008547,
          0.02297794117647059,
          0.02298850574712644,
          0.023,
          0.023003472222222224,
          0.023019801980198026,
          0.023026315789473683,
          0.023046875,
          0.023049645390070917,
          0.02305327868852459,
          0.02306079664570231,
          0.023076923076923075,
          0.02307692307692308,
          0.02309782608695652,
          0.02310606060606061,
          0.023109243697478996,
          0.023134328358208955,
          0.023138297872340424,
          0.023148148148148147,
          0.02314814814814815,
          0.023155737704918036,
          0.023181818181818185,
          0.023185483870967742,
          0.02318840579710145,
          0.02319277108433735,
          0.023214285714285715,
          0.023232323232323233,
          0.023242630385487528,
          0.023250000000000003,
          0.02325581395348837,
          0.02327127659574468,
          0.02327586206896552,
          0.023291925465838508,
          0.023295454545454543,
          0.023305084745762712,
          0.023313492063492064,
          0.02332474226804124,
          0.02333333333333333,
          0.02334710743801653,
          0.02335164835164835,
          0.023355263157894737,
          0.023358585858585856,
          0.02336860670194004,
          0.0233739837398374,
          0.02341772151898734,
          0.023420479302832243,
          0.0234375,
          0.02345679012345679,
          0.023464912280701758,
          0.023467432950191568,
          0.02346938775510204,
          0.023479729729729733,
          0.023480662983425413,
          0.02350427350427351,
          0.023511904761904758,
          0.023514851485148515,
          0.023529411764705882,
          0.02354048964218456,
          0.02355072463768116,
          0.02355769230769231,
          0.0235655737704918,
          0.02356902356902357,
          0.02357142857142857,
          0.023571428571428573,
          0.023577235772357718,
          0.02358490566037736,
          0.023592085235920855,
          0.023596938775510203,
          0.02359813084112149,
          0.023602033405954976,
          0.02361111111111111,
          0.023618784530386745,
          0.0236280487804878,
          0.0236318407960199,
          0.023640661938534282,
          0.023643410852713174,
          0.02364864864864865,
          0.023662551440329214,
          0.02366863905325444,
          0.023674242424242424,
          0.023679417122040074,
          0.02369281045751634,
          0.023706896551724137,
          0.02371794871794872,
          0.02372034956304619,
          0.02372685185185185,
          0.023737373737373738,
          0.02374551971326165,
          0.02375,
          0.02375776397515528,
          0.0237603305785124,
          0.023765432098765436,
          0.023774509803921567,
          0.023780487804878046,
          0.023798076923076925,
          0.023809523809523808,
          0.02384105960264901,
          0.023848684210526317,
          0.023871527777777776,
          0.02387914230019493,
          0.02389558232931727,
          0.02389705882352941,
          0.02390998593530239,
          0.02391304347826087,
          0.023919753086419755,
          0.023940677966101696,
          0.023946360153256702,
          0.02395833333333333,
          0.023965141612200442,
          0.02397959183673469,
          0.023989898989898988,
          0.02398989898989899,
          0.024,
          0.024017467248908297,
          0.02403846153846154,
          0.02404643449419569,
          0.0240506329113924,
          0.024065420560747664,
          0.024074074074074074,
          0.02408637873754153,
          0.02410071942446043,
          0.024107142857142855,
          0.02412280701754386,
          0.024130434782608696,
          0.024131944444444445,
          0.02413479052823315,
          0.024147727272727272,
          0.024154589371980683,
          0.024166666666666663,
          0.02417027417027417,
          0.02417695473251029,
          0.024193548387096774,
          0.02420634920634921,
          0.02421875,
          0.02423167848699764,
          0.02424242424242424,
          0.0242566510172144,
          0.024261603375527428,
          0.024285714285714285,
          0.02430555555555556,
          0.02435064935064935,
          0.02435897435897436,
          0.024375,
          0.0243993993993994,
          0.02441077441077441,
          0.0244140625,
          0.02442528735632184,
          0.024436090225563912,
          0.024448529411764702,
          0.02445652173913044,
          0.024482109227871942,
          0.024489795918367342,
          0.024493243243243243,
          0.02450592885375494,
          0.024509803921568627,
          0.02451923076923077,
          0.024527186761229308,
          0.02453703703703704,
          0.02454780361757106,
          0.024553571428571428,
          0.02457264957264957,
          0.02461322081575246,
          0.024633123689727462,
          0.024671052631578948,
          0.02469135802469136,
          0.024709302325581398,
          0.024725274725274728,
          0.0247289972899729,
          0.02473958333333333,
          0.024752475247524757,
          0.024758454106280192,
          0.02477477477477477,
          0.024777777777777774,
          0.02478448275862069,
          0.024786324786324792,
          0.024814814814814814,
          0.024816176470588237,
          0.024822695035460998,
          0.024836601307189544,
          0.024839743589743588,
          0.024844720496894408,
          0.024853801169590642,
          0.024853801169590645,
          0.024857954545454544,
          0.02485875706214689,
          0.02487080103359173,
          0.02489406779661017,
          0.02491408934707904,
          0.02495291902071563,
          0.0249597423510467,
          0.0249648382559775,
          0.025,
          0.025027502750275026,
          0.025030525030525032,
          0.02503429355281207,
          0.025039123630672924,
          0.02504553734061931,
          0.025080906148867314,
          0.025097465886939573,
          0.025100401606425703,
          0.02513227513227513,
          0.025135869565217392,
          0.025143678160919537,
          0.0251497005988024,
          0.025150150150150152,
          0.02516339869281046,
          0.02517361111111111,
          0.0252016129032258,
          0.025205761316872428,
          0.025210084033613443,
          0.025226757369614515,
          0.02523602033405955,
          0.02525252525252525,
          0.02526595744680851,
          0.025284900284900286,
          0.02529021558872305,
          0.025297619047619044,
          0.025297619047619048,
          0.025303030303030303,
          0.02530864197530864,
          0.025335775335775333,
          0.02533783783783784,
          0.025353773584905658,
          0.025377229080932786,
          0.02538314176245211,
          0.025384615384615384,
          0.02538829151732377,
          0.025390625,
          0.0253968253968254,
          0.025435073627844716,
          0.02543604651162791,
          0.025462962962962958,
          0.025493421052631582,
          0.025510204081632654,
          0.025520833333333333,
          0.02552552552552553,
          0.0255331088664422,
          0.02554278416347382,
          0.02555555555555556,
          0.02556818181818182,
          0.025584795321637425,
          0.025603864734299518,
          0.025607638888888888,
          0.025625,
          0.02564102564102564,
          0.025664251207729468,
          0.025676937441643326,
          0.025681341719077568,
          0.025694444444444443,
          0.025709219858156027,
          0.025714285714285717,
          0.025720164609053492,
          0.025735294117647058,
          0.025745257452574527,
          0.02575757575757576,
          0.025767543859649127,
          0.025775775775775774,
          0.02578125,
          0.025793650793650792,
          0.0257936507936508,
          0.02580213903743316,
          0.025811209439528027,
          0.025815217391304348,
          0.02583979328165375,
          0.025841346153846152,
          0.02586206896551724,
          0.02587719298245614,
          0.02587890625,
          0.025883838383838384,
          0.025892857142857145,
          0.025914634146341462,
          0.025925925925925925,
          0.025930851063829783,
          0.025943396226415096,
          0.025946275946275944,
          0.025956284153005462,
          0.025961538461538463,
          0.025971093044263774,
          0.02597402597402597,
          0.025977366255144036,
          0.025985663082437275,
          0.026027996500437443,
          0.026041666666666668,
          0.026086956521739132,
          0.026094276094276097,
          0.0260989010989011,
          0.02609992542878449,
          0.026104417670682733,
          0.026119402985074626,
          0.026124338624338626,
          0.026136363636363638,
          0.026147959183673467,
          0.02616279069767442,
          0.026175213675213672,
          0.026182432432432432,
          0.02618397085610201,
          0.02619047619047619,
          0.02620967741935484,
          0.02623456790123457,
          0.02625,
          0.026260504201680676,
          0.026268115942028984,
          0.02627840909090909,
          0.02628968253968254,
          0.02631578947368421,
          0.026348039215686275,
          0.026353276353276358,
          0.02636054421768708,
          0.026365348399246702,
          0.0263671875,
          0.026374859708193043,
          0.026388888888888892,
          0.02639751552795031,
          0.0264336917562724,
          0.02644230769230769,
          0.026455026455026457,
          0.026467505241090143,
          0.026472781506338555,
          0.026494565217391304,
          0.02649769585253456,
          0.02650551314673452,
          0.02651515151515152,
          0.026526526526526532,
          0.026530612244897958,
          0.026533018867924533,
          0.0265625,
          0.026570048309178747,
          0.02657873701039169,
          0.026585820895522392,
          0.026595744680851064,
          0.026606425702811246,
          0.026608187134502925,
          0.026620370370370367,
          0.02663622526636225,
          0.026676829268292682,
          0.02669270833333333,
          0.02669552669552669,
          0.02674897119341564,
          0.02675438596491228,
          0.026776776776776774,
          0.026785714285714284,
          0.026785714285714288,
          0.026790750141003947,
          0.02680878552971576,
          0.02683080808080808,
          0.026838235294117645,
          0.0268414481897628,
          0.02684294871794872,
          0.026848591549295774,
          0.026851851851851846,
          0.02685546875,
          0.0268640350877193,
          0.026873385012919897,
          0.026875,
          0.026886512180629832,
          0.02689873417721519,
          0.026909722222222224,
          0.026923076923076918,
          0.026936026936026942,
          0.02693965517241379,
          0.0269485903814262,
          0.026960784313725488,
          0.026988636363636364,
          0.027027027027027032,
          0.027043269230769232,
          0.027046783625730996,
          0.027052238805970148,
          0.027056277056277056,
          0.02708333333333333,
          0.0270935960591133,
          0.02711397058823529,
          0.027116402116402115,
          0.027122641509433963,
          0.027126736111111112,
          0.027142857142857142,
          0.027165032679738563,
          0.02717391304347826,
          0.027184657967576117,
          0.0271875,
          0.027210884353741496,
          0.027217741935483868,
          0.027243589743589744,
          0.02726063829787234,
          0.027272727272727268,
          0.027281746031746032,
          0.027290448343079924,
          0.0273109243697479,
          0.02734375,
          0.027367773677736774,
          0.02738095238095238,
          0.0273972602739726,
          0.027439024390243903,
          0.02746212121212121,
          0.027467411545623842,
          0.027472527472527472,
          0.02747844827586207,
          0.0275,
          0.02751865671641791,
          0.02754237288135593,
          0.027551020408163263,
          0.02755376344086021,
          0.0275735294117647,
          0.027591349739000744,
          0.0275974025974026,
          0.027604166666666662,
          0.027607361963190184,
          0.027644230769230768,
          0.027649769585253454,
          0.027663934426229508,
          0.02767857142857143,
          0.027689873417721517,
          0.02769886363636364,
          0.027728873239436617,
          0.027777777777777776,
          0.02777777777777778,
          0.02783203125,
          0.02784090909090909,
          0.027871621621621618,
          0.027874564459930317,
          0.02790178571428572,
          0.02793560606060606,
          0.02795031055900621,
          0.02798821548821549,
          0.027991452991452996,
          0.027992277992277995,
          0.028003246753246752,
          0.028017241379310345,
          0.02803308823529412,
          0.02806122448979592,
          0.028067129629629633,
          0.028072033898305086,
          0.028125,
          0.02813852813852814,
          0.028153153153153157,
          0.028169014084507043,
          0.028176229508196718,
          0.028195488721804513,
          0.028201219512195126,
          0.028205128205128206,
          0.028225806451612906,
          0.028239202657807307,
          0.028273809523809524,
          0.028293918918918918,
          0.02830882352941176,
          0.0283203125,
          0.028325123152709363,
          0.028333333333333325,
          0.028333333333333332,
          0.02834302325581395,
          0.028361344537815126,
          0.02836879432624113,
          0.028371710526315787,
          0.02838302752293578,
          0.028388278388278388,
          0.02838908450704225,
          0.028409090909090905,
          0.028439153439153438,
          0.02844551282051282,
          0.028459821428571425,
          0.028477822580645164,
          0.028492647058823532,
          0.02850274725274725,
          0.028508771929824563,
          0.028519417475728163,
          0.02853260869565217,
          0.028571428571428567,
          0.028571428571428574,
          0.028582317073170733,
          0.028590425531914893,
          0.028601694915254237,
          0.0286144578313253,
          0.028618421052631574,
          0.028645833333333325,
          0.028676470588235293,
          0.028706395348837205,
          0.028724747474747483,
          0.028726708074534164,
          0.028733221476510067,
          0.02874564459930314,
          0.02875,
          0.028769841269841268,
          0.028774752475247526,
          0.02880184331797235,
          0.02880859375,
          0.02884615384615385,
          0.028875379939209724,
          0.028882575757575763,
          0.02889150943396226,
          0.028911564625850338,
          0.02892287234042553,
          0.02894088669950739,
          0.02894736842105263,
          0.028957528957528955,
          0.028963414634146343,
          0.028985507246376812,
          0.029017857142857144,
          0.029049295774647887,
          0.0290625,
          0.02906468531468532,
          0.02906976744186046,
          0.0291005291005291,
          0.02910958904109589,
          0.029135338345864664,
          0.02915451895043732,
          0.029166666666666664,
          0.029166666666666667,
          0.029189560439560436,
          0.029194078947368418,
          0.029211956521739125,
          0.02922077922077922,
          0.029220779220779224,
          0.02923387096774193,
          0.029272151898734174,
          0.029296875,
          0.029304029304029307,
          0.0293141592920354,
          0.029320987654320983,
          0.02933673469387755,
          0.02934451219512195,
          0.029356060606060608,
          0.029375,
          0.02938988095238095,
          0.02939814814814815,
          0.029411764705882356,
          0.029429611650485438,
          0.029433139534883718,
          0.02944711538461538,
          0.029456967213114763,
          0.029464285714285717,
          0.029503105590062112,
          0.029513888888888888,
          0.029532967032967032,
          0.02953296703296704,
          0.029537671232876712,
          0.029556650246305417,
          0.029590707964601767,
          0.029591836734693882,
          0.02959656084656085,
          0.029616724738675958,
          0.029622395833333325,
          0.029633620689655176,
          0.02963525835866261,
          0.02965764331210191,
          0.029661016949152543,
          0.029677672955974843,
          0.029725609756097563,
          0.029743975903614456,
          0.029751712328767124,
          0.029761904761904764,
          0.029789719626168224,
          0.0298132183908046,
          0.029829545454545456,
          0.02985491071428572,
          0.02986111111111112,
          0.029891304347826088,
          0.029900332225913626,
          0.029905913978494625,
          0.029922779922779925,
          0.029935747663551407,
          0.029947916666666668,
          0.02995391705069125,
          0.029965753424657533,
          0.029983108108108107,
          0.03,
          0.030018472906403942,
          0.030032467532467525,
          0.03005725190839695,
          0.030075187969924814,
          0.030078125,
          0.030092592592592587,
          0.03010670731707317,
          0.03013392857142857,
          0.030158730158730163,
          0.03017241379310345,
          0.03019662921348315,
          0.03021978021978022,
          0.03024193548387097,
          0.03025,
          0.030257936507936505,
          0.0302734375,
          0.0303030303030303,
          0.030303030303030307,
          0.03031015037593985,
          0.030321782178217817,
          0.030323450134770887,
          0.03033759124087592,
          0.03033980582524272,
          0.030352870813397125,
          0.03035714285714285,
          0.030357142857142857,
          0.03036556603773585,
          0.03037790697674418,
          0.030395136778115506,
          0.030423280423280418,
          0.030462184873949583,
          0.03047520661157025,
          0.03048780487804878,
          0.030501497005988025,
          0.03050595238095238,
          0.030529953917050687,
          0.0305316091954023,
          0.030555555555555555,
          0.0305944055944056,
          0.030612244897959183,
          0.03063725490196078,
          0.030665887850467286,
          0.03069196428571428,
          0.030693950177935938,
          0.030701754385964914,
          0.030701754385964918,
          0.03071428571428572,
          0.030726256983240226,
          0.030730897009966774,
          0.030753968253968256,
          0.030769230769230767,
          0.030788177339901475,
          0.030788177339901482,
          0.030790441176470586,
          0.030797101449275364,
          0.03080357142857143,
          0.030812324929971987,
          0.030821917808219176,
          0.03083517699115044,
          0.030844155844155844,
          0.0308641975308642,
          0.030877976190476195,
          0.030913978494623656,
          0.030916844349680176,
          0.030927835051546393,
          0.03095238095238095,
          0.030952380952380957,
          0.030987394957983194,
          0.030997304582210238,
          0.031015037593984964,
          0.031055900621118005,
          0.031084656084656083,
          0.031084656084656086,
          0.03110599078341014,
          0.031135531135531126,
          0.031155015197568383,
          0.03125,
          0.03131868131868132,
          0.03132832080200501,
          0.03134920634920635,
          0.0313588850174216,
          0.031385281385281384,
          0.03139671361502348,
          0.031403940886699504,
          0.03142857142857143,
          0.0314498933901919,
          0.03145292207792208,
          0.031462585034013606,
          0.03148148148148148,
          0.031512605042016806,
          0.031531531531531536,
          0.03154761904761905,
          0.03156146179401993,
          0.03157894736842105,
          0.031593406593406585,
          0.03160919540229885,
          0.03164556962025317,
          0.03166666666666666,
          0.0316711590296496,
          0.03168202764976959,
          0.03169014084507042,
          0.03170289855072463,
          0.031746031746031744,
          0.031789638932496075,
          0.03180039138943249,
          0.031818181818181815,
          0.03183229813664596,
          0.03185328185328185,
          0.031862745098039214,
          0.03188775510204082,
          0.031914893617021274,
          0.03192640692640693,
          0.03195488721804511,
          0.03196564885496183,
          0.03197004608294931,
          0.031982942430703626,
          0.031994047619047616,
          0.03200371057513915,
          0.03205128205128205,
          0.03206997084548105,
          0.03208232445520581,
          0.032091097308488616,
          0.03209764918625678,
          0.032106782106782104,
          0.03214285714285714,
          0.03214285714285715,
          0.03219315895372233,
          0.032196969696969696,
          0.032201405152224825,
          0.03225806451612903,
          0.03229483282674772,
          0.03231292517006803,
          0.032352941176470584,
          0.032407407407407406,
          0.03240740740740741,
          0.03242481203007519,
          0.032467532467532464,
          0.03246753246753247,
          0.0325,
          0.032504012841091494,
          0.03253968253968253,
          0.032552083333333336,
          0.032561188811188815,
          0.03258145363408521,
          0.03260869565217391,
          0.032627865961199286,
          0.032653061224489785,
          0.032657657657657664,
          0.03266550522648083,
          0.03268765133171913,
          0.03270223752151463,
          0.03273809523809524,
          0.03277886497064579,
          0.032786885245901634,
          0.03279883381924198,
          0.032818532818532815,
          0.03283410138248848,
          0.032857142857142856,
          0.03289473684210526,
          0.032924107142857144,
          0.03294036061026352,
          0.03296703296703297,
          0.03298611111111111,
          0.03300180831826401,
          0.0330188679245283,
          0.03302611367127496,
          0.033035714285714286,
          0.03304597701149425,
          0.03304904051172708,
          0.033068783068783074,
          0.03308270676691729,
          0.03308823529411765,
          0.03310104529616725,
          0.03311965811965812,
          0.03313253012048193,
          0.03319919517102616,
          0.03320802005012531,
          0.033234126984126984,
          0.033239038189533235,
          0.0332512315270936,
          0.033301158301158304,
          0.03330658105939005,
          0.03331043956043956,
          0.03333333333333333,
          0.033355795148247984,
          0.03337236533957845,
          0.033410138248847934,
          0.03343465045592705,
          0.03345388788426763,
          0.033482142857142856,
          0.033509700176366834,
          0.033527696793002916,
          0.03353658536585366,
          0.03356481481481481,
          0.033595641646489115,
          0.03360215053763441,
          0.03361344537815126,
          0.03363095238095238,
          0.03365384615384615,
          0.03369272237196766,
          0.03373015873015873,
          0.03376116071428571,
          0.03377329192546584,
          0.03378378378378378,
          0.03383458646616542,
          0.033850931677018636,
          0.033854166666666664,
          0.03385899814471243,
          0.033862433862433865,
          0.03389212827988338,
          0.03389830508474576,
          0.03391472868217054,
          0.03392857142857143,
          0.033950617283950615,
          0.033957845433255265,
          0.03396143733567046,
          0.03398617511520737,
          0.03399122807017544,
          0.033993115318416534,
          0.034,
          0.034013605442176874,
          0.03404344193817878,
          0.0340531561461794,
          0.03407224958949097,
          0.03409090909090909,
          0.034138655462184885,
          0.034161490683229816,
          0.034188034188034185,
          0.034194528875379944,
          0.03421052631578948,
          0.034226190476190466,
          0.03422619047619048,
          0.03425925925925926,
          0.03428571428571429,
          0.03431372549019608,
          0.03432282003710575,
          0.03435672514619883,
          0.034361471861471864,
          0.03436657681940701,
          0.034371643394199784,
          0.034375,
          0.0343816631130064,
          0.03439153439153439,
          0.034420289855072464,
          0.034427284427284426,
          0.03443877551020408,
          0.03444632290786137,
          0.03448275862068965,
          0.034507722007722015,
          0.03452380952380952,
          0.03455284552845528,
          0.034571428571428565,
          0.034574468085106384,
          0.03458049886621315,
          0.03458942632170979,
          0.034591194968553465,
          0.03461538461538462,
          0.03463203463203463,
          0.03467908902691511,
          0.034722222222222224,
          0.03473132372214941,
          0.03474903474903475,
          0.034764437689969604,
          0.0347682119205298,
          0.034813925570228096,
          0.034848484848484844,
          0.03486394557823129,
          0.034863945578231297,
          0.034883720930232565,
          0.03489326765188834,
          0.03490990990990992,
          0.03494623655913978,
          0.034954407294832825,
          0.0349624060150376,
          0.03498542274052478,
          0.035,
          0.035024154589371984,
          0.035037878787878785,
          0.03508771929824561,
          0.03513824884792626,
          0.03515625,
          0.035164835164835165,
          0.03518518518518518,
          0.035186488388458836,
          0.035211267605633804,
          0.035256410256410256,
          0.035294117647058816,
          0.035326086956521736,
          0.03535353535353536,
          0.035416666666666666,
          0.035453597497393116,
          0.03546099290780142,
          0.03547459252157239,
          0.035493827160493825,
          0.035519125683060114,
          0.035539215686274515,
          0.035553410553410554,
          0.03556910569105691,
          0.035576923076923075,
          0.035590277777777776,
          0.0355923939541687,
          0.03571428571428571,
          0.03583333333333333,
          0.035852713178294575,
          0.03587962962962963,
          0.03591954022988506,
          0.0359375,
          0.03594322344322344,
          0.03598484848484848,
          0.03598484848484849,
          0.036000000000000004,
          0.036016949152542374,
          0.036036036036036036,
          0.036057692307692304,
          0.036063285248953,
          0.036111111111111115,
          0.03611111111111112,
          0.03616352201257862,
          0.03618421052631579,
          0.03620689655172414,
          0.036231884057971016,
          0.03629032258064517,
          0.036324786324786335,
          0.03634751773049645,
          0.03636363636363636,
          0.03636363636363637,
          0.036411411411411417,
          0.03645833333333333,
          0.036458333333333336,
          0.03653846153846154,
          0.03654970760233919,
          0.036564625850340135,
          0.03658536585365853,
          0.036616161616161616,
          0.03666666666666667,
          0.036706349206349215,
          0.036723163841807904,
          0.036764705882352935,
          0.03679245283018868,
          0.036805555555555564,
          0.03682170542635658,
          0.036842105263157884,
          0.03685897435897436,
          0.03689492325855962,
          0.03690476190476191,
          0.03693181818181818,
          0.0369496855345912,
          0.03695652173913044,
          0.03696236559139784,
          0.036971830985915485,
          0.037000000000000005,
          0.037037037037037035,
          0.03709677419354839,
          0.037109375,
          0.03713768115942029,
          0.03714285714285714,
          0.037162162162162164,
          0.03717948717948718,
          0.03723404255319149,
          0.037267080745341616,
          0.03728070175438596,
          0.03728070175438597,
          0.03732638888888889,
          0.037337662337662336,
          0.037356321839080456,
          0.037414965986394565,
          0.03742937853107345,
          0.0375,
          0.037500000000000006,
          0.03751500600240097,
          0.03754125412541254,
          0.03756830601092896,
          0.037581699346405234,
          0.037613981762917935,
          0.03763440860215054,
          0.037677304964539006,
          0.037698412698412696,
          0.03773584905660377,
          0.03776041666666666,
          0.037772585669781936,
          0.0377906976744186,
          0.037808641975308636,
          0.03787878787878788,
          0.03792134831460674,
          0.037931034482758634,
          0.03793532338308458,
          0.03794642857142857,
          0.03796296296296296,
          0.037990196078431376,
          0.038,
          0.038011695906432746,
          0.03802083333333333,
          0.03804347826086957,
          0.038095238095238085,
          0.0380952380952381,
          0.038120567375886524,
          0.03813559322033898,
          0.03814553990610329,
          0.03815261044176706,
          0.03819444444444444,
          0.03819444444444445,
          0.03823529411764706,
          0.03824200913242009,
          0.03825136612021858,
          0.03826530612244898,
          0.03827519379844961,
          0.038288288288288286,
          0.038306451612903226,
          0.03833333333333333,
          0.03833333333333334,
          0.038348082595870206,
          0.038359788359788365,
          0.038377192982456135,
          0.03839869281045751,
          0.038411458333333336,
          0.038419913419913417,
          0.038461538461538464,
          0.03849206349206349,
          0.03852201257861635,
          0.038530465949820784,
          0.03854166666666667,
          0.03855140186915888,
          0.03855721393034826,
          0.038563829787234036,
          0.03858024691358025,
          0.03861788617886178,
          0.038636363636363635,
          0.03864734299516908,
          0.03870967741935484,
          0.03872549019607843,
          0.03875968992248062,
          0.03877314814814815,
          0.03879310344827586,
          0.038825757575757576,
          0.038841807909604516,
          0.038857677902621734,
          0.03888888888888889,
          0.03892543859649123,
          0.0389344262295082,
          0.03894927536231884,
          0.03896103896103896,
          0.03897849462365592,
          0.03900709219858156,
          0.039021164021164026,
          0.039029535864978905,
          0.0390625,
          0.0391304347826087,
          0.03916666666666666,
          0.0392156862745098,
          0.03924418604651163,
          0.0392512077294686,
          0.03926282051282051,
          0.039285714285714285,
          0.03929924242424242,
          0.039308176100628936,
          0.03932584269662921,
          0.039330218068535816,
          0.03935185185185185,
          0.0393939393939394,
          0.03940217391304348,
          0.03941441441441442,
          0.03942652329749104,
          0.03943452380952382,
          0.03944444444444445,
          0.03945035460992908,
          0.03947368421052632,
          0.0395021645021645,
          0.039529914529914535,
          0.03953488372093023,
          0.03954802259887006,
          0.03956228956228956,
          0.03958333333333333,
          0.03961748633879781,
          0.03963414634146342,
          0.0396505376344086,
          0.0396551724137931,
          0.03968253968253968,
          0.03970588235294118,
          0.03971354166666666,
          0.0397196261682243,
          0.03974358974358975,
          0.03977272727272727,
          0.03980099502487562,
          0.03982300884955752,
          0.039828431372549024,
          0.03988095238095238,
          0.0398936170212766,
          0.039906103286384983,
          0.03992146596858639,
          0.039954337899543384,
          0.04,
          0.04001322751322752,
          0.04003267973856209,
          0.040084388185654005,
          0.04008838383838384,
          0.040094339622641514,
          0.04016786570743405,
          0.04017857142857143,
          0.0402046783625731,
          0.04021317829457365,
          0.04025423728813559,
          0.04032258064516129,
          0.04033687943262411,
          0.040343915343915335,
          0.040364583333333336,
          0.04038461538461539,
          0.0404040404040404,
          0.04044117647058824,
          0.040450121654501216,
          0.04047619047619048,
          0.04048463356973995,
          0.040501165501165504,
          0.040509259259259266,
          0.040540540540540536,
          0.040625,
          0.04065040650406504,
          0.04074074074074074,
          0.040760869565217385,
          0.0407673860911271,
          0.040780141843971635,
          0.04080756013745705,
          0.04083333333333333,
          0.04083333333333334,
          0.040865384615384616,
          0.040909090909090916,
          0.04093567251461989,
          0.04096638655462185,
          0.040998217468805706,
          0.040999999999999995,
          0.04102564102564103,
          0.04105392156862745,
          0.04106280193236715,
          0.04107142857142857,
          0.04110738255033557,
          0.04112554112554112,
          0.04113247863247863,
          0.04113588110403397,
          0.04113924050632911,
          0.04114365411436542,
          0.041176470588235294,
          0.04124579124579125,
          0.04125,
          0.04126984126984127,
          0.0412772585669782,
          0.04130434782608696,
          0.04137115839243498,
          0.04137931034482759,
          0.04142857142857143,
          0.04145189003436426,
          0.04146341463414634,
          0.04166666666666666,
          0.04166666666666667,
          0.04186046511627907,
          0.04189189189189189,
          0.04193548387096775,
          0.042,
          0.04205974842767296,
          0.042105263157894736,
          0.0421875,
          0.042279411764705885,
          0.0423076923076923,
          0.04230769230769231,
          0.0423572744014733,
          0.042388167388167385,
          0.042391304347826085,
          0.04242424242424242,
          0.042452830188679236,
          0.0425,
          0.042592592592592585,
          0.04264705882352941,
          0.042682926829268296,
          0.042763157894736836,
          0.042857142857142864,
          0.04296875,
          0.043044077134986224,
          0.04305555555555556,
          0.04310344827586207,
          0.04313725490196079,
          0.04318181818181818,
          0.04324324324324325,
          0.04326923076923077,
          0.043283582089552235,
          0.043333333333333335,
          0.04340277777777778,
          0.043421052631578944,
          0.043478260869565216,
          0.043548387096774194,
          0.04358974358974359,
          0.04361702127659574,
          0.04375,
          0.04387755102040816,
          0.04390243902439025,
          0.04393939393939394,
          0.044,
          0.04404761904761905,
          0.04411764705882353,
          0.04418604651162791,
          0.044230769230769226,
          0.04426229508196722,
          0.044270833333333336,
          0.04428571428571429,
          0.04431818181818182,
          0.04433962264150944,
          0.04435483870967742,
          0.04444444444444444,
          0.04444444444444445,
          0.04453125,
          0.04456521739130435,
          0.04459459459459459,
          0.04464285714285714,
          0.04466666666666667,
          0.04468085106382979,
          0.044736842105263165,
          0.04477611940298507,
          0.04479166666666667,
          0.04482758620689655,
          0.04487179487179487,
          0.044897959183673466,
          0.044915254237288135,
          0.044921875,
          0.044927536231884065,
          0.045,
          0.045000000000000005,
          0.04504132231404959,
          0.04508196721311476,
          0.045098039215686274,
          0.0451219512195122,
          0.04513888888888889,
          0.045161290322580636,
          0.045192307692307684,
          0.045217391304347834,
          0.04523809523809524,
          0.045283018867924525,
          0.0453125,
          0.04533333333333333,
          0.04534883720930232,
          0.04538461538461538,
          0.04539473684210527,
          0.045454545454545456,
          0.04553571428571429,
          0.04555555555555555,
          0.04558823529411765,
          0.0456140350877193,
          0.04565217391304348,
          0.04567307692307692,
          0.045689655172413794,
          0.04576271186440678,
          0.04578313253012048,
          0.04583333333333333,
          0.04583333333333334,
          0.045890410958904115,
          0.04591836734693878,
          0.045945945945945935,
          0.04596774193548387,
          0.045977011494252866,
          0.046,
          0.04602272727272727,
          0.04603174603174603,
          0.046052631578947366,
          0.046078431372549015,
          0.0461038961038961,
          0.04615384615384615,
          0.04615384615384616,
          0.04621212121212121,
          0.046226415094339626,
          0.04626865671641791,
          0.04629629629629629,
          0.0462962962962963,
          0.04634146341463415,
          0.04635416666666667,
          0.04636363636363637,
          0.0463768115942029,
          0.04642857142857143,
          0.046474358974358976,
          0.04647887323943662,
          0.046484375,
          0.04649122807017544,
          0.04651162790697674,
          0.04652777777777778,
          0.04655172413793104,
          0.046590909090909086,
          0.04666666666666666,
          0.04666666666666667,
          0.046698113207547166,
          0.046710526315789466,
          0.04672131147540984,
          0.04673913043478261,
          0.04675324675324676,
          0.0467741935483871,
          0.0467948717948718,
          0.04683544303797468,
          0.046842105263157886,
          0.046875,
          0.04693877551020408,
          0.046969696969696974,
          0.047,
          0.047008547008547015,
          0.04701492537313433,
          0.047023809523809516,
          0.04702970297029703,
          0.047058823529411764,
          0.047087378640776695,
          0.04710144927536232,
          0.04711538461538462,
          0.04714285714285714,
          0.047142857142857146,
          0.047183098591549295,
          0.04722222222222222,
          0.0472972972972973,
          0.04732142857142857,
          0.04733333333333333,
          0.047340425531914886,
          0.04734848484848485,
          0.04736842105263158,
          0.04739583333333333,
          0.047402597402597405,
          0.04743589743589744,
          0.04745762711864406,
          0.04746835443037975,
          0.04747474747474748,
          0.0475,
          0.0475609756097561,
          0.04757281553398058,
          0.047580645161290326,
          0.04759036144578314,
          0.047619047619047616,
          0.04765625,
          0.047674418604651166,
          0.047685185185185185,
          0.04770114942528736,
          0.04779411764705882,
          0.0478021978021978,
          0.04782608695652173,
          0.04782608695652174,
          0.04787234042553192,
          0.04789473684210526,
          0.04791666666666666,
          0.04791666666666667,
          0.047933884297520664,
          0.04794520547945205,
          0.047948717948717946,
          0.048,
          0.048031496062992125,
          0.048046875,
          0.04805194805194805,
          0.04807692307692308,
          0.048113207547169815,
          0.048125,
          0.04814814814814815,
          0.04818181818181818,
          0.04819277108433735,
          0.04821428571428571,
          0.048214285714285716,
          0.04824561403508772,
          0.04827586206896552,
          0.048295454545454544,
          0.04830508474576272,
          0.04833333333333333,
          0.04835164835164835,
          0.04836065573770492,
          0.04836956521739131,
          0.04838709677419355,
          0.0484,
          0.0484375,
          0.0485,
          0.048507462686567165,
          0.04854014598540146,
          0.04854368932038835,
          0.04857142857142857,
          0.04858156028368794,
          0.04861111111111111,
          0.04864864864864865,
          0.04867256637168142,
          0.048728813559322036,
          0.04873949579831933,
          0.04875,
          0.048770491803278686,
          0.04878048780487805,
          0.0488,
          0.0488095238095238,
          0.0488135593220339,
          0.04886363636363636,
          0.04891304347826087,
          0.048918918918918926,
          0.04892086330935252,
          0.04893617021276595,
          0.048947368421052635,
          0.04895833333333333,
          0.049,
          0.04901960784313725,
          0.049056603773584916,
          0.04908536585365854,
          0.049107142857142856,
          0.04913793103448276,
          0.04916666666666667,
          0.04921875,
          0.04924242424242424,
          0.04924812030075188,
          0.04926470588235294,
          0.049280575539568335,
          0.04933333333333333,
          0.049342105263157895,
          0.049358974358974364,
          0.04941176470588236,
          0.04945054945054945,
          0.04947916666666666,
          0.04951923076923077,
          0.04956140350877193,
          0.04956896551724138,
          0.04965753424657534,
          0.049689440993788817,
          0.05,
          0.05016891891891892,
          0.05028089887640449,
          0.050347222222222224,
          0.050364963503649635,
          0.05048076923076923,
          0.050595238095238096,
          0.05067567567567568,
          0.05078125,
          0.05086206896551725,
          0.050925925925925916,
          0.050986842105263164,
          0.05113636363636364,
          0.05116279069767442,
          0.05121951219512196,
          0.05125,
          0.05128205128205128,
          0.05131578947368421,
          0.05133928571428571,
          0.05135135135135135,
          0.05138888888888889,
          0.05147058823529412,
          0.05153061224489796,
          0.051587301587301584,
          0.051630434782608696,
          0.05172413793103448,
          0.05178571428571429,
          0.052083333333333336,
          0.05225409836065574,
          0.05232558139534884,
          0.052364864864864864,
          0.05241935483870968,
          0.0525,
          0.052564102564102565,
          0.05257936507936508,
          0.05263157894736842,
          0.052734375,
          0.05288461538461538,
          0.052941176470588235,
          0.05303030303030303,
          0.053125,
          0.053240740740740734,
          0.05330882352941176,
          0.05338541666666666,
          0.05357142857142857,
          0.05362318840579711,
          0.05372340425531915,
          0.053779069767441866,
          0.05381944444444445,
          0.05387931034482758,
          0.053921568627450976,
          0.05397727272727273,
          0.054086538461538464,
          0.05416666666666667,
          0.054245283018867926,
          0.054276315789473686,
          0.05434782608695652,
          0.054435483870967735,
          0.05448717948717949,
          0.05452127659574468,
          0.0546875,
          0.054878048780487805,
          0.05492424242424242,
          0.055,
          0.055059523809523815,
          0.05510752688172043,
          0.05514705882352941,
          0.055232558139534885,
          0.055288461538461536,
          0.055357142857142855,
          0.05539772727272727,
          0.05555555555555555,
          0.05555555555555556,
          0.05568181818181818,
          0.05570652173913043,
          0.055743243243243236,
          0.05580357142857143,
          0.05585106382978723,
          0.05592105263157895,
          0.05597014925373135,
          0.055989583333333336,
          0.05603448275862069,
          0.056089743589743585,
          0.05612244897959184,
          0.056144067796610166,
          0.05625,
          0.05637254901960784,
          0.05640243902439025,
          0.05645161290322581,
          0.056490384615384616,
          0.05654761904761905,
          0.056640625,
          0.0566860465116279,
          0.056712962962962965,
          0.05681818181818181,
          0.05691964285714285,
          0.056944444444444436,
          0.056985294117647065,
          0.0570054945054945,
          0.05706521739130435,
          0.05711206896551725,
          0.057142857142857134,
          0.057180851063829786,
          0.057203389830508475,
          0.05729166666666665,
          0.05737704918032788,
          0.05739795918367348,
          0.057432432432432436,
          0.0575,
          0.057539682539682536,
          0.05756578947368421,
          0.05759803921568628,
          0.0576171875,
          0.0576923076923077,
          0.05778301886792452,
          0.0578125,
          0.05783582089552239,
          0.05787037037037038,
          0.057904411764705885,
          0.057926829268292686,
          0.05795454545454545,
          0.057971014492753624,
          0.05803571428571429,
          0.05813953488372092,
          0.058189655172413784,
          0.05823863636363636,
          0.05826271186440678,
          0.05833333333333333,
          0.0584016393442623,
          0.05842391304347825,
          0.05844155844155844,
          0.058467741935483875,
          0.058510638297872335,
          0.05859375,
          0.05864197530864197,
          0.05865384615384616,
          0.0586890243902439,
          0.058712121212121215,
          0.05873493975903615,
          0.05875,
          0.05876865671641793,
          0.0587797619047619,
          0.05882352941176471,
          0.058894230769230775,
          0.058908045977011485,
          0.05892857142857143,
          0.05894886363636364,
          0.0589622641509434,
          0.059027777777777776,
          0.05909090909090909,
          0.05912162162162163,
          0.05913978494623656,
          0.05915178571428571,
          0.05916666666666666,
          0.05921052631578948,
          0.05926724137931035,
          0.05927835051546392,
          0.059294871794871785,
          0.059322033898305086,
          0.059335443037974674,
          0.059375,
          0.059426229508196725,
          0.059451219512195126,
          0.0594758064516129,
          0.05952380952380953,
          0.0595703125,
          0.05965909090909091,
          0.05969101123595505,
          0.059701492537313425,
          0.05972222222222224,
          0.059742647058823525,
          0.05975274725274725,
          0.059782608695652176,
          0.0598404255319149,
          0.05986842105263158,
          0.059895833333333336,
          0.059922680412371136,
          0.059931506849315065,
          0.059948979591836725,
          0.06,
          0.06002475247524752,
          0.06004901960784314,
          0.06007281553398058,
          0.06009615384615385,
          0.060126582278481014,
          0.06015625,
          0.060185185185185175,
          0.060227272727272727,
          0.06026785714285714,
          0.06030701754385965,
          0.0603448275862069,
          0.06043956043956044,
          0.06045081967213115,
          0.06048387096774194,
          0.060546875,
          0.06057692307692308,
          0.06059160305343511,
          0.0606060606060606,
          0.06066176470588235,
          0.06067961165048544,
          0.060714285714285714,
          0.06073943661971831,
          0.06076388888888889,
          0.060810810810810814,
          0.06085526315789474,
          0.0608974358974359,
          0.06091772151898734,
          0.0609375,
          0.06095679012345679,
          0.060963114754098366,
          0.06097560975609756,
          0.06101190476190476,
          0.0610236220472441,
          0.061046511627906974,
          0.06105769230769231,
          0.0610632183908046,
          0.06107954545454545,
          0.06111111111111111,
          0.06114130434782609,
          0.061224489795918366,
          0.06125,
          0.061282467532467536,
          0.061313291139240514,
          0.06133540372670807,
          0.06135321100917431,
          0.06137387387387388,
          0.061383928571428575,
          0.06140350877192983,
          0.06144957983193278,
          0.06145833333333332,
          0.06147540983606557,
          0.06158088235294117,
          0.06159420289855073,
          0.06160071942446042,
          0.06161971830985916,
          0.06164383561643835,
          0.061655405405405414,
          0.061666666666666675,
          0.0617816091954023,
          0.06178977272727273,
          0.061842105263157886,
          0.061855670103092786,
          0.061862244897959176,
          0.06189320388349515,
          0.061904761904761914,
          0.06192660550458716,
          0.06197478991596639,
          0.06214285714285715,
          0.06221330275229357,
          0.0625,
          0.06302966101694915,
          0.0633116883116883,
          0.06333333333333332,
          0.06340579710144928,
          0.06349206349206349,
          0.06354166666666666,
          0.0635593220338983,
          0.06372549019607843,
          0.06384408602150538,
          0.06386861313868614,
          0.06402439024390244,
          0.06410256410256411,
          0.06436567164179105,
          0.06439393939393939,
          0.06481481481481481,
          0.06481481481481483,
          0.06495098039215688,
          0.065,
          0.06521739130434782,
          0.06547619047619048,
          0.065625,
          0.06578947368421052,
          0.06609195402298851,
          0.0661764705882353,
          0.06640625,
          0.06666666666666668,
          0.06678082191780822,
          0.06720430107526883,
          0.0673076923076923,
          0.06746031746031747,
          0.0675,
          0.06770833333333333,
          0.06782945736434108,
          0.06790123456790123,
          0.06818181818181818,
          0.06837606837606837,
          0.06840796019900497,
          0.06845238095238096,
          0.06862745098039216,
          0.06875,
          0.06884057971014493,
          0.06896551724137931,
          0.06904761904761904,
          0.06944444444444445,
          0.06981981981981983,
          0.06989247311827956,
          0.07,
          0.07017543859649122,
          0.0703125,
          0.07051282051282051,
          0.07070707070707072,
          0.07083333333333333,
          0.07098765432098765,
          0.07107843137254903,
          0.07118055555555555,
          0.07142857142857142,
          0.07161458333333333,
          0.07175925925925926,
          0.07183908045977012,
          0.07196969696969696,
          0.07207207207207207,
          0.07222222222222223,
          0.07236842105263158,
          0.07246376811594203,
          0.07258064516129033,
          0.07264957264957267,
          0.07291666666666666,
          0.07291666666666667,
          0.07317073170731707,
          0.07323232323232322,
          0.07333333333333332,
          0.07352941176470587,
          0.07364341085271317,
          0.07371794871794872,
          0.07380952380952381,
          0.07386363636363638,
          0.07407407407407407,
          0.07427536231884058,
          0.07432432432432433,
          0.0744047619047619,
          0.07456140350877194,
          0.07465277777777778,
          0.07471264367816091,
          0.075,
          0.07526881720430108,
          0.07539682539682539,
          0.07552083333333333,
          0.0755813953488372,
          0.07561728395061727,
          0.07575757575757576,
          0.07589285714285714,
          0.07592592592592592,
          0.07598039215686275,
          0.07608695652173914,
          0.07614942528735633,
          0.07619047619047617,
          0.07621951219512195,
          0.07624113475177305,
          0.07638888888888888,
          0.0763888888888889,
          0.07648401826484018,
          0.07653061224489796,
          0.07657657657657659,
          0.07666666666666667,
          0.07675438596491227,
          0.07679738562091502,
          0.07683982683982685,
          0.07692307692307693,
          0.0770440251572327,
          0.07708333333333334,
          0.07716049382716049,
          0.0771604938271605,
          0.07723577235772358,
          0.07727272727272727,
          0.07729468599033816,
          0.07738095238095237,
          0.07746478873239436,
          0.07751937984496124,
          0.07758620689655173,
          0.07765151515151515,
          0.07777777777777778,
          0.0778688524590164,
          0.07789855072463768,
          0.07795698924731183,
          0.07799145299145299,
          0.07801418439716312,
          0.07804232804232805,
          0.078125,
          0.0782051282051282,
          0.0782312925170068,
          0.07825203252032521,
          0.07828282828282829,
          0.0783132530120482,
          0.07833333333333332,
          0.07835820895522387,
          0.0784313725490196,
          0.0785024154589372,
          0.07852564102564102,
          0.07857142857142857,
          0.07859848484848485,
          0.07861635220125787,
          0.07863849765258216,
          0.0787037037037037,
          0.07878787878787878,
          0.07882882882882883,
          0.07886904761904763,
          0.07890070921985816,
          0.07894736842105263,
          0.07900432900432902,
          0.07905982905982907,
          0.07911392405063293,
          0.07916666666666666,
          0.07923497267759562,
          0.07926829268292683,
          0.0793010752688172,
          0.07931726907630522,
          0.07936507936507936,
          0.07936507936507937,
          0.07942708333333333,
          0.07945736434108527,
          0.0794871794871795,
          0.07950191570881228,
          0.07954545454545454,
          0.07960199004975124,
          0.07965686274509805,
          0.07971014492753623,
          0.0797872340425532,
          0.07982456140350877,
          0.0798611111111111,
          0.07986111111111112,
          0.07990867579908675,
          0.07993197278911564,
          0.07995495495495496,
          0.08,
          0.0800438596491228,
          0.08006535947712418,
          0.08012820512820512,
          0.08016877637130801,
          0.08018867924528301,
          0.08024691358024691,
          0.08028455284552845,
          0.0803030303030303,
          0.08035714285714286,
          0.0804093567251462,
          0.08045977011494253,
          0.08050847457627118,
          0.08052434456928839,
          0.08055555555555555,
          0.08055555555555556,
          0.08060109289617487,
          0.08064516129032258,
          0.08067375886524822,
          0.08068783068783067,
          0.08070175438596491,
          0.08072916666666667,
          0.08076923076923077,
          0.0808080808080808,
          0.08084577114427861,
          0.08088235294117647,
          0.08095238095238096,
          0.08101851851851853,
          0.08108108108108109,
          0.08114035087719297,
          0.0811965811965812,
          0.08125,
          0.08132530120481928,
          0.08134920634920635,
          0.08139534883720931,
          0.08145009416195857,
          0.08146067415730338,
          0.08148148148148147,
          0.08152173913043477,
          0.08154121863799282,
          0.08157894736842106,
          0.08159722222222222,
          0.08163265306122447,
          0.08166666666666668,
          0.08169934640522876,
          0.08173076923076923,
          0.08176100628930817,
          0.08179012345679013,
          0.08181818181818183,
          0.08192090395480225,
          0.08194444444444443,
          0.08196721311475409,
          0.08202443280977313,
          0.08203125,
          0.08205128205128205,
          0.08208955223880597,
          0.0821078431372549,
          0.0821256038647343,
          0.08217592592592593,
          0.0821917808219178,
          0.08223684210526316,
          0.08226495726495726,
          0.08251633986928104,
          0.0825320512820513,
          0.08259587020648967,
          0.08268229166666667,
          0.08275058275058275,
          0.08277027027027027,
          0.08333333333333333,
          0.08333333333333334,
          0.0838206627680312,
          0.08386411889596602,
          0.08406432748538012,
          0.08417508417508418,
          0.0842911877394636,
          0.08442982456140351,
          0.08450704225352113,
          0.08455882352941177,
          0.08461538461538462,
          0.08465608465608465,
          0.08466312056737588,
          0.08466666666666668,
          0.08469945355191258,
          0.08471074380165289,
          0.0847457627118644,
          0.085,
          0.08503401360544219,
          0.08506944444444442,
          0.08514492753623189,
          0.08527131782945736,
          0.08552631578947369,
          0.08558558558558559,
          0.08564814814814815,
          0.08571428571428573,
          0.08575581395348837,
          0.08636363636363636,
          0.08638211382113821,
          0.08653846153846154,
          0.08703703703703704,
          0.0871501272264631,
          0.08744855967078187,
          0.0875,
          0.08796296296296298,
          0.0880952380952381,
          0.08823529411764706,
          0.08854166666666667,
          0.08874458874458874,
          0.08928571428571429,
          0.08974358974358974,
          0.09027777777777778,
          0.09090909090909093,
          0.09146341463414634,
          0.09166666666666666,
          0.09210526315789473,
          0.0931372549019608,
          0.09375,
          0.09444444444444446,
          0.09482758620689656,
          0.095,
          0.09523809523809523,
          0.09558823529411764,
          0.09615384615384616,
          0.09722222222222222,
          0.09782608695652174,
          0.09803921568627452,
          0.09821428571428573,
          0.0986842105263158,
          0.09895833333333333,
          0.09953703703703703,
          0.1,
          0.10096153846153846,
          0.1011904761904762,
          0.1015625,
          0.10227272727272728,
          0.10267857142857142,
          0.10294117647058824,
          0.1032608695652174,
          0.10357142857142858,
          0.10416666666666667,
          0.10483870967741936,
          0.105,
          0.10526315789473684,
          0.10576923076923077,
          0.10625,
          0.10648148148148147,
          0.10714285714285714,
          0.10775862068965517,
          0.10795454545454546,
          0.10810810810810813,
          0.1082089552238806,
          0.10833333333333334,
          0.10869565217391304,
          0.10887096774193547,
          0.10897435897435898,
          0.109375,
          0.10984848484848483,
          0.11,
          0.11029411764705882,
          0.11041666666666666,
          0.11057692307692307,
          0.11071428571428572,
          0.1111111111111111,
          0.11148648648648647,
          0.11160714285714286,
          0.1118421052631579,
          0.11206896551724138,
          0.11217948717948717,
          0.11224489795918367,
          0.1125,
          0.11280487804878048,
          0.1129032258064516,
          0.1130952380952381,
          0.11328125,
          0.11346153846153845,
          0.11363636363636365,
          0.11397058823529413,
          0.11413043478260868,
          0.11422413793103448,
          0.11428571428571427,
          0.11458333333333333,
          0.11486486486486487,
          0.115,
          0.11513157894736842,
          0.1153846153846154,
          0.11556603773584904,
          0.115625,
          0.11574074074074076,
          0.11585365853658534,
          0.11607142857142858,
          0.11637931034482757,
          0.11647727272727272,
          0.11652542372881355,
          0.11666666666666667,
          0.11684782608695653,
          0.11693548387096775,
          0.11702127659574467,
          0.1171875,
          0.11730769230769232,
          0.1173469387755102,
          0.11742424242424244,
          0.1175,
          0.1176470588235294,
          0.11778846153846155,
          0.11785714285714285,
          0.11805555555555555,
          0.11818181818181818,
          0.11824324324324326,
          0.11842105263157895,
          0.11853448275862068,
          0.11858974358974357,
          0.11875,
          0.11890243902439025,
          0.1189516129032258,
          0.11904761904761905,
          0.11918604651162792,
          0.11923076923076925,
          0.11931818181818182,
          0.11944444444444445,
          0.11948529411764705,
          0.11956521739130435,
          0.1196808510638298,
          0.11979166666666667,
          0.11989795918367345,
          0.11993243243243246,
          0.12,
          0.12009803921568628,
          0.1201923076923077,
          0.1203358208955224,
          0.12037037037037035,
          0.12045454545454545,
          0.12048192771084335,
          0.12053571428571427,
          0.1206140350877193,
          0.1206896551724138,
          0.12083333333333332,
          0.12090163934426228,
          0.12096774193548387,
          0.12103174603174605,
          0.12109375,
          0.12115384615384615,
          0.12121212121212123,
          0.12126865671641793,
          0.1213235294117647,
          0.12139423076923075,
          0.12142857142857146,
          0.12152777777777778,
          0.12162162162162166,
          0.12166666666666667,
          0.12171052631578948,
          0.1217948717948718,
          0.121875,
          0.12191358024691358,
          0.12195121951219512,
          0.12202380952380952,
          0.12209302325581395,
          0.12222222222222222,
          0.12228260869565218,
          0.12234042553191488,
          0.12239583333333333,
          0.12244897959183673,
          0.1225,
          0.12254901960784312,
          0.12259615384615385,
          0.12264150943396225,
          0.1226851851851852,
          0.12280701754385966,
          0.12284482758620688,
          0.1228813559322034,
          0.12291666666666665,
          0.12298387096774195,
          0.123015873015873,
          0.123046875,
          0.12307692307692307,
          0.12313432835820895,
          0.12318840579710146,
          0.12321428571428572,
          0.12323943661971833,
          0.12327586206896553,
          0.1232876712328767,
          0.12335526315789473,
          0.12341772151898735,
          0.12352941176470587,
          0.12359550561797752,
          0.12367021276595745,
          0.12369791666666667,
          0.12373737373737374,
          0.1238425925925926,
          0.125,
          0.12611607142857142,
          0.1267605633802817,
          0.12698412698412698,
          0.12704918032786885,
          0.12719298245614036,
          0.12735849056603776,
          0.12740384615384615,
          0.12771739130434784,
          0.12777777777777774,
          0.1278409090909091,
          0.12804878048780488,
          0.1282051282051282,
          0.12828947368421054,
          0.12837837837837834,
          0.1284722222222222,
          0.12857142857142856,
          0.12867647058823528,
          0.1287313432835821,
          0.12878787878787878,
          0.12890625,
          0.12903225806451613,
          0.12931034482758622,
          0.12946428571428573,
          0.12962962962962962,
          0.12980769230769232,
          0.1299342105263158,
          0.13,
          0.13068181818181818,
          0.1308139534883721,
          0.13109756097560976,
          0.13135593220338984,
          0.13141025641025642,
          0.13157894736842105,
          0.13166666666666665,
          0.13194444444444445,
          0.1320754716981132,
          0.1323529411764706,
          0.13257575757575754,
          0.1326530612244898,
          0.13306451612903225,
          0.13333333333333333,
          0.13372093023255813,
          0.13392857142857142,
          0.13432835820895522,
          0.1346153846153846,
          0.13541666666666666,
          0.13636363636363635,
          0.13690476190476192,
          0.13725490196078433,
          0.1375,
          0.13815789473684212,
          0.1388888888888889,
          0.1392857142857143,
          0.13942307692307693,
          0.14,
          0.140625,
          0.1423611111111111,
          0.14285714285714285,
          0.14351851851851852,
          0.14423076923076922,
          0.145,
          0.14583333333333334,
          0.14772727272727273,
          0.15,
          0.1534090909090909,
          0.15384615384615385,
          0.15625,
          0.1590909090909091,
          0.16666666666666666,
          0.171875,
          0.17307692307692307,
          0.175,
          0.17857142857142858,
          0.18055555555555555,
          0.18181818181818185,
          0.18333333333333326,
          0.1875,
          0.19047619047619047,
          0.19117647058823528,
          0.19230769230769232,
          0.19318181818181815,
          0.19444444444444445,
          0.19642857142857145,
          0.19791666666666666,
          0.2,
          0.203125,
          0.2037037037037037,
          0.20454545454545456,
          0.2058823529411765,
          0.2065217391304348,
          0.20689655172413796,
          0.20833333333333331,
          0.21,
          0.21052631578947367,
          0.2109375,
          0.21153846153846154,
          0.2125,
          0.21428571428571427,
          0.2152777777777778,
          0.21551724137931036,
          0.21666666666666667,
          0.21739130434782608,
          0.21794871794871795,
          0.21875,
          0.22,
          0.22058823529411764,
          0.22115384615384612,
          0.22142857142857145,
          0.2222222222222222,
          0.22321428571428573,
          0.2236842105263158,
          0.2241379310344828,
          0.225,
          0.22549019607843135,
          0.2258064516129032,
          0.2261904761904762,
          0.2265625,
          0.2272727272727273,
          0.22794117647058826,
          0.22826086956521735,
          0.22916666666666666,
          0.2297297297297297,
          0.23,
          0.2307692307692308,
          0.2314814814814815,
          0.23214285714285715,
          0.2327586206896552,
          0.2333333333333333,
          0.2338709677419355,
          0.234375,
          0.2346938775510204,
          0.2348484848484849,
          0.235,
          0.2352941176470588,
          0.2357142857142857,
          0.2361111111111111,
          0.2364864864864865,
          0.2368421052631579,
          0.2371794871794872,
          0.2375,
          0.2378048780487805,
          0.2379032258064516,
          0.2380952380952381,
          0.23828125,
          0.23863636363636365,
          0.2388888888888889,
          0.2391304347826087,
          0.239247311827957,
          0.2395833333333333,
          0.24,
          0.24019607843137256,
          0.2403846153846154,
          0.2405063291139241,
          0.24074074074074076,
          0.24107142857142855,
          0.2413793103448276,
          0.24152542372881355,
          0.2416666666666667,
          0.24180327868852455,
          0.2419354838709677,
          0.2421875,
          0.24242424242424246,
          0.2426470588235294,
          0.24285714285714285,
          0.24305555555555555,
          0.2432432432432433,
          0.2434210526315789,
          0.2435897435897436,
          0.2438271604938272,
          0.24404761904761904,
          0.2441860465116279,
          0.24431818181818185,
          0.24444444444444444,
          0.24456521739130435,
          0.24468085106382975,
          0.24479166666666666,
          0.245,
          0.2451923076923077,
          0.2452830188679245,
          0.2453703703703704,
          0.24545454545454545,
          0.2455357142857143,
          0.2456140350877193,
          0.2457627118644068,
          0.2462686567164179,
          0.2463768115942029,
          0.2465753424657534,
          0.2466666666666667,
          0.2471590909090909,
          0.24728260869565216,
          0.25,
          0.25193798449612403,
          0.2530120481927711,
          0.2532051282051282,
          0.2532894736842105,
          0.2533333333333333,
          0.2534246575342466,
          0.2536764705882353,
          0.2537878787878788,
          0.25384615384615383,
          0.2540983606557377,
          0.25416666666666665,
          0.2544642857142857,
          0.2547169811320755,
          0.2549019607843137,
          0.2552631578947369,
          0.2553191489361702,
          0.2554347826086957,
          0.2554945054945055,
          0.2556818181818182,
          0.2558139534883721,
          0.25588235294117645,
          0.2559523809523809,
          0.25609756097560976,
          0.2561475409836065,
          0.25625,
          0.2565789473684211,
          0.25675675675675674,
          0.2569444444444444,
          0.2571428571428571,
          0.25735294117647056,
          0.25742574257425743,
          0.2575757575757576,
          0.2576923076923077,
          0.25806451612903225,
          0.2581967213114754,
          0.25862068965517243,
          0.25892857142857145,
          0.25914634146341464,
          0.25925925925925924,
          0.25961538461538464,
          0.26,
          0.2604166666666667,
          0.2608695652173913,
          0.2611111111111111,
          0.26136363636363635,
          0.2619047619047619,
          0.2621951219512195,
          0.2625,
          0.2627118644067797,
          0.2631578947368421,
          0.26339285714285715,
          0.2635135135135135,
          0.2636363636363636,
          0.2638888888888889,
          0.2642857142857143,
          0.2647058823529412,
          0.265625,
          0.26666666666666666,
          0.26744186046511625,
          0.26785714285714285,
          0.2692307692307692,
          0.27,
          0.2708333333333333,
          0.2727272727272727,
          0.2734375,
          0.27380952380952384,
          0.275,
          0.27631578947368424,
          0.2777777777777778,
          0.2785714285714286,
          0.2794117647058824,
          0.2803030303030303,
          0.28125,
          0.2826086956521739,
          0.2857142857142857,
          0.2916666666666667,
          0.29411764705882354,
          0.2954545454545455,
          0.296875,
          0.3,
          0.3125,
          0.3181818181818182,
          0.32142857142857145,
          0.3333333333333333,
          0.35,
          0.35714285714285715,
          0.3636363636363637,
          0.36538461538461536,
          0.37,
          0.375,
          0.3809523809523809,
          0.3888888888888889,
          0.4,
          0.40625,
          0.4090909090909091,
          0.4130434782608696,
          0.4166666666666667,
          0.42,
          0.4230769230769231,
          0.425,
          0.4264705882352941,
          0.42857142857142855,
          0.43333333333333335,
          0.4375,
          0.44,
          0.4411764705882353,
          0.4423076923076923,
          0.4444444444444444,
          0.4473684210526316,
          0.45,
          0.4523809523809524,
          0.4545454545454545,
          0.4583333333333333,
          0.46,
          0.4615384615384616,
          0.462962962962963,
          0.4642857142857143,
          0.4666666666666667,
          0.4677419354838709,
          0.46875,
          0.4705882352941176,
          0.4714285714285714,
          0.4722222222222222,
          0.4736842105263158,
          0.475,
          0.4761904761904762,
          0.4772727272727273,
          0.4782608695652174,
          0.4791666666666667,
          0.48,
          0.480
Download .txt
gitextract_pzr7p8zx/

├── README.md
├── Restaurants (Yelp) Dataset-EDA.ipynb
├── TripAdvisor_Crawler_Parser.ipynb
├── attraction_etl.ipynb
├── attractions_crawler.ipynb
├── attractions_details_crawler.ipynb
├── attractions_recc.py
├── combine_batches.ipynb
├── etl/
│   ├── attraction_reviews/
│   │   ├── part-00000-49e3efc3-a4b7-41e8-b45e-c3f57c21a6a5-c000.snappy.parquet
│   │   ├── part-00001-49e3efc3-a4b7-41e8-b45e-c3f57c21a6a5-c000.snappy.parquet
│   │   ├── part-00002-49e3efc3-a4b7-41e8-b45e-c3f57c21a6a5-c000.snappy.parquet
│   │   └── part-00003-49e3efc3-a4b7-41e8-b45e-c3f57c21a6a5-c000.snappy.parquet
│   ├── attraction_reviews.json
│   ├── attractions.json
│   ├── del_dup/
│   │   ├── part-00000-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json
│   │   ├── part-00001-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json
│   │   ├── part-00002-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json
│   │   └── part-00003-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json
│   ├── newh_df/
│   │   ├── part-00000-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json
│   │   ├── part-00001-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json
│   │   ├── part-00002-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json
│   │   └── part-00003-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json
│   └── u_id_df/
│       ├── part-00000-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json
│       ├── part-00001-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json
│       ├── part-00002-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json
│       └── part-00003-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json
├── final_hotel_recc.ipynb
├── get_att_recc.ipynb
├── hotel_etl.ipynb
├── hotel_recc.py
├── mf_models/
│   └── model_file/
│       ├── itemFactors/
│       │   ├── part-00000-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00001-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00002-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00003-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00004-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00005-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00006-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00007-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   ├── part-00008-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       │   └── part-00009-daa146bf-1542-404b-b7b1-a4e3cff69a72-c000.snappy.parquet
│       ├── metadata/
│       │   └── part-00000
│       └── userFactors/
│           ├── part-00000-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00001-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00002-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00003-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00004-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00005-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00006-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00007-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           ├── part-00008-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
│           └── part-00009-1ce6925f-8f15-4e37-b696-1731c4499927-c000.snappy.parquet
├── outputs/
│   ├── attraction_details/
│   │   ├── part-00000-24d79c41-ab21-4f52-bb5e-fed77bf823f8-c000.snappy.parquet
│   │   ├── part-00000-8b76e71d-55f4-47ef-a621-b32a2f3e1179-c000.snappy.parquet
│   │   ├── part-00001-24d79c41-ab21-4f52-bb5e-fed77bf823f8-c000.snappy.parquet
│   │   ├── part-00001-8b76e71d-55f4-47ef-a621-b32a2f3e1179-c000.snappy.parquet
│   │   ├── part-00002-8b76e71d-55f4-47ef-a621-b32a2f3e1179-c000.snappy.parquet
│   │   └── part-00003-8b76e71d-55f4-47ef-a621-b32a2f3e1179-c000.snappy.parquet
│   ├── attraction_reviews/
│   │   ├── part-00000-01b23ac3-b793-40dc-b90a-93a239db5d07-c000.snappy.parquet
│   │   ├── part-00000-603b562f-5b1d-4e02-9a5d-f66acc3232a1-c000.snappy.parquet
│   │   ├── part-00002-01b23ac3-b793-40dc-b90a-93a239db5d07-c000.snappy.parquet
│   │   └── part-00002-603b562f-5b1d-4e02-9a5d-f66acc3232a1-c000.snappy.parquet
│   ├── attractions_cat.json
│   ├── attractions_details_batch1.json
│   ├── attractions_details_batch2.json
│   ├── attractions_reviews_batch1.json
│   └── attractions_reviews_batch2.json
├── rbm.py
├── rbm_training.ipynb
├── recommendations/
│   ├── e10_r5000_lr0.01_hu64_bs8/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   ├── e20_r20000_lr0.01_hu128_bs16/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   ├── e20_r20000_lr0.01_hu64_bs16/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   ├── e20_r40000_lr0.01_hu128_bs8/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   ├── e20_r5000_lr0.01_hu128_bs8/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   ├── e50_r40000_lr0.01_hu128_bs16/
│   │   ├── hb.npy
│   │   ├── user1_seen.csv
│   │   ├── user1_unseen.csv
│   │   ├── vb.npy
│   │   └── w.npy
│   └── e50_r40000_lr0.01_hu256_bs16/
│       ├── hb.npy
│       ├── user1_seen.csv
│       ├── user1_unseen.csv
│       └── vb.npy
├── requirements.txt
├── sample_table_widget.ipynb
├── tripadvisor_hotel_output/
│   ├── file_mainpage_url.txt
│   ├── hotel_info.csv
│   ├── hotel_info.json
│   ├── hotel_info_dedup.csv
│   ├── hotel_info_dedup.json
│   ├── reviews_dedup.csv
│   └── reviews_dedup.json
└── utils.py
Download .txt
SYMBOL INDEX (28 symbols across 4 files)

FILE: attractions_recc.py
  function f (line 16) | def f(row):
  function sim_score (line 27) | def sim_score(row):
  function get_recc (line 41) | def get_recc(att_df, cat_rating):
  function filter_df (line 74) | def filter_df(filename, user, low, high, province, att_df):
  function get_image (line 85) | def get_image(name):
  function top_recc (line 111) | def top_recc(with_url, final):
  function find_closest (line 126) | def find_closest(with_url, loc, tod, final):
  function final_output (line 143) | def final_output(days, final):

FILE: hotel_recc.py
  function get_rating (line 15) | def get_rating(x):
  function amenities_rating (line 29) | def amenities_rating(spark, amenities_pref, newh_df):
  function model_train (line 49) | def model_train(spark, usr_rating):
  function get_hotel_recc (line 86) | def get_hotel_recc(spark, usrid_s2):
  function get_image (line 104) | def get_image(name):
  function get_hotel_output (line 129) | def get_hotel_output(days, final):

FILE: rbm.py
  class RBM (line 11) | class RBM(object):
    method __init__ (line 15) | def __init__(self, alpha, H, num_vis):
    method training (line 24) | def training(self, train, valid, user, epochs, batchsize, free_energy,...
    method load_predict (line 131) | def load_predict(self, filename, train, user):
    method calculate_scores (line 157) | def calculate_scores(self, ratings, attractions, rec, user):
    method export (line 233) | def export(self, unseen, seen, filename, user):
    method export_errors_plot (line 256) | def export_errors_plot(self, filename):
    method export_free_energy_plot (line 262) | def export_free_energy_plot(self, filename):

FILE: utils.py
  class Util (line 10) | class Util(object):
    method read_data (line 12) | def read_data(self, folder):
    method clean_subset (line 22) | def clean_subset(self, ratings, num_rows):
    method preprocess (line 32) | def preprocess(self, ratings):
    method split_data (line 55) | def split_data(self, total_data):
    method free_energy (line 70) | def free_energy(self, v_sample, W, vb, hb):
Copy disabled (too large) Download .json
Condensed preview — 112 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (38,308K chars).
[
  {
    "path": "README.md",
    "chars": 4910,
    "preview": "# Intelligent Travel Recommendation System <br />\n<br />\nVideo demo: https://youtu.be/V635gdcw1h0 <br />\nProject Report:"
  },
  {
    "path": "Restaurants (Yelp) Dataset-EDA.ipynb",
    "chars": 594870,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 92,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\""
  },
  {
    "path": "TripAdvisor_Crawler_Parser.ipynb",
    "chars": 163698,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# TripAdvisor Crawler and Parser\\n\""
  },
  {
    "path": "attraction_etl.ipynb",
    "chars": 10093,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": "
  },
  {
    "path": "attractions_crawler.ipynb",
    "chars": 4678,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": "
  },
  {
    "path": "attractions_details_crawler.ipynb",
    "chars": 8189,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": "
  },
  {
    "path": "attractions_recc.py",
    "chars": 12242,
    "preview": "import pandas as pd\nimport numpy as np\nimport ipywidgets as w\nfrom ipywidgets import HBox, VBox\nfrom ipywidgets import L"
  },
  {
    "path": "combine_batches.ipynb",
    "chars": 4341,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": "
  },
  {
    "path": "etl/attractions.json",
    "chars": 1038025,
    "preview": "[{\"province\":\"british_columbia\",\"category\":\"featured_tours_and_tickets\",\"attraction_id\":0,\"city\":\"vancouver\",\"country\":\""
  },
  {
    "path": "etl/del_dup/part-00000-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json",
    "chars": 558988,
    "preview": "{\"address\":\"4359 Main St Whistler British Columbia\",\"amenities\":[\"[]\"],\"country\":\"Canada\",\"hotel_name\":\"Summit Lodge Bou"
  },
  {
    "path": "etl/del_dup/part-00001-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json",
    "chars": 567904,
    "preview": "{\"address\":\"17 Marjorie Cres Charlottetown Prince Edward Island\",\"amenities\":[\"['Free parking'\",\" 'Free High Speed Inter"
  },
  {
    "path": "etl/del_dup/part-00002-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json",
    "chars": 532548,
    "preview": "{\"address\":\"400 Pyramid Lake Road Alberta\",\"amenities\":[\"['Free High Speed Internet (WiFi)'\",\" 'Pool'\",\" 'Free parking'\""
  },
  {
    "path": "etl/del_dup/part-00003-c453ac1f-d0ec-49e3-8984-030e500feb5f-c000.json",
    "chars": 595978,
    "preview": "{\"address\":\"51 Fitzroy St Charlottetown Prince Edward Island\",\"amenities\":[\"['Free High Speed Internet (WiFi)'\",\" 'Free "
  },
  {
    "path": "etl/newh_df/part-00000-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json",
    "chars": 493865,
    "preview": "{\"id\":26,\"amenities\":\"\"}\n{\"id\":29,\"amenities\":\"Free High Speed Internet WiFi\"}\n{\"id\":29,\"amenities\":\" Breakfast included"
  },
  {
    "path": "etl/newh_df/part-00001-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json",
    "chars": 513107,
    "preview": "{\"id\":243,\"amenities\":\"Free parking\"}\n{\"id\":243,\"amenities\":\" Free High Speed Internet WiFi\"}\n{\"id\":243,\"amenities\":\" Go"
  },
  {
    "path": "etl/newh_df/part-00002-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json",
    "chars": 470550,
    "preview": "{\"id\":65,\"amenities\":\"Free High Speed Internet WiFi\"}\n{\"id\":65,\"amenities\":\" Pool\"}\n{\"id\":65,\"amenities\":\" Free parking\""
  },
  {
    "path": "etl/newh_df/part-00003-8b7be6b6-c958-4a62-847d-550064dd5a78-c000.json",
    "chars": 539391,
    "preview": "{\"id\":222,\"amenities\":\"Free High Speed Internet WiFi\"}\n{\"id\":222,\"amenities\":\" Free parking\"}\n{\"id\":222,\"amenities\":\" Br"
  },
  {
    "path": "etl/u_id_df/part-00000-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json",
    "chars": 15107,
    "preview": "{\"id\":2570,\"user_name\":\"MikeBCalgary\",\"user_profile\":\"https://www.tripadvisor.ca/Profile/MikeBCalgary\",\"user_rating\":3,\""
  },
  {
    "path": "etl/u_id_df/part-00001-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json",
    "chars": 16210,
    "preview": "{\"id\":2741,\"user_name\":\"Dani U\",\"user_profile\":\"https://www.tripadvisor.ca/Profile/daniellebelisle\",\"user_rating\":5,\"use"
  },
  {
    "path": "etl/u_id_df/part-00002-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json",
    "chars": 15613,
    "preview": "{\"id\":2735,\"user_name\":\"melaniearden\",\"user_profile\":\"https://www.tripadvisor.ca/Profile/melaniearden\",\"user_rating\":4,\""
  },
  {
    "path": "etl/u_id_df/part-00003-c0814be7-b91e-4586-9388-7a44d9ed338e-c000.json",
    "chars": 11865,
    "preview": "{\"id\":4918,\"user_name\":\"islandrockin\",\"user_profile\":\"https://www.tripadvisor.ca/Profile/islandrockin\",\"user_rating\":4,\""
  },
  {
    "path": "final_hotel_recc.ipynb",
    "chars": 13146,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "get_att_recc.ipynb",
    "chars": 11611,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "hotel_etl.ipynb",
    "chars": 5432,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "hotel_recc.py",
    "chars": 7516,
    "preview": "import pandas as pd\nimport ipywidgets as w\nfrom IPython.display import display, IFrame\nimport math, re, numpy as np, pys"
  },
  {
    "path": "mf_models/model_file/metadata/part-00000",
    "chars": 256,
    "preview": "{\"class\":\"org.apache.spark.ml.recommendation.ALSModel\",\"timestamp\":1554954320224,\"sparkVersion\":\"2.3.1\",\"uid\":\"ALS_45dda"
  },
  {
    "path": "outputs/attractions_cat.json",
    "chars": 728605,
    "preview": "[{\"attraction\":\"https:\\/\\/tripadvisor.ca\\/AttractionProductDetail-g154943-d11450219-Vancouver_City_Sightseeing_Tour-Vanc"
  },
  {
    "path": "outputs/attractions_details_batch1.json",
    "chars": 413941,
    "preview": "[{\"attraction_id\":0,\"name\":\"vancouver_city_sightseeing_tour\",\"country\":\"canada\",\"province\":\"british_columbia\",\"city\":\"va"
  },
  {
    "path": "outputs/attractions_details_batch2.json",
    "chars": 356038,
    "preview": "[{\"attraction_id\":2000,\"name\":\"the_pork_and_bacon_walking_food_tour_of_toronto's_hogtown_history\",\"country\":\"canada\",\"pr"
  },
  {
    "path": "outputs/attractions_reviews_batch1.json",
    "chars": 6781513,
    "preview": "[{\"attraction_id\":0,\"rating\":5.0,\"review\":\"Another 'Dave' Guides us Around Vancouver. Landsea\\u2019s Vancouver City Tour"
  },
  {
    "path": "outputs/attractions_reviews_batch2.json",
    "chars": 5363815,
    "preview": "[{\"attraction_id\":2000,\"user\":\"dominicemery\",\"rating\":5.0,\"review\":\"Interesting and Delicious . This is a great tour, no"
  },
  {
    "path": "rbm.py",
    "chars": 11590,
    "preview": "import pandas as pd\nimport numpy as np\nimport tensorflow as tf\nfrom utils import Util\nimport matplotlib\nmatplotlib.use('"
  },
  {
    "path": "rbm_training.ipynb",
    "chars": 5399,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"colab\": {},\n    \"colab_type\": \""
  },
  {
    "path": "recommendations/e10_r5000_lr0.01_hu64_bs8/user1_seen.csv",
    "chars": 2207,
    "preview": ",att_cat,att_name,att_price\n0,\"cruises,_sailing_&_water_tours\",niagara_falls_american-side_tour_with_maid_of_the_mist_bo"
  },
  {
    "path": "recommendations/e10_r5000_lr0.01_hu64_bs8/user1_unseen.csv",
    "chars": 80564,
    "preview": ",att_cat,att_name,att_price,score\n277,outdoor_activities,nordic_backcountry_skiing_tour_in_jacques-cartier_national_park"
  },
  {
    "path": "recommendations/e20_r20000_lr0.01_hu128_bs16/user1_seen.csv",
    "chars": 2207,
    "preview": ",att_cat,att_name,att_price\n0,\"cruises,_sailing_&_water_tours\",niagara_falls_american-side_tour_with_maid_of_the_mist_bo"
  },
  {
    "path": "recommendations/e20_r20000_lr0.01_hu128_bs16/user1_unseen.csv",
    "chars": 115812,
    "preview": ",att_cat,att_name,att_price,score\n498,tours_&_sightseeing,45-minute_beacon_hill_park_carriage_tour,165.0,5.0\n449,tours_&"
  },
  {
    "path": "recommendations/e20_r20000_lr0.01_hu64_bs16/user1_seen.csv",
    "chars": 2207,
    "preview": ",att_cat,att_name,att_price\n0,\"cruises,_sailing_&_water_tours\",niagara_falls_american-side_tour_with_maid_of_the_mist_bo"
  },
  {
    "path": "recommendations/e20_r20000_lr0.01_hu64_bs16/user1_unseen.csv",
    "chars": 115395,
    "preview": ",att_cat,att_name,att_price,score\n1074,recommended_experiences,laurentian_mountains_day_trip_from_montreal,100.0,5.0\n498"
  },
  {
    "path": "recommendations/e20_r40000_lr0.01_hu128_bs8/user1_seen.csv",
    "chars": 2207,
    "preview": ",att_cat,att_name,att_price\n0,\"cruises,_sailing_&_water_tours\",niagara_falls_american-side_tour_with_maid_of_the_mist_bo"
  },
  {
    "path": "recommendations/e20_r40000_lr0.01_hu128_bs8/user1_unseen.csv",
    "chars": 158259,
    "preview": ",att_cat,att_name,att_price,score\n793,tours_&_sightseeing,full-day_niagara_ice_wine_festival_tour_with_lunch_and_winery_"
  },
  {
    "path": "recommendations/e20_r5000_lr0.01_hu128_bs8/user1_seen.csv",
    "chars": 2237,
    "preview": ",att_name,att_cat,att_price\r\n0,niagara_falls_american-side_tour_with_maid_of_the_mist_boat_ride,\"cruises,_sailing_&_wate"
  },
  {
    "path": "recommendations/e20_r5000_lr0.01_hu128_bs8/user1_unseen.csv",
    "chars": 81733,
    "preview": ",att_name,att_cat,att_price,score\r\n277,nordic_backcountry_skiing_tour_in_jacques-cartier_national_park,outdoor_activitie"
  },
  {
    "path": "recommendations/e50_r40000_lr0.01_hu128_bs16/user1_seen.csv",
    "chars": 2207,
    "preview": ",att_cat,att_name,att_price\n0,\"cruises,_sailing_&_water_tours\",niagara_falls_american-side_tour_with_maid_of_the_mist_bo"
  },
  {
    "path": "recommendations/e50_r40000_lr0.01_hu128_bs16/user1_unseen.csv",
    "chars": 158089,
    "preview": ",att_cat,att_name,att_price,score\n1493,recommended_experiences,maligne_lake_cruise,82.95,5.0\n793,tours_&_sightseeing,ful"
  },
  {
    "path": "recommendations/e50_r40000_lr0.01_hu256_bs16/user1_seen.csv",
    "chars": 2207,
    "preview": ",att_cat,att_name,att_price\n0,\"cruises,_sailing_&_water_tours\",niagara_falls_american-side_tour_with_maid_of_the_mist_bo"
  },
  {
    "path": "recommendations/e50_r40000_lr0.01_hu256_bs16/user1_unseen.csv",
    "chars": 158320,
    "preview": ",att_cat,att_name,att_price,score\n1493,recommended_experiences,maligne_lake_cruise,82.95,4.999999999999999\n1372,recommen"
  },
  {
    "path": "requirements.txt",
    "chars": 4139,
    "preview": "absl-py==0.7.1\nalabaster==0.7.12\nanaconda-client==1.7.2\nanaconda-navigator==1.9.7\nanaconda-project==0.8.2\nappnope==0.1.0"
  },
  {
    "path": "sample_table_widget.ipynb",
    "chars": 14877,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 59,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n"
  },
  {
    "path": "tripadvisor_hotel_output/file_mainpage_url.txt",
    "chars": 1130349,
    "preview": "0\nhttps://www.tripadvisor.ca/Hotel_Review-g154998-d182928-Reviews-Niagara_Falls_Marriott_Fallsview_Hotel_Spa-Niagara_Fal"
  },
  {
    "path": "tripadvisor_hotel_output/hotel_info.csv",
    "chars": 1771147,
    "preview": "id,hotel_name,hotel_rating,hotel_experience,amenities,address,country,location,price\n1,Niagara Falls Marriott Fallsview "
  },
  {
    "path": "tripadvisor_hotel_output/hotel_info.json",
    "chars": 2219931,
    "preview": "{\"id\":{\"0\":1,\"1\":2,\"2\":3,\"3\":4,\"4\":5,\"5\":6,\"6\":7,\"7\":8,\"8\":9,\"9\":10,\"10\":11,\"11\":12,\"12\":13,\"13\":14,\"14\":15,\"15\":16,\"16\""
  },
  {
    "path": "tripadvisor_hotel_output/hotel_info_dedup.csv",
    "chars": 256966,
    "preview": "id,hotel_name,hotel_rating,hotel_experience,amenities,address,country,locality,location,price\n9001,Peterborough House B&"
  },
  {
    "path": "tripadvisor_hotel_output/hotel_info_dedup.json",
    "chars": 299777,
    "preview": "{\"id\":{\"0\":9001,\"1\":9002,\"2\":9003,\"3\":9004,\"4\":9005,\"5\":9006,\"6\":9007,\"7\":9008,\"8\":9009,\"9\":9010,\"10\":9011,\"11\":9012,\"12"
  },
  {
    "path": "tripadvisor_hotel_output/reviews_dedup.csv",
    "chars": 3317909,
    "preview": "id,user_rating,user_name,user_profile,user_review,user_reviewdate,user_staydate\n9003,4.0,Michelle W,https://www.tripadvi"
  },
  {
    "path": "tripadvisor_hotel_output/reviews_dedup.json",
    "chars": 5785586,
    "preview": "{\"id\":{\"0\":9003,\"1\":9003,\"2\":9003,\"3\":9003,\"4\":9003,\"5\":9003,\"6\":9003,\"7\":9003,\"8\":9003,\"9\":9003,\"10\":9003,\"11\":9003,\"12"
  },
  {
    "path": "utils.py",
    "chars": 2646,
    "preview": "'''\nUtility class with some helper functions\n'''\n\nimport pandas as pd\nimport numpy as np\nimport random\nimport os\n\nclass "
  }
]

// ... and 55 more files (download for full content)

About this extraction

This page contains the full source code of the sachinnpraburaj/Intelligent-Travel-Recommendation-System GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 112 files (79.0 MB), approximately 8.9M tokens, and a symbol index with 28 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!