├── src
└── mlProject
│ ├── config
│ ├── __init__.py
│ └── configuration.py
│ ├── entity
│ ├── __init__.py
│ └── config_entity.py
│ ├── utils
│ ├── __init__.py
│ └── common.py
│ ├── components
│ ├── __init__.py
│ ├── model_trainer.py
│ ├── data_validation.py
│ ├── data_transformation.py
│ ├── data_ingestion.py
│ └── model_evaluation.py
│ ├── pipeline
│ ├── __init__.py
│ ├── prediction.py
│ ├── stage_04_model_trainer.py
│ ├── stage_02_data_validation.py
│ ├── stage_05_model_evaluation.py
│ ├── stage_01_data_ingestion.py
│ └── stage_03_data_transformation.py
│ ├── constants
│ └── __init__.py
│ └── __init__.py
├── params.yaml
├── research
├── test.yaml
├── 04_model_trainer.ipynb
├── 03_data_transformation.ipynb
├── 05_model_evaluation.ipynb
├── 01_data_ingestion.ipynb
├── trials.ipynb
└── 02_data_validation.ipynb
├── static
├── assets
│ ├── favicon.ico
│ └── img
│ │ └── form-v9.jpg
├── js
│ └── scripts.js
└── css2
│ ├── nunito-font.css
│ └── style.css
├── Dockerfile
├── requirements.txt
├── schema.yaml
├── setup.py
├── LICENSE
├── config
└── config.yaml
├── template.py
├── app.py
├── main.py
├── README.md
├── .github
└── workflows
│ └── cicd.yaml
├── .gitignore
├── templates
├── results.html
└── index.html
└── data
└── winequality-red.csv
/src/mlProject/config/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/mlProject/entity/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/mlProject/utils/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/mlProject/components/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/mlProject/pipeline/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/params.yaml:
--------------------------------------------------------------------------------
1 | ElasticNet:
2 | alpha: 0.2
3 | l1_ratio: 0.1
--------------------------------------------------------------------------------
/research/test.yaml:
--------------------------------------------------------------------------------
1 | name: bappy
2 | email: entbappy73@gmail.com
--------------------------------------------------------------------------------
/static/assets/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/entbappy/End-to-End-Machine-Learning-Pipeline/HEAD/static/assets/favicon.ico
--------------------------------------------------------------------------------
/static/assets/img/form-v9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/entbappy/End-to-End-Machine-Learning-Pipeline/HEAD/static/assets/img/form-v9.jpg
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM python:3.8-slim-buster
2 |
3 | WORKDIR /app
4 |
5 | COPY . /app
6 |
7 | RUN pip install -r requirements.txt
8 |
9 | CMD ["python3", "app.py"]
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | pandas
2 | numpy
3 | scikit-learn
4 | matplotlib
5 | python-box==6.0.2
6 | pyYAML
7 | tqdm
8 | ensure==1.0.2
9 | joblib
10 | types-PyYAML
11 | Flask
12 | Flask-Cors
13 | -e .
--------------------------------------------------------------------------------
/src/mlProject/constants/__init__.py:
--------------------------------------------------------------------------------
1 | from pathlib import Path
2 |
3 | CONFIG_FILE_PATH = Path("config/config.yaml")
4 | PARAMS_FILE_PATH = Path("params.yaml")
5 | SCHEMA_FILE_PATH = Path("schema.yaml")
--------------------------------------------------------------------------------
/schema.yaml:
--------------------------------------------------------------------------------
1 | COLUMNS:
2 | fixed acidity: float64
3 | volatile acidity: float64
4 | citric acid: float64
5 | residual sugar: float64
6 | chlorides: float64
7 | free sulfur dioxide: float64
8 | total sulfur dioxide: float64
9 | density: float64
10 | pH: float64
11 | sulphates: float64
12 | alcohol: float64
13 | quality: int64
14 |
15 |
16 | TARGET_COLUMN:
17 | name: quality
18 |
--------------------------------------------------------------------------------
/src/mlProject/pipeline/prediction.py:
--------------------------------------------------------------------------------
1 | import joblib
2 | import numpy as np
3 | import pandas as pd
4 | from pathlib import Path
5 |
6 |
7 |
8 | class PredictionPipeline:
9 | def __init__(self):
10 | self.model = joblib.load(Path('artifacts/model_trainer/model.joblib'))
11 |
12 |
13 | def predict(self, data):
14 | prediction = self.model.predict(data)
15 |
16 | return prediction
--------------------------------------------------------------------------------
/src/mlProject/__init__.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 | import logging
4 |
5 | logging_str = "[%(asctime)s: %(levelname)s: %(module)s: %(message)s]"
6 |
7 | log_dir = "logs"
8 | log_filepath = os.path.join(log_dir,"running_logs.log")
9 | os.makedirs(log_dir, exist_ok=True)
10 |
11 |
12 | logging.basicConfig(
13 | level= logging.INFO,
14 | format= logging_str,
15 |
16 | handlers=[
17 | logging.FileHandler(log_filepath),
18 | logging.StreamHandler(sys.stdout)
19 | ]
20 | )
21 |
22 | logger = logging.getLogger("mlProjectLogger")
--------------------------------------------------------------------------------
/src/mlProject/pipeline/stage_04_model_trainer.py:
--------------------------------------------------------------------------------
1 | from mlProject.config.configuration import ConfigurationManager
2 | from mlProject.components.model_trainer import ModelTrainer
3 | from mlProject import logger
4 |
5 |
6 |
7 | STAGE_NAME = "Model Trainer stage"
8 |
9 | class ModelTrainerTrainingPipeline:
10 | def __init__(self):
11 | pass
12 |
13 | def main(self):
14 | config = ConfigurationManager()
15 | model_trainer_config = config.get_model_trainer_config()
16 | model_trainer_config = ModelTrainer(config=model_trainer_config)
17 | model_trainer_config.train()
--------------------------------------------------------------------------------
/src/mlProject/pipeline/stage_02_data_validation.py:
--------------------------------------------------------------------------------
1 | from mlProject.config.configuration import ConfigurationManager
2 | from mlProject.components.data_validation import DataValiadtion
3 | from mlProject import logger
4 |
5 |
6 | STAGE_NAME = "Data Validation stage"
7 |
8 | class DataValidationTrainingPipeline:
9 | def __init__(self):
10 | pass
11 |
12 | def main(self):
13 | config = ConfigurationManager()
14 | data_validation_config = config.get_data_validation_config()
15 | data_validation = DataValiadtion(config=data_validation_config)
16 | data_validation.validate_all_columns()
17 |
--------------------------------------------------------------------------------
/src/mlProject/pipeline/stage_05_model_evaluation.py:
--------------------------------------------------------------------------------
1 | from mlProject.config.configuration import ConfigurationManager
2 | from mlProject.components.model_evaluation import ModelEvaluation
3 | from mlProject import logger
4 |
5 | STAGE_NAME = "Model evaluation stage"
6 |
7 | class ModelEvaluationTrainingPipeline:
8 | def __init__(self):
9 | pass
10 |
11 | def main(self):
12 | config = ConfigurationManager()
13 | model_evaluation_config = config.get_model_evaluation_config()
14 | model_evaluation_config = ModelEvaluation(config=model_evaluation_config)
15 | model_evaluation_config.save_results()
16 |
--------------------------------------------------------------------------------
/src/mlProject/pipeline/stage_01_data_ingestion.py:
--------------------------------------------------------------------------------
1 | from mlProject.config.configuration import ConfigurationManager
2 | from mlProject.components.data_ingestion import DataIngestion
3 | from mlProject import logger
4 |
5 |
6 |
7 | STAGE_NAME = "Data Ingestion stage"
8 |
9 | class DataIngestionTrainingPipeline:
10 | def __init__(self):
11 | pass
12 |
13 | def main(self):
14 | config = ConfigurationManager()
15 | data_ingestion_config = config.get_data_ingestion_config()
16 | data_ingestion = DataIngestion(config=data_ingestion_config)
17 | data_ingestion.download_file()
18 | data_ingestion.extract_zip_file()
19 |
20 |
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | import setuptools
2 |
3 | with open("README.md", "r", encoding="utf-8") as f:
4 | long_description = f.read()
5 |
6 |
7 | __version__ = "0.0.0"
8 |
9 | REPO_NAME = "End-to-End-Machine-Learning-Pipeline"
10 | AUTHOR_USER_NAME = "entbappy"
11 | SRC_REPO = "mlProject"
12 | AUTHOR_EMAIL = "entbappy73@gmail.com"
13 |
14 |
15 | setuptools.setup(
16 | name=SRC_REPO,
17 | version=__version__,
18 | author=AUTHOR_USER_NAME,
19 | author_email=AUTHOR_EMAIL,
20 | description="A small python package for ml app",
21 | long_description=long_description,
22 | long_description_content="text/markdown",
23 | url=f"https://github.com/{AUTHOR_USER_NAME}/{REPO_NAME}",
24 | project_urls={
25 | "Bug Tracker": f"https://github.com/{AUTHOR_USER_NAME}/{REPO_NAME}/issues",
26 | },
27 | package_dir={"": "src"},
28 | packages=setuptools.find_packages(where="src")
29 | )
--------------------------------------------------------------------------------
/src/mlProject/components/model_trainer.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | import os
3 | from mlProject import logger
4 | from sklearn.linear_model import ElasticNet
5 | import joblib
6 | from mlProject.entity.config_entity import ModelTrainerConfig
7 |
8 |
9 | class ModelTrainer:
10 | def __init__(self, config: ModelTrainerConfig):
11 | self.config = config
12 |
13 |
14 | def train(self):
15 | train_data = pd.read_csv(self.config.train_data_path)
16 | test_data = pd.read_csv(self.config.test_data_path)
17 |
18 |
19 | train_x = train_data.drop([self.config.target_column], axis=1)
20 | test_x = test_data.drop([self.config.target_column], axis=1)
21 | train_y = train_data[[self.config.target_column]]
22 | test_y = test_data[[self.config.target_column]]
23 |
24 |
25 | lr = ElasticNet(alpha=self.config.alpha, l1_ratio=self.config.l1_ratio, random_state=42)
26 | lr.fit(train_x, train_y)
27 |
28 | joblib.dump(lr, os.path.join(self.config.root_dir, self.config.model_name))
29 |
30 |
--------------------------------------------------------------------------------
/src/mlProject/entity/config_entity.py:
--------------------------------------------------------------------------------
1 | from dataclasses import dataclass
2 | from pathlib import Path
3 |
4 |
5 | @dataclass(frozen=True)
6 | class DataIngestionConfig:
7 | root_dir: Path
8 | source_URL: str
9 | local_data_file: Path
10 | unzip_dir: Path
11 |
12 |
13 |
14 | @dataclass(frozen=True)
15 | class DataValidationConfig:
16 | root_dir: Path
17 | STATUS_FILE: str
18 | unzip_data_dir: Path
19 | all_schema: dict
20 |
21 |
22 |
23 | @dataclass(frozen=True)
24 | class DataTransformationConfig:
25 | root_dir: Path
26 | data_path: Path
27 |
28 |
29 |
30 | @dataclass(frozen=True)
31 | class ModelTrainerConfig:
32 | root_dir: Path
33 | train_data_path: Path
34 | test_data_path: Path
35 | model_name: str
36 | alpha: float
37 | l1_ratio: float
38 | target_column: str
39 |
40 |
41 |
42 | @dataclass(frozen=True)
43 | class ModelEvaluationConfig:
44 | root_dir: Path
45 | test_data_path: Path
46 | model_path: Path
47 | all_params: dict
48 | metric_file_name: Path
49 | target_column: str
--------------------------------------------------------------------------------
/src/mlProject/pipeline/stage_03_data_transformation.py:
--------------------------------------------------------------------------------
1 | from mlProject.config.configuration import ConfigurationManager
2 | from mlProject.components.data_transformation import DataTransformation
3 | from mlProject import logger
4 | from pathlib import Path
5 |
6 |
7 |
8 |
9 | STAGE_NAME = "Data Transformation stage"
10 |
11 | class DataTransformationTrainingPipeline:
12 | def __init__(self):
13 | pass
14 |
15 |
16 | def main(self):
17 | try:
18 | with open(Path("artifacts/data_validation/status.txt"), "r") as f:
19 | status = f.read().split(" ")[-1]
20 |
21 | if status == "True":
22 | config = ConfigurationManager()
23 | data_transformation_config = config.get_data_transformation_config()
24 | data_transformation = DataTransformation(config=data_transformation_config)
25 | data_transformation.train_test_spliting()
26 |
27 | else:
28 | raise Exception("You data schema is not valid")
29 |
30 | except Exception as e:
31 | print(e)
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 BAPPY AHMED
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/config/config.yaml:
--------------------------------------------------------------------------------
1 | artifacts_root: artifacts
2 |
3 |
4 | data_ingestion:
5 | root_dir: artifacts/data_ingestion
6 | source_URL: https://github.com/entbappy/Branching-tutorial/raw/master/winequality-data.zip
7 | local_data_file: artifacts/data_ingestion/data.zip
8 | unzip_dir: artifacts/data_ingestion
9 |
10 |
11 | data_validation:
12 | root_dir: artifacts/data_validation
13 | unzip_data_dir: artifacts/data_ingestion/winequality-red.csv
14 | STATUS_FILE: artifacts/data_validation/status.txt
15 |
16 |
17 |
18 | data_transformation:
19 | root_dir: artifacts/data_transformation
20 | data_path: artifacts/data_ingestion/winequality-red.csv
21 |
22 |
23 |
24 | model_trainer:
25 | root_dir: artifacts/model_trainer
26 | train_data_path: artifacts/data_transformation/train.csv
27 | test_data_path: artifacts/data_transformation/test.csv
28 | model_name: model.joblib
29 |
30 |
31 |
32 |
33 | model_evaluation:
34 | root_dir: artifacts/model_evaluation
35 | test_data_path: artifacts/data_transformation/test.csv
36 | model_path: artifacts/model_trainer/model.joblib
37 | metric_file_name: artifacts/model_evaluation/metrics.json
38 |
39 |
40 |
--------------------------------------------------------------------------------
/src/mlProject/components/data_validation.py:
--------------------------------------------------------------------------------
1 | import os
2 | from mlProject import logger
3 | from mlProject.entity.config_entity import DataValidationConfig
4 | import pandas as pd
5 |
6 |
7 | class DataValiadtion:
8 | def __init__(self, config: DataValidationConfig):
9 | self.config = config
10 |
11 |
12 | def validate_all_columns(self)-> bool:
13 | try:
14 | validation_status = None
15 |
16 | data = pd.read_csv(self.config.unzip_data_dir)
17 | all_cols = list(data.columns)
18 |
19 | all_schema = self.config.all_schema.keys()
20 |
21 |
22 | for col in all_cols:
23 | if col not in all_schema:
24 | validation_status = False
25 | with open(self.config.STATUS_FILE, 'w') as f:
26 | f.write(f"Validation status: {validation_status}")
27 | else:
28 | validation_status = True
29 | with open(self.config.STATUS_FILE, 'w') as f:
30 | f.write(f"Validation status: {validation_status}")
31 |
32 | return validation_status
33 |
34 | except Exception as e:
35 | raise e
36 |
37 |
--------------------------------------------------------------------------------
/static/js/scripts.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Start Bootstrap - Clean Blog v6.0.5 (https://startbootstrap.com/theme/clean-blog)
3 | * Copyright 2013-2021 Start Bootstrap
4 | * Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-clean-blog/blob/master/LICENSE)
5 | */
6 | window.addEventListener('DOMContentLoaded', () => {
7 | let scrollPos = 0;
8 | const mainNav = document.getElementById('mainNav');
9 | const headerHeight = mainNav.clientHeight;
10 | window.addEventListener('scroll', function() {
11 | const currentTop = document.body.getBoundingClientRect().top * -1;
12 | if ( currentTop < scrollPos) {
13 | // Scrolling Up
14 | if (currentTop > 0 && mainNav.classList.contains('is-fixed')) {
15 | mainNav.classList.add('is-visible');
16 | } else {
17 | console.log(123);
18 | mainNav.classList.remove('is-visible', 'is-fixed');
19 | }
20 | } else {
21 | // Scrolling Down
22 | mainNav.classList.remove(['is-visible']);
23 | if (currentTop > headerHeight && !mainNav.classList.contains('is-fixed')) {
24 | mainNav.classList.add('is-fixed');
25 | }
26 | }
27 | scrollPos = currentTop;
28 | });
29 | })
30 |
--------------------------------------------------------------------------------
/src/mlProject/components/data_transformation.py:
--------------------------------------------------------------------------------
1 | import os
2 | from mlProject import logger
3 | from sklearn.model_selection import train_test_split
4 | import pandas as pd
5 | from mlProject.entity.config_entity import DataTransformationConfig
6 |
7 |
8 | class DataTransformation:
9 | def __init__(self, config: DataTransformationConfig):
10 | self.config = config
11 |
12 |
13 | ## Note: You can add different data transformation techniques such as Scaler, PCA and all
14 | #You can perform all kinds of EDA in ML cycle here before passing this data to the model
15 |
16 | # I am only adding train_test_spliting cz this data is already cleaned up
17 |
18 |
19 | def train_test_spliting(self):
20 | data = pd.read_csv(self.config.data_path)
21 |
22 | # Split the data into training and test sets. (0.75, 0.25) split.
23 | train, test = train_test_split(data)
24 |
25 | train.to_csv(os.path.join(self.config.root_dir, "train.csv"),index = False)
26 | test.to_csv(os.path.join(self.config.root_dir, "test.csv"),index = False)
27 |
28 | logger.info("Splited data into training and test sets")
29 | logger.info(train.shape)
30 | logger.info(test.shape)
31 |
32 | print(train.shape)
33 | print(test.shape)
34 |
--------------------------------------------------------------------------------
/src/mlProject/components/data_ingestion.py:
--------------------------------------------------------------------------------
1 | import os
2 | import urllib.request as request
3 | import zipfile
4 | from mlProject import logger
5 | from mlProject.utils.common import get_size
6 | from mlProject.entity.config_entity import DataIngestionConfig
7 | from pathlib import Path
8 |
9 |
10 |
11 | class DataIngestion:
12 | def __init__(self, config: DataIngestionConfig):
13 | self.config = config
14 |
15 |
16 |
17 | def download_file(self):
18 | if not os.path.exists(self.config.local_data_file):
19 | filename, headers = request.urlretrieve(
20 | url = self.config.source_URL,
21 | filename = self.config.local_data_file
22 | )
23 | logger.info(f"{filename} download! with following info: \n{headers}")
24 | else:
25 | logger.info(f"File already exists of size: {get_size(Path(self.config.local_data_file))}")
26 |
27 |
28 |
29 | def extract_zip_file(self):
30 | """
31 | zip_file_path: str
32 | Extracts the zip file into the data directory
33 | Function returns None
34 | """
35 | unzip_path = self.config.unzip_dir
36 | os.makedirs(unzip_path, exist_ok=True)
37 | with zipfile.ZipFile(self.config.local_data_file, 'r') as zip_ref:
38 | zip_ref.extractall(unzip_path)
39 |
--------------------------------------------------------------------------------
/src/mlProject/components/model_evaluation.py:
--------------------------------------------------------------------------------
1 | import os
2 | import pandas as pd
3 | from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
4 | from urllib.parse import urlparse
5 | import numpy as np
6 | import joblib
7 | from mlProject.entity.config_entity import ModelEvaluationConfig
8 | from pathlib import Path
9 | from mlProject.utils.common import save_json
10 |
11 |
12 | class ModelEvaluation:
13 | def __init__(self, config: ModelEvaluationConfig):
14 | self.config = config
15 |
16 |
17 | def eval_metrics(self,actual, pred):
18 | rmse = np.sqrt(mean_squared_error(actual, pred))
19 | mae = mean_absolute_error(actual, pred)
20 | r2 = r2_score(actual, pred)
21 | return rmse, mae, r2
22 |
23 |
24 |
25 | def save_results(self):
26 |
27 | test_data = pd.read_csv(self.config.test_data_path)
28 | model = joblib.load(self.config.model_path)
29 |
30 | test_x = test_data.drop([self.config.target_column], axis=1)
31 | test_y = test_data[[self.config.target_column]]
32 |
33 | predicted_qualities = model.predict(test_x)
34 |
35 | (rmse, mae, r2) = self.eval_metrics(test_y, predicted_qualities)
36 |
37 | # Saving metrics as local
38 | scores = {"rmse": rmse, "mae": mae, "r2": r2}
39 | save_json(path=Path(self.config.metric_file_name), data=scores)
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/template.py:
--------------------------------------------------------------------------------
1 | import os
2 | from pathlib import Path
3 | import logging
4 |
5 | logging.basicConfig(level=logging.INFO, format='[%(asctime)s]: %(message)s:')
6 |
7 | project_name = "mlProject"
8 |
9 | list_of_files = [
10 | f"src/{project_name}/__init__.py",
11 | f"src/{project_name}/components/__init__.py",
12 | f"src/{project_name}/utils/__init__.py",
13 | f"src/{project_name}/utils/common.py",
14 | f"src/{project_name}/config/__init__.py",
15 | f"src/{project_name}/config/configuration.py",
16 | f"src/{project_name}/pipeline/__init__.py",
17 | f"src/{project_name}/entity/__init__.py",
18 | f"src/{project_name}/entity/config_entity.py",
19 | f"src/{project_name}/constants/__init__.py",
20 | "config/config.yaml",
21 | "params.yaml",
22 | "schema.yaml",
23 | "main.py",
24 | "app.py",
25 | "requirements.txt",
26 | "setup.py",
27 | "research/trials.ipynb",
28 | "templates/index.html",
29 | "test.py"
30 |
31 |
32 | ]
33 |
34 |
35 | for filepath in list_of_files:
36 | filepath = Path(filepath)
37 | filedir, filename = os.path.split(filepath)
38 |
39 |
40 | if filedir !="":
41 | os.makedirs(filedir, exist_ok=True)
42 | logging.info(f"Creating directory; {filedir} for the file: {filename}")
43 |
44 | if (not os.path.exists(filepath)) or (os.path.getsize(filepath) == 0):
45 | with open(filepath, "w") as f:
46 | pass
47 | logging.info(f"Creating empty file: {filepath}")
48 |
49 |
50 | else:
51 | logging.info(f"{filename} is already exists")
--------------------------------------------------------------------------------
/app.py:
--------------------------------------------------------------------------------
1 | from flask import Flask, render_template, request
2 | import os
3 | import numpy as np
4 | import pandas as pd
5 | from mlProject.pipeline.prediction import PredictionPipeline
6 |
7 |
8 | app = Flask(__name__) # initializing a flask app
9 |
10 |
11 | @app.route('/',methods=['GET']) # route to display the home page
12 | def homePage():
13 | return render_template("index.html")
14 |
15 |
16 | @app.route('/train',methods=['GET']) # route to train the pipeline
17 | def training():
18 | os.system("python main.py")
19 | return "Training Successful!"
20 |
21 |
22 | @app.route('/predict',methods=['POST','GET']) # route to show the predictions in a web UI
23 | def index():
24 | if request.method == 'POST':
25 | try:
26 | # reading the inputs given by the user
27 | fixed_acidity =float(request.form['fixed_acidity'])
28 | volatile_acidity =float(request.form['volatile_acidity'])
29 | citric_acid =float(request.form['citric_acid'])
30 | residual_sugar =float(request.form['residual_sugar'])
31 | chlorides =float(request.form['chlorides'])
32 | free_sulfur_dioxide =float(request.form['free_sulfur_dioxide'])
33 | total_sulfur_dioxide =float(request.form['total_sulfur_dioxide'])
34 | density =float(request.form['density'])
35 | pH =float(request.form['pH'])
36 | sulphates =float(request.form['sulphates'])
37 | alcohol =float(request.form['alcohol'])
38 |
39 |
40 | data = [fixed_acidity,volatile_acidity,citric_acid,residual_sugar,chlorides,free_sulfur_dioxide,total_sulfur_dioxide,density,pH,sulphates,alcohol]
41 | data = np.array(data).reshape(1, 11)
42 |
43 | obj = PredictionPipeline()
44 | predict = obj.predict(data)
45 |
46 | return render_template('results.html', prediction = str(predict))
47 |
48 | except Exception as e:
49 | print('The Exception message is: ',e)
50 | return 'something is wrong'
51 |
52 | else:
53 | return render_template('index.html')
54 |
55 |
56 |
57 | if __name__ == "__main__":
58 | app.run(host="0.0.0.0", port = 8080, debug=True)
59 |
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | from mlProject import logger
2 | from mlProject.pipeline.stage_01_data_ingestion import DataIngestionTrainingPipeline
3 | from mlProject.pipeline.stage_02_data_validation import DataValidationTrainingPipeline
4 | from mlProject.pipeline.stage_03_data_transformation import DataTransformationTrainingPipeline
5 | from mlProject.pipeline.stage_04_model_trainer import ModelTrainerTrainingPipeline
6 | from mlProject.pipeline.stage_05_model_evaluation import ModelEvaluationTrainingPipeline
7 |
8 |
9 |
10 | STAGE_NAME = "Data Ingestion stage"
11 | try:
12 | logger.info(f">>>>>> stage {STAGE_NAME} started <<<<<<")
13 | data_ingestion = DataIngestionTrainingPipeline()
14 | data_ingestion.main()
15 | logger.info(f">>>>>> stage {STAGE_NAME} completed <<<<<<\n\nx==========x")
16 | except Exception as e:
17 | logger.exception(e)
18 | raise e
19 |
20 |
21 |
22 | STAGE_NAME = "Data Validation stage"
23 | try:
24 | logger.info(f">>>>>> stage {STAGE_NAME} started <<<<<<")
25 | data_ingestion = DataValidationTrainingPipeline()
26 | data_ingestion.main()
27 | logger.info(f">>>>>> stage {STAGE_NAME} completed <<<<<<\n\nx==========x")
28 | except Exception as e:
29 | logger.exception(e)
30 | raise e
31 |
32 |
33 |
34 | STAGE_NAME = "Data Transformation stage"
35 | try:
36 | logger.info(f">>>>>> stage {STAGE_NAME} started <<<<<<")
37 | data_ingestion = DataTransformationTrainingPipeline()
38 | data_ingestion.main()
39 | logger.info(f">>>>>> stage {STAGE_NAME} completed <<<<<<\n\nx==========x")
40 | except Exception as e:
41 | logger.exception(e)
42 | raise e
43 |
44 |
45 |
46 |
47 | STAGE_NAME = "Model Trainer stage"
48 | try:
49 | logger.info(f">>>>>> stage {STAGE_NAME} started <<<<<<")
50 | data_ingestion = ModelTrainerTrainingPipeline()
51 | data_ingestion.main()
52 | logger.info(f">>>>>> stage {STAGE_NAME} completed <<<<<<\n\nx==========x")
53 | except Exception as e:
54 | logger.exception(e)
55 | raise e
56 |
57 |
58 |
59 | STAGE_NAME = "Model evaluation stage"
60 | try:
61 | logger.info(f">>>>>> stage {STAGE_NAME} started <<<<<<")
62 | data_ingestion = ModelEvaluationTrainingPipeline()
63 | data_ingestion.main()
64 | logger.info(f">>>>>> stage {STAGE_NAME} completed <<<<<<\n\nx==========x")
65 | except Exception as e:
66 | logger.exception(e)
67 | raise e
68 |
69 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # End-to-End-Machine-Learning-Pipeline
2 |
3 |
4 | ## Workflows
5 |
6 | 1. Update config.yaml
7 | 2. Update schema.yaml
8 | 3. Update params.yaml
9 | 4. Update the entity
10 | 5. Update the configuration manager in src config
11 | 6. Update the components
12 | 7. Update the pipeline
13 | 8. Update the main.py
14 | 9. Update the app.py
15 |
16 |
17 |
18 | # How to run?
19 | ### STEPS:
20 |
21 | Clone the repository
22 |
23 | ```bash
24 | https://github.com/entbappy/End-to-End-Machine-Learning-Pipeline
25 | ```
26 | ### STEP 01- Create a conda environment after opening the repository
27 |
28 | ```bash
29 | conda create -n mlproj python=3.8 -y
30 | ```
31 |
32 | ```bash
33 | conda activate mlproj
34 | ```
35 |
36 |
37 | ### STEP 02- install the requirements
38 | ```bash
39 | pip install -r requirements.txt
40 | ```
41 |
42 |
43 | ```bash
44 | python app.py
45 | ```
46 |
47 |
48 |
49 | # AWS-CICD-Deployment-with-Github-Actions
50 |
51 | ## 1. Login to AWS console.
52 |
53 | ## 2. Create IAM user for deployment
54 |
55 | #with specific access
56 |
57 | 1. EC2 access : It is virtual machine
58 |
59 | 2. ECR: Elastic Container registry to save your docker image in aws
60 |
61 |
62 | #Description: About the deployment
63 |
64 | 1. Build docker image of the source code
65 |
66 | 2. Push your docker image to ECR
67 |
68 | 3. Launch Your EC2
69 |
70 | 4. Pull Your image from ECR in EC2
71 |
72 | 5. Lauch your docker image in EC2
73 |
74 | #Policy:
75 |
76 | 1. AmazonEC2ContainerRegistryFullAccess
77 |
78 | 2. AmazonEC2FullAccess
79 |
80 |
81 | ## 3. Create ECR repo to store/save docker image
82 | - Save the URI: 315865595366.dkr.ecr.us-east-1.amazonaws.com/winerepo
83 |
84 |
85 | ## 4. Create EC2 machine (Ubuntu)
86 |
87 | ## 5. Open EC2 and Install docker in EC2 Machine:
88 |
89 |
90 | #optinal
91 |
92 | sudo apt-get update -y
93 |
94 | sudo apt-get upgrade
95 |
96 | #required
97 |
98 | curl -fsSL https://get.docker.com -o get-docker.sh
99 |
100 | sudo sh get-docker.sh
101 |
102 | sudo usermod -aG docker ubuntu
103 |
104 | newgrp docker
105 |
106 | # 6. Configure EC2 as self-hosted runner:
107 | setting>actions>runner>new self hosted runner> choose os> then run command one by one
108 |
109 |
110 | # 7. Setup github secrets:
111 |
112 | AWS_ACCESS_KEY_ID=
113 |
114 | AWS_SECRET_ACCESS_KEY=
115 |
116 | AWS_REGION = us-east-1
117 |
118 | AWS_ECR_LOGIN_URI = demo>> 566373416292.dkr.ecr.ap-south-1.amazonaws.com
119 |
120 | ECR_REPOSITORY_NAME = simple-app
121 |
--------------------------------------------------------------------------------
/static/css2/nunito-font.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Nunito';
3 | src: url('../fonts/Nunito/Nunito-LightItalic.ttf') format('truetype');
4 | font-weight: 300;
5 | font-style: italic;
6 | }
7 |
8 | @font-face {
9 | font-family: 'Nunito';
10 | src: url('../fonts/Nunito/Nunito-BoldItalic.ttf') format('truetype');
11 | font-weight: bold;
12 | font-style: italic;
13 | }
14 |
15 | @font-face {
16 | font-family: 'Nunito';
17 | src: url('../fonts/Nunito/Nunito-ExtraLightItalic.ttf') format('truetype');
18 | font-weight: 200;
19 | font-style: italic;
20 | }
21 |
22 | @font-face {
23 | font-family: 'Nunito';
24 | src: url('../fonts/Nunito/Nunito-BlackItalic.ttf') format('truetype');
25 | font-weight: 900;
26 | font-style: italic;
27 | }
28 |
29 | @font-face {
30 | font-family: 'Nunito';
31 | src: url('../fonts/Nunito/Nunito-SemiBold.ttf') format('truetype');
32 | font-weight: 600;
33 | font-style: normal;
34 | }
35 |
36 | @font-face {
37 | font-family: 'Nunito';
38 | src: url('../fonts/Nunito/Nunito-Italic.ttf') format('truetype');
39 | font-weight: normal;
40 | font-style: italic;
41 | }
42 |
43 | @font-face {
44 | font-family: 'Nunito';
45 | src: url('../fonts/Nunito/Nunito-Black.ttf') format('truetype');
46 | font-weight: 900;
47 | font-style: normal;
48 | }
49 |
50 | @font-face {
51 | font-family: 'Nunito';
52 | src: url('../fonts/Nunito/Nunito-SemiBoldItalic.ttf') format('truetype');
53 | font-weight: 600;
54 | font-style: italic;
55 | }
56 |
57 | @font-face {
58 | font-family: 'Nunito';
59 | src: url('../fonts/Nunito/Nunito-Light.ttf') format('truetype');
60 | font-weight: 300;
61 | font-style: normal;
62 | }
63 |
64 | @font-face {
65 | font-family: 'Nunito';
66 | src: url('../fonts/Nunito/Nunito-ExtraLight.ttf') format('truetype');
67 | font-weight: 200;
68 | font-style: normal;
69 | }
70 |
71 | @font-face {
72 | font-family: 'Nunito';
73 | src: url('../fonts/Nunito/Nunito-Bold.ttf') format('truetype');
74 | font-weight: bold;
75 | font-style: normal;
76 | }
77 |
78 | @font-face {
79 | font-family: 'Nunito';
80 | src: url('../fonts/Nunito/Nunito-ExtraBoldItalic.ttf') format('truetype');
81 | font-weight: 800;
82 | font-style: italic;
83 | }
84 |
85 | @font-face {
86 | font-family: 'Nunito';
87 | src: url('../fonts/Nunito/Nunito-ExtraBold.ttf') format('truetype');
88 | font-weight: 800;
89 | font-style: normal;
90 | }
91 |
92 | @font-face {
93 | font-family: 'Nunito';
94 | src: url('../fonts/Nunito/Nunito-Regular.ttf') format('truetype');
95 | font-weight: normal;
96 | font-style: normal;
97 | }
98 |
99 |
--------------------------------------------------------------------------------
/.github/workflows/cicd.yaml:
--------------------------------------------------------------------------------
1 | name: workflow
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | paths-ignore:
8 | - 'README.md'
9 |
10 | permissions:
11 | id-token: write
12 | contents: read
13 |
14 | jobs:
15 | integration:
16 | name: Continuous Integration
17 | runs-on: ubuntu-latest
18 | steps:
19 | - name: Checkout Code
20 | uses: actions/checkout@v3
21 |
22 | - name: Lint code
23 | run: echo "Linting repository"
24 |
25 | - name: Run unit tests
26 | run: echo "Running unit tests"
27 |
28 | build-and-push-ecr-image:
29 | name: Continuous Delivery
30 | needs: integration
31 | runs-on: ubuntu-latest
32 | steps:
33 | - name: Checkout Code
34 | uses: actions/checkout@v3
35 |
36 | - name: Install Utilities
37 | run: |
38 | sudo apt-get update
39 | sudo apt-get install -y jq unzip
40 | - name: Configure AWS credentials
41 | uses: aws-actions/configure-aws-credentials@v1
42 | with:
43 | aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
44 | aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
45 | aws-region: ${{ secrets.AWS_REGION }}
46 |
47 | - name: Login to Amazon ECR
48 | id: login-ecr
49 | uses: aws-actions/amazon-ecr-login@v1
50 |
51 | - name: Build, tag, and push image to Amazon ECR
52 | id: build-image
53 | env:
54 | ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
55 | ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY_NAME }}
56 | IMAGE_TAG: latest
57 | run: |
58 | # Build a docker container and
59 | # push it to ECR so that it can
60 | # be deployed to ECS.
61 | docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
62 | docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
63 | echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"
64 |
65 |
66 | Continuous-Deployment:
67 | needs: build-and-push-ecr-image
68 | runs-on: self-hosted
69 | steps:
70 | - name: Checkout
71 | uses: actions/checkout@v3
72 |
73 | - name: Configure AWS credentials
74 | uses: aws-actions/configure-aws-credentials@v1
75 | with:
76 | aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
77 | aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
78 | aws-region: ${{ secrets.AWS_REGION }}
79 |
80 | - name: Login to Amazon ECR
81 | id: login-ecr
82 | uses: aws-actions/amazon-ecr-login@v1
83 |
84 |
85 | - name: Pull latest images
86 | run: |
87 | docker pull ${{secrets.AWS_ECR_LOGIN_URI}}/${{ secrets.ECR_REPOSITORY_NAME }}:latest
88 |
89 | - name: Stop and remove container if running
90 | run: |
91 | docker ps -q --filter "name=cnncls" | grep -q . && docker stop cnncls && docker rm -fv cnncls
92 |
93 | - name: Run Docker Image to serve users
94 | run: |
95 | docker run -d -p 8080:8080 --name=cnncls -e 'AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}' -e 'AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }}' -e 'AWS_REGION=${{ secrets.AWS_REGION }}' ${{secrets.AWS_ECR_LOGIN_URI}}/${{ secrets.ECR_REPOSITORY_NAME }}:latest
96 | - name: Clean previous images and containers
97 | run: |
98 | docker system prune -f
--------------------------------------------------------------------------------
/src/mlProject/utils/common.py:
--------------------------------------------------------------------------------
1 | import os
2 | from box.exceptions import BoxValueError
3 | import yaml
4 | from mlProject import logger
5 | import json
6 | import joblib
7 | from ensure import ensure_annotations
8 | from box import ConfigBox
9 | from pathlib import Path
10 | from typing import Any
11 |
12 |
13 |
14 | @ensure_annotations
15 | def read_yaml(path_to_yaml: Path) -> ConfigBox:
16 | """reads yaml file and returns
17 |
18 | Args:
19 | path_to_yaml (str): path like input
20 |
21 | Raises:
22 | ValueError: if yaml file is empty
23 | e: empty file
24 |
25 | Returns:
26 | ConfigBox: ConfigBox type
27 | """
28 | try:
29 | with open(path_to_yaml) as yaml_file:
30 | content = yaml.safe_load(yaml_file)
31 | logger.info(f"yaml file: {path_to_yaml} loaded successfully")
32 | return ConfigBox(content)
33 | except BoxValueError:
34 | raise ValueError("yaml file is empty")
35 | except Exception as e:
36 | raise e
37 |
38 |
39 |
40 | @ensure_annotations
41 | def create_directories(path_to_directories: list, verbose=True):
42 | """create list of directories
43 |
44 | Args:
45 | path_to_directories (list): list of path of directories
46 | ignore_log (bool, optional): ignore if multiple dirs is to be created. Defaults to False.
47 | """
48 | for path in path_to_directories:
49 | os.makedirs(path, exist_ok=True)
50 | if verbose:
51 | logger.info(f"created directory at: {path}")
52 |
53 |
54 | @ensure_annotations
55 | def save_json(path: Path, data: dict):
56 | """save json data
57 |
58 | Args:
59 | path (Path): path to json file
60 | data (dict): data to be saved in json file
61 | """
62 | with open(path, "w") as f:
63 | json.dump(data, f, indent=4)
64 |
65 | logger.info(f"json file saved at: {path}")
66 |
67 |
68 |
69 |
70 | @ensure_annotations
71 | def load_json(path: Path) -> ConfigBox:
72 | """load json files data
73 |
74 | Args:
75 | path (Path): path to json file
76 |
77 | Returns:
78 | ConfigBox: data as class attributes instead of dict
79 | """
80 | with open(path) as f:
81 | content = json.load(f)
82 |
83 | logger.info(f"json file loaded succesfully from: {path}")
84 | return ConfigBox(content)
85 |
86 |
87 | @ensure_annotations
88 | def save_bin(data: Any, path: Path):
89 | """save binary file
90 |
91 | Args:
92 | data (Any): data to be saved as binary
93 | path (Path): path to binary file
94 | """
95 | joblib.dump(value=data, filename=path)
96 | logger.info(f"binary file saved at: {path}")
97 |
98 |
99 | @ensure_annotations
100 | def load_bin(path: Path) -> Any:
101 | """load binary data
102 |
103 | Args:
104 | path (Path): path to binary file
105 |
106 | Returns:
107 | Any: object stored in the file
108 | """
109 | data = joblib.load(path)
110 | logger.info(f"binary file loaded from: {path}")
111 | return data
112 |
113 |
114 |
115 | @ensure_annotations
116 | def get_size(path: Path) -> str:
117 | """get size in KB
118 |
119 | Args:
120 | path (Path): path of the file
121 |
122 | Returns:
123 | str: size in KB
124 | """
125 | size_in_kb = round(os.path.getsize(path)/1024)
126 | return f"~ {size_in_kb} KB"
127 |
128 |
129 |
130 |
131 |
--------------------------------------------------------------------------------
/src/mlProject/config/configuration.py:
--------------------------------------------------------------------------------
1 | from mlProject.constants import *
2 | from mlProject.utils.common import read_yaml, create_directories
3 | from mlProject.entity.config_entity import (DataIngestionConfig,
4 | DataValidationConfig,
5 | DataTransformationConfig,
6 | ModelTrainerConfig,
7 | ModelEvaluationConfig)
8 |
9 | class ConfigurationManager:
10 | def __init__(
11 | self,
12 | config_filepath = CONFIG_FILE_PATH,
13 | params_filepath = PARAMS_FILE_PATH,
14 | schema_filepath = SCHEMA_FILE_PATH):
15 |
16 | self.config = read_yaml(config_filepath)
17 | self.params = read_yaml(params_filepath)
18 | self.schema = read_yaml(schema_filepath)
19 |
20 | create_directories([self.config.artifacts_root])
21 |
22 |
23 |
24 | def get_data_ingestion_config(self) -> DataIngestionConfig:
25 | config = self.config.data_ingestion
26 |
27 | create_directories([config.root_dir])
28 |
29 | data_ingestion_config = DataIngestionConfig(
30 | root_dir=config.root_dir,
31 | source_URL=config.source_URL,
32 | local_data_file=config.local_data_file,
33 | unzip_dir=config.unzip_dir
34 | )
35 |
36 | return data_ingestion_config
37 |
38 |
39 | def get_data_validation_config(self) -> DataValidationConfig:
40 | config = self.config.data_validation
41 | schema = self.schema.COLUMNS
42 |
43 | create_directories([config.root_dir])
44 |
45 | data_validation_config = DataValidationConfig(
46 | root_dir=config.root_dir,
47 | STATUS_FILE=config.STATUS_FILE,
48 | unzip_data_dir = config.unzip_data_dir,
49 | all_schema=schema,
50 | )
51 |
52 | return data_validation_config
53 |
54 |
55 | def get_data_transformation_config(self) -> DataTransformationConfig:
56 | config = self.config.data_transformation
57 |
58 | create_directories([config.root_dir])
59 |
60 | data_transformation_config = DataTransformationConfig(
61 | root_dir=config.root_dir,
62 | data_path=config.data_path,
63 | )
64 |
65 | return data_transformation_config
66 |
67 |
68 | def get_model_trainer_config(self) -> ModelTrainerConfig:
69 | config = self.config.model_trainer
70 | params = self.params.ElasticNet
71 | schema = self.schema.TARGET_COLUMN
72 |
73 | create_directories([config.root_dir])
74 |
75 | model_trainer_config = ModelTrainerConfig(
76 | root_dir=config.root_dir,
77 | train_data_path = config.train_data_path,
78 | test_data_path = config.test_data_path,
79 | model_name = config.model_name,
80 | alpha = params.alpha,
81 | l1_ratio = params.l1_ratio,
82 | target_column = schema.name
83 |
84 | )
85 |
86 | return model_trainer_config
87 |
88 |
89 | def get_model_evaluation_config(self) -> ModelEvaluationConfig:
90 | config = self.config.model_evaluation
91 | params = self.params.ElasticNet
92 | schema = self.schema.TARGET_COLUMN
93 |
94 | create_directories([config.root_dir])
95 |
96 | model_evaluation_config = ModelEvaluationConfig(
97 | root_dir=config.root_dir,
98 | test_data_path=config.test_data_path,
99 | model_path = config.model_path,
100 | all_params=params,
101 | metric_file_name = config.metric_file_name,
102 | target_column = schema.name
103 |
104 | )
105 |
106 | return model_evaluation_config
107 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 | artifacts/*
6 |
7 | # C extensions
8 | *.so
9 |
10 | # Distribution / packaging
11 | .Python
12 | build/
13 | develop-eggs/
14 | dist/
15 | downloads/
16 | eggs/
17 | .eggs/
18 | lib/
19 | lib64/
20 | parts/
21 | sdist/
22 | var/
23 | wheels/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 | cover/
54 |
55 | # Translations
56 | *.mo
57 | *.pot
58 |
59 | # Django stuff:
60 | *.log
61 | local_settings.py
62 | db.sqlite3
63 | db.sqlite3-journal
64 |
65 | # Flask stuff:
66 | instance/
67 | .webassets-cache
68 |
69 | # Scrapy stuff:
70 | .scrapy
71 |
72 | # Sphinx documentation
73 | docs/_build/
74 |
75 | # PyBuilder
76 | .pybuilder/
77 | target/
78 |
79 | # Jupyter Notebook
80 | .ipynb_checkpoints
81 |
82 | # IPython
83 | profile_default/
84 | ipython_config.py
85 |
86 | # pyenv
87 | # For a library or package, you might want to ignore these files since the code is
88 | # intended to run in multiple environments; otherwise, check them in:
89 | # .python-version
90 |
91 | # pipenv
92 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
93 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
94 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
95 | # install all needed dependencies.
96 | #Pipfile.lock
97 |
98 | # UV
99 | # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
100 | # This is especially recommended for binary packages to ensure reproducibility, and is more
101 | # commonly ignored for libraries.
102 | #uv.lock
103 |
104 | # poetry
105 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
106 | # This is especially recommended for binary packages to ensure reproducibility, and is more
107 | # commonly ignored for libraries.
108 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
109 | #poetry.lock
110 |
111 | # pdm
112 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113 | #pdm.lock
114 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
115 | # in version control.
116 | # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
117 | .pdm.toml
118 | .pdm-python
119 | .pdm-build/
120 |
121 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
122 | __pypackages__/
123 |
124 | # Celery stuff
125 | celerybeat-schedule
126 | celerybeat.pid
127 |
128 | # SageMath parsed files
129 | *.sage.py
130 |
131 | # Environments
132 | .env
133 | .venv
134 | env/
135 | venv/
136 | ENV/
137 | env.bak/
138 | venv.bak/
139 |
140 | # Spyder project settings
141 | .spyderproject
142 | .spyproject
143 |
144 | # Rope project settings
145 | .ropeproject
146 |
147 | # mkdocs documentation
148 | /site
149 |
150 | # mypy
151 | .mypy_cache/
152 | .dmypy.json
153 | dmypy.json
154 |
155 | # Pyre type checker
156 | .pyre/
157 |
158 | # pytype static type analyzer
159 | .pytype/
160 |
161 | # Cython debug symbols
162 | cython_debug/
163 |
164 | # PyCharm
165 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
166 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
167 | # and can be added to the global gitignore or merged into this file. For a more nuclear
168 | # option (not recommended) you can uncomment the following to ignore the entire idea folder.
169 | #.idea/
170 |
171 | # PyPI configuration file
172 | .pypirc
173 |
--------------------------------------------------------------------------------
/static/css2/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | }
4 | .page-content {
5 | width: 100%;
6 | margin: 0 auto;
7 | background: #4077c8;
8 | display: flex;
9 | display: -webkit-flex;
10 | justify-content: center;
11 | -o-justify-content: center;
12 | -ms-justify-content: center;
13 | -moz-justify-content: center;
14 | -webkit-justify-content: center;
15 | align-items: center;
16 | -o-align-items: center;
17 | -ms-align-items: center;
18 | -moz-align-items: center;
19 | -webkit-align-items: center;
20 | }
21 | .form-v9-content {
22 | width: 975px;
23 | border-radius: 15px;
24 | -o-border-radius: 15px;
25 | -ms-border-radius: 15px;
26 | -moz-border-radius: 15px;
27 | -webkit-border-radius: 15px;
28 | margin: 185px 0;
29 | font-family: 'Nunito', sans-serif;
30 | color: #fff;
31 | font-weight: 700;
32 | font-size: 16px;
33 | position: relative;
34 | }
35 | .form-v9-content .form-detail {
36 | padding: 30px 135px 30px 100px;
37 | position: relative;
38 | }
39 | .form-v9-content .form-detail h2 {
40 | font-size: 35px;
41 | text-align: center;
42 | position: relative;
43 | padding: 16px 0 13px;
44 | margin-bottom: 55px;
45 | }
46 | .form-v9-content .form-detail h2::after {
47 | background: #fff;
48 | width: 73px;
49 | height: 3px;
50 | content: "";
51 | position: absolute;
52 | top: 100%;
53 | left: 50%;
54 | transform: translateX(-50%);
55 | -o-transform: translateX(-50%);
56 | -ms-transform: translateX(-50%);
57 | -moz-transform: translateX(-50%);
58 | -webkit-transform: translateX(-50%);
59 | }
60 | .form-v9-content .form-row-total {
61 | display: flex;
62 | display: -webkit-flex;
63 | justify-content: space-between;
64 | -o-justify-content: space-between;
65 | -ms-justify-content: space-between;
66 | -moz-justify-content: space-between;
67 | -webkit-justify-content: space-between;
68 | }
69 | .form-v9-content .form-row {
70 | width: 45%;
71 | }
72 | .form-v9-content .form-detail .form-row-last {
73 | text-align: center;
74 | }
75 | .form-v9-content .form-detail .input-text {
76 | margin-bottom: 45px;
77 | }
78 | .form-v9-content .form-detail input {
79 | width: 100%;
80 | padding: 14.5px 0px 14.5px 30px;
81 | border: 2px solid #ccc;
82 | appearance: unset;
83 | -moz-appearance: unset;
84 | -webkit-appearance: unset;
85 | -o-appearance: unset;
86 | -ms-appearance: unset;
87 | outline: none;
88 | -moz-outline: none;
89 | -webkit-outline: none;
90 | -o-outline: none;
91 | -ms-outline: none;
92 | border-radius: 27.5px;
93 | -o-border-radius: 27.5px;
94 | -ms-border-radius: 27.5px;
95 | -moz-border-radius: 27.5px;
96 | -webkit-border-radius: 27.5px;
97 | font-family: 'Nunito', sans-serif;
98 | font-size: 16px;
99 | font-weight: 700;
100 | background: rgba(255, 255, 255, 0.2)
101 | }
102 | .form-v9-content .form-detail input:focus {
103 | border: 2px solid #999;
104 | }
105 | .form-v9-content .form-detail .register {
106 | background: #f25d5d;
107 | border-radius: 25px;
108 | -o-border-radius: 25px;
109 | -ms-border-radius: 25px;
110 | -moz-border-radius: 25px;
111 | -webkit-border-radius: 25px;
112 | width: 180px;
113 | box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
114 | -o-box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
115 | -ms-box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
116 | -moz-box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
117 | -webkit-box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
118 | border: none;
119 | margin: 20px 0 73px 35px;
120 | cursor: pointer;
121 | font-family: 'Nunito', sans-serif;
122 | color: #fff;
123 | font-weight: 700;
124 | font-size: 16px;
125 | }
126 | .form-v9-content .form-detail .register:hover {
127 | background: #d95252;
128 | }
129 | .form-v9-content .form-detail .form-row-last input {
130 | padding: 14px;
131 | }
132 | input::-webkit-input-placeholder { /* Chrome/Opera/Safari */
133 | color: #e5e5e5;
134 | font-size: 16px;
135 | }
136 | input::-moz-placeholder { /* Firefox 19+ */
137 | color: #e5e5e5;
138 | font-size: 16px;
139 | }
140 | input:-ms-input-placeholder { /* IE 10+ */
141 | color: #e5e5e5;
142 | font-size: 16px;
143 | }
144 | input:-moz-placeholder { /* Firefox 18- */
145 | color: #e5e5e5;
146 | font-size: 16px;
147 | }
148 |
149 | /* Responsive */
150 | @media screen and (max-width: 1199px) {
151 | .form-v9-content {
152 | margin: 185px 20px;
153 | }
154 | }
155 | @media screen and (max-width: 767px) {
156 | .form-v9-content .form-row-total {
157 | flex-direction: column;
158 | -o-flex-direction: column;
159 | -ms-flex-direction: column;
160 | -moz-flex-direction: column;
161 | -webkit-flex-direction: column;
162 | }
163 | .form-v9-content .form-row {
164 | width: 100%;
165 | }
166 | }
167 | @media screen and (max-width: 575px) {
168 | .form-v9-content .form-detail {
169 | padding: 30px 45px 30px 10px;
170 | }
171 | }
172 |
--------------------------------------------------------------------------------
/templates/results.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Prediction
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
37 |
38 |
51 |
52 |
53 |
54 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/research/04_model_trainer.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "data": {
10 | "text/plain": [
11 | "'d:\\\\Bappy\\\\Live Sessions\\\\Euron\\\\MLOPs Masters Batch\\\\End-to-End-Machine-Learning-Pipeline'"
12 | ]
13 | },
14 | "execution_count": 1,
15 | "metadata": {},
16 | "output_type": "execute_result"
17 | }
18 | ],
19 | "source": [
20 | "import os\n",
21 | "os.chdir(\"../\")\n",
22 | "%pwd"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": 2,
28 | "metadata": {},
29 | "outputs": [],
30 | "source": [
31 | "from dataclasses import dataclass\n",
32 | "from pathlib import Path\n",
33 | "\n",
34 | "\n",
35 | "@dataclass(frozen=True)\n",
36 | "class ModelTrainerConfig:\n",
37 | " root_dir: Path\n",
38 | " train_data_path: Path\n",
39 | " test_data_path: Path\n",
40 | " model_name: str\n",
41 | " alpha: float\n",
42 | " l1_ratio: float\n",
43 | " target_column: str"
44 | ]
45 | },
46 | {
47 | "cell_type": "code",
48 | "execution_count": 3,
49 | "metadata": {},
50 | "outputs": [],
51 | "source": [
52 | "from mlProject.constants import *\n",
53 | "from mlProject.utils.common import read_yaml, create_directories"
54 | ]
55 | },
56 | {
57 | "cell_type": "code",
58 | "execution_count": 4,
59 | "metadata": {},
60 | "outputs": [],
61 | "source": [
62 | "class ConfigurationManager:\n",
63 | " def __init__(\n",
64 | " self,\n",
65 | " config_filepath = CONFIG_FILE_PATH,\n",
66 | " params_filepath = PARAMS_FILE_PATH,\n",
67 | " schema_filepath = SCHEMA_FILE_PATH):\n",
68 | "\n",
69 | " self.config = read_yaml(config_filepath)\n",
70 | " self.params = read_yaml(params_filepath)\n",
71 | " self.schema = read_yaml(schema_filepath)\n",
72 | "\n",
73 | " create_directories([self.config.artifacts_root])\n",
74 | "\n",
75 | "\n",
76 | " def get_model_trainer_config(self) -> ModelTrainerConfig:\n",
77 | " config = self.config.model_trainer\n",
78 | " params = self.params.ElasticNet\n",
79 | " schema = self.schema.TARGET_COLUMN\n",
80 | "\n",
81 | " create_directories([config.root_dir])\n",
82 | "\n",
83 | " model_trainer_config = ModelTrainerConfig(\n",
84 | " root_dir=config.root_dir,\n",
85 | " train_data_path = config.train_data_path,\n",
86 | " test_data_path = config.test_data_path,\n",
87 | " model_name = config.model_name,\n",
88 | " alpha = params.alpha,\n",
89 | " l1_ratio = params.l1_ratio,\n",
90 | " target_column = schema.name\n",
91 | " \n",
92 | " )\n",
93 | "\n",
94 | " return model_trainer_config"
95 | ]
96 | },
97 | {
98 | "cell_type": "code",
99 | "execution_count": 5,
100 | "metadata": {},
101 | "outputs": [],
102 | "source": [
103 | "import pandas as pd\n",
104 | "import os\n",
105 | "from mlProject import logger\n",
106 | "from sklearn.linear_model import ElasticNet\n",
107 | "import joblib"
108 | ]
109 | },
110 | {
111 | "cell_type": "code",
112 | "execution_count": 6,
113 | "metadata": {},
114 | "outputs": [],
115 | "source": [
116 | "class ModelTrainer:\n",
117 | " def __init__(self, config: ModelTrainerConfig):\n",
118 | " self.config = config\n",
119 | "\n",
120 | " \n",
121 | " def train(self):\n",
122 | " train_data = pd.read_csv(self.config.train_data_path)\n",
123 | " test_data = pd.read_csv(self.config.test_data_path)\n",
124 | "\n",
125 | "\n",
126 | " train_x = train_data.drop([self.config.target_column], axis=1)\n",
127 | " test_x = test_data.drop([self.config.target_column], axis=1)\n",
128 | " train_y = train_data[[self.config.target_column]]\n",
129 | " test_y = test_data[[self.config.target_column]]\n",
130 | "\n",
131 | "\n",
132 | " lr = ElasticNet(alpha=self.config.alpha, l1_ratio=self.config.l1_ratio, random_state=42)\n",
133 | " lr.fit(train_x, train_y)\n",
134 | "\n",
135 | " joblib.dump(lr, os.path.join(self.config.root_dir, self.config.model_name))\n",
136 | "\n"
137 | ]
138 | },
139 | {
140 | "cell_type": "code",
141 | "execution_count": 7,
142 | "metadata": {},
143 | "outputs": [
144 | {
145 | "name": "stdout",
146 | "output_type": "stream",
147 | "text": [
148 | "[2025-01-12 13:04:48,406: INFO: common: yaml file: config\\config.yaml loaded successfully]\n",
149 | "[2025-01-12 13:04:48,407: INFO: common: yaml file: params.yaml loaded successfully]\n",
150 | "[2025-01-12 13:04:48,409: INFO: common: yaml file: schema.yaml loaded successfully]\n",
151 | "[2025-01-12 13:04:48,409: INFO: common: created directory at: artifacts]\n",
152 | "[2025-01-12 13:04:48,410: INFO: common: created directory at: artifacts/model_trainer]\n"
153 | ]
154 | }
155 | ],
156 | "source": [
157 | "try:\n",
158 | " config = ConfigurationManager()\n",
159 | " model_trainer_config = config.get_model_trainer_config()\n",
160 | " model_trainer_config = ModelTrainer(config=model_trainer_config)\n",
161 | " model_trainer_config.train()\n",
162 | "except Exception as e:\n",
163 | " raise e"
164 | ]
165 | },
166 | {
167 | "cell_type": "code",
168 | "execution_count": null,
169 | "metadata": {},
170 | "outputs": [],
171 | "source": []
172 | }
173 | ],
174 | "metadata": {
175 | "kernelspec": {
176 | "display_name": "mlproj",
177 | "language": "python",
178 | "name": "python3"
179 | },
180 | "language_info": {
181 | "codemirror_mode": {
182 | "name": "ipython",
183 | "version": 3
184 | },
185 | "file_extension": ".py",
186 | "mimetype": "text/x-python",
187 | "name": "python",
188 | "nbconvert_exporter": "python",
189 | "pygments_lexer": "ipython3",
190 | "version": "3.8.20"
191 | }
192 | },
193 | "nbformat": 4,
194 | "nbformat_minor": 2
195 | }
196 |
--------------------------------------------------------------------------------
/research/03_data_transformation.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "data": {
10 | "text/plain": [
11 | "'d:\\\\Bappy\\\\Live Sessions\\\\Euron\\\\MLOPs Masters Batch\\\\End-to-End-Machine-Learning-Pipeline'"
12 | ]
13 | },
14 | "execution_count": 1,
15 | "metadata": {},
16 | "output_type": "execute_result"
17 | }
18 | ],
19 | "source": [
20 | "import os\n",
21 | "os.chdir(\"../\")\n",
22 | "%pwd"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": 4,
28 | "metadata": {},
29 | "outputs": [],
30 | "source": [
31 | "from dataclasses import dataclass\n",
32 | "from pathlib import Path\n",
33 | "\n",
34 | "\n",
35 | "@dataclass(frozen=True)\n",
36 | "class DataTransformationConfig:\n",
37 | " root_dir: Path\n",
38 | " data_path: Path"
39 | ]
40 | },
41 | {
42 | "cell_type": "code",
43 | "execution_count": 2,
44 | "metadata": {},
45 | "outputs": [],
46 | "source": [
47 | "from mlProject.constants import *\n",
48 | "from mlProject.utils.common import read_yaml, create_directories"
49 | ]
50 | },
51 | {
52 | "cell_type": "code",
53 | "execution_count": 5,
54 | "metadata": {},
55 | "outputs": [],
56 | "source": [
57 | "class ConfigurationManager:\n",
58 | " def __init__(\n",
59 | " self,\n",
60 | " config_filepath = CONFIG_FILE_PATH,\n",
61 | " params_filepath = PARAMS_FILE_PATH,\n",
62 | " schema_filepath = SCHEMA_FILE_PATH):\n",
63 | "\n",
64 | " self.config = read_yaml(config_filepath)\n",
65 | " self.params = read_yaml(params_filepath)\n",
66 | " self.schema = read_yaml(schema_filepath)\n",
67 | "\n",
68 | " create_directories([self.config.artifacts_root])\n",
69 | "\n",
70 | "\n",
71 | " \n",
72 | " def get_data_transformation_config(self) -> DataTransformationConfig:\n",
73 | " config = self.config.data_transformation\n",
74 | "\n",
75 | " create_directories([config.root_dir])\n",
76 | "\n",
77 | " data_transformation_config = DataTransformationConfig(\n",
78 | " root_dir=config.root_dir,\n",
79 | " data_path=config.data_path,\n",
80 | " )\n",
81 | "\n",
82 | " return data_transformation_config"
83 | ]
84 | },
85 | {
86 | "cell_type": "code",
87 | "execution_count": 6,
88 | "metadata": {},
89 | "outputs": [],
90 | "source": [
91 | "import os\n",
92 | "from mlProject import logger\n",
93 | "from sklearn.model_selection import train_test_split\n",
94 | "import pandas as pd"
95 | ]
96 | },
97 | {
98 | "cell_type": "code",
99 | "execution_count": 7,
100 | "metadata": {},
101 | "outputs": [],
102 | "source": [
103 | "class DataTransformation:\n",
104 | " def __init__(self, config: DataTransformationConfig):\n",
105 | " self.config = config\n",
106 | "\n",
107 | " \n",
108 | " ## Note: You can add different data transformation techniques such as Scaler, PCA and all\n",
109 | " #You can perform all kinds of EDA in ML cycle here before passing this data to the model\n",
110 | "\n",
111 | " # I am only adding train_test_spliting cz this data is already cleaned up\n",
112 | "\n",
113 | "\n",
114 | " def train_test_spliting(self):\n",
115 | " data = pd.read_csv(self.config.data_path)\n",
116 | "\n",
117 | " # Split the data into training and test sets. (0.75, 0.25) split.\n",
118 | " train, test = train_test_split(data)\n",
119 | "\n",
120 | " train.to_csv(os.path.join(self.config.root_dir, \"train.csv\"),index = False)\n",
121 | " test.to_csv(os.path.join(self.config.root_dir, \"test.csv\"),index = False)\n",
122 | "\n",
123 | " logger.info(\"Splited data into training and test sets\")\n",
124 | " logger.info(train.shape)\n",
125 | " logger.info(test.shape)\n",
126 | "\n",
127 | " print(train.shape)\n",
128 | " print(test.shape)\n",
129 | " "
130 | ]
131 | },
132 | {
133 | "cell_type": "code",
134 | "execution_count": 8,
135 | "metadata": {},
136 | "outputs": [
137 | {
138 | "name": "stdout",
139 | "output_type": "stream",
140 | "text": [
141 | "[2025-01-12 12:51:51,319: INFO: common: yaml file: config\\config.yaml loaded successfully]\n",
142 | "[2025-01-12 12:51:51,320: INFO: common: yaml file: params.yaml loaded successfully]\n",
143 | "[2025-01-12 12:51:51,321: INFO: common: yaml file: schema.yaml loaded successfully]\n",
144 | "[2025-01-12 12:51:51,322: INFO: common: created directory at: artifacts]\n",
145 | "[2025-01-12 12:51:51,323: INFO: common: created directory at: artifacts/data_transformation]\n",
146 | "[2025-01-12 12:51:51,335: INFO: 741865018: Splited data into training and test sets]\n",
147 | "[2025-01-12 12:51:51,335: INFO: 741865018: (1199, 12)]\n",
148 | "[2025-01-12 12:51:51,336: INFO: 741865018: (400, 12)]\n",
149 | "(1199, 12)\n",
150 | "(400, 12)\n"
151 | ]
152 | }
153 | ],
154 | "source": [
155 | "try:\n",
156 | " config = ConfigurationManager()\n",
157 | " data_transformation_config = config.get_data_transformation_config()\n",
158 | " data_transformation = DataTransformation(config=data_transformation_config)\n",
159 | " data_transformation.train_test_spliting()\n",
160 | "except Exception as e:\n",
161 | " raise e"
162 | ]
163 | },
164 | {
165 | "cell_type": "code",
166 | "execution_count": null,
167 | "metadata": {},
168 | "outputs": [],
169 | "source": []
170 | }
171 | ],
172 | "metadata": {
173 | "kernelspec": {
174 | "display_name": "mlproj",
175 | "language": "python",
176 | "name": "python3"
177 | },
178 | "language_info": {
179 | "codemirror_mode": {
180 | "name": "ipython",
181 | "version": 3
182 | },
183 | "file_extension": ".py",
184 | "mimetype": "text/x-python",
185 | "name": "python",
186 | "nbconvert_exporter": "python",
187 | "pygments_lexer": "ipython3",
188 | "version": "3.8.20"
189 | }
190 | },
191 | "nbformat": 4,
192 | "nbformat_minor": 2
193 | }
194 |
--------------------------------------------------------------------------------
/research/05_model_evaluation.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "data": {
10 | "text/plain": [
11 | "'d:\\\\Bappy\\\\Live Sessions\\\\Euron\\\\MLOPs Masters Batch\\\\End-to-End-Machine-Learning-Pipeline'"
12 | ]
13 | },
14 | "execution_count": 1,
15 | "metadata": {},
16 | "output_type": "execute_result"
17 | }
18 | ],
19 | "source": [
20 | "import os\n",
21 | "os.chdir(\"../\")\n",
22 | "%pwd"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": 2,
28 | "metadata": {},
29 | "outputs": [],
30 | "source": [
31 | "from dataclasses import dataclass\n",
32 | "from pathlib import Path\n",
33 | "\n",
34 | "\n",
35 | "@dataclass(frozen=True)\n",
36 | "class ModelEvaluationConfig:\n",
37 | " root_dir: Path\n",
38 | " test_data_path: Path\n",
39 | " model_path: Path\n",
40 | " all_params: dict\n",
41 | " metric_file_name: Path\n",
42 | " target_column: str"
43 | ]
44 | },
45 | {
46 | "cell_type": "code",
47 | "execution_count": 3,
48 | "metadata": {},
49 | "outputs": [],
50 | "source": [
51 | "from mlProject.constants import *\n",
52 | "from mlProject.utils.common import read_yaml, create_directories, save_json"
53 | ]
54 | },
55 | {
56 | "cell_type": "code",
57 | "execution_count": 4,
58 | "metadata": {},
59 | "outputs": [],
60 | "source": [
61 | "class ConfigurationManager:\n",
62 | " def __init__(\n",
63 | " self,\n",
64 | " config_filepath = CONFIG_FILE_PATH,\n",
65 | " params_filepath = PARAMS_FILE_PATH,\n",
66 | " schema_filepath = SCHEMA_FILE_PATH):\n",
67 | "\n",
68 | " self.config = read_yaml(config_filepath)\n",
69 | " self.params = read_yaml(params_filepath)\n",
70 | " self.schema = read_yaml(schema_filepath)\n",
71 | "\n",
72 | " create_directories([self.config.artifacts_root])\n",
73 | "\n",
74 | " \n",
75 | " def get_model_evaluation_config(self) -> ModelEvaluationConfig:\n",
76 | " config = self.config.model_evaluation\n",
77 | " params = self.params.ElasticNet\n",
78 | " schema = self.schema.TARGET_COLUMN\n",
79 | "\n",
80 | " create_directories([config.root_dir])\n",
81 | "\n",
82 | " model_evaluation_config = ModelEvaluationConfig(\n",
83 | " root_dir=config.root_dir,\n",
84 | " test_data_path=config.test_data_path,\n",
85 | " model_path = config.model_path,\n",
86 | " all_params=params,\n",
87 | " metric_file_name = config.metric_file_name,\n",
88 | " target_column = schema.name\n",
89 | " \n",
90 | " )\n",
91 | "\n",
92 | " return model_evaluation_config\n"
93 | ]
94 | },
95 | {
96 | "cell_type": "code",
97 | "execution_count": 5,
98 | "metadata": {},
99 | "outputs": [],
100 | "source": [
101 | "import os\n",
102 | "import pandas as pd\n",
103 | "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
104 | "from urllib.parse import urlparse\n",
105 | "import numpy as np\n",
106 | "import joblib"
107 | ]
108 | },
109 | {
110 | "cell_type": "code",
111 | "execution_count": 6,
112 | "metadata": {},
113 | "outputs": [],
114 | "source": [
115 | "class ModelEvaluation:\n",
116 | " def __init__(self, config: ModelEvaluationConfig):\n",
117 | " self.config = config\n",
118 | "\n",
119 | " \n",
120 | " def eval_metrics(self,actual, pred):\n",
121 | " rmse = np.sqrt(mean_squared_error(actual, pred))\n",
122 | " mae = mean_absolute_error(actual, pred)\n",
123 | " r2 = r2_score(actual, pred)\n",
124 | " return rmse, mae, r2\n",
125 | " \n",
126 | "\n",
127 | "\n",
128 | " def save_results(self):\n",
129 | "\n",
130 | " test_data = pd.read_csv(self.config.test_data_path)\n",
131 | " model = joblib.load(self.config.model_path)\n",
132 | "\n",
133 | " test_x = test_data.drop([self.config.target_column], axis=1)\n",
134 | " test_y = test_data[[self.config.target_column]]\n",
135 | " \n",
136 | " predicted_qualities = model.predict(test_x)\n",
137 | "\n",
138 | " (rmse, mae, r2) = self.eval_metrics(test_y, predicted_qualities)\n",
139 | " \n",
140 | " # Saving metrics as local\n",
141 | " scores = {\"rmse\": rmse, \"mae\": mae, \"r2\": r2}\n",
142 | " save_json(path=Path(self.config.metric_file_name), data=scores)\n",
143 | "\n",
144 | "\n",
145 | "\n"
146 | ]
147 | },
148 | {
149 | "cell_type": "code",
150 | "execution_count": 7,
151 | "metadata": {},
152 | "outputs": [
153 | {
154 | "name": "stdout",
155 | "output_type": "stream",
156 | "text": [
157 | "[2025-01-12 13:09:29,149: INFO: common: yaml file: config\\config.yaml loaded successfully]\n",
158 | "[2025-01-12 13:09:29,150: INFO: common: yaml file: params.yaml loaded successfully]\n",
159 | "[2025-01-12 13:09:29,151: INFO: common: yaml file: schema.yaml loaded successfully]\n",
160 | "[2025-01-12 13:09:29,152: INFO: common: created directory at: artifacts]\n",
161 | "[2025-01-12 13:09:29,153: INFO: common: created directory at: artifacts/model_evaluation]\n",
162 | "[2025-01-12 13:09:29,189: INFO: common: json file saved at: artifacts\\model_evaluation\\metrics.json]\n"
163 | ]
164 | }
165 | ],
166 | "source": [
167 | "try:\n",
168 | " config = ConfigurationManager()\n",
169 | " model_evaluation_config = config.get_model_evaluation_config()\n",
170 | " model_evaluation_config = ModelEvaluation(config=model_evaluation_config)\n",
171 | " model_evaluation_config.save_results()\n",
172 | "except Exception as e:\n",
173 | " raise e"
174 | ]
175 | },
176 | {
177 | "cell_type": "code",
178 | "execution_count": null,
179 | "metadata": {},
180 | "outputs": [],
181 | "source": []
182 | }
183 | ],
184 | "metadata": {
185 | "kernelspec": {
186 | "display_name": "mlproj",
187 | "language": "python",
188 | "name": "python3"
189 | },
190 | "language_info": {
191 | "codemirror_mode": {
192 | "name": "ipython",
193 | "version": 3
194 | },
195 | "file_extension": ".py",
196 | "mimetype": "text/x-python",
197 | "name": "python",
198 | "nbconvert_exporter": "python",
199 | "pygments_lexer": "ipython3",
200 | "version": "3.8.20"
201 | }
202 | },
203 | "nbformat": 4,
204 | "nbformat_minor": 2
205 | }
206 |
--------------------------------------------------------------------------------
/research/01_data_ingestion.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 2,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "data": {
10 | "text/plain": [
11 | "'d:\\\\Bappy\\\\Live Sessions\\\\Euron\\\\MLOPs Masters Batch\\\\End-to-End-Machine-Learning-Pipeline'"
12 | ]
13 | },
14 | "execution_count": 2,
15 | "metadata": {},
16 | "output_type": "execute_result"
17 | }
18 | ],
19 | "source": [
20 | "import os\n",
21 | "os.chdir(\"../\")\n",
22 | "%pwd"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": 7,
28 | "metadata": {},
29 | "outputs": [],
30 | "source": [
31 | "from dataclasses import dataclass\n",
32 | "from pathlib import Path\n",
33 | "\n",
34 | "\n",
35 | "@dataclass(frozen=True)\n",
36 | "class DataIngestionConfig:\n",
37 | " root_dir: Path\n",
38 | " source_URL: str\n",
39 | " local_data_file: Path\n",
40 | " unzip_dir: Path"
41 | ]
42 | },
43 | {
44 | "cell_type": "code",
45 | "execution_count": 4,
46 | "metadata": {},
47 | "outputs": [],
48 | "source": [
49 | "from mlProject.constants import *\n",
50 | "from mlProject.utils.common import read_yaml, create_directories"
51 | ]
52 | },
53 | {
54 | "cell_type": "code",
55 | "execution_count": 8,
56 | "metadata": {},
57 | "outputs": [],
58 | "source": [
59 | "class ConfigurationManager:\n",
60 | " def __init__(\n",
61 | " self,\n",
62 | " config_filepath = CONFIG_FILE_PATH,\n",
63 | " params_filepath = PARAMS_FILE_PATH,\n",
64 | " schema_filepath = SCHEMA_FILE_PATH):\n",
65 | "\n",
66 | " self.config = read_yaml(config_filepath)\n",
67 | " self.params = read_yaml(params_filepath)\n",
68 | " self.schema = read_yaml(schema_filepath)\n",
69 | "\n",
70 | " create_directories([self.config.artifacts_root])\n",
71 | "\n",
72 | "\n",
73 | " \n",
74 | " def get_data_ingestion_config(self) -> DataIngestionConfig:\n",
75 | " config = self.config.data_ingestion\n",
76 | "\n",
77 | " create_directories([config.root_dir])\n",
78 | "\n",
79 | " data_ingestion_config = DataIngestionConfig(\n",
80 | " root_dir=config.root_dir,\n",
81 | " source_URL=config.source_URL,\n",
82 | " local_data_file=config.local_data_file,\n",
83 | " unzip_dir=config.unzip_dir \n",
84 | " )\n",
85 | "\n",
86 | " return data_ingestion_config"
87 | ]
88 | },
89 | {
90 | "cell_type": "code",
91 | "execution_count": 11,
92 | "metadata": {},
93 | "outputs": [],
94 | "source": [
95 | "import os\n",
96 | "import urllib.request as request\n",
97 | "import zipfile\n",
98 | "from mlProject import logger\n",
99 | "from mlProject.utils.common import get_size"
100 | ]
101 | },
102 | {
103 | "cell_type": "code",
104 | "execution_count": 9,
105 | "metadata": {},
106 | "outputs": [],
107 | "source": [
108 | "class DataIngestion:\n",
109 | " def __init__(self, config: DataIngestionConfig):\n",
110 | " self.config = config\n",
111 | "\n",
112 | "\n",
113 | " \n",
114 | " def download_file(self):\n",
115 | " if not os.path.exists(self.config.local_data_file):\n",
116 | " filename, headers = request.urlretrieve(\n",
117 | " url = self.config.source_URL,\n",
118 | " filename = self.config.local_data_file\n",
119 | " )\n",
120 | " logger.info(f\"{filename} download! with following info: \\n{headers}\")\n",
121 | " else:\n",
122 | " logger.info(f\"File already exists of size: {get_size(Path(self.config.local_data_file))}\")\n",
123 | "\n",
124 | "\n",
125 | "\n",
126 | " def extract_zip_file(self):\n",
127 | " \"\"\"\n",
128 | " zip_file_path: str\n",
129 | " Extracts the zip file into the data directory\n",
130 | " Function returns None\n",
131 | " \"\"\"\n",
132 | " unzip_path = self.config.unzip_dir\n",
133 | " os.makedirs(unzip_path, exist_ok=True)\n",
134 | " with zipfile.ZipFile(self.config.local_data_file, 'r') as zip_ref:\n",
135 | " zip_ref.extractall(unzip_path)\n",
136 | " "
137 | ]
138 | },
139 | {
140 | "cell_type": "code",
141 | "execution_count": 12,
142 | "metadata": {},
143 | "outputs": [
144 | {
145 | "name": "stdout",
146 | "output_type": "stream",
147 | "text": [
148 | "[2025-01-12 12:23:20,266: INFO: common: yaml file: config\\config.yaml loaded successfully]\n",
149 | "[2025-01-12 12:23:20,266: INFO: common: yaml file: params.yaml loaded successfully]\n",
150 | "[2025-01-12 12:23:20,269: INFO: common: yaml file: schema.yaml loaded successfully]\n",
151 | "[2025-01-12 12:23:20,269: INFO: common: created directory at: artifacts]\n",
152 | "[2025-01-12 12:23:20,269: INFO: common: created directory at: artifacts/data_ingestion]\n",
153 | "[2025-01-12 12:23:21,833: INFO: 2366278714: artifacts/data_ingestion/data.zip download! with following info: \n",
154 | "Connection: close\n",
155 | "Content-Length: 23329\n",
156 | "Cache-Control: max-age=300\n",
157 | "Content-Security-Policy: default-src 'none'; style-src 'unsafe-inline'; sandbox\n",
158 | "Content-Type: application/zip\n",
159 | "ETag: \"c69888a4ae59bc5a893392785a938ccd4937981c06ba8a9d6a21aa52b4ab5b6e\"\n",
160 | "Strict-Transport-Security: max-age=31536000\n",
161 | "X-Content-Type-Options: nosniff\n",
162 | "X-Frame-Options: deny\n",
163 | "X-XSS-Protection: 1; mode=block\n",
164 | "X-GitHub-Request-Id: 756E:27C4B:282C52:3CE0D8:67835FD3\n",
165 | "Accept-Ranges: bytes\n",
166 | "Date: Sun, 12 Jan 2025 06:23:21 GMT\n",
167 | "Via: 1.1 varnish\n",
168 | "X-Served-By: cache-sin-wsss1830061-SIN\n",
169 | "X-Cache: MISS\n",
170 | "X-Cache-Hits: 0\n",
171 | "X-Timer: S1736663001.478995,VS0,VE306\n",
172 | "Vary: Authorization,Accept-Encoding,Origin\n",
173 | "Access-Control-Allow-Origin: *\n",
174 | "Cross-Origin-Resource-Policy: cross-origin\n",
175 | "X-Fastly-Request-ID: b4c0c97594dd9af232a84570a8d595c5b76d362b\n",
176 | "Expires: Sun, 12 Jan 2025 06:28:21 GMT\n",
177 | "Source-Age: 0\n",
178 | "\n",
179 | "]\n"
180 | ]
181 | }
182 | ],
183 | "source": [
184 | "try:\n",
185 | " config = ConfigurationManager()\n",
186 | " data_ingestion_config = config.get_data_ingestion_config()\n",
187 | " data_ingestion = DataIngestion(config=data_ingestion_config)\n",
188 | " data_ingestion.download_file()\n",
189 | " data_ingestion.extract_zip_file()\n",
190 | "except Exception as e:\n",
191 | " raise e"
192 | ]
193 | }
194 | ],
195 | "metadata": {
196 | "kernelspec": {
197 | "display_name": "mlproj",
198 | "language": "python",
199 | "name": "python3"
200 | },
201 | "language_info": {
202 | "codemirror_mode": {
203 | "name": "ipython",
204 | "version": 3
205 | },
206 | "file_extension": ".py",
207 | "mimetype": "text/x-python",
208 | "name": "python",
209 | "nbconvert_exporter": "python",
210 | "pygments_lexer": "ipython3",
211 | "version": "3.8.20"
212 | }
213 | },
214 | "nbformat": 4,
215 | "nbformat_minor": 2
216 | }
217 |
--------------------------------------------------------------------------------
/templates/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Web App
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
37 |
38 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
Form-v9 by Colorlib
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
--------------------------------------------------------------------------------
/research/trials.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "Ok\n"
13 | ]
14 | }
15 | ],
16 | "source": [
17 | "print(\"Ok\")"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 2,
23 | "metadata": {},
24 | "outputs": [
25 | {
26 | "name": "stdout",
27 | "output_type": "stream",
28 | "text": [
29 | "{'name': 'bappy', 'email': 'entbappy73@gmail.com'}\n",
30 | "\n"
31 | ]
32 | }
33 | ],
34 | "source": [
35 | "import yaml\n",
36 | "\n",
37 | "yaml_file_path = \"test.yaml\"\n",
38 | "\n",
39 | "# Open the YAML file and load its contents\n",
40 | "with open(yaml_file_path, 'r') as yaml_file:\n",
41 | " data = yaml.safe_load(yaml_file)\n",
42 | "\n",
43 | "\n",
44 | "print(data)\n",
45 | "print(type(data))"
46 | ]
47 | },
48 | {
49 | "cell_type": "code",
50 | "execution_count": 3,
51 | "metadata": {},
52 | "outputs": [
53 | {
54 | "data": {
55 | "text/plain": [
56 | "'bappy'"
57 | ]
58 | },
59 | "execution_count": 3,
60 | "metadata": {},
61 | "output_type": "execute_result"
62 | }
63 | ],
64 | "source": [
65 | "data['name']"
66 | ]
67 | },
68 | {
69 | "cell_type": "code",
70 | "execution_count": 4,
71 | "metadata": {},
72 | "outputs": [
73 | {
74 | "data": {
75 | "text/plain": [
76 | "'entbappy73@gmail.com'"
77 | ]
78 | },
79 | "execution_count": 4,
80 | "metadata": {},
81 | "output_type": "execute_result"
82 | }
83 | ],
84 | "source": [
85 | "data['email']"
86 | ]
87 | },
88 | {
89 | "cell_type": "code",
90 | "execution_count": 5,
91 | "metadata": {},
92 | "outputs": [
93 | {
94 | "ename": "AttributeError",
95 | "evalue": "'dict' object has no attribute 'name'",
96 | "output_type": "error",
97 | "traceback": [
98 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
99 | "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
100 | "Cell \u001b[1;32mIn[5], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mdata\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mname\u001b[49m\n",
101 | "\u001b[1;31mAttributeError\u001b[0m: 'dict' object has no attribute 'name'"
102 | ]
103 | }
104 | ],
105 | "source": [
106 | "data.name"
107 | ]
108 | },
109 | {
110 | "cell_type": "markdown",
111 | "metadata": {},
112 | "source": [
113 | "# Configbox"
114 | ]
115 | },
116 | {
117 | "cell_type": "code",
118 | "execution_count": 6,
119 | "metadata": {},
120 | "outputs": [],
121 | "source": [
122 | "from box import ConfigBox"
123 | ]
124 | },
125 | {
126 | "cell_type": "code",
127 | "execution_count": 7,
128 | "metadata": {},
129 | "outputs": [],
130 | "source": [
131 | "d = ConfigBox(data)"
132 | ]
133 | },
134 | {
135 | "cell_type": "code",
136 | "execution_count": 8,
137 | "metadata": {},
138 | "outputs": [
139 | {
140 | "data": {
141 | "text/plain": [
142 | "ConfigBox({'name': 'bappy', 'email': 'entbappy73@gmail.com'})"
143 | ]
144 | },
145 | "execution_count": 8,
146 | "metadata": {},
147 | "output_type": "execute_result"
148 | }
149 | ],
150 | "source": [
151 | "d"
152 | ]
153 | },
154 | {
155 | "cell_type": "code",
156 | "execution_count": 9,
157 | "metadata": {},
158 | "outputs": [
159 | {
160 | "data": {
161 | "text/plain": [
162 | "box.config_box.ConfigBox"
163 | ]
164 | },
165 | "execution_count": 9,
166 | "metadata": {},
167 | "output_type": "execute_result"
168 | }
169 | ],
170 | "source": [
171 | "type(d)"
172 | ]
173 | },
174 | {
175 | "cell_type": "code",
176 | "execution_count": 10,
177 | "metadata": {},
178 | "outputs": [
179 | {
180 | "data": {
181 | "text/plain": [
182 | "'bappy'"
183 | ]
184 | },
185 | "execution_count": 10,
186 | "metadata": {},
187 | "output_type": "execute_result"
188 | }
189 | ],
190 | "source": [
191 | "d.name"
192 | ]
193 | },
194 | {
195 | "cell_type": "code",
196 | "execution_count": 11,
197 | "metadata": {},
198 | "outputs": [
199 | {
200 | "data": {
201 | "text/plain": [
202 | "'entbappy73@gmail.com'"
203 | ]
204 | },
205 | "execution_count": 11,
206 | "metadata": {},
207 | "output_type": "execute_result"
208 | }
209 | ],
210 | "source": [
211 | "d.email"
212 | ]
213 | },
214 | {
215 | "cell_type": "markdown",
216 | "metadata": {},
217 | "source": [
218 | "# ensure_annotations"
219 | ]
220 | },
221 | {
222 | "cell_type": "code",
223 | "execution_count": 12,
224 | "metadata": {},
225 | "outputs": [],
226 | "source": [
227 | "def get_product(x:int, y:int):\n",
228 | " return x*y"
229 | ]
230 | },
231 | {
232 | "cell_type": "code",
233 | "execution_count": 13,
234 | "metadata": {},
235 | "outputs": [
236 | {
237 | "data": {
238 | "text/plain": [
239 | "8"
240 | ]
241 | },
242 | "execution_count": 13,
243 | "metadata": {},
244 | "output_type": "execute_result"
245 | }
246 | ],
247 | "source": [
248 | "get_product(x=2,y=4)"
249 | ]
250 | },
251 | {
252 | "cell_type": "code",
253 | "execution_count": 14,
254 | "metadata": {},
255 | "outputs": [
256 | {
257 | "data": {
258 | "text/plain": [
259 | "'44'"
260 | ]
261 | },
262 | "execution_count": 14,
263 | "metadata": {},
264 | "output_type": "execute_result"
265 | }
266 | ],
267 | "source": [
268 | "\n",
269 | "get_product(x=2,y=\"4\")"
270 | ]
271 | },
272 | {
273 | "cell_type": "code",
274 | "execution_count": 15,
275 | "metadata": {},
276 | "outputs": [],
277 | "source": [
278 | "from ensure import ensure_annotations"
279 | ]
280 | },
281 | {
282 | "cell_type": "code",
283 | "execution_count": 16,
284 | "metadata": {},
285 | "outputs": [],
286 | "source": [
287 | "@ensure_annotations\n",
288 | "def get_product(x:int, y:int):\n",
289 | " return x*y"
290 | ]
291 | },
292 | {
293 | "cell_type": "code",
294 | "execution_count": 17,
295 | "metadata": {},
296 | "outputs": [
297 | {
298 | "data": {
299 | "text/plain": [
300 | "8"
301 | ]
302 | },
303 | "execution_count": 17,
304 | "metadata": {},
305 | "output_type": "execute_result"
306 | }
307 | ],
308 | "source": [
309 | "get_product(x=2,y=4)"
310 | ]
311 | },
312 | {
313 | "cell_type": "code",
314 | "execution_count": 18,
315 | "metadata": {},
316 | "outputs": [
317 | {
318 | "ename": "EnsureError",
319 | "evalue": "Argument y of type to does not match annotation type ",
320 | "output_type": "error",
321 | "traceback": [
322 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
323 | "\u001b[1;31mEnsureError\u001b[0m Traceback (most recent call last)",
324 | "Cell \u001b[1;32mIn[18], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mget_product\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43my\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m4\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n",
325 | "File \u001b[1;32mc:\\Anaconda3\\envs\\mlproj\\lib\\site-packages\\ensure\\main.py:803\u001b[0m, in \u001b[0;36mWrappedFunction.__call__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 798\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(value, templ):\n\u001b[0;32m 799\u001b[0m msg \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m 800\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mArgument \u001b[39m\u001b[38;5;132;01m{arg}\u001b[39;00m\u001b[38;5;124m of type \u001b[39m\u001b[38;5;132;01m{valt}\u001b[39;00m\u001b[38;5;124m to \u001b[39m\u001b[38;5;132;01m{f}\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 801\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdoes not match annotation type \u001b[39m\u001b[38;5;132;01m{t}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 802\u001b[0m )\n\u001b[1;32m--> 803\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m EnsureError(msg\u001b[38;5;241m.\u001b[39mformat(\n\u001b[0;32m 804\u001b[0m arg\u001b[38;5;241m=\u001b[39marg, f\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mf, t\u001b[38;5;241m=\u001b[39mtempl, valt\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mtype\u001b[39m(value)\n\u001b[0;32m 805\u001b[0m ))\n\u001b[0;32m 807\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mf(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n",
326 | "\u001b[1;31mEnsureError\u001b[0m: Argument y of type to does not match annotation type "
327 | ]
328 | }
329 | ],
330 | "source": [
331 | "get_product(x=2,y=\"4\")"
332 | ]
333 | },
334 | {
335 | "cell_type": "code",
336 | "execution_count": null,
337 | "metadata": {},
338 | "outputs": [],
339 | "source": []
340 | }
341 | ],
342 | "metadata": {
343 | "kernelspec": {
344 | "display_name": "mlproj",
345 | "language": "python",
346 | "name": "python3"
347 | },
348 | "language_info": {
349 | "codemirror_mode": {
350 | "name": "ipython",
351 | "version": 3
352 | },
353 | "file_extension": ".py",
354 | "mimetype": "text/x-python",
355 | "name": "python",
356 | "nbconvert_exporter": "python",
357 | "pygments_lexer": "ipython3",
358 | "version": "3.8.20"
359 | }
360 | },
361 | "nbformat": 4,
362 | "nbformat_minor": 2
363 | }
364 |
--------------------------------------------------------------------------------
/research/02_data_validation.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "data": {
10 | "text/plain": [
11 | "'d:\\\\Bappy\\\\Live Sessions\\\\Euron\\\\MLOPs Masters Batch\\\\End-to-End-Machine-Learning-Pipeline'"
12 | ]
13 | },
14 | "execution_count": 1,
15 | "metadata": {},
16 | "output_type": "execute_result"
17 | }
18 | ],
19 | "source": [
20 | "import os\n",
21 | "os.chdir(\"../\")\n",
22 | "%pwd"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": 17,
28 | "metadata": {},
29 | "outputs": [],
30 | "source": [
31 | "import pandas as pd"
32 | ]
33 | },
34 | {
35 | "cell_type": "code",
36 | "execution_count": 18,
37 | "metadata": {},
38 | "outputs": [
39 | {
40 | "data": {
41 | "text/html": [
42 | "\n",
43 | "\n",
56 | "
\n",
57 | " \n",
58 | " \n",
59 | " | \n",
60 | " fixed acidity | \n",
61 | " volatile acidity | \n",
62 | " citric acid | \n",
63 | " residual sugar | \n",
64 | " chlorides | \n",
65 | " free sulfur dioxide | \n",
66 | " total sulfur dioxide | \n",
67 | " density | \n",
68 | " pH | \n",
69 | " sulphates | \n",
70 | " alcohol | \n",
71 | " quality | \n",
72 | "
\n",
73 | " \n",
74 | " \n",
75 | " \n",
76 | " | 0 | \n",
77 | " 7.4 | \n",
78 | " 0.70 | \n",
79 | " 0.00 | \n",
80 | " 1.9 | \n",
81 | " 0.076 | \n",
82 | " 11.0 | \n",
83 | " 34.0 | \n",
84 | " 0.9978 | \n",
85 | " 3.51 | \n",
86 | " 0.56 | \n",
87 | " 9.4 | \n",
88 | " 5 | \n",
89 | "
\n",
90 | " \n",
91 | " | 1 | \n",
92 | " 7.8 | \n",
93 | " 0.88 | \n",
94 | " 0.00 | \n",
95 | " 2.6 | \n",
96 | " 0.098 | \n",
97 | " 25.0 | \n",
98 | " 67.0 | \n",
99 | " 0.9968 | \n",
100 | " 3.20 | \n",
101 | " 0.68 | \n",
102 | " 9.8 | \n",
103 | " 5 | \n",
104 | "
\n",
105 | " \n",
106 | " | 2 | \n",
107 | " 7.8 | \n",
108 | " 0.76 | \n",
109 | " 0.04 | \n",
110 | " 2.3 | \n",
111 | " 0.092 | \n",
112 | " 15.0 | \n",
113 | " 54.0 | \n",
114 | " 0.9970 | \n",
115 | " 3.26 | \n",
116 | " 0.65 | \n",
117 | " 9.8 | \n",
118 | " 5 | \n",
119 | "
\n",
120 | " \n",
121 | " | 3 | \n",
122 | " 11.2 | \n",
123 | " 0.28 | \n",
124 | " 0.56 | \n",
125 | " 1.9 | \n",
126 | " 0.075 | \n",
127 | " 17.0 | \n",
128 | " 60.0 | \n",
129 | " 0.9980 | \n",
130 | " 3.16 | \n",
131 | " 0.58 | \n",
132 | " 9.8 | \n",
133 | " 6 | \n",
134 | "
\n",
135 | " \n",
136 | " | 4 | \n",
137 | " 7.4 | \n",
138 | " 0.70 | \n",
139 | " 0.00 | \n",
140 | " 1.9 | \n",
141 | " 0.076 | \n",
142 | " 11.0 | \n",
143 | " 34.0 | \n",
144 | " 0.9978 | \n",
145 | " 3.51 | \n",
146 | " 0.56 | \n",
147 | " 9.4 | \n",
148 | " 5 | \n",
149 | "
\n",
150 | " \n",
151 | "
\n",
152 | "
"
153 | ],
154 | "text/plain": [
155 | " fixed acidity volatile acidity citric acid residual sugar chlorides \\\n",
156 | "0 7.4 0.70 0.00 1.9 0.076 \n",
157 | "1 7.8 0.88 0.00 2.6 0.098 \n",
158 | "2 7.8 0.76 0.04 2.3 0.092 \n",
159 | "3 11.2 0.28 0.56 1.9 0.075 \n",
160 | "4 7.4 0.70 0.00 1.9 0.076 \n",
161 | "\n",
162 | " free sulfur dioxide total sulfur dioxide density pH sulphates \\\n",
163 | "0 11.0 34.0 0.9978 3.51 0.56 \n",
164 | "1 25.0 67.0 0.9968 3.20 0.68 \n",
165 | "2 15.0 54.0 0.9970 3.26 0.65 \n",
166 | "3 17.0 60.0 0.9980 3.16 0.58 \n",
167 | "4 11.0 34.0 0.9978 3.51 0.56 \n",
168 | "\n",
169 | " alcohol quality \n",
170 | "0 9.4 5 \n",
171 | "1 9.8 5 \n",
172 | "2 9.8 5 \n",
173 | "3 9.8 6 \n",
174 | "4 9.4 5 "
175 | ]
176 | },
177 | "execution_count": 18,
178 | "metadata": {},
179 | "output_type": "execute_result"
180 | }
181 | ],
182 | "source": [
183 | "data = pd.read_csv(\"artifacts/data_ingestion/winequality-red.csv\")\n",
184 | "data.head()"
185 | ]
186 | },
187 | {
188 | "cell_type": "code",
189 | "execution_count": 19,
190 | "metadata": {},
191 | "outputs": [],
192 | "source": [
193 | "from dataclasses import dataclass\n",
194 | "from pathlib import Path\n",
195 | "\n",
196 | "\n",
197 | "@dataclass(frozen=True)\n",
198 | "class DataValidationConfig:\n",
199 | " root_dir: Path\n",
200 | " STATUS_FILE: str\n",
201 | " unzip_data_dir: Path\n",
202 | " all_schema: dict"
203 | ]
204 | },
205 | {
206 | "cell_type": "code",
207 | "execution_count": 20,
208 | "metadata": {},
209 | "outputs": [],
210 | "source": [
211 | "from mlProject.constants import *\n",
212 | "from mlProject.utils.common import read_yaml, create_directories"
213 | ]
214 | },
215 | {
216 | "cell_type": "code",
217 | "execution_count": 21,
218 | "metadata": {},
219 | "outputs": [],
220 | "source": [
221 | "class ConfigurationManager:\n",
222 | " def __init__(\n",
223 | " self,\n",
224 | " config_filepath = CONFIG_FILE_PATH,\n",
225 | " params_filepath = PARAMS_FILE_PATH,\n",
226 | " schema_filepath = SCHEMA_FILE_PATH):\n",
227 | "\n",
228 | " self.config = read_yaml(config_filepath)\n",
229 | " self.params = read_yaml(params_filepath)\n",
230 | " self.schema = read_yaml(schema_filepath)\n",
231 | "\n",
232 | " create_directories([self.config.artifacts_root])\n",
233 | "\n",
234 | "\n",
235 | " \n",
236 | " def get_data_validation_config(self) -> DataValidationConfig:\n",
237 | " config = self.config.data_validation\n",
238 | " schema = self.schema.COLUMNS\n",
239 | "\n",
240 | " create_directories([config.root_dir])\n",
241 | "\n",
242 | " data_validation_config = DataValidationConfig(\n",
243 | " root_dir=config.root_dir,\n",
244 | " STATUS_FILE=config.STATUS_FILE,\n",
245 | " unzip_data_dir = config.unzip_data_dir,\n",
246 | " all_schema=schema,\n",
247 | " )\n",
248 | "\n",
249 | " return data_validation_config"
250 | ]
251 | },
252 | {
253 | "cell_type": "code",
254 | "execution_count": 22,
255 | "metadata": {},
256 | "outputs": [],
257 | "source": [
258 | "import os\n",
259 | "from mlProject import logger"
260 | ]
261 | },
262 | {
263 | "cell_type": "code",
264 | "execution_count": 23,
265 | "metadata": {},
266 | "outputs": [],
267 | "source": [
268 | "class DataValiadtion:\n",
269 | " def __init__(self, config: DataValidationConfig):\n",
270 | " self.config = config\n",
271 | "\n",
272 | "\n",
273 | " def validate_all_columns(self)-> bool:\n",
274 | " try:\n",
275 | " validation_status = None\n",
276 | "\n",
277 | " data = pd.read_csv(self.config.unzip_data_dir)\n",
278 | " all_cols = list(data.columns)\n",
279 | "\n",
280 | " all_schema = self.config.all_schema.keys()\n",
281 | "\n",
282 | " \n",
283 | " for col in all_cols:\n",
284 | " if col not in all_schema:\n",
285 | " validation_status = False\n",
286 | " with open(self.config.STATUS_FILE, 'w') as f:\n",
287 | " f.write(f\"Validation status: {validation_status}\")\n",
288 | " else:\n",
289 | " validation_status = True\n",
290 | " with open(self.config.STATUS_FILE, 'w') as f:\n",
291 | " f.write(f\"Validation status: {validation_status}\")\n",
292 | "\n",
293 | " return validation_status\n",
294 | " \n",
295 | " except Exception as e:\n",
296 | " raise e\n",
297 | "\n"
298 | ]
299 | },
300 | {
301 | "cell_type": "code",
302 | "execution_count": 24,
303 | "metadata": {},
304 | "outputs": [
305 | {
306 | "name": "stdout",
307 | "output_type": "stream",
308 | "text": [
309 | "[2025-01-12 12:40:28,683: INFO: common: yaml file: config\\config.yaml loaded successfully]\n",
310 | "[2025-01-12 12:40:28,684: INFO: common: yaml file: params.yaml loaded successfully]\n",
311 | "[2025-01-12 12:40:28,686: INFO: common: yaml file: schema.yaml loaded successfully]\n",
312 | "[2025-01-12 12:40:28,686: INFO: common: created directory at: artifacts]\n",
313 | "[2025-01-12 12:40:28,687: INFO: common: created directory at: artifacts/data_validation]\n"
314 | ]
315 | }
316 | ],
317 | "source": [
318 | "try:\n",
319 | " config = ConfigurationManager()\n",
320 | " data_validation_config = config.get_data_validation_config()\n",
321 | " data_validation = DataValiadtion(config=data_validation_config)\n",
322 | " data_validation.validate_all_columns()\n",
323 | "except Exception as e:\n",
324 | " raise e"
325 | ]
326 | },
327 | {
328 | "cell_type": "code",
329 | "execution_count": null,
330 | "metadata": {},
331 | "outputs": [],
332 | "source": []
333 | },
334 | {
335 | "cell_type": "code",
336 | "execution_count": null,
337 | "metadata": {},
338 | "outputs": [],
339 | "source": []
340 | },
341 | {
342 | "cell_type": "code",
343 | "execution_count": null,
344 | "metadata": {},
345 | "outputs": [],
346 | "source": []
347 | }
348 | ],
349 | "metadata": {
350 | "kernelspec": {
351 | "display_name": "mlproj",
352 | "language": "python",
353 | "name": "python3"
354 | },
355 | "language_info": {
356 | "codemirror_mode": {
357 | "name": "ipython",
358 | "version": 3
359 | },
360 | "file_extension": ".py",
361 | "mimetype": "text/x-python",
362 | "name": "python",
363 | "nbconvert_exporter": "python",
364 | "pygments_lexer": "ipython3",
365 | "version": "3.8.20"
366 | }
367 | },
368 | "nbformat": 4,
369 | "nbformat_minor": 2
370 | }
371 |
--------------------------------------------------------------------------------
/data/winequality-red.csv:
--------------------------------------------------------------------------------
1 | fixed acidity,volatile acidity,citric acid,residual sugar,chlorides,free sulfur dioxide,total sulfur dioxide,density,pH,sulphates,alcohol,quality
2 | 7.4,0.7,0.0,1.9,0.076,11.0,34.0,0.9978,3.51,0.56,9.4,5
3 | 7.8,0.88,0.0,2.6,0.098,25.0,67.0,0.9968,3.2,0.68,9.8,5
4 | 7.8,0.76,0.04,2.3,0.092,15.0,54.0,0.997,3.26,0.65,9.8,5
5 | 11.2,0.28,0.56,1.9,0.075,17.0,60.0,0.998,3.16,0.58,9.8,6
6 | 7.4,0.7,0.0,1.9,0.076,11.0,34.0,0.9978,3.51,0.56,9.4,5
7 | 7.4,0.66,0.0,1.8,0.075,13.0,40.0,0.9978,3.51,0.56,9.4,5
8 | 7.9,0.6,0.06,1.6,0.069,15.0,59.0,0.9964,3.3,0.46,9.4,5
9 | 7.3,0.65,0.0,1.2,0.065,15.0,21.0,0.9946,3.39,0.47,10.0,7
10 | 7.8,0.58,0.02,2.0,0.073,9.0,18.0,0.9968,3.36,0.57,9.5,7
11 | 7.5,0.5,0.36,6.1,0.071,17.0,102.0,0.9978,3.35,0.8,10.5,5
12 | 6.7,0.58,0.08,1.8,0.09699999999999999,15.0,65.0,0.9959,3.28,0.54,9.2,5
13 | 7.5,0.5,0.36,6.1,0.071,17.0,102.0,0.9978,3.35,0.8,10.5,5
14 | 5.6,0.615,0.0,1.6,0.08900000000000001,16.0,59.0,0.9943,3.58,0.52,9.9,5
15 | 7.8,0.61,0.29,1.6,0.114,9.0,29.0,0.9974,3.26,1.56,9.1,5
16 | 8.9,0.62,0.18,3.8,0.17600000000000002,52.0,145.0,0.9986,3.16,0.88,9.2,5
17 | 8.9,0.62,0.19,3.9,0.17,51.0,148.0,0.9986,3.17,0.93,9.2,5
18 | 8.5,0.28,0.56,1.8,0.092,35.0,103.0,0.9969,3.3,0.75,10.5,7
19 | 8.1,0.56,0.28,1.7,0.368,16.0,56.0,0.9968,3.11,1.28,9.3,5
20 | 7.4,0.59,0.08,4.4,0.086,6.0,29.0,0.9974,3.38,0.5,9.0,4
21 | 7.9,0.32,0.51,1.8,0.341,17.0,56.0,0.9969,3.04,1.08,9.2,6
22 | 8.9,0.22,0.48,1.8,0.077,29.0,60.0,0.9968,3.39,0.53,9.4,6
23 | 7.6,0.39,0.31,2.3,0.08199999999999999,23.0,71.0,0.9982,3.52,0.65,9.7,5
24 | 7.9,0.43,0.21,1.6,0.106,10.0,37.0,0.9966,3.17,0.91,9.5,5
25 | 8.5,0.49,0.11,2.3,0.084,9.0,67.0,0.9968,3.17,0.53,9.4,5
26 | 6.9,0.4,0.14,2.4,0.085,21.0,40.0,0.9968,3.43,0.63,9.7,6
27 | 6.3,0.39,0.16,1.4,0.08,11.0,23.0,0.9955,3.34,0.56,9.3,5
28 | 7.6,0.41,0.24,1.8,0.08,4.0,11.0,0.9962,3.28,0.59,9.5,5
29 | 7.9,0.43,0.21,1.6,0.106,10.0,37.0,0.9966,3.17,0.91,9.5,5
30 | 7.1,0.71,0.0,1.9,0.08,14.0,35.0,0.9972,3.47,0.55,9.4,5
31 | 7.8,0.645,0.0,2.0,0.08199999999999999,8.0,16.0,0.9964,3.38,0.59,9.8,6
32 | 6.7,0.675,0.07,2.4,0.08900000000000001,17.0,82.0,0.9958,3.35,0.54,10.1,5
33 | 6.9,0.685,0.0,2.5,0.105,22.0,37.0,0.9966,3.46,0.57,10.6,6
34 | 8.3,0.655,0.12,2.3,0.083,15.0,113.0,0.9966,3.17,0.66,9.8,5
35 | 6.9,0.605,0.12,10.7,0.073,40.0,83.0,0.9993,3.45,0.52,9.4,6
36 | 5.2,0.32,0.25,1.8,0.10300000000000001,13.0,50.0,0.9957,3.38,0.55,9.2,5
37 | 7.8,0.645,0.0,5.5,0.086,5.0,18.0,0.9986,3.4,0.55,9.6,6
38 | 7.8,0.6,0.14,2.4,0.086,3.0,15.0,0.9975,3.42,0.6,10.8,6
39 | 8.1,0.38,0.28,2.1,0.066,13.0,30.0,0.9968,3.23,0.73,9.7,7
40 | 5.7,1.13,0.09,1.5,0.172,7.0,19.0,0.9940000000000001,3.5,0.48,9.8,4
41 | 7.3,0.45,0.36,5.9,0.07400000000000001,12.0,87.0,0.9978,3.33,0.83,10.5,5
42 | 7.3,0.45,0.36,5.9,0.07400000000000001,12.0,87.0,0.9978,3.33,0.83,10.5,5
43 | 8.8,0.61,0.3,2.8,0.08800000000000001,17.0,46.0,0.9976,3.26,0.51,9.3,4
44 | 7.5,0.49,0.2,2.6,0.332,8.0,14.0,0.9968,3.21,0.9,10.5,6
45 | 8.1,0.66,0.22,2.2,0.069,9.0,23.0,0.9968,3.3,1.2,10.3,5
46 | 6.8,0.67,0.02,1.8,0.05,5.0,11.0,0.9962,3.48,0.52,9.5,5
47 | 4.6,0.52,0.15,2.1,0.054000000000000006,8.0,65.0,0.9934,3.9,0.56,13.1,4
48 | 7.7,0.935,0.43,2.2,0.114,22.0,114.0,0.997,3.25,0.73,9.2,5
49 | 8.7,0.29,0.52,1.6,0.113,12.0,37.0,0.9969,3.25,0.58,9.5,5
50 | 6.4,0.4,0.23,1.6,0.066,5.0,12.0,0.9958,3.34,0.56,9.2,5
51 | 5.6,0.31,0.37,1.4,0.07400000000000001,12.0,96.0,0.9954,3.32,0.58,9.2,5
52 | 8.8,0.66,0.26,1.7,0.07400000000000001,4.0,23.0,0.9971,3.15,0.74,9.2,5
53 | 6.6,0.52,0.04,2.2,0.069,8.0,15.0,0.9956,3.4,0.63,9.4,6
54 | 6.6,0.5,0.04,2.1,0.068,6.0,14.0,0.9955,3.39,0.64,9.4,6
55 | 8.6,0.38,0.36,3.0,0.081,30.0,119.0,0.997,3.2,0.56,9.4,5
56 | 7.6,0.51,0.15,2.8,0.11,33.0,73.0,0.9955,3.17,0.63,10.2,6
57 | 7.7,0.62,0.04,3.8,0.084,25.0,45.0,0.9978,3.34,0.53,9.5,5
58 | 10.2,0.42,0.57,3.4,0.07,4.0,10.0,0.9971,3.04,0.63,9.6,5
59 | 7.5,0.63,0.12,5.1,0.111,50.0,110.0,0.9983,3.26,0.77,9.4,5
60 | 7.8,0.59,0.18,2.3,0.076,17.0,54.0,0.9975,3.43,0.59,10.0,5
61 | 7.3,0.39,0.31,2.4,0.07400000000000001,9.0,46.0,0.9962,3.41,0.54,9.4,6
62 | 8.8,0.4,0.4,2.2,0.079,19.0,52.0,0.998,3.44,0.64,9.2,5
63 | 7.7,0.69,0.49,1.8,0.115,20.0,112.0,0.9968,3.21,0.71,9.3,5
64 | 7.5,0.52,0.16,1.9,0.085,12.0,35.0,0.9968,3.38,0.62,9.5,7
65 | 7.0,0.735,0.05,2.0,0.081,13.0,54.0,0.9966,3.39,0.57,9.8,5
66 | 7.2,0.725,0.05,4.65,0.086,4.0,11.0,0.9962,3.41,0.39,10.9,5
67 | 7.2,0.725,0.05,4.65,0.086,4.0,11.0,0.9962,3.41,0.39,10.9,5
68 | 7.5,0.52,0.11,1.5,0.079,11.0,39.0,0.9968,3.42,0.58,9.6,5
69 | 6.6,0.705,0.07,1.6,0.076,6.0,15.0,0.9962,3.44,0.58,10.7,5
70 | 9.3,0.32,0.57,2.0,0.07400000000000001,27.0,65.0,0.9969,3.28,0.79,10.7,5
71 | 8.0,0.705,0.05,1.9,0.07400000000000001,8.0,19.0,0.9962,3.34,0.95,10.5,6
72 | 7.7,0.63,0.08,1.9,0.076,15.0,27.0,0.9967,3.32,0.54,9.5,6
73 | 7.7,0.67,0.23,2.1,0.08800000000000001,17.0,96.0,0.9962,3.32,0.48,9.5,5
74 | 7.7,0.69,0.22,1.9,0.084,18.0,94.0,0.9961,3.31,0.48,9.5,5
75 | 8.3,0.675,0.26,2.1,0.084,11.0,43.0,0.9976,3.31,0.53,9.2,4
76 | 9.7,0.32,0.54,2.5,0.094,28.0,83.0,0.9984,3.28,0.82,9.6,5
77 | 8.8,0.41,0.64,2.2,0.09300000000000001,9.0,42.0,0.9986,3.54,0.66,10.5,5
78 | 8.8,0.41,0.64,2.2,0.09300000000000001,9.0,42.0,0.9986,3.54,0.66,10.5,5
79 | 6.8,0.785,0.0,2.4,0.10400000000000001,14.0,30.0,0.9966,3.52,0.55,10.7,6
80 | 6.7,0.75,0.12,2.0,0.086,12.0,80.0,0.9958,3.38,0.52,10.1,5
81 | 8.3,0.625,0.2,1.5,0.08,27.0,119.0,0.9972,3.16,1.12,9.1,4
82 | 6.2,0.45,0.2,1.6,0.069,3.0,15.0,0.9958,3.41,0.56,9.2,5
83 | 7.8,0.43,0.7,1.9,0.46399999999999997,22.0,67.0,0.9974,3.13,1.28,9.4,5
84 | 7.4,0.5,0.47,2.0,0.086,21.0,73.0,0.997,3.36,0.57,9.1,5
85 | 7.3,0.67,0.26,1.8,0.401,16.0,51.0,0.9969,3.16,1.14,9.4,5
86 | 6.3,0.3,0.48,1.8,0.069,18.0,61.0,0.9959,3.44,0.78,10.3,6
87 | 6.9,0.55,0.15,2.2,0.076,19.0,40.0,0.9961,3.41,0.59,10.1,5
88 | 8.6,0.49,0.28,1.9,0.11,20.0,136.0,0.9972,2.93,1.95,9.9,6
89 | 7.7,0.49,0.26,1.9,0.062,9.0,31.0,0.9966,3.39,0.64,9.6,5
90 | 9.3,0.39,0.44,2.1,0.107,34.0,125.0,0.9978,3.14,1.22,9.5,5
91 | 7.0,0.62,0.08,1.8,0.076,8.0,24.0,0.9978,3.48,0.53,9.0,5
92 | 7.9,0.52,0.26,1.9,0.079,42.0,140.0,0.9964,3.23,0.54,9.5,5
93 | 8.6,0.49,0.28,1.9,0.11,20.0,136.0,0.9972,2.93,1.95,9.9,6
94 | 8.6,0.49,0.29,2.0,0.11,19.0,133.0,0.9972,2.93,1.98,9.8,5
95 | 7.7,0.49,0.26,1.9,0.062,9.0,31.0,0.9966,3.39,0.64,9.6,5
96 | 5.0,1.02,0.04,1.4,0.045,41.0,85.0,0.9938,3.75,0.48,10.5,4
97 | 4.7,0.6,0.17,2.3,0.057999999999999996,17.0,106.0,0.9932,3.85,0.6,12.9,6
98 | 6.8,0.775,0.0,3.0,0.102,8.0,23.0,0.9965,3.45,0.56,10.7,5
99 | 7.0,0.5,0.25,2.0,0.07,3.0,22.0,0.9963,3.25,0.63,9.2,5
100 | 7.6,0.9,0.06,2.5,0.079,5.0,10.0,0.9967,3.39,0.56,9.8,5
101 | 8.1,0.545,0.18,1.9,0.08,13.0,35.0,0.9972,3.3,0.59,9.0,6
102 | 8.3,0.61,0.3,2.1,0.084,11.0,50.0,0.9972,3.4,0.61,10.2,6
103 | 7.8,0.5,0.3,1.9,0.075,8.0,22.0,0.9959,3.31,0.56,10.4,6
104 | 8.1,0.545,0.18,1.9,0.08,13.0,35.0,0.9972,3.3,0.59,9.0,6
105 | 8.1,0.575,0.22,2.1,0.077,12.0,65.0,0.9967,3.29,0.51,9.2,5
106 | 7.2,0.49,0.24,2.2,0.07,5.0,36.0,0.996,3.33,0.48,9.4,5
107 | 8.1,0.575,0.22,2.1,0.077,12.0,65.0,0.9967,3.29,0.51,9.2,5
108 | 7.8,0.41,0.68,1.7,0.467,18.0,69.0,0.9973,3.08,1.31,9.3,5
109 | 6.2,0.63,0.31,1.7,0.08800000000000001,15.0,64.0,0.9969,3.46,0.79,9.3,5
110 | 8.0,0.33,0.53,2.5,0.091,18.0,80.0,0.9976,3.37,0.8,9.6,6
111 | 8.1,0.785,0.52,2.0,0.122,37.0,153.0,0.9969,3.21,0.69,9.3,5
112 | 7.8,0.56,0.19,1.8,0.10400000000000001,12.0,47.0,0.9964,3.19,0.93,9.5,5
113 | 8.4,0.62,0.09,2.2,0.084,11.0,108.0,0.9964,3.15,0.66,9.8,5
114 | 8.4,0.6,0.1,2.2,0.085,14.0,111.0,0.9964,3.15,0.66,9.8,5
115 | 10.1,0.31,0.44,2.3,0.08,22.0,46.0,0.9988,3.32,0.67,9.7,6
116 | 7.8,0.56,0.19,1.8,0.10400000000000001,12.0,47.0,0.9964,3.19,0.93,9.5,5
117 | 9.4,0.4,0.31,2.2,0.09,13.0,62.0,0.9966,3.07,0.63,10.5,6
118 | 8.3,0.54,0.28,1.9,0.077,11.0,40.0,0.9978,3.39,0.61,10.0,6
119 | 7.8,0.56,0.12,2.0,0.08199999999999999,7.0,28.0,0.997,3.37,0.5,9.4,6
120 | 8.8,0.55,0.04,2.2,0.11900000000000001,14.0,56.0,0.9962,3.21,0.6,10.9,6
121 | 7.0,0.69,0.08,1.8,0.09699999999999999,22.0,89.0,0.9959,3.34,0.54,9.2,6
122 | 7.3,1.07,0.09,1.7,0.17800000000000002,10.0,89.0,0.9962,3.3,0.57,9.0,5
123 | 8.8,0.55,0.04,2.2,0.11900000000000001,14.0,56.0,0.9962,3.21,0.6,10.9,6
124 | 7.3,0.695,0.0,2.5,0.075,3.0,13.0,0.998,3.49,0.52,9.2,5
125 | 8.0,0.71,0.0,2.6,0.08,11.0,34.0,0.9976,3.44,0.53,9.5,5
126 | 7.8,0.5,0.17,1.6,0.08199999999999999,21.0,102.0,0.996,3.39,0.48,9.5,5
127 | 9.0,0.62,0.04,1.9,0.146,27.0,90.0,0.9984,3.16,0.7,9.4,5
128 | 8.2,1.33,0.0,1.7,0.081,3.0,12.0,0.9964,3.53,0.49,10.9,5
129 | 8.1,1.33,0.0,1.8,0.08199999999999999,3.0,12.0,0.9964,3.54,0.48,10.9,5
130 | 8.0,0.59,0.16,1.8,0.065,3.0,16.0,0.9962,3.42,0.92,10.5,7
131 | 6.1,0.38,0.15,1.8,0.07200000000000001,6.0,19.0,0.9955,3.42,0.57,9.4,5
132 | 8.0,0.745,0.56,2.0,0.11800000000000001,30.0,134.0,0.9968,3.24,0.66,9.4,5
133 | 5.6,0.5,0.09,2.3,0.049,17.0,99.0,0.9937,3.63,0.63,13.0,5
134 | 5.6,0.5,0.09,2.3,0.049,17.0,99.0,0.9937,3.63,0.63,13.0,5
135 | 6.6,0.5,0.01,1.5,0.06,17.0,26.0,0.9952,3.4,0.58,9.8,6
136 | 7.9,1.04,0.05,2.2,0.084,13.0,29.0,0.9959,3.22,0.55,9.9,6
137 | 8.4,0.745,0.11,1.9,0.09,16.0,63.0,0.9965,3.19,0.82,9.6,5
138 | 8.3,0.715,0.15,1.8,0.08900000000000001,10.0,52.0,0.9968,3.23,0.77,9.5,5
139 | 7.2,0.415,0.36,2.0,0.081,13.0,45.0,0.9972,3.48,0.64,9.2,5
140 | 7.8,0.56,0.19,2.1,0.081,15.0,105.0,0.9962,3.33,0.54,9.5,5
141 | 7.8,0.56,0.19,2.0,0.081,17.0,108.0,0.9962,3.32,0.54,9.5,5
142 | 8.4,0.745,0.11,1.9,0.09,16.0,63.0,0.9965,3.19,0.82,9.6,5
143 | 8.3,0.715,0.15,1.8,0.08900000000000001,10.0,52.0,0.9968,3.23,0.77,9.5,5
144 | 5.2,0.34,0.0,1.8,0.05,27.0,63.0,0.9916,3.68,0.79,14.0,6
145 | 6.3,0.39,0.08,1.7,0.066,3.0,20.0,0.9954,3.34,0.58,9.4,5
146 | 5.2,0.34,0.0,1.8,0.05,27.0,63.0,0.9916,3.68,0.79,14.0,6
147 | 8.1,0.67,0.55,1.8,0.11699999999999999,32.0,141.0,0.9968,3.17,0.62,9.4,5
148 | 5.8,0.68,0.02,1.8,0.087,21.0,94.0,0.9944,3.54,0.52,10.0,5
149 | 7.6,0.49,0.26,1.6,0.23600000000000002,10.0,88.0,0.9968,3.11,0.8,9.3,5
150 | 6.9,0.49,0.1,2.3,0.07400000000000001,12.0,30.0,0.9959,3.42,0.58,10.2,6
151 | 8.2,0.4,0.44,2.8,0.08900000000000001,11.0,43.0,0.9975,3.53,0.61,10.5,6
152 | 7.3,0.33,0.47,2.1,0.077,5.0,11.0,0.9958,3.33,0.53,10.3,6
153 | 9.2,0.52,1.0,3.4,0.61,32.0,69.0,0.9996,2.74,2.0,9.4,4
154 | 7.5,0.6,0.03,1.8,0.095,25.0,99.0,0.995,3.35,0.54,10.1,5
155 | 7.5,0.6,0.03,1.8,0.095,25.0,99.0,0.995,3.35,0.54,10.1,5
156 | 7.1,0.43,0.42,5.5,0.07,29.0,129.0,0.9973,3.42,0.72,10.5,5
157 | 7.1,0.43,0.42,5.5,0.071,28.0,128.0,0.9973,3.42,0.71,10.5,5
158 | 7.1,0.43,0.42,5.5,0.07,29.0,129.0,0.9973,3.42,0.72,10.5,5
159 | 7.1,0.43,0.42,5.5,0.071,28.0,128.0,0.9973,3.42,0.71,10.5,5
160 | 7.1,0.68,0.0,2.2,0.073,12.0,22.0,0.9969,3.48,0.5,9.3,5
161 | 6.8,0.6,0.18,1.9,0.079,18.0,86.0,0.9968,3.59,0.57,9.3,6
162 | 7.6,0.95,0.03,2.0,0.09,7.0,20.0,0.9959,3.2,0.56,9.6,5
163 | 7.6,0.68,0.02,1.3,0.07200000000000001,9.0,20.0,0.9965,3.17,1.08,9.2,4
164 | 7.8,0.53,0.04,1.7,0.076,17.0,31.0,0.9964,3.33,0.56,10.0,6
165 | 7.4,0.6,0.26,7.3,0.07,36.0,121.0,0.9982,3.37,0.49,9.4,5
166 | 7.3,0.59,0.26,7.2,0.07,35.0,121.0,0.9981,3.37,0.49,9.4,5
167 | 7.8,0.63,0.48,1.7,0.1,14.0,96.0,0.9961,3.19,0.62,9.5,5
168 | 6.8,0.64,0.1,2.1,0.085,18.0,101.0,0.9956,3.34,0.52,10.2,5
169 | 7.3,0.55,0.03,1.6,0.07200000000000001,17.0,42.0,0.9956,3.37,0.48,9.0,4
170 | 6.8,0.63,0.07,2.1,0.08900000000000001,11.0,44.0,0.9953,3.47,0.55,10.4,6
171 | 7.5,0.705,0.24,1.8,0.36,15.0,63.0,0.9964,3.0,1.59,9.5,5
172 | 7.9,0.885,0.03,1.8,0.057999999999999996,4.0,8.0,0.9972,3.36,0.33,9.1,4
173 | 8.0,0.42,0.17,2.0,0.073,6.0,18.0,0.9972,3.29,0.61,9.2,6
174 | 8.0,0.42,0.17,2.0,0.073,6.0,18.0,0.9972,3.29,0.61,9.2,6
175 | 7.4,0.62,0.05,1.9,0.068,24.0,42.0,0.9961,3.42,0.57,11.5,6
176 | 7.3,0.38,0.21,2.0,0.08,7.0,35.0,0.9961,3.33,0.47,9.5,5
177 | 6.9,0.5,0.04,1.5,0.085,19.0,49.0,0.9958,3.35,0.78,9.5,5
178 | 7.3,0.38,0.21,2.0,0.08,7.0,35.0,0.9961,3.33,0.47,9.5,5
179 | 7.5,0.52,0.42,2.3,0.087,8.0,38.0,0.9972,3.58,0.61,10.5,6
180 | 7.0,0.805,0.0,2.5,0.068,7.0,20.0,0.9969,3.48,0.56,9.6,5
181 | 8.8,0.61,0.14,2.4,0.067,10.0,42.0,0.9969,3.19,0.59,9.5,5
182 | 8.8,0.61,0.14,2.4,0.067,10.0,42.0,0.9969,3.19,0.59,9.5,5
183 | 8.9,0.61,0.49,2.0,0.27,23.0,110.0,0.9972,3.12,1.02,9.3,5
184 | 7.2,0.73,0.02,2.5,0.076,16.0,42.0,0.9972,3.44,0.52,9.3,5
185 | 6.8,0.61,0.2,1.8,0.077,11.0,65.0,0.9971,3.54,0.58,9.3,5
186 | 6.7,0.62,0.21,1.9,0.079,8.0,62.0,0.997,3.52,0.58,9.3,6
187 | 8.9,0.31,0.57,2.0,0.111,26.0,85.0,0.9971,3.26,0.53,9.7,5
188 | 7.4,0.39,0.48,2.0,0.08199999999999999,14.0,67.0,0.9972,3.34,0.55,9.2,5
189 | 7.7,0.705,0.1,2.6,0.084,9.0,26.0,0.9976,3.39,0.49,9.7,5
190 | 7.9,0.5,0.33,2.0,0.084,15.0,143.0,0.9968,3.2,0.55,9.5,5
191 | 7.9,0.49,0.32,1.9,0.08199999999999999,17.0,144.0,0.9968,3.2,0.55,9.5,5
192 | 8.2,0.5,0.35,2.9,0.077,21.0,127.0,0.9976,3.23,0.62,9.4,5
193 | 6.4,0.37,0.25,1.9,0.07400000000000001,21.0,49.0,0.9974,3.57,0.62,9.8,6
194 | 6.8,0.63,0.12,3.8,0.099,16.0,126.0,0.9969,3.28,0.61,9.5,5
195 | 7.6,0.55,0.21,2.2,0.071,7.0,28.0,0.9964,3.28,0.55,9.7,5
196 | 7.6,0.55,0.21,2.2,0.071,7.0,28.0,0.9964,3.28,0.55,9.7,5
197 | 7.8,0.59,0.33,2.0,0.07400000000000001,24.0,120.0,0.9968,3.25,0.54,9.4,5
198 | 7.3,0.58,0.3,2.4,0.07400000000000001,15.0,55.0,0.9968,3.46,0.59,10.2,5
199 | 11.5,0.3,0.6,2.0,0.067,12.0,27.0,0.9981,3.11,0.97,10.1,6
200 | 5.4,0.835,0.08,1.2,0.046,13.0,93.0,0.9924,3.57,0.85,13.0,7
201 | 6.9,1.09,0.06,2.1,0.061,12.0,31.0,0.9948,3.51,0.43,11.4,4
202 | 9.6,0.32,0.47,1.4,0.055999999999999994,9.0,24.0,0.99695,3.22,0.82,10.3,7
203 | 8.8,0.37,0.48,2.1,0.09699999999999999,39.0,145.0,0.9975,3.04,1.03,9.3,5
204 | 6.8,0.5,0.11,1.5,0.075,16.0,49.0,0.99545,3.36,0.79,9.5,5
205 | 7.0,0.42,0.35,1.6,0.08800000000000001,16.0,39.0,0.9961,3.34,0.55,9.2,5
206 | 7.0,0.43,0.36,1.6,0.08900000000000001,14.0,37.0,0.99615,3.34,0.56,9.2,6
207 | 12.8,0.3,0.74,2.6,0.095,9.0,28.0,0.9994,3.2,0.77,10.8,7
208 | 12.8,0.3,0.74,2.6,0.095,9.0,28.0,0.9994,3.2,0.77,10.8,7
209 | 7.8,0.57,0.31,1.8,0.069,26.0,120.0,0.99625,3.29,0.53,9.3,5
210 | 7.8,0.44,0.28,2.7,0.1,18.0,95.0,0.9966,3.22,0.67,9.4,5
211 | 11.0,0.3,0.58,2.1,0.054000000000000006,7.0,19.0,0.998,3.31,0.88,10.5,7
212 | 9.7,0.53,0.6,2.0,0.039,5.0,19.0,0.99585,3.3,0.86,12.4,6
213 | 8.0,0.725,0.24,2.8,0.083,10.0,62.0,0.99685,3.35,0.56,10.0,6
214 | 11.6,0.44,0.64,2.1,0.059000000000000004,5.0,15.0,0.998,3.21,0.67,10.2,6
215 | 8.2,0.57,0.26,2.2,0.06,28.0,65.0,0.9959,3.3,0.43,10.1,5
216 | 7.8,0.735,0.08,2.4,0.092,10.0,41.0,0.9974,3.24,0.71,9.8,6
217 | 7.0,0.49,0.49,5.6,0.06,26.0,121.0,0.9974,3.34,0.76,10.5,5
218 | 8.7,0.625,0.16,2.0,0.10099999999999999,13.0,49.0,0.9962,3.14,0.57,11.0,5
219 | 8.1,0.725,0.22,2.2,0.07200000000000001,11.0,41.0,0.9967,3.36,0.55,9.1,5
220 | 7.5,0.49,0.19,1.9,0.076,10.0,44.0,0.9957,3.39,0.54,9.7,5
221 | 7.8,0.53,0.33,2.4,0.08,24.0,144.0,0.99655,3.3,0.6,9.5,5
222 | 7.8,0.34,0.37,2.0,0.08199999999999999,24.0,58.0,0.9964,3.34,0.59,9.4,6
223 | 7.4,0.53,0.26,2.0,0.10099999999999999,16.0,72.0,0.9957,3.15,0.57,9.4,5
224 | 6.8,0.61,0.04,1.5,0.057,5.0,10.0,0.99525,3.42,0.6,9.5,5
225 | 8.6,0.645,0.25,2.0,0.083,8.0,28.0,0.99815,3.28,0.6,10.0,6
226 | 8.4,0.635,0.36,2.0,0.08900000000000001,15.0,55.0,0.99745,3.31,0.57,10.4,4
227 | 7.7,0.43,0.25,2.6,0.073,29.0,63.0,0.99615,3.37,0.58,10.5,6
228 | 8.9,0.59,0.5,2.0,0.337,27.0,81.0,0.9964,3.04,1.61,9.5,6
229 | 9.0,0.82,0.14,2.6,0.08900000000000001,9.0,23.0,0.9984,3.39,0.63,9.8,5
230 | 7.7,0.43,0.25,2.6,0.073,29.0,63.0,0.99615,3.37,0.58,10.5,6
231 | 6.9,0.52,0.25,2.6,0.081,10.0,37.0,0.99685,3.46,0.5,11.0,5
232 | 5.2,0.48,0.04,1.6,0.054000000000000006,19.0,106.0,0.9927,3.54,0.62,12.2,7
233 | 8.0,0.38,0.06,1.8,0.078,12.0,49.0,0.99625,3.37,0.52,9.9,6
234 | 8.5,0.37,0.2,2.8,0.09,18.0,58.0,0.998,3.34,0.7,9.6,6
235 | 6.9,0.52,0.25,2.6,0.081,10.0,37.0,0.99685,3.46,0.5,11.0,5
236 | 8.2,1.0,0.09,2.3,0.065,7.0,37.0,0.99685,3.32,0.55,9.0,6
237 | 7.2,0.63,0.0,1.9,0.09699999999999999,14.0,38.0,0.99675,3.37,0.58,9.0,6
238 | 7.2,0.63,0.0,1.9,0.09699999999999999,14.0,38.0,0.99675,3.37,0.58,9.0,6
239 | 7.2,0.645,0.0,1.9,0.09699999999999999,15.0,39.0,0.99675,3.37,0.58,9.2,6
240 | 7.2,0.63,0.0,1.9,0.09699999999999999,14.0,38.0,0.99675,3.37,0.58,9.0,6
241 | 8.2,1.0,0.09,2.3,0.065,7.0,37.0,0.99685,3.32,0.55,9.0,6
242 | 8.9,0.635,0.37,1.7,0.263,5.0,62.0,0.9971,3.0,1.09,9.3,5
243 | 12.0,0.38,0.56,2.1,0.09300000000000001,6.0,24.0,0.99925,3.14,0.71,10.9,6
244 | 7.7,0.58,0.1,1.8,0.102,28.0,109.0,0.99565,3.08,0.49,9.8,6
245 | 15.0,0.21,0.44,2.2,0.075,10.0,24.0,1.00005,3.07,0.84,9.2,7
246 | 15.0,0.21,0.44,2.2,0.075,10.0,24.0,1.00005,3.07,0.84,9.2,7
247 | 7.3,0.66,0.0,2.0,0.084,6.0,23.0,0.9983,3.61,0.96,9.9,6
248 | 7.1,0.68,0.07,1.9,0.075,16.0,51.0,0.99685,3.38,0.52,9.5,5
249 | 8.2,0.6,0.17,2.3,0.07200000000000001,11.0,73.0,0.9963,3.2,0.45,9.3,5
250 | 7.7,0.53,0.06,1.7,0.07400000000000001,9.0,39.0,0.99615,3.35,0.48,9.8,6
251 | 7.3,0.66,0.0,2.0,0.084,6.0,23.0,0.9983,3.61,0.96,9.9,6
252 | 10.8,0.32,0.44,1.6,0.063,16.0,37.0,0.9985,3.22,0.78,10.0,6
253 | 7.1,0.6,0.0,1.8,0.07400000000000001,16.0,34.0,0.9972,3.47,0.7,9.9,6
254 | 11.1,0.35,0.48,3.1,0.09,5.0,21.0,0.9986,3.17,0.53,10.5,5
255 | 7.7,0.775,0.42,1.9,0.092,8.0,86.0,0.9959,3.23,0.59,9.5,5
256 | 7.1,0.6,0.0,1.8,0.07400000000000001,16.0,34.0,0.9972,3.47,0.7,9.9,6
257 | 8.0,0.57,0.23,3.2,0.073,17.0,119.0,0.99675,3.26,0.57,9.3,5
258 | 9.4,0.34,0.37,2.2,0.075,5.0,13.0,0.998,3.22,0.62,9.2,5
259 | 6.6,0.695,0.0,2.1,0.075,12.0,56.0,0.9968,3.49,0.67,9.2,5
260 | 7.7,0.41,0.76,1.8,0.611,8.0,45.0,0.9968,3.06,1.26,9.4,5
261 | 10.0,0.31,0.47,2.6,0.085,14.0,33.0,0.99965,3.36,0.8,10.5,7
262 | 7.9,0.33,0.23,1.7,0.077,18.0,45.0,0.99625,3.29,0.65,9.3,5
263 | 7.0,0.975,0.04,2.0,0.087,12.0,67.0,0.99565,3.35,0.6,9.4,4
264 | 8.0,0.52,0.03,1.7,0.07,10.0,35.0,0.99575,3.34,0.57,10.0,5
265 | 7.9,0.37,0.23,1.8,0.077,23.0,49.0,0.9963,3.28,0.67,9.3,5
266 | 12.5,0.56,0.49,2.4,0.064,5.0,27.0,0.9999,3.08,0.87,10.9,5
267 | 11.8,0.26,0.52,1.8,0.071,6.0,10.0,0.9968,3.2,0.72,10.2,7
268 | 8.1,0.87,0.0,3.3,0.096,26.0,61.0,1.00025,3.6,0.72,9.8,4
269 | 7.9,0.35,0.46,3.6,0.078,15.0,37.0,0.9973,3.35,0.86,12.8,8
270 | 6.9,0.54,0.04,3.0,0.077,7.0,27.0,0.9987,3.69,0.91,9.4,6
271 | 11.5,0.18,0.51,4.0,0.10400000000000001,4.0,23.0,0.9996,3.28,0.97,10.1,6
272 | 7.9,0.545,0.06,4.0,0.087,27.0,61.0,0.9965,3.36,0.67,10.7,6
273 | 11.5,0.18,0.51,4.0,0.10400000000000001,4.0,23.0,0.9996,3.28,0.97,10.1,6
274 | 10.9,0.37,0.58,4.0,0.071,17.0,65.0,0.99935,3.22,0.78,10.1,5
275 | 8.4,0.715,0.2,2.4,0.076,10.0,38.0,0.99735,3.31,0.64,9.4,5
276 | 7.5,0.65,0.18,7.0,0.08800000000000001,27.0,94.0,0.99915,3.38,0.77,9.4,5
277 | 7.9,0.545,0.06,4.0,0.087,27.0,61.0,0.9965,3.36,0.67,10.7,6
278 | 6.9,0.54,0.04,3.0,0.077,7.0,27.0,0.9987,3.69,0.91,9.4,6
279 | 11.5,0.18,0.51,4.0,0.10400000000000001,4.0,23.0,0.9996,3.28,0.97,10.1,6
280 | 10.3,0.32,0.45,6.4,0.073,5.0,13.0,0.9976,3.23,0.82,12.6,8
281 | 8.9,0.4,0.32,5.6,0.087,10.0,47.0,0.9991,3.38,0.77,10.5,7
282 | 11.4,0.26,0.44,3.6,0.071,6.0,19.0,0.9986,3.12,0.82,9.3,6
283 | 7.7,0.27,0.68,3.5,0.358,5.0,10.0,0.9972,3.25,1.08,9.9,7
284 | 7.6,0.52,0.12,3.0,0.067,12.0,53.0,0.9971,3.36,0.57,9.1,5
285 | 8.9,0.4,0.32,5.6,0.087,10.0,47.0,0.9991,3.38,0.77,10.5,7
286 | 9.9,0.59,0.07,3.4,0.102,32.0,71.0,1.00015,3.31,0.71,9.8,5
287 | 9.9,0.59,0.07,3.4,0.102,32.0,71.0,1.00015,3.31,0.71,9.8,5
288 | 12.0,0.45,0.55,2.0,0.073,25.0,49.0,0.9997,3.1,0.76,10.3,6
289 | 7.5,0.4,0.12,3.0,0.092,29.0,53.0,0.9967,3.37,0.7,10.3,6
290 | 8.7,0.52,0.09,2.5,0.091,20.0,49.0,0.9976,3.34,0.86,10.6,7
291 | 11.6,0.42,0.53,3.3,0.105,33.0,98.0,1.001,3.2,0.95,9.2,5
292 | 8.7,0.52,0.09,2.5,0.091,20.0,49.0,0.9976,3.34,0.86,10.6,7
293 | 11.0,0.2,0.48,2.0,0.34299999999999997,6.0,18.0,0.9979,3.3,0.71,10.5,5
294 | 10.4,0.55,0.23,2.7,0.091,18.0,48.0,0.9994,3.22,0.64,10.3,6
295 | 6.9,0.36,0.25,2.4,0.098,5.0,16.0,0.9964,3.41,0.6,10.1,6
296 | 13.3,0.34,0.52,3.2,0.094,17.0,53.0,1.0014,3.05,0.81,9.5,6
297 | 10.8,0.5,0.46,2.5,0.073,5.0,27.0,1.0001,3.05,0.64,9.5,5
298 | 10.6,0.83,0.37,2.6,0.086,26.0,70.0,0.9981,3.16,0.52,9.9,5
299 | 7.1,0.63,0.06,2.0,0.083,8.0,29.0,0.99855,3.67,0.73,9.6,5
300 | 7.2,0.65,0.02,2.3,0.094,5.0,31.0,0.9993,3.67,0.8,9.7,5
301 | 6.9,0.67,0.06,2.1,0.08,8.0,33.0,0.99845,3.68,0.71,9.6,5
302 | 7.5,0.53,0.06,2.6,0.086,20.0,44.0,0.9965,3.38,0.59,10.7,6
303 | 11.1,0.18,0.48,1.5,0.068,7.0,15.0,0.9973,3.22,0.64,10.1,6
304 | 8.3,0.705,0.12,2.6,0.092,12.0,28.0,0.9994,3.51,0.72,10.0,5
305 | 7.4,0.67,0.12,1.6,0.18600000000000003,5.0,21.0,0.996,3.39,0.54,9.5,5
306 | 8.4,0.65,0.6,2.1,0.11199999999999999,12.0,90.0,0.9973,3.2,0.52,9.2,5
307 | 10.3,0.53,0.48,2.5,0.063,6.0,25.0,0.9998,3.12,0.59,9.3,6
308 | 7.6,0.62,0.32,2.2,0.08199999999999999,7.0,54.0,0.9966,3.36,0.52,9.4,5
309 | 10.3,0.41,0.42,2.4,0.213,6.0,14.0,0.9994,3.19,0.62,9.5,6
310 | 10.3,0.43,0.44,2.4,0.214,5.0,12.0,0.9994,3.19,0.63,9.5,6
311 | 7.4,0.29,0.38,1.7,0.062,9.0,30.0,0.9968,3.41,0.53,9.5,6
312 | 10.3,0.53,0.48,2.5,0.063,6.0,25.0,0.9998,3.12,0.59,9.3,6
313 | 7.9,0.53,0.24,2.0,0.07200000000000001,15.0,105.0,0.996,3.27,0.54,9.4,6
314 | 9.0,0.46,0.31,2.8,0.09300000000000001,19.0,98.0,0.99815,3.32,0.63,9.5,6
315 | 8.6,0.47,0.3,3.0,0.076,30.0,135.0,0.9976,3.3,0.53,9.4,5
316 | 7.4,0.36,0.29,2.6,0.087,26.0,72.0,0.99645,3.39,0.68,11.0,5
317 | 7.1,0.35,0.29,2.5,0.096,20.0,53.0,0.9962,3.42,0.65,11.0,6
318 | 9.6,0.56,0.23,3.4,0.102,37.0,92.0,0.9996,3.3,0.65,10.1,5
319 | 9.6,0.77,0.12,2.9,0.08199999999999999,30.0,74.0,0.99865,3.3,0.64,10.4,6
320 | 9.8,0.66,0.39,3.2,0.083,21.0,59.0,0.9989,3.37,0.71,11.5,7
321 | 9.6,0.77,0.12,2.9,0.08199999999999999,30.0,74.0,0.99865,3.3,0.64,10.4,6
322 | 9.8,0.66,0.39,3.2,0.083,21.0,59.0,0.9989,3.37,0.71,11.5,7
323 | 9.3,0.61,0.26,3.4,0.09,25.0,87.0,0.99975,3.24,0.62,9.7,5
324 | 7.8,0.62,0.05,2.3,0.079,6.0,18.0,0.99735,3.29,0.63,9.3,5
325 | 10.3,0.59,0.42,2.8,0.09,35.0,73.0,0.9990000000000001,3.28,0.7,9.5,6
326 | 10.0,0.49,0.2,11.0,0.071,13.0,50.0,1.0015,3.16,0.69,9.2,6
327 | 10.0,0.49,0.2,11.0,0.071,13.0,50.0,1.0015,3.16,0.69,9.2,6
328 | 11.6,0.53,0.66,3.65,0.121,6.0,14.0,0.9978,3.05,0.74,11.5,7
329 | 10.3,0.44,0.5,4.5,0.107,5.0,13.0,0.998,3.28,0.83,11.5,5
330 | 13.4,0.27,0.62,2.6,0.08199999999999999,6.0,21.0,1.0002,3.16,0.67,9.7,6
331 | 10.7,0.46,0.39,2.0,0.061,7.0,15.0,0.9981,3.18,0.62,9.5,5
332 | 10.2,0.36,0.64,2.9,0.122,10.0,41.0,0.998,3.23,0.66,12.5,6
333 | 10.2,0.36,0.64,2.9,0.122,10.0,41.0,0.998,3.23,0.66,12.5,6
334 | 8.0,0.58,0.28,3.2,0.066,21.0,114.0,0.9973,3.22,0.54,9.4,6
335 | 8.4,0.56,0.08,2.1,0.105,16.0,44.0,0.9958,3.13,0.52,11.0,5
336 | 7.9,0.65,0.01,2.5,0.078,17.0,38.0,0.9963,3.34,0.74,11.7,7
337 | 11.9,0.695,0.53,3.4,0.128,7.0,21.0,0.9992,3.17,0.84,12.2,7
338 | 8.9,0.43,0.45,1.9,0.052000000000000005,6.0,16.0,0.9948,3.35,0.7,12.5,6
339 | 7.8,0.43,0.32,2.8,0.08,29.0,58.0,0.9974,3.31,0.64,10.3,5
340 | 12.4,0.49,0.58,3.0,0.10300000000000001,28.0,99.0,1.0008,3.16,1.0,11.5,6
341 | 12.5,0.28,0.54,2.3,0.08199999999999999,12.0,29.0,0.9997,3.11,1.36,9.8,7
342 | 12.2,0.34,0.5,2.4,0.066,10.0,21.0,1.0,3.12,1.18,9.2,6
343 | 10.6,0.42,0.48,2.7,0.065,5.0,18.0,0.9972,3.21,0.87,11.3,6
344 | 10.9,0.39,0.47,1.8,0.11800000000000001,6.0,14.0,0.9982,3.3,0.75,9.8,6
345 | 10.9,0.39,0.47,1.8,0.11800000000000001,6.0,14.0,0.9982,3.3,0.75,9.8,6
346 | 11.9,0.57,0.5,2.6,0.08199999999999999,6.0,32.0,1.0006,3.12,0.78,10.7,6
347 | 7.0,0.685,0.0,1.9,0.067,40.0,63.0,0.9979,3.6,0.81,9.9,5
348 | 6.6,0.815,0.02,2.7,0.07200000000000001,17.0,34.0,0.9955,3.58,0.89,12.3,7
349 | 13.8,0.49,0.67,3.0,0.09300000000000001,6.0,15.0,0.9986,3.02,0.93,12.0,6
350 | 9.6,0.56,0.31,2.8,0.08900000000000001,15.0,46.0,0.9979,3.11,0.92,10.0,6
351 | 9.1,0.785,0.0,2.6,0.09300000000000001,11.0,28.0,0.9994,3.36,0.86,9.4,6
352 | 10.7,0.67,0.22,2.7,0.107,17.0,34.0,1.0004,3.28,0.98,9.9,6
353 | 9.1,0.795,0.0,2.6,0.096,11.0,26.0,0.9994,3.35,0.83,9.4,6
354 | 7.7,0.665,0.0,2.4,0.09,8.0,19.0,0.9974,3.27,0.73,9.3,5
355 | 13.5,0.53,0.79,4.8,0.12,23.0,77.0,1.0018,3.18,0.77,13.0,5
356 | 6.1,0.21,0.4,1.4,0.066,40.5,165.0,0.9912,3.25,0.59,11.9,6
357 | 6.7,0.75,0.01,2.4,0.078,17.0,32.0,0.9955,3.55,0.61,12.8,6
358 | 11.5,0.41,0.52,3.0,0.08,29.0,55.0,1.0001,3.26,0.88,11.0,5
359 | 10.5,0.42,0.66,2.95,0.11599999999999999,12.0,29.0,0.997,3.24,0.75,11.7,7
360 | 11.9,0.43,0.66,3.1,0.109,10.0,23.0,1.0,3.15,0.85,10.4,7
361 | 12.6,0.38,0.66,2.6,0.08800000000000001,10.0,41.0,1.001,3.17,0.68,9.8,6
362 | 8.2,0.7,0.23,2.0,0.099,14.0,81.0,0.9973,3.19,0.7,9.4,5
363 | 8.6,0.45,0.31,2.6,0.086,21.0,50.0,0.9982,3.37,0.91,9.9,6
364 | 11.9,0.58,0.66,2.5,0.07200000000000001,6.0,37.0,0.9992,3.05,0.56,10.0,5
365 | 12.5,0.46,0.63,2.0,0.071,6.0,15.0,0.9988,2.99,0.87,10.2,5
366 | 12.8,0.615,0.66,5.8,0.083,7.0,42.0,1.0022,3.07,0.73,10.0,7
367 | 10.0,0.42,0.5,3.4,0.107,7.0,21.0,0.9979,3.26,0.93,11.8,6
368 | 12.8,0.615,0.66,5.8,0.083,7.0,42.0,1.0022,3.07,0.73,10.0,7
369 | 10.4,0.575,0.61,2.6,0.076,11.0,24.0,1.0,3.16,0.69,9.0,5
370 | 10.3,0.34,0.52,2.8,0.159,15.0,75.0,0.9998,3.18,0.64,9.4,5
371 | 9.4,0.27,0.53,2.4,0.07400000000000001,6.0,18.0,0.9962,3.2,1.13,12.0,7
372 | 6.9,0.765,0.02,2.3,0.063,35.0,63.0,0.9975,3.57,0.78,9.9,5
373 | 7.9,0.24,0.4,1.6,0.055999999999999994,11.0,25.0,0.9967,3.32,0.87,8.7,6
374 | 9.1,0.28,0.48,1.8,0.067,26.0,46.0,0.9967,3.32,1.04,10.6,6
375 | 7.4,0.55,0.22,2.2,0.106,12.0,72.0,0.9959,3.05,0.63,9.2,5
376 | 14.0,0.41,0.63,3.8,0.08900000000000001,6.0,47.0,1.0014,3.01,0.81,10.8,6
377 | 11.5,0.54,0.71,4.4,0.124,6.0,15.0,0.9984,3.01,0.83,11.8,7
378 | 11.5,0.45,0.5,3.0,0.078,19.0,47.0,1.0003,3.26,1.11,11.0,6
379 | 9.4,0.27,0.53,2.4,0.07400000000000001,6.0,18.0,0.9962,3.2,1.13,12.0,7
380 | 11.4,0.625,0.66,6.2,0.08800000000000001,6.0,24.0,0.9988,3.11,0.99,13.3,6
381 | 8.3,0.42,0.38,2.5,0.094,24.0,60.0,0.9979,3.31,0.7,10.8,6
382 | 8.3,0.26,0.42,2.0,0.08,11.0,27.0,0.9974,3.21,0.8,9.4,6
383 | 13.7,0.415,0.68,2.9,0.085,17.0,43.0,1.0014,3.06,0.8,10.0,6
384 | 8.3,0.26,0.42,2.0,0.08,11.0,27.0,0.9974,3.21,0.8,9.4,6
385 | 8.3,0.26,0.42,2.0,0.08,11.0,27.0,0.9974,3.21,0.8,9.4,6
386 | 7.7,0.51,0.28,2.1,0.087,23.0,54.0,0.998,3.42,0.74,9.2,5
387 | 7.4,0.63,0.07,2.4,0.09,11.0,37.0,0.9979,3.43,0.76,9.7,6
388 | 7.8,0.54,0.26,2.0,0.08800000000000001,23.0,48.0,0.9981,3.41,0.74,9.2,6
389 | 8.3,0.66,0.15,1.9,0.079,17.0,42.0,0.9972,3.31,0.54,9.6,6
390 | 7.8,0.46,0.26,1.9,0.08800000000000001,23.0,53.0,0.9981,3.43,0.74,9.2,6
391 | 9.6,0.38,0.31,2.5,0.096,16.0,49.0,0.9982,3.19,0.7,10.0,7
392 | 5.6,0.85,0.05,1.4,0.045,12.0,88.0,0.9924,3.56,0.82,12.9,8
393 | 13.7,0.415,0.68,2.9,0.085,17.0,43.0,1.0014,3.06,0.8,10.0,6
394 | 9.5,0.37,0.52,2.0,0.08199999999999999,6.0,26.0,0.998,3.18,0.51,9.5,5
395 | 8.4,0.665,0.61,2.0,0.11199999999999999,13.0,95.0,0.997,3.16,0.54,9.1,5
396 | 12.7,0.6,0.65,2.3,0.063,6.0,25.0,0.9997,3.03,0.57,9.9,5
397 | 12.0,0.37,0.76,4.2,0.066,7.0,38.0,1.0004,3.22,0.6,13.0,7
398 | 6.6,0.735,0.02,7.9,0.122,68.0,124.0,0.9994,3.47,0.53,9.9,5
399 | 11.5,0.59,0.59,2.6,0.087,13.0,49.0,0.9988,3.18,0.65,11.0,6
400 | 11.5,0.59,0.59,2.6,0.087,13.0,49.0,0.9988,3.18,0.65,11.0,6
401 | 8.7,0.765,0.22,2.3,0.064,9.0,42.0,0.9963,3.1,0.55,9.4,5
402 | 6.6,0.735,0.02,7.9,0.122,68.0,124.0,0.9994,3.47,0.53,9.9,5
403 | 7.7,0.26,0.3,1.7,0.059000000000000004,20.0,38.0,0.9949,3.29,0.47,10.8,6
404 | 12.2,0.48,0.54,2.6,0.085,19.0,64.0,1.0,3.1,0.61,10.5,6
405 | 11.4,0.6,0.49,2.7,0.085,10.0,41.0,0.9994,3.15,0.63,10.5,6
406 | 7.7,0.69,0.05,2.7,0.075,15.0,27.0,0.9974,3.26,0.61,9.1,5
407 | 8.7,0.31,0.46,1.4,0.059000000000000004,11.0,25.0,0.9966,3.36,0.76,10.1,6
408 | 9.8,0.44,0.47,2.5,0.063,9.0,28.0,0.9981,3.24,0.65,10.8,6
409 | 12.0,0.39,0.66,3.0,0.09300000000000001,12.0,30.0,0.9996,3.18,0.63,10.8,7
410 | 10.4,0.34,0.58,3.7,0.174,6.0,16.0,0.997,3.19,0.7,11.3,6
411 | 12.5,0.46,0.49,4.5,0.07,26.0,49.0,0.9981,3.05,0.57,9.6,4
412 | 9.0,0.43,0.34,2.5,0.08,26.0,86.0,0.9987,3.38,0.62,9.5,6
413 | 9.1,0.45,0.35,2.4,0.08,23.0,78.0,0.9987,3.38,0.62,9.5,5
414 | 7.1,0.735,0.16,1.9,0.1,15.0,77.0,0.9966,3.27,0.64,9.3,5
415 | 9.9,0.4,0.53,6.7,0.09699999999999999,6.0,19.0,0.9986,3.27,0.82,11.7,7
416 | 8.8,0.52,0.34,2.7,0.087,24.0,122.0,0.9982,3.26,0.61,9.5,5
417 | 8.6,0.725,0.24,6.6,0.11699999999999999,31.0,134.0,1.0014,3.32,1.07,9.3,5
418 | 10.6,0.48,0.64,2.2,0.111,6.0,20.0,0.997,3.26,0.66,11.7,6
419 | 7.0,0.58,0.12,1.9,0.091,34.0,124.0,0.9956,3.44,0.48,10.5,5
420 | 11.9,0.38,0.51,2.0,0.121,7.0,20.0,0.9996,3.24,0.76,10.4,6
421 | 6.8,0.77,0.0,1.8,0.066,34.0,52.0,0.9976,3.62,0.68,9.9,5
422 | 9.5,0.56,0.33,2.4,0.08900000000000001,35.0,67.0,0.9972,3.28,0.73,11.8,7
423 | 6.6,0.84,0.03,2.3,0.059000000000000004,32.0,48.0,0.9952,3.52,0.56,12.3,7
424 | 7.7,0.96,0.2,2.0,0.047,15.0,60.0,0.9955,3.36,0.44,10.9,5
425 | 10.5,0.24,0.47,2.1,0.066,6.0,24.0,0.9978,3.15,0.9,11.0,7
426 | 7.7,0.96,0.2,2.0,0.047,15.0,60.0,0.9955,3.36,0.44,10.9,5
427 | 6.6,0.84,0.03,2.3,0.059000000000000004,32.0,48.0,0.9952,3.52,0.56,12.3,7
428 | 6.4,0.67,0.08,2.1,0.045,19.0,48.0,0.9949,3.49,0.49,11.4,6
429 | 9.5,0.78,0.22,1.9,0.077,6.0,32.0,0.9988,3.26,0.56,10.6,6
430 | 9.1,0.52,0.33,1.3,0.07,9.0,30.0,0.9978,3.24,0.6,9.3,5
431 | 12.8,0.84,0.63,2.4,0.08800000000000001,13.0,35.0,0.9997,3.1,0.6,10.4,6
432 | 10.5,0.24,0.47,2.1,0.066,6.0,24.0,0.9978,3.15,0.9,11.0,7
433 | 7.8,0.55,0.35,2.2,0.07400000000000001,21.0,66.0,0.9974,3.25,0.56,9.2,5
434 | 11.9,0.37,0.69,2.3,0.078,12.0,24.0,0.9958,3.0,0.65,12.8,6
435 | 12.3,0.39,0.63,2.3,0.091,6.0,18.0,1.0004,3.16,0.49,9.5,5
436 | 10.4,0.41,0.55,3.2,0.076,22.0,54.0,0.9996,3.15,0.89,9.9,6
437 | 12.3,0.39,0.63,2.3,0.091,6.0,18.0,1.0004,3.16,0.49,9.5,5
438 | 8.0,0.67,0.3,2.0,0.06,38.0,62.0,0.9958,3.26,0.56,10.2,6
439 | 11.1,0.45,0.73,3.2,0.066,6.0,22.0,0.9986,3.17,0.66,11.2,6
440 | 10.4,0.41,0.55,3.2,0.076,22.0,54.0,0.9996,3.15,0.89,9.9,6
441 | 7.0,0.62,0.18,1.5,0.062,7.0,50.0,0.9951,3.08,0.6,9.3,5
442 | 12.6,0.31,0.72,2.2,0.07200000000000001,6.0,29.0,0.9987,2.88,0.82,9.8,8
443 | 11.9,0.4,0.65,2.15,0.068,7.0,27.0,0.9988,3.06,0.68,11.3,6
444 | 15.6,0.685,0.76,3.7,0.1,6.0,43.0,1.0032,2.95,0.68,11.2,7
445 | 10.0,0.44,0.49,2.7,0.077,11.0,19.0,0.9963,3.23,0.63,11.6,7
446 | 5.3,0.57,0.01,1.7,0.054000000000000006,5.0,27.0,0.9934,3.57,0.84,12.5,7
447 | 9.5,0.735,0.1,2.1,0.079,6.0,31.0,0.9986,3.23,0.56,10.1,6
448 | 12.5,0.38,0.6,2.6,0.081,31.0,72.0,0.9996,3.1,0.73,10.5,5
449 | 9.3,0.48,0.29,2.1,0.127,6.0,16.0,0.9968,3.22,0.72,11.2,5
450 | 8.6,0.53,0.22,2.0,0.1,7.0,27.0,0.9967,3.2,0.56,10.2,6
451 | 11.9,0.39,0.69,2.8,0.095,17.0,35.0,0.9994,3.1,0.61,10.8,6
452 | 11.9,0.39,0.69,2.8,0.095,17.0,35.0,0.9994,3.1,0.61,10.8,6
453 | 8.4,0.37,0.53,1.8,0.413,9.0,26.0,0.9979,3.06,1.06,9.1,6
454 | 6.8,0.56,0.03,1.7,0.084,18.0,35.0,0.9968,3.44,0.63,10.0,6
455 | 10.4,0.33,0.63,2.8,0.084,5.0,22.0,0.9998,3.26,0.74,11.2,7
456 | 7.0,0.23,0.4,1.6,0.063,21.0,67.0,0.9952,3.5,0.63,11.1,5
457 | 11.3,0.62,0.67,5.2,0.086,6.0,19.0,0.9988,3.22,0.69,13.4,8
458 | 8.9,0.59,0.39,2.3,0.095,5.0,22.0,0.9986,3.37,0.58,10.3,5
459 | 9.2,0.63,0.21,2.7,0.09699999999999999,29.0,65.0,0.9988,3.28,0.58,9.6,5
460 | 10.4,0.33,0.63,2.8,0.084,5.0,22.0,0.9998,3.26,0.74,11.2,7
461 | 11.6,0.58,0.66,2.2,0.07400000000000001,10.0,47.0,1.0008,3.25,0.57,9.0,3
462 | 9.2,0.43,0.52,2.3,0.083,14.0,23.0,0.9976,3.35,0.61,11.3,6
463 | 8.3,0.615,0.22,2.6,0.087,6.0,19.0,0.9982,3.26,0.61,9.3,5
464 | 11.0,0.26,0.68,2.55,0.085,10.0,25.0,0.997,3.18,0.61,11.8,5
465 | 8.1,0.66,0.7,2.2,0.098,25.0,129.0,0.9972,3.08,0.53,9.0,5
466 | 11.5,0.315,0.54,2.1,0.084,5.0,15.0,0.9987,2.98,0.7,9.2,6
467 | 10.0,0.29,0.4,2.9,0.098,10.0,26.0,1.0006,3.48,0.91,9.7,5
468 | 10.3,0.5,0.42,2.0,0.069,21.0,51.0,0.9982,3.16,0.72,11.5,6
469 | 8.8,0.46,0.45,2.6,0.065,7.0,18.0,0.9947,3.32,0.79,14.0,6
470 | 11.4,0.36,0.69,2.1,0.09,6.0,21.0,1.0,3.17,0.62,9.2,6
471 | 8.7,0.82,0.02,1.2,0.07,36.0,48.0,0.9952,3.2,0.58,9.8,5
472 | 13.0,0.32,0.65,2.6,0.09300000000000001,15.0,47.0,0.9996,3.05,0.61,10.6,5
473 | 9.6,0.54,0.42,2.4,0.081,25.0,52.0,0.997,3.2,0.71,11.4,6
474 | 12.5,0.37,0.55,2.6,0.083,25.0,68.0,0.9995,3.15,0.82,10.4,6
475 | 9.9,0.35,0.55,2.1,0.062,5.0,14.0,0.9971,3.26,0.79,10.6,5
476 | 10.5,0.28,0.51,1.7,0.08,10.0,24.0,0.9982,3.2,0.89,9.4,6
477 | 9.6,0.68,0.24,2.2,0.087,5.0,28.0,0.9988,3.14,0.6,10.2,5
478 | 9.3,0.27,0.41,2.0,0.091,6.0,16.0,0.998,3.28,0.7,9.7,5
479 | 10.4,0.24,0.49,1.8,0.075,6.0,20.0,0.9977,3.18,1.06,11.0,6
480 | 9.6,0.68,0.24,2.2,0.087,5.0,28.0,0.9988,3.14,0.6,10.2,5
481 | 9.4,0.685,0.11,2.7,0.077,6.0,31.0,0.9984,3.19,0.7,10.1,6
482 | 10.6,0.28,0.39,15.5,0.069,6.0,23.0,1.0026,3.12,0.66,9.2,5
483 | 9.4,0.3,0.56,2.8,0.08,6.0,17.0,0.9964,3.15,0.92,11.7,8
484 | 10.6,0.36,0.59,2.2,0.152,6.0,18.0,0.9986,3.04,1.05,9.4,5
485 | 10.6,0.36,0.6,2.2,0.152,7.0,18.0,0.9986,3.04,1.06,9.4,5
486 | 10.6,0.44,0.68,4.1,0.114,6.0,24.0,0.997,3.06,0.66,13.4,6
487 | 10.2,0.67,0.39,1.9,0.054000000000000006,6.0,17.0,0.9976,3.17,0.47,10.0,5
488 | 10.2,0.67,0.39,1.9,0.054000000000000006,6.0,17.0,0.9976,3.17,0.47,10.0,5
489 | 10.2,0.645,0.36,1.8,0.053,5.0,14.0,0.9982,3.17,0.42,10.0,6
490 | 11.6,0.32,0.55,2.8,0.081,35.0,67.0,1.0002,3.32,0.92,10.8,7
491 | 9.3,0.39,0.4,2.6,0.073,10.0,26.0,0.9984,3.34,0.75,10.2,6
492 | 9.3,0.775,0.27,2.8,0.078,24.0,56.0,0.9984,3.31,0.67,10.6,6
493 | 9.2,0.41,0.5,2.5,0.055,12.0,25.0,0.9952,3.34,0.79,13.3,7
494 | 8.9,0.4,0.51,2.6,0.052000000000000005,13.0,27.0,0.995,3.32,0.9,13.4,7
495 | 8.7,0.69,0.31,3.0,0.086,23.0,81.0,1.0002,3.48,0.74,11.6,6
496 | 6.5,0.39,0.23,8.3,0.051,28.0,91.0,0.9952,3.44,0.55,12.1,6
497 | 10.7,0.35,0.53,2.6,0.07,5.0,16.0,0.9972,3.15,0.65,11.0,8
498 | 7.8,0.52,0.25,1.9,0.081,14.0,38.0,0.9984,3.43,0.65,9.0,6
499 | 7.2,0.34,0.32,2.5,0.09,43.0,113.0,0.9966,3.32,0.79,11.1,5
500 | 10.7,0.35,0.53,2.6,0.07,5.0,16.0,0.9972,3.15,0.65,11.0,8
501 | 8.7,0.69,0.31,3.0,0.086,23.0,81.0,1.0002,3.48,0.74,11.6,6
502 | 7.8,0.52,0.25,1.9,0.081,14.0,38.0,0.9984,3.43,0.65,9.0,6
503 | 10.4,0.44,0.73,6.55,0.07400000000000001,38.0,76.0,0.9990000000000001,3.17,0.85,12.0,7
504 | 10.4,0.44,0.73,6.55,0.07400000000000001,38.0,76.0,0.9990000000000001,3.17,0.85,12.0,7
505 | 10.5,0.26,0.47,1.9,0.078,6.0,24.0,0.9976,3.18,1.04,10.9,7
506 | 10.5,0.24,0.42,1.8,0.077,6.0,22.0,0.9976,3.21,1.05,10.8,7
507 | 10.2,0.49,0.63,2.9,0.07200000000000001,10.0,26.0,0.9968,3.16,0.78,12.5,7
508 | 10.4,0.24,0.46,1.8,0.075,6.0,21.0,0.9976,3.25,1.02,10.8,7
509 | 11.2,0.67,0.55,2.3,0.084,6.0,13.0,1.0,3.17,0.71,9.5,6
510 | 10.0,0.59,0.31,2.2,0.09,26.0,62.0,0.9994,3.18,0.63,10.2,6
511 | 13.3,0.29,0.75,2.8,0.084,23.0,43.0,0.9986,3.04,0.68,11.4,7
512 | 12.4,0.42,0.49,4.6,0.073,19.0,43.0,0.9978,3.02,0.61,9.5,5
513 | 10.0,0.59,0.31,2.2,0.09,26.0,62.0,0.9994,3.18,0.63,10.2,6
514 | 10.7,0.4,0.48,2.1,0.125,15.0,49.0,0.998,3.03,0.81,9.7,6
515 | 10.5,0.51,0.64,2.4,0.107,6.0,15.0,0.9973,3.09,0.66,11.8,7
516 | 10.5,0.51,0.64,2.4,0.107,6.0,15.0,0.9973,3.09,0.66,11.8,7
517 | 8.5,0.655,0.49,6.1,0.122,34.0,151.0,1.001,3.31,1.14,9.3,5
518 | 12.5,0.6,0.49,4.3,0.1,5.0,14.0,1.001,3.25,0.74,11.9,6
519 | 10.4,0.61,0.49,2.1,0.2,5.0,16.0,0.9994,3.16,0.63,8.4,3
520 | 10.9,0.21,0.49,2.8,0.08800000000000001,11.0,32.0,0.9972,3.22,0.68,11.7,6
521 | 7.3,0.365,0.49,2.5,0.08800000000000001,39.0,106.0,0.9966,3.36,0.78,11.0,5
522 | 9.8,0.25,0.49,2.7,0.08800000000000001,15.0,33.0,0.9982,3.42,0.9,10.0,6
523 | 7.6,0.41,0.49,2.0,0.08800000000000001,16.0,43.0,0.998,3.48,0.64,9.1,5
524 | 8.2,0.39,0.49,2.3,0.099,47.0,133.0,0.9979,3.38,0.99,9.8,5
525 | 9.3,0.4,0.49,2.5,0.085,38.0,142.0,0.9978,3.22,0.55,9.4,5
526 | 9.2,0.43,0.49,2.4,0.086,23.0,116.0,0.9976,3.23,0.64,9.5,5
527 | 10.4,0.64,0.24,2.8,0.105,29.0,53.0,0.9998,3.24,0.67,9.9,5
528 | 7.3,0.365,0.49,2.5,0.08800000000000001,39.0,106.0,0.9966,3.36,0.78,11.0,5
529 | 7.0,0.38,0.49,2.5,0.09699999999999999,33.0,85.0,0.9962,3.39,0.77,11.4,6
530 | 8.2,0.42,0.49,2.6,0.084,32.0,55.0,0.9988,3.34,0.75,8.7,6
531 | 9.9,0.63,0.24,2.4,0.077,6.0,33.0,0.9974,3.09,0.57,9.4,5
532 | 9.1,0.22,0.24,2.1,0.078,1.0,28.0,0.9990000000000001,3.41,0.87,10.3,6
533 | 11.9,0.38,0.49,2.7,0.098,12.0,42.0,1.0004,3.16,0.61,10.3,5
534 | 11.9,0.38,0.49,2.7,0.098,12.0,42.0,1.0004,3.16,0.61,10.3,5
535 | 10.3,0.27,0.24,2.1,0.07200000000000001,15.0,33.0,0.9956,3.22,0.66,12.8,6
536 | 10.0,0.48,0.24,2.7,0.102,13.0,32.0,1.0,3.28,0.56,10.0,6
537 | 9.1,0.22,0.24,2.1,0.078,1.0,28.0,0.9990000000000001,3.41,0.87,10.3,6
538 | 9.9,0.63,0.24,2.4,0.077,6.0,33.0,0.9974,3.09,0.57,9.4,5
539 | 8.1,0.825,0.24,2.1,0.084,5.0,13.0,0.9972,3.37,0.77,10.7,6
540 | 12.9,0.35,0.49,5.8,0.066,5.0,35.0,1.0014,3.2,0.66,12.0,7
541 | 11.2,0.5,0.74,5.15,0.1,5.0,17.0,0.9996,3.22,0.62,11.2,5
542 | 9.2,0.59,0.24,3.3,0.10099999999999999,20.0,47.0,0.9988,3.26,0.67,9.6,5
543 | 9.5,0.46,0.49,6.3,0.064,5.0,17.0,0.9988,3.21,0.73,11.0,6
544 | 9.3,0.715,0.24,2.1,0.07,5.0,20.0,0.9966,3.12,0.59,9.9,5
545 | 11.2,0.66,0.24,2.5,0.085,16.0,53.0,0.9993,3.06,0.72,11.0,6
546 | 14.3,0.31,0.74,1.8,0.075,6.0,15.0,1.0008,2.86,0.79,8.4,6
547 | 9.1,0.47,0.49,2.6,0.094,38.0,106.0,0.9982,3.08,0.59,9.1,5
548 | 7.5,0.55,0.24,2.0,0.078,10.0,28.0,0.9983,3.45,0.78,9.5,6
549 | 10.6,0.31,0.49,2.5,0.067,6.0,21.0,0.9987,3.26,0.86,10.7,6
550 | 12.4,0.35,0.49,2.6,0.079,27.0,69.0,0.9994,3.12,0.75,10.4,6
551 | 9.0,0.53,0.49,1.9,0.171,6.0,25.0,0.9975,3.27,0.61,9.4,6
552 | 6.8,0.51,0.01,2.1,0.07400000000000001,9.0,25.0,0.9958,3.33,0.56,9.5,6
553 | 9.4,0.43,0.24,2.8,0.092,14.0,45.0,0.998,3.19,0.73,10.0,6
554 | 9.5,0.46,0.24,2.7,0.092,14.0,44.0,0.998,3.12,0.74,10.0,6
555 | 5.0,1.04,0.24,1.6,0.05,32.0,96.0,0.9934,3.74,0.62,11.5,5
556 | 15.5,0.645,0.49,4.2,0.095,10.0,23.0,1.00315,2.92,0.74,11.1,5
557 | 15.5,0.645,0.49,4.2,0.095,10.0,23.0,1.00315,2.92,0.74,11.1,5
558 | 10.9,0.53,0.49,4.6,0.11800000000000001,10.0,17.0,1.0002,3.07,0.56,11.7,6
559 | 15.6,0.645,0.49,4.2,0.095,10.0,23.0,1.00315,2.92,0.74,11.1,5
560 | 10.9,0.53,0.49,4.6,0.11800000000000001,10.0,17.0,1.0002,3.07,0.56,11.7,6
561 | 13.0,0.47,0.49,4.3,0.085,6.0,47.0,1.0021,3.3,0.68,12.7,6
562 | 12.7,0.6,0.49,2.8,0.075,5.0,19.0,0.9994,3.14,0.57,11.4,5
563 | 9.0,0.44,0.49,2.4,0.078,26.0,121.0,0.9978,3.23,0.58,9.2,5
564 | 9.0,0.54,0.49,2.9,0.094,41.0,110.0,0.9982,3.08,0.61,9.2,5
565 | 7.6,0.29,0.49,2.7,0.092,25.0,60.0,0.9971,3.31,0.61,10.1,6
566 | 13.0,0.47,0.49,4.3,0.085,6.0,47.0,1.0021,3.3,0.68,12.7,6
567 | 12.7,0.6,0.49,2.8,0.075,5.0,19.0,0.9994,3.14,0.57,11.4,5
568 | 8.7,0.7,0.24,2.5,0.226,5.0,15.0,0.9991,3.32,0.6,9.0,6
569 | 8.7,0.7,0.24,2.5,0.226,5.0,15.0,0.9991,3.32,0.6,9.0,6
570 | 9.8,0.5,0.49,2.6,0.25,5.0,20.0,0.9990000000000001,3.31,0.79,10.7,6
571 | 6.2,0.36,0.24,2.2,0.095,19.0,42.0,0.9946,3.57,0.57,11.7,6
572 | 11.5,0.35,0.49,3.3,0.07,10.0,37.0,1.0003,3.32,0.91,11.0,6
573 | 6.2,0.36,0.24,2.2,0.095,19.0,42.0,0.9946,3.57,0.57,11.7,6
574 | 10.2,0.24,0.49,2.4,0.075,10.0,28.0,0.9978,3.14,0.61,10.4,5
575 | 10.5,0.59,0.49,2.1,0.07,14.0,47.0,0.9991,3.3,0.56,9.6,4
576 | 10.6,0.34,0.49,3.2,0.078,20.0,78.0,0.9992,3.19,0.7,10.0,6
577 | 12.3,0.27,0.49,3.1,0.079,28.0,46.0,0.9993,3.2,0.8,10.2,6
578 | 9.9,0.5,0.24,2.3,0.10300000000000001,6.0,14.0,0.9978,3.34,0.52,10.0,4
579 | 8.8,0.44,0.49,2.8,0.083,18.0,111.0,0.9982,3.3,0.6,9.5,5
580 | 8.8,0.47,0.49,2.9,0.085,17.0,110.0,0.9982,3.29,0.6,9.8,5
581 | 10.6,0.31,0.49,2.2,0.063,18.0,40.0,0.9976,3.14,0.51,9.8,6
582 | 12.3,0.5,0.49,2.2,0.08900000000000001,5.0,14.0,1.0002,3.19,0.44,9.6,5
583 | 12.3,0.5,0.49,2.2,0.08900000000000001,5.0,14.0,1.0002,3.19,0.44,9.6,5
584 | 11.7,0.49,0.49,2.2,0.083,5.0,15.0,1.0,3.19,0.43,9.2,5
585 | 12.0,0.28,0.49,1.9,0.07400000000000001,10.0,21.0,0.9976,2.98,0.66,9.9,7
586 | 11.8,0.33,0.49,3.4,0.09300000000000001,54.0,80.0,1.0002,3.3,0.76,10.7,7
587 | 7.6,0.51,0.24,2.4,0.091,8.0,38.0,0.998,3.47,0.66,9.6,6
588 | 11.1,0.31,0.49,2.7,0.094,16.0,47.0,0.9986,3.12,1.02,10.6,7
589 | 7.3,0.73,0.24,1.9,0.10800000000000001,18.0,102.0,0.9967,3.26,0.59,9.3,5
590 | 5.0,0.42,0.24,2.0,0.06,19.0,50.0,0.9917,3.72,0.74,14.0,8
591 | 10.2,0.29,0.49,2.6,0.059000000000000004,5.0,13.0,0.9976,3.05,0.74,10.5,7
592 | 9.0,0.45,0.49,2.6,0.084,21.0,75.0,0.9987,3.35,0.57,9.7,5
593 | 6.6,0.39,0.49,1.7,0.07,23.0,149.0,0.9922,3.12,0.5,11.5,6
594 | 9.0,0.45,0.49,2.6,0.084,21.0,75.0,0.9987,3.35,0.57,9.7,5
595 | 9.9,0.49,0.58,3.5,0.094,9.0,43.0,1.0004,3.29,0.58,9.0,5
596 | 7.9,0.72,0.17,2.6,0.096,20.0,38.0,0.9978,3.4,0.53,9.5,5
597 | 8.9,0.595,0.41,7.9,0.086,30.0,109.0,0.9998,3.27,0.57,9.3,5
598 | 12.4,0.4,0.51,2.0,0.059000000000000004,6.0,24.0,0.9994,3.04,0.6,9.3,6
599 | 11.9,0.58,0.58,1.9,0.071,5.0,18.0,0.998,3.09,0.63,10.0,6
600 | 8.5,0.585,0.18,2.1,0.078,5.0,30.0,0.9967,3.2,0.48,9.8,6
601 | 12.7,0.59,0.45,2.3,0.08199999999999999,11.0,22.0,1.0,3.0,0.7,9.3,6
602 | 8.2,0.915,0.27,2.1,0.08800000000000001,7.0,23.0,0.9962,3.26,0.47,10.0,4
603 | 13.2,0.46,0.52,2.2,0.071,12.0,35.0,1.0006,3.1,0.56,9.0,6
604 | 7.7,0.835,0.0,2.6,0.081,6.0,14.0,0.9975,3.3,0.52,9.3,5
605 | 13.2,0.46,0.52,2.2,0.071,12.0,35.0,1.0006,3.1,0.56,9.0,6
606 | 8.3,0.58,0.13,2.9,0.096,14.0,63.0,0.9984,3.17,0.62,9.1,6
607 | 8.3,0.6,0.13,2.6,0.085,6.0,24.0,0.9984,3.31,0.59,9.2,6
608 | 9.4,0.41,0.48,4.6,0.07200000000000001,10.0,20.0,0.9973,3.34,0.79,12.2,7
609 | 8.8,0.48,0.41,3.3,0.092,26.0,52.0,0.9982,3.31,0.53,10.5,6
610 | 10.1,0.65,0.37,5.1,0.11,11.0,65.0,1.0026,3.32,0.64,10.4,6
611 | 6.3,0.36,0.19,3.2,0.075,15.0,39.0,0.9956,3.56,0.52,12.7,6
612 | 8.8,0.24,0.54,2.5,0.083,25.0,57.0,0.9983,3.39,0.54,9.2,5
613 | 13.2,0.38,0.55,2.7,0.081,5.0,16.0,1.0006,2.98,0.54,9.4,5
614 | 7.5,0.64,0.0,2.4,0.077,18.0,29.0,0.9965,3.32,0.6,10.0,6
615 | 8.2,0.39,0.38,1.5,0.057999999999999996,10.0,29.0,0.9962,3.26,0.74,9.8,5
616 | 9.2,0.755,0.18,2.2,0.14800000000000002,10.0,103.0,0.9969,2.87,1.36,10.2,6
617 | 9.6,0.6,0.5,2.3,0.079,28.0,71.0,0.9997,3.5,0.57,9.7,5
618 | 9.6,0.6,0.5,2.3,0.079,28.0,71.0,0.9997,3.5,0.57,9.7,5
619 | 11.5,0.31,0.51,2.2,0.079,14.0,28.0,0.9982,3.03,0.93,9.8,6
620 | 11.4,0.46,0.5,2.7,0.122,4.0,17.0,1.0006,3.13,0.7,10.2,5
621 | 11.3,0.37,0.41,2.3,0.08800000000000001,6.0,16.0,0.9988,3.09,0.8,9.3,5
622 | 8.3,0.54,0.24,3.4,0.076,16.0,112.0,0.9976,3.27,0.61,9.4,5
623 | 8.2,0.56,0.23,3.4,0.078,14.0,104.0,0.9976,3.28,0.62,9.4,5
624 | 10.0,0.58,0.22,1.9,0.08,9.0,32.0,0.9974,3.13,0.55,9.5,5
625 | 7.9,0.51,0.25,2.9,0.077,21.0,45.0,0.9974,3.49,0.96,12.1,6
626 | 6.8,0.69,0.0,5.6,0.124,21.0,58.0,0.9997,3.46,0.72,10.2,5
627 | 6.8,0.69,0.0,5.6,0.124,21.0,58.0,0.9997,3.46,0.72,10.2,5
628 | 8.8,0.6,0.29,2.2,0.098,5.0,15.0,0.9988,3.36,0.49,9.1,5
629 | 8.8,0.6,0.29,2.2,0.098,5.0,15.0,0.9988,3.36,0.49,9.1,5
630 | 8.7,0.54,0.26,2.5,0.09699999999999999,7.0,31.0,0.9976,3.27,0.6,9.3,6
631 | 7.6,0.685,0.23,2.3,0.111,20.0,84.0,0.9964,3.21,0.61,9.3,5
632 | 8.7,0.54,0.26,2.5,0.09699999999999999,7.0,31.0,0.9976,3.27,0.6,9.3,6
633 | 10.4,0.28,0.54,2.7,0.105,5.0,19.0,0.9988,3.25,0.63,9.5,5
634 | 7.6,0.41,0.14,3.0,0.087,21.0,43.0,0.9964,3.32,0.57,10.5,6
635 | 10.1,0.935,0.22,3.4,0.105,11.0,86.0,1.001,3.43,0.64,11.3,4
636 | 7.9,0.35,0.21,1.9,0.073,46.0,102.0,0.9964,3.27,0.58,9.5,5
637 | 8.7,0.84,0.0,1.4,0.065,24.0,33.0,0.9954,3.27,0.55,9.7,5
638 | 9.6,0.88,0.28,2.4,0.086,30.0,147.0,0.9979,3.24,0.53,9.4,5
639 | 9.5,0.885,0.27,2.3,0.084,31.0,145.0,0.9978,3.24,0.53,9.4,5
640 | 7.7,0.915,0.12,2.2,0.14300000000000002,7.0,23.0,0.9964,3.35,0.65,10.2,7
641 | 8.9,0.29,0.35,1.9,0.067,25.0,57.0,0.997,3.18,1.36,10.3,6
642 | 9.9,0.54,0.45,2.3,0.071,16.0,40.0,0.9991,3.39,0.62,9.4,5
643 | 9.5,0.59,0.44,2.3,0.071,21.0,68.0,0.9992,3.46,0.63,9.5,5
644 | 9.9,0.54,0.45,2.3,0.071,16.0,40.0,0.9991,3.39,0.62,9.4,5
645 | 9.5,0.59,0.44,2.3,0.071,21.0,68.0,0.9992,3.46,0.63,9.5,5
646 | 9.9,0.54,0.45,2.3,0.071,16.0,40.0,0.9991,3.39,0.62,9.4,5
647 | 7.8,0.64,0.1,6.0,0.115,5.0,11.0,0.9984,3.37,0.69,10.1,7
648 | 7.3,0.67,0.05,3.6,0.107,6.0,20.0,0.9972,3.4,0.63,10.1,5
649 | 8.3,0.845,0.01,2.2,0.07,5.0,14.0,0.9967,3.32,0.58,11.0,4
650 | 8.7,0.48,0.3,2.8,0.066,10.0,28.0,0.9964,3.33,0.67,11.2,7
651 | 6.7,0.42,0.27,8.6,0.068,24.0,148.0,0.9948,3.16,0.57,11.3,6
652 | 10.7,0.43,0.39,2.2,0.106,8.0,32.0,0.9986,2.89,0.5,9.6,5
653 | 9.8,0.88,0.25,2.5,0.10400000000000001,35.0,155.0,1.001,3.41,0.67,11.2,5
654 | 15.9,0.36,0.65,7.5,0.096,22.0,71.0,0.9976,2.98,0.84,14.9,5
655 | 9.4,0.33,0.59,2.8,0.079,9.0,30.0,0.9976,3.12,0.54,12.0,6
656 | 8.6,0.47,0.47,2.4,0.07400000000000001,7.0,29.0,0.9979,3.08,0.46,9.5,5
657 | 9.7,0.55,0.17,2.9,0.087,20.0,53.0,1.0004,3.14,0.61,9.4,5
658 | 10.7,0.43,0.39,2.2,0.106,8.0,32.0,0.9986,2.89,0.5,9.6,5
659 | 12.0,0.5,0.59,1.4,0.073,23.0,42.0,0.998,2.92,0.68,10.5,7
660 | 7.2,0.52,0.07,1.4,0.07400000000000001,5.0,20.0,0.9973,3.32,0.81,9.6,6
661 | 7.1,0.84,0.02,4.4,0.096,5.0,13.0,0.997,3.41,0.57,11.0,4
662 | 7.2,0.52,0.07,1.4,0.07400000000000001,5.0,20.0,0.9973,3.32,0.81,9.6,6
663 | 7.5,0.42,0.31,1.6,0.08,15.0,42.0,0.9978,3.31,0.64,9.0,5
664 | 7.2,0.57,0.06,1.6,0.076,9.0,27.0,0.9972,3.36,0.7,9.6,6
665 | 10.1,0.28,0.46,1.8,0.05,5.0,13.0,0.9974,3.04,0.79,10.2,6
666 | 12.1,0.4,0.52,2.0,0.092,15.0,54.0,1.0,3.03,0.66,10.2,5
667 | 9.4,0.59,0.14,2.0,0.084,25.0,48.0,0.9981,3.14,0.56,9.7,5
668 | 8.3,0.49,0.36,1.8,0.222,6.0,16.0,0.998,3.18,0.6,9.5,6
669 | 11.3,0.34,0.45,2.0,0.08199999999999999,6.0,15.0,0.9988,2.94,0.66,9.2,6
670 | 10.0,0.73,0.43,2.3,0.059000000000000004,15.0,31.0,0.9966,3.15,0.57,11.0,5
671 | 11.3,0.34,0.45,2.0,0.08199999999999999,6.0,15.0,0.9988,2.94,0.66,9.2,6
672 | 6.9,0.4,0.24,2.5,0.083,30.0,45.0,0.9959,3.26,0.58,10.0,5
673 | 8.2,0.73,0.21,1.7,0.07400000000000001,5.0,13.0,0.9968,3.2,0.52,9.5,5
674 | 9.8,1.24,0.34,2.0,0.079,32.0,151.0,0.998,3.15,0.53,9.5,5
675 | 8.2,0.73,0.21,1.7,0.07400000000000001,5.0,13.0,0.9968,3.2,0.52,9.5,5
676 | 10.8,0.4,0.41,2.2,0.084,7.0,17.0,0.9984,3.08,0.67,9.3,6
677 | 9.3,0.41,0.39,2.2,0.064,12.0,31.0,0.9984,3.26,0.65,10.2,5
678 | 10.8,0.4,0.41,2.2,0.084,7.0,17.0,0.9984,3.08,0.67,9.3,6
679 | 8.6,0.8,0.11,2.3,0.084,12.0,31.0,0.9979,3.4,0.48,9.9,5
680 | 8.3,0.78,0.1,2.6,0.081,45.0,87.0,0.9983,3.48,0.53,10.0,5
681 | 10.8,0.26,0.45,3.3,0.06,20.0,49.0,0.9972,3.13,0.54,9.6,5
682 | 13.3,0.43,0.58,1.9,0.07,15.0,40.0,1.0004,3.06,0.49,9.0,5
683 | 8.0,0.45,0.23,2.2,0.094,16.0,29.0,0.9962,3.21,0.49,10.2,6
684 | 8.5,0.46,0.31,2.25,0.078,32.0,58.0,0.998,3.33,0.54,9.8,5
685 | 8.1,0.78,0.23,2.6,0.059000000000000004,5.0,15.0,0.997,3.37,0.56,11.3,5
686 | 9.8,0.98,0.32,2.3,0.078,35.0,152.0,0.998,3.25,0.48,9.4,5
687 | 8.1,0.78,0.23,2.6,0.059000000000000004,5.0,15.0,0.997,3.37,0.56,11.3,5
688 | 7.1,0.65,0.18,1.8,0.07,13.0,40.0,0.997,3.44,0.6,9.1,5
689 | 9.1,0.64,0.23,3.1,0.095,13.0,38.0,0.9998,3.28,0.59,9.7,5
690 | 7.7,0.66,0.04,1.6,0.039,4.0,9.0,0.9962,3.4,0.47,9.4,5
691 | 8.1,0.38,0.48,1.8,0.157,5.0,17.0,0.9976,3.3,1.05,9.4,5
692 | 7.4,1.185,0.0,4.25,0.09699999999999999,5.0,14.0,0.9966,3.63,0.54,10.7,3
693 | 9.2,0.92,0.24,2.6,0.087,12.0,93.0,0.9998,3.48,0.54,9.8,5
694 | 8.6,0.49,0.51,2.0,0.42200000000000004,16.0,62.0,0.9979,3.03,1.17,9.0,5
695 | 9.0,0.48,0.32,2.8,0.084,21.0,122.0,0.9984,3.32,0.62,9.4,5
696 | 9.0,0.47,0.31,2.7,0.084,24.0,125.0,0.9984,3.31,0.61,9.4,5
697 | 5.1,0.47,0.02,1.3,0.034,18.0,44.0,0.9921,3.9,0.62,12.8,6
698 | 7.0,0.65,0.02,2.1,0.066,8.0,25.0,0.9972,3.47,0.67,9.5,6
699 | 7.0,0.65,0.02,2.1,0.066,8.0,25.0,0.9972,3.47,0.67,9.5,6
700 | 9.4,0.615,0.28,3.2,0.087,18.0,72.0,1.0001,3.31,0.53,9.7,5
701 | 11.8,0.38,0.55,2.1,0.071,5.0,19.0,0.9986,3.11,0.62,10.8,6
702 | 10.6,1.02,0.43,2.9,0.076,26.0,88.0,0.9984,3.08,0.57,10.1,6
703 | 7.0,0.65,0.02,2.1,0.066,8.0,25.0,0.9972,3.47,0.67,9.5,6
704 | 7.0,0.64,0.02,2.1,0.067,9.0,23.0,0.997,3.47,0.67,9.4,6
705 | 7.5,0.38,0.48,2.6,0.073,22.0,84.0,0.9972,3.32,0.7,9.6,4
706 | 9.1,0.765,0.04,1.6,0.078,4.0,14.0,0.998,3.29,0.54,9.7,4
707 | 8.4,1.035,0.15,6.0,0.073,11.0,54.0,0.9990000000000001,3.37,0.49,9.9,5
708 | 7.0,0.78,0.08,2.0,0.09300000000000001,10.0,19.0,0.9956,3.4,0.47,10.0,5
709 | 7.4,0.49,0.19,3.0,0.077,16.0,37.0,0.9966,3.37,0.51,10.5,5
710 | 7.8,0.545,0.12,2.5,0.068,11.0,35.0,0.996,3.34,0.61,11.6,6
711 | 9.7,0.31,0.47,1.6,0.062,13.0,33.0,0.9983,3.27,0.66,10.0,6
712 | 10.6,1.025,0.43,2.8,0.08,21.0,84.0,0.9985,3.06,0.57,10.1,5
713 | 8.9,0.565,0.34,3.0,0.09300000000000001,16.0,112.0,0.9998,3.38,0.61,9.5,5
714 | 8.7,0.69,0.0,3.2,0.084,13.0,33.0,0.9992,3.36,0.45,9.4,5
715 | 8.0,0.43,0.36,2.3,0.075,10.0,48.0,0.9976,3.34,0.46,9.4,5
716 | 9.9,0.74,0.28,2.6,0.078,21.0,77.0,0.998,3.28,0.51,9.8,5
717 | 7.2,0.49,0.18,2.7,0.069,13.0,34.0,0.9967,3.29,0.48,9.2,6
718 | 8.0,0.43,0.36,2.3,0.075,10.0,48.0,0.9976,3.34,0.46,9.4,5
719 | 7.6,0.46,0.11,2.6,0.079,12.0,49.0,0.9968,3.21,0.57,10.0,5
720 | 8.4,0.56,0.04,2.0,0.08199999999999999,10.0,22.0,0.9976,3.22,0.44,9.6,5
721 | 7.1,0.66,0.0,3.9,0.086,17.0,45.0,0.9976,3.46,0.54,9.5,5
722 | 8.4,0.56,0.04,2.0,0.08199999999999999,10.0,22.0,0.9976,3.22,0.44,9.6,5
723 | 8.9,0.48,0.24,2.85,0.094,35.0,106.0,0.9982,3.1,0.53,9.2,5
724 | 7.6,0.42,0.08,2.7,0.084,15.0,48.0,0.9968,3.21,0.59,10.0,5
725 | 7.1,0.31,0.3,2.2,0.053,36.0,127.0,0.9965,2.94,1.62,9.5,5
726 | 7.5,1.115,0.1,3.1,0.086,5.0,12.0,0.9958,3.54,0.6,11.2,4
727 | 9.0,0.66,0.17,3.0,0.077,5.0,13.0,0.9976,3.29,0.55,10.4,5
728 | 8.1,0.72,0.09,2.8,0.084,18.0,49.0,0.9994,3.43,0.72,11.1,6
729 | 6.4,0.57,0.02,1.8,0.067,4.0,11.0,0.997,3.46,0.68,9.5,5
730 | 6.4,0.57,0.02,1.8,0.067,4.0,11.0,0.997,3.46,0.68,9.5,5
731 | 6.4,0.865,0.03,3.2,0.071,27.0,58.0,0.995,3.61,0.49,12.7,6
732 | 9.5,0.55,0.66,2.3,0.387,12.0,37.0,0.9982,3.17,0.67,9.6,5
733 | 8.9,0.875,0.13,3.45,0.08800000000000001,4.0,14.0,0.9994,3.44,0.52,11.5,5
734 | 7.3,0.835,0.03,2.1,0.092,10.0,19.0,0.9966,3.39,0.47,9.6,5
735 | 7.0,0.45,0.34,2.7,0.08199999999999999,16.0,72.0,0.998,3.55,0.6,9.5,5
736 | 7.7,0.56,0.2,2.0,0.075,9.0,39.0,0.9987,3.48,0.62,9.3,5
737 | 7.7,0.965,0.1,2.1,0.11199999999999999,11.0,22.0,0.9963,3.26,0.5,9.5,5
738 | 7.7,0.965,0.1,2.1,0.11199999999999999,11.0,22.0,0.9963,3.26,0.5,9.5,5
739 | 8.2,0.59,0.0,2.5,0.09300000000000001,19.0,58.0,1.0002,3.5,0.65,9.3,6
740 | 9.0,0.46,0.23,2.8,0.092,28.0,104.0,0.9983,3.1,0.56,9.2,5
741 | 9.0,0.69,0.0,2.4,0.08800000000000001,19.0,38.0,0.9990000000000001,3.35,0.6,9.3,5
742 | 8.3,0.76,0.29,4.2,0.075,12.0,16.0,0.9965,3.45,0.68,11.5,6
743 | 9.2,0.53,0.24,2.6,0.078,28.0,139.0,0.9978799999999999,3.21,0.57,9.5,5
744 | 6.5,0.615,0.0,1.9,0.065,9.0,18.0,0.9972,3.46,0.65,9.2,5
745 | 11.6,0.41,0.58,2.8,0.096,25.0,101.0,1.00024,3.13,0.53,10.0,5
746 | 11.1,0.39,0.54,2.7,0.095,21.0,101.0,1.0001,3.13,0.51,9.5,5
747 | 7.3,0.51,0.18,2.1,0.07,12.0,28.0,0.9976799999999999,3.52,0.73,9.5,6
748 | 8.2,0.34,0.38,2.5,0.08,12.0,57.0,0.9978,3.3,0.47,9.0,6
749 | 8.6,0.33,0.4,2.6,0.083,16.0,68.0,0.99782,3.3,0.48,9.4,5
750 | 7.2,0.5,0.18,2.1,0.071,12.0,31.0,0.99761,3.52,0.72,9.6,6
751 | 7.3,0.51,0.18,2.1,0.07,12.0,28.0,0.9976799999999999,3.52,0.73,9.5,6
752 | 8.3,0.65,0.1,2.9,0.08900000000000001,17.0,40.0,0.99803,3.29,0.55,9.5,5
753 | 8.3,0.65,0.1,2.9,0.08900000000000001,17.0,40.0,0.99803,3.29,0.55,9.5,5
754 | 7.6,0.54,0.13,2.5,0.09699999999999999,24.0,66.0,0.99785,3.39,0.61,9.4,5
755 | 8.3,0.65,0.1,2.9,0.08900000000000001,17.0,40.0,0.99803,3.29,0.55,9.5,5
756 | 7.8,0.48,0.68,1.7,0.415,14.0,32.0,0.99656,3.09,1.06,9.1,6
757 | 7.8,0.91,0.07,1.9,0.057999999999999996,22.0,47.0,0.99525,3.51,0.43,10.7,6
758 | 6.3,0.98,0.01,2.0,0.057,15.0,33.0,0.9948799999999999,3.6,0.46,11.2,6
759 | 8.1,0.87,0.0,2.2,0.084,10.0,31.0,0.99656,3.25,0.5,9.8,5
760 | 8.1,0.87,0.0,2.2,0.084,10.0,31.0,0.99656,3.25,0.5,9.8,5
761 | 8.8,0.42,0.21,2.5,0.092,33.0,88.0,0.99823,3.19,0.52,9.2,5
762 | 9.0,0.58,0.25,2.8,0.075,9.0,104.0,0.99779,3.23,0.57,9.7,5
763 | 9.3,0.655,0.26,2.0,0.096,5.0,35.0,0.9973799999999999,3.25,0.42,9.6,5
764 | 8.8,0.7,0.0,1.7,0.069,8.0,19.0,0.9970100000000001,3.31,0.53,10.0,6
765 | 9.3,0.655,0.26,2.0,0.096,5.0,35.0,0.9973799999999999,3.25,0.42,9.6,5
766 | 9.1,0.68,0.11,2.8,0.09300000000000001,11.0,44.0,0.9988799999999999,3.31,0.55,9.5,6
767 | 9.2,0.67,0.1,3.0,0.091,12.0,48.0,0.9988799999999999,3.31,0.54,9.5,6
768 | 8.8,0.59,0.18,2.9,0.08900000000000001,12.0,74.0,0.9973799999999999,3.14,0.54,9.4,5
769 | 7.5,0.6,0.32,2.7,0.10300000000000001,13.0,98.0,0.9993799999999999,3.45,0.62,9.5,5
770 | 7.1,0.59,0.02,2.3,0.08199999999999999,24.0,94.0,0.99744,3.55,0.53,9.7,6
771 | 7.9,0.72,0.01,1.9,0.076,7.0,32.0,0.9966799999999999,3.39,0.54,9.6,5
772 | 7.1,0.59,0.02,2.3,0.08199999999999999,24.0,94.0,0.99744,3.55,0.53,9.7,6
773 | 9.4,0.685,0.26,2.4,0.08199999999999999,23.0,143.0,0.9978,3.28,0.55,9.4,5
774 | 9.5,0.57,0.27,2.3,0.08199999999999999,23.0,144.0,0.99782,3.27,0.55,9.4,5
775 | 7.9,0.4,0.29,1.8,0.157,1.0,44.0,0.9973,3.3,0.92,9.5,6
776 | 7.9,0.4,0.3,1.8,0.157,2.0,45.0,0.9972700000000001,3.31,0.91,9.5,6
777 | 7.2,1.0,0.0,3.0,0.102,7.0,16.0,0.9958600000000001,3.43,0.46,10.0,5
778 | 6.9,0.765,0.18,2.4,0.243,5.5,48.0,0.9961200000000001,3.4,0.6,10.3,6
779 | 6.9,0.635,0.17,2.4,0.24100000000000002,6.0,18.0,0.9961,3.4,0.59,10.3,6
780 | 8.3,0.43,0.3,3.4,0.079,7.0,34.0,0.9978799999999999,3.36,0.61,10.5,5
781 | 7.1,0.52,0.03,2.6,0.076,21.0,92.0,0.99745,3.5,0.6,9.8,5
782 | 7.0,0.57,0.0,2.0,0.19,12.0,45.0,0.9967600000000001,3.31,0.6,9.4,6
783 | 6.5,0.46,0.14,2.4,0.114,9.0,37.0,0.9973200000000001,3.66,0.65,9.8,5
784 | 9.0,0.82,0.05,2.4,0.081,26.0,96.0,0.9981399999999999,3.36,0.53,10.0,5
785 | 6.5,0.46,0.14,2.4,0.114,9.0,37.0,0.9973200000000001,3.66,0.65,9.8,5
786 | 7.1,0.59,0.01,2.5,0.077,20.0,85.0,0.99746,3.55,0.59,9.8,5
787 | 9.9,0.35,0.41,2.3,0.083,11.0,61.0,0.9982,3.21,0.5,9.5,5
788 | 9.9,0.35,0.41,2.3,0.083,11.0,61.0,0.9982,3.21,0.5,9.5,5
789 | 10.0,0.56,0.24,2.2,0.079,19.0,58.0,0.9991,3.18,0.56,10.1,6
790 | 10.0,0.56,0.24,2.2,0.079,19.0,58.0,0.9991,3.18,0.56,10.1,6
791 | 8.6,0.63,0.17,2.9,0.099,21.0,119.0,0.998,3.09,0.52,9.3,5
792 | 7.4,0.37,0.43,2.6,0.08199999999999999,18.0,82.0,0.99708,3.33,0.68,9.7,6
793 | 8.8,0.64,0.17,2.9,0.084,25.0,130.0,0.99818,3.23,0.54,9.6,5
794 | 7.1,0.61,0.02,2.5,0.081,17.0,87.0,0.99745,3.48,0.6,9.7,6
795 | 7.7,0.6,0.0,2.6,0.055,7.0,13.0,0.99639,3.38,0.56,10.8,5
796 | 10.1,0.27,0.54,2.3,0.065,7.0,26.0,0.99531,3.17,0.53,12.5,6
797 | 10.8,0.89,0.3,2.6,0.132,7.0,60.0,0.9978600000000001,2.99,1.18,10.2,5
798 | 8.7,0.46,0.31,2.5,0.126,24.0,64.0,0.99746,3.1,0.74,9.6,5
799 | 9.3,0.37,0.44,1.6,0.038,21.0,42.0,0.99526,3.24,0.81,10.8,7
800 | 9.4,0.5,0.34,3.6,0.08199999999999999,5.0,14.0,0.9987,3.29,0.52,10.7,6
801 | 9.4,0.5,0.34,3.6,0.08199999999999999,5.0,14.0,0.9987,3.29,0.52,10.7,6
802 | 7.2,0.61,0.08,4.0,0.08199999999999999,26.0,108.0,0.99641,3.25,0.51,9.4,5
803 | 8.6,0.55,0.09,3.3,0.068,8.0,17.0,0.99735,3.23,0.44,10.0,5
804 | 5.1,0.585,0.0,1.7,0.044000000000000004,14.0,86.0,0.99264,3.56,0.94,12.9,7
805 | 7.7,0.56,0.08,2.5,0.114,14.0,46.0,0.9971,3.24,0.66,9.6,6
806 | 8.4,0.52,0.22,2.7,0.084,4.0,18.0,0.99682,3.26,0.57,9.9,6
807 | 8.2,0.28,0.4,2.4,0.052000000000000005,4.0,10.0,0.99356,3.33,0.7,12.8,7
808 | 8.4,0.25,0.39,2.0,0.040999999999999995,4.0,10.0,0.9938600000000001,3.27,0.71,12.5,7
809 | 8.2,0.28,0.4,2.4,0.052000000000000005,4.0,10.0,0.99356,3.33,0.7,12.8,7
810 | 7.4,0.53,0.12,1.9,0.165,4.0,12.0,0.99702,3.26,0.86,9.2,5
811 | 7.6,0.48,0.31,2.8,0.07,4.0,15.0,0.9969299999999999,3.22,0.55,10.3,6
812 | 7.3,0.49,0.1,2.6,0.068,4.0,14.0,0.9956200000000001,3.3,0.47,10.5,5
813 | 12.9,0.5,0.55,2.8,0.07200000000000001,7.0,24.0,1.0001200000000001,3.09,0.68,10.9,6
814 | 10.8,0.45,0.33,2.5,0.099,20.0,38.0,0.99818,3.24,0.71,10.8,5
815 | 6.9,0.39,0.24,2.1,0.102,4.0,7.0,0.9946200000000001,3.44,0.58,11.4,4
816 | 12.6,0.41,0.54,2.8,0.10300000000000001,19.0,41.0,0.99939,3.21,0.76,11.3,6
817 | 10.8,0.45,0.33,2.5,0.099,20.0,38.0,0.99818,3.24,0.71,10.8,5
818 | 9.8,0.51,0.19,3.2,0.081,8.0,30.0,0.9984,3.23,0.58,10.5,6
819 | 10.8,0.29,0.42,1.6,0.084,19.0,27.0,0.99545,3.28,0.73,11.9,6
820 | 7.1,0.715,0.0,2.35,0.071,21.0,47.0,0.9963200000000001,3.29,0.45,9.4,5
821 | 9.1,0.66,0.15,3.2,0.09699999999999999,9.0,59.0,0.99976,3.28,0.54,9.6,5
822 | 7.0,0.685,0.0,1.9,0.099,9.0,22.0,0.9960600000000001,3.34,0.6,9.7,5
823 | 4.9,0.42,0.0,2.1,0.048,16.0,42.0,0.99154,3.71,0.74,14.0,7
824 | 6.7,0.54,0.13,2.0,0.076,15.0,36.0,0.9973,3.61,0.64,9.8,5
825 | 6.7,0.54,0.13,2.0,0.076,15.0,36.0,0.9973,3.61,0.64,9.8,5
826 | 7.1,0.48,0.28,2.8,0.068,6.0,16.0,0.99682,3.24,0.53,10.3,5
827 | 7.1,0.46,0.14,2.8,0.076,15.0,37.0,0.99624,3.36,0.49,10.7,5
828 | 7.5,0.27,0.34,2.3,0.05,4.0,8.0,0.9951,3.4,0.64,11.0,7
829 | 7.1,0.46,0.14,2.8,0.076,15.0,37.0,0.99624,3.36,0.49,10.7,5
830 | 7.8,0.57,0.09,2.3,0.065,34.0,45.0,0.9941700000000001,3.46,0.74,12.7,8
831 | 5.9,0.61,0.08,2.1,0.071,16.0,24.0,0.9937600000000001,3.56,0.77,11.1,6
832 | 7.5,0.685,0.07,2.5,0.057999999999999996,5.0,9.0,0.9963200000000001,3.38,0.55,10.9,4
833 | 5.9,0.61,0.08,2.1,0.071,16.0,24.0,0.9937600000000001,3.56,0.77,11.1,6
834 | 10.4,0.44,0.42,1.5,0.145,34.0,48.0,0.9983200000000001,3.38,0.86,9.9,3
835 | 11.6,0.47,0.44,1.6,0.147,36.0,51.0,0.99836,3.38,0.86,9.9,4
836 | 8.8,0.685,0.26,1.6,0.08800000000000001,16.0,23.0,0.9969399999999999,3.32,0.47,9.4,5
837 | 7.6,0.665,0.1,1.5,0.066,27.0,55.0,0.99655,3.39,0.51,9.3,5
838 | 6.7,0.28,0.28,2.4,0.012,36.0,100.0,0.99064,3.26,0.39,11.7,7
839 | 6.7,0.28,0.28,2.4,0.012,36.0,100.0,0.99064,3.26,0.39,11.7,7
840 | 10.1,0.31,0.35,1.6,0.075,9.0,28.0,0.99672,3.24,0.83,11.2,7
841 | 6.0,0.5,0.04,2.2,0.092,13.0,26.0,0.9964700000000001,3.46,0.47,10.0,5
842 | 11.1,0.42,0.47,2.65,0.085,9.0,34.0,0.99736,3.24,0.77,12.1,7
843 | 6.6,0.66,0.0,3.0,0.115,21.0,31.0,0.99629,3.45,0.63,10.3,5
844 | 10.6,0.5,0.45,2.6,0.11900000000000001,34.0,68.0,0.99708,3.23,0.72,10.9,6
845 | 7.1,0.685,0.35,2.0,0.08800000000000001,9.0,92.0,0.9963,3.28,0.62,9.4,5
846 | 9.9,0.25,0.46,1.7,0.062,26.0,42.0,0.9959,3.18,0.83,10.6,6
847 | 6.4,0.64,0.21,1.8,0.081,14.0,31.0,0.9968899999999999,3.59,0.66,9.8,5
848 | 6.4,0.64,0.21,1.8,0.081,14.0,31.0,0.9968899999999999,3.59,0.66,9.8,5
849 | 7.4,0.68,0.16,1.8,0.078,12.0,39.0,0.9977,3.5,0.7,9.9,6
850 | 6.4,0.64,0.21,1.8,0.081,14.0,31.0,0.9968899999999999,3.59,0.66,9.8,5
851 | 6.4,0.63,0.21,1.6,0.08,12.0,32.0,0.9968899999999999,3.58,0.66,9.8,5
852 | 9.3,0.43,0.44,1.9,0.085,9.0,22.0,0.99708,3.28,0.55,9.5,5
853 | 9.3,0.43,0.44,1.9,0.085,9.0,22.0,0.99708,3.28,0.55,9.5,5
854 | 8.0,0.42,0.32,2.5,0.08,26.0,122.0,0.9980100000000001,3.22,1.07,9.7,5
855 | 9.3,0.36,0.39,1.5,0.08,41.0,55.0,0.9965200000000001,3.47,0.73,10.9,6
856 | 9.3,0.36,0.39,1.5,0.08,41.0,55.0,0.9965200000000001,3.47,0.73,10.9,6
857 | 7.6,0.735,0.02,2.5,0.071,10.0,14.0,0.9953799999999999,3.51,0.71,11.7,7
858 | 9.3,0.36,0.39,1.5,0.08,41.0,55.0,0.9965200000000001,3.47,0.73,10.9,6
859 | 8.2,0.26,0.34,2.5,0.073,16.0,47.0,0.9959399999999999,3.4,0.78,11.3,7
860 | 11.7,0.28,0.47,1.7,0.054000000000000006,17.0,32.0,0.9968600000000001,3.15,0.67,10.6,7
861 | 6.8,0.56,0.22,1.8,0.07400000000000001,15.0,24.0,0.9943799999999999,3.4,0.82,11.2,6
862 | 7.2,0.62,0.06,2.7,0.077,15.0,85.0,0.99746,3.51,0.54,9.5,5
863 | 5.8,1.01,0.66,2.0,0.039,15.0,88.0,0.9935700000000001,3.66,0.6,11.5,6
864 | 7.5,0.42,0.32,2.7,0.067,7.0,25.0,0.9962799999999999,3.24,0.44,10.4,5
865 | 7.2,0.62,0.06,2.5,0.078,17.0,84.0,0.99746,3.51,0.53,9.7,5
866 | 7.2,0.62,0.06,2.7,0.077,15.0,85.0,0.99746,3.51,0.54,9.5,5
867 | 7.2,0.635,0.07,2.6,0.077,16.0,86.0,0.9974799999999999,3.51,0.54,9.7,5
868 | 6.8,0.49,0.22,2.3,0.071,13.0,24.0,0.9943799999999999,3.41,0.83,11.3,6
869 | 6.9,0.51,0.23,2.0,0.07200000000000001,13.0,22.0,0.9943799999999999,3.4,0.84,11.2,6
870 | 6.8,0.56,0.22,1.8,0.07400000000000001,15.0,24.0,0.9943799999999999,3.4,0.82,11.2,6
871 | 7.6,0.63,0.03,2.0,0.08,27.0,43.0,0.9957799999999999,3.44,0.64,10.9,6
872 | 7.7,0.715,0.01,2.1,0.064,31.0,43.0,0.99371,3.41,0.57,11.8,6
873 | 6.9,0.56,0.03,1.5,0.086,36.0,46.0,0.9952200000000001,3.53,0.57,10.6,5
874 | 7.3,0.35,0.24,2.0,0.067,28.0,48.0,0.9957600000000001,3.43,0.54,10.0,4
875 | 9.1,0.21,0.37,1.6,0.067,6.0,10.0,0.9955200000000001,3.23,0.58,11.1,7
876 | 10.4,0.38,0.46,2.1,0.10400000000000001,6.0,10.0,0.99664,3.12,0.65,11.8,7
877 | 8.8,0.31,0.4,2.8,0.109,7.0,16.0,0.9961399999999999,3.31,0.79,11.8,7
878 | 7.1,0.47,0.0,2.2,0.067,7.0,14.0,0.9951700000000001,3.4,0.58,10.9,4
879 | 7.7,0.715,0.01,2.1,0.064,31.0,43.0,0.99371,3.41,0.57,11.8,6
880 | 8.8,0.61,0.19,4.0,0.094,30.0,69.0,0.99787,3.22,0.5,10.0,6
881 | 7.2,0.6,0.04,2.5,0.076,18.0,88.0,0.99745,3.53,0.55,9.5,5
882 | 9.2,0.56,0.18,1.6,0.078,10.0,21.0,0.9957600000000001,3.15,0.49,9.9,5
883 | 7.6,0.715,0.0,2.1,0.068,30.0,35.0,0.9953299999999999,3.48,0.65,11.4,6
884 | 8.4,0.31,0.29,3.1,0.19399999999999998,14.0,26.0,0.99536,3.22,0.78,12.0,6
885 | 7.2,0.6,0.04,2.5,0.076,18.0,88.0,0.99745,3.53,0.55,9.5,5
886 | 8.8,0.61,0.19,4.0,0.094,30.0,69.0,0.99787,3.22,0.5,10.0,6
887 | 8.9,0.75,0.14,2.5,0.086,9.0,30.0,0.99824,3.34,0.64,10.5,5
888 | 9.0,0.8,0.12,2.4,0.083,8.0,28.0,0.99836,3.33,0.65,10.4,6
889 | 10.7,0.52,0.38,2.6,0.066,29.0,56.0,0.99577,3.15,0.79,12.1,7
890 | 6.8,0.57,0.0,2.5,0.07200000000000001,32.0,64.0,0.9949100000000001,3.43,0.56,11.2,6
891 | 10.7,0.9,0.34,6.6,0.11199999999999999,23.0,99.0,1.00289,3.22,0.68,9.3,5
892 | 7.2,0.34,0.24,2.0,0.071,30.0,52.0,0.9957600000000001,3.44,0.58,10.1,5
893 | 7.2,0.66,0.03,2.3,0.078,16.0,86.0,0.9974299999999999,3.53,0.57,9.7,5
894 | 10.1,0.45,0.23,1.9,0.08199999999999999,10.0,18.0,0.99774,3.22,0.65,9.3,6
895 | 7.2,0.66,0.03,2.3,0.078,16.0,86.0,0.9974299999999999,3.53,0.57,9.7,5
896 | 7.2,0.63,0.03,2.2,0.08,17.0,88.0,0.99745,3.53,0.58,9.8,6
897 | 7.1,0.59,0.01,2.3,0.08,27.0,43.0,0.9955,3.42,0.58,10.7,6
898 | 8.3,0.31,0.39,2.4,0.078,17.0,43.0,0.99444,3.31,0.77,12.5,7
899 | 7.1,0.59,0.01,2.3,0.08,27.0,43.0,0.9955,3.42,0.58,10.7,6
900 | 8.3,0.31,0.39,2.4,0.078,17.0,43.0,0.99444,3.31,0.77,12.5,7
901 | 8.3,1.02,0.02,3.4,0.084,6.0,11.0,0.99892,3.48,0.49,11.0,3
902 | 8.9,0.31,0.36,2.6,0.055999999999999994,10.0,39.0,0.9956200000000001,3.4,0.69,11.8,5
903 | 7.4,0.635,0.1,2.4,0.08,16.0,33.0,0.99736,3.58,0.69,10.8,7
904 | 7.4,0.635,0.1,2.4,0.08,16.0,33.0,0.99736,3.58,0.69,10.8,7
905 | 6.8,0.59,0.06,6.0,0.06,11.0,18.0,0.9962,3.41,0.59,10.8,7
906 | 6.8,0.59,0.06,6.0,0.06,11.0,18.0,0.9962,3.41,0.59,10.8,7
907 | 9.2,0.58,0.2,3.0,0.081,15.0,115.0,0.998,3.23,0.59,9.5,5
908 | 7.2,0.54,0.27,2.6,0.084,12.0,78.0,0.9964,3.39,0.71,11.0,5
909 | 6.1,0.56,0.0,2.2,0.079,6.0,9.0,0.9948,3.59,0.54,11.5,6
910 | 7.4,0.52,0.13,2.4,0.078,34.0,61.0,0.9952799999999999,3.43,0.59,10.8,6
911 | 7.3,0.305,0.39,1.2,0.059000000000000004,7.0,11.0,0.99331,3.29,0.52,11.5,6
912 | 9.3,0.38,0.48,3.8,0.132,3.0,11.0,0.99577,3.23,0.57,13.2,6
913 | 9.1,0.28,0.46,9.0,0.114,3.0,9.0,0.9990100000000001,3.18,0.6,10.9,6
914 | 10.0,0.46,0.44,2.9,0.065,4.0,8.0,0.99674,3.33,0.62,12.2,6
915 | 9.4,0.395,0.46,4.6,0.094,3.0,10.0,0.99639,3.27,0.64,12.2,7
916 | 7.3,0.305,0.39,1.2,0.059000000000000004,7.0,11.0,0.99331,3.29,0.52,11.5,6
917 | 8.6,0.315,0.4,2.2,0.079,3.0,6.0,0.9951200000000001,3.27,0.67,11.9,6
918 | 5.3,0.715,0.19,1.5,0.161,7.0,62.0,0.99395,3.62,0.61,11.0,5
919 | 6.8,0.41,0.31,8.8,0.084,26.0,45.0,0.99824,3.38,0.64,10.1,6
920 | 8.4,0.36,0.32,2.2,0.081,32.0,79.0,0.9964,3.3,0.72,11.0,6
921 | 8.4,0.62,0.12,1.8,0.07200000000000001,38.0,46.0,0.9950399999999999,3.38,0.89,11.8,6
922 | 9.6,0.41,0.37,2.3,0.091,10.0,23.0,0.9978600000000001,3.24,0.56,10.5,5
923 | 8.4,0.36,0.32,2.2,0.081,32.0,79.0,0.9964,3.3,0.72,11.0,6
924 | 8.4,0.62,0.12,1.8,0.07200000000000001,38.0,46.0,0.9950399999999999,3.38,0.89,11.8,6
925 | 6.8,0.41,0.31,8.8,0.084,26.0,45.0,0.99824,3.38,0.64,10.1,6
926 | 8.6,0.47,0.27,2.3,0.055,14.0,28.0,0.99516,3.18,0.8,11.2,5
927 | 8.6,0.22,0.36,1.9,0.064,53.0,77.0,0.9960399999999999,3.47,0.87,11.0,7
928 | 9.4,0.24,0.33,2.3,0.061,52.0,73.0,0.9978600000000001,3.47,0.9,10.2,6
929 | 8.4,0.67,0.19,2.2,0.09300000000000001,11.0,75.0,0.99736,3.2,0.59,9.2,4
930 | 8.6,0.47,0.27,2.3,0.055,14.0,28.0,0.99516,3.18,0.8,11.2,5
931 | 8.7,0.33,0.38,3.3,0.063,10.0,19.0,0.9946799999999999,3.3,0.73,12.0,7
932 | 6.6,0.61,0.01,1.9,0.08,8.0,25.0,0.99746,3.69,0.73,10.5,5
933 | 7.4,0.61,0.01,2.0,0.07400000000000001,13.0,38.0,0.9974799999999999,3.48,0.65,9.8,5
934 | 7.6,0.4,0.29,1.9,0.078,29.0,66.0,0.9971,3.45,0.59,9.5,6
935 | 7.4,0.61,0.01,2.0,0.07400000000000001,13.0,38.0,0.9974799999999999,3.48,0.65,9.8,5
936 | 6.6,0.61,0.01,1.9,0.08,8.0,25.0,0.99746,3.69,0.73,10.5,5
937 | 8.8,0.3,0.38,2.3,0.06,19.0,72.0,0.9954299999999999,3.39,0.72,11.8,6
938 | 8.8,0.3,0.38,2.3,0.06,19.0,72.0,0.9954299999999999,3.39,0.72,11.8,6
939 | 12.0,0.63,0.5,1.4,0.071,6.0,26.0,0.9979100000000001,3.07,0.6,10.4,4
940 | 7.2,0.38,0.38,2.8,0.068,23.0,42.0,0.99356,3.34,0.72,12.9,7
941 | 6.2,0.46,0.17,1.6,0.073,7.0,11.0,0.99425,3.61,0.54,11.4,5
942 | 9.6,0.33,0.52,2.2,0.07400000000000001,13.0,25.0,0.9950899999999999,3.36,0.76,12.4,7
943 | 9.9,0.27,0.49,5.0,0.08199999999999999,9.0,17.0,0.99484,3.19,0.52,12.5,7
944 | 10.1,0.43,0.4,2.6,0.092,13.0,52.0,0.99834,3.22,0.64,10.0,7
945 | 9.8,0.5,0.34,2.3,0.094,10.0,45.0,0.99864,3.24,0.6,9.7,7
946 | 8.3,0.3,0.49,3.8,0.09,11.0,24.0,0.99498,3.27,0.64,12.1,7
947 | 10.2,0.44,0.42,2.0,0.071,7.0,20.0,0.99566,3.14,0.79,11.1,7
948 | 10.2,0.44,0.58,4.1,0.092,11.0,24.0,0.99745,3.29,0.99,12.0,7
949 | 8.3,0.28,0.48,2.1,0.09300000000000001,6.0,12.0,0.99408,3.26,0.62,12.4,7
950 | 8.9,0.12,0.45,1.8,0.075,10.0,21.0,0.9955200000000001,3.41,0.76,11.9,7
951 | 8.9,0.12,0.45,1.8,0.075,10.0,21.0,0.9955200000000001,3.41,0.76,11.9,7
952 | 8.9,0.12,0.45,1.8,0.075,10.0,21.0,0.9955200000000001,3.41,0.76,11.9,7
953 | 8.3,0.28,0.48,2.1,0.09300000000000001,6.0,12.0,0.99408,3.26,0.62,12.4,7
954 | 8.2,0.31,0.4,2.2,0.057999999999999996,6.0,10.0,0.99536,3.31,0.68,11.2,7
955 | 10.2,0.34,0.48,2.1,0.052000000000000005,5.0,9.0,0.9945799999999999,3.2,0.69,12.1,7
956 | 7.6,0.43,0.4,2.7,0.08199999999999999,6.0,11.0,0.9953799999999999,3.44,0.54,12.2,6
957 | 8.5,0.21,0.52,1.9,0.09,9.0,23.0,0.9964799999999999,3.36,0.67,10.4,5
958 | 9.0,0.36,0.52,2.1,0.111,5.0,10.0,0.9956799999999999,3.31,0.62,11.3,6
959 | 9.5,0.37,0.52,2.0,0.08800000000000001,12.0,51.0,0.99613,3.29,0.58,11.1,6
960 | 6.4,0.57,0.12,2.3,0.12,25.0,36.0,0.99519,3.47,0.71,11.3,7
961 | 8.0,0.59,0.05,2.0,0.08900000000000001,12.0,32.0,0.99735,3.36,0.61,10.0,5
962 | 8.5,0.47,0.27,1.9,0.057999999999999996,18.0,38.0,0.99518,3.16,0.85,11.1,6
963 | 7.1,0.56,0.14,1.6,0.078,7.0,18.0,0.99592,3.27,0.62,9.3,5
964 | 6.6,0.57,0.02,2.1,0.115,6.0,16.0,0.99654,3.38,0.69,9.5,5
965 | 8.8,0.27,0.39,2.0,0.1,20.0,27.0,0.99546,3.15,0.69,11.2,6
966 | 8.5,0.47,0.27,1.9,0.057999999999999996,18.0,38.0,0.99518,3.16,0.85,11.1,6
967 | 8.3,0.34,0.4,2.4,0.065,24.0,48.0,0.99554,3.34,0.86,11.0,6
968 | 9.0,0.38,0.41,2.4,0.10300000000000001,6.0,10.0,0.9960399999999999,3.13,0.58,11.9,7
969 | 8.5,0.66,0.2,2.1,0.09699999999999999,23.0,113.0,0.9973299999999999,3.13,0.48,9.2,5
970 | 9.0,0.4,0.43,2.4,0.068,29.0,46.0,0.9943,3.2,0.6,12.2,6
971 | 6.7,0.56,0.09,2.9,0.079,7.0,22.0,0.99669,3.46,0.61,10.2,5
972 | 10.4,0.26,0.48,1.9,0.066,6.0,10.0,0.99724,3.33,0.87,10.9,6
973 | 10.4,0.26,0.48,1.9,0.066,6.0,10.0,0.99724,3.33,0.87,10.9,6
974 | 10.1,0.38,0.5,2.4,0.10400000000000001,6.0,13.0,0.9964299999999999,3.22,0.65,11.6,7
975 | 8.5,0.34,0.44,1.7,0.079,6.0,12.0,0.99605,3.52,0.63,10.7,5
976 | 8.8,0.33,0.41,5.9,0.073,7.0,13.0,0.9965799999999999,3.3,0.62,12.1,7
977 | 7.2,0.41,0.3,2.1,0.083,35.0,72.0,0.997,3.44,0.52,9.4,5
978 | 7.2,0.41,0.3,2.1,0.083,35.0,72.0,0.997,3.44,0.52,9.4,5
979 | 8.4,0.59,0.29,2.6,0.109,31.0,119.0,0.9980100000000001,3.15,0.5,9.1,5
980 | 7.0,0.4,0.32,3.6,0.061,9.0,29.0,0.99416,3.28,0.49,11.3,7
981 | 12.2,0.45,0.49,1.4,0.075,3.0,6.0,0.9969,3.13,0.63,10.4,5
982 | 9.1,0.5,0.3,1.9,0.065,8.0,17.0,0.99774,3.32,0.71,10.5,6
983 | 9.5,0.86,0.26,1.9,0.079,13.0,28.0,0.9971200000000001,3.25,0.62,10.0,5
984 | 7.3,0.52,0.32,2.1,0.07,51.0,70.0,0.99418,3.34,0.82,12.9,6
985 | 9.1,0.5,0.3,1.9,0.065,8.0,17.0,0.99774,3.32,0.71,10.5,6
986 | 12.2,0.45,0.49,1.4,0.075,3.0,6.0,0.9969,3.13,0.63,10.4,5
987 | 7.4,0.58,0.0,2.0,0.064,7.0,11.0,0.9956200000000001,3.45,0.58,11.3,6
988 | 9.8,0.34,0.39,1.4,0.066,3.0,7.0,0.9947,3.19,0.55,11.4,7
989 | 7.1,0.36,0.3,1.6,0.08,35.0,70.0,0.9969299999999999,3.44,0.5,9.4,5
990 | 7.7,0.39,0.12,1.7,0.09699999999999999,19.0,27.0,0.9959600000000001,3.16,0.49,9.4,5
991 | 9.7,0.295,0.4,1.5,0.073,14.0,21.0,0.99556,3.14,0.51,10.9,6
992 | 7.7,0.39,0.12,1.7,0.09699999999999999,19.0,27.0,0.9959600000000001,3.16,0.49,9.4,5
993 | 7.1,0.34,0.28,2.0,0.08199999999999999,31.0,68.0,0.9969399999999999,3.45,0.48,9.4,5
994 | 6.5,0.4,0.1,2.0,0.076,30.0,47.0,0.99554,3.36,0.48,9.4,6
995 | 7.1,0.34,0.28,2.0,0.08199999999999999,31.0,68.0,0.9969399999999999,3.45,0.48,9.4,5
996 | 10.0,0.35,0.45,2.5,0.092,20.0,88.0,0.99918,3.15,0.43,9.4,5
997 | 7.7,0.6,0.06,2.0,0.079,19.0,41.0,0.99697,3.39,0.62,10.1,6
998 | 5.6,0.66,0.0,2.2,0.087,3.0,11.0,0.9937799999999999,3.71,0.63,12.8,7
999 | 5.6,0.66,0.0,2.2,0.087,3.0,11.0,0.9937799999999999,3.71,0.63,12.8,7
1000 | 8.9,0.84,0.34,1.4,0.05,4.0,10.0,0.99554,3.12,0.48,9.1,6
1001 | 6.4,0.69,0.0,1.65,0.055,7.0,12.0,0.9916200000000001,3.47,0.53,12.9,6
1002 | 7.5,0.43,0.3,2.2,0.062,6.0,12.0,0.99495,3.44,0.72,11.5,7
1003 | 9.9,0.35,0.38,1.5,0.057999999999999996,31.0,47.0,0.9967600000000001,3.26,0.82,10.6,7
1004 | 9.1,0.29,0.33,2.05,0.063,13.0,27.0,0.99516,3.26,0.84,11.7,7
1005 | 6.8,0.36,0.32,1.8,0.067,4.0,8.0,0.9928,3.36,0.55,12.8,7
1006 | 8.2,0.43,0.29,1.6,0.081,27.0,45.0,0.99603,3.25,0.54,10.3,5
1007 | 6.8,0.36,0.32,1.8,0.067,4.0,8.0,0.9928,3.36,0.55,12.8,7
1008 | 9.1,0.29,0.33,2.05,0.063,13.0,27.0,0.99516,3.26,0.84,11.7,7
1009 | 9.1,0.3,0.34,2.0,0.064,12.0,25.0,0.99516,3.26,0.84,11.7,7
1010 | 8.9,0.35,0.4,3.6,0.11,12.0,24.0,0.99549,3.23,0.7,12.0,7
1011 | 9.6,0.5,0.36,2.8,0.11599999999999999,26.0,55.0,0.9972200000000001,3.18,0.68,10.9,5
1012 | 8.9,0.28,0.45,1.7,0.067,7.0,12.0,0.99354,3.25,0.55,12.3,7
1013 | 8.9,0.32,0.31,2.0,0.08800000000000001,12.0,19.0,0.9957,3.17,0.55,10.4,6
1014 | 7.7,1.005,0.15,2.1,0.102,11.0,32.0,0.9960399999999999,3.23,0.48,10.0,5
1015 | 7.5,0.71,0.0,1.6,0.092,22.0,31.0,0.99635,3.38,0.58,10.0,6
1016 | 8.0,0.58,0.16,2.0,0.12,3.0,7.0,0.99454,3.22,0.58,11.2,6
1017 | 10.5,0.39,0.46,2.2,0.075,14.0,27.0,0.99598,3.06,0.84,11.4,6
1018 | 8.9,0.38,0.4,2.2,0.068,12.0,28.0,0.9948600000000001,3.27,0.75,12.6,7
1019 | 8.0,0.18,0.37,0.9,0.049,36.0,109.0,0.9900700000000001,2.89,0.44,12.7,6
1020 | 8.0,0.18,0.37,0.9,0.049,36.0,109.0,0.9900700000000001,2.89,0.44,12.7,6
1021 | 7.0,0.5,0.14,1.8,0.078,10.0,23.0,0.99636,3.53,0.61,10.4,5
1022 | 11.3,0.36,0.66,2.4,0.12300000000000001,3.0,8.0,0.9964200000000001,3.2,0.53,11.9,6
1023 | 11.3,0.36,0.66,2.4,0.12300000000000001,3.0,8.0,0.9964200000000001,3.2,0.53,11.9,6
1024 | 7.0,0.51,0.09,2.1,0.062,4.0,9.0,0.99584,3.35,0.54,10.5,5
1025 | 8.2,0.32,0.42,2.3,0.098,3.0,9.0,0.9950600000000001,3.27,0.55,12.3,6
1026 | 7.7,0.58,0.01,1.8,0.08800000000000001,12.0,18.0,0.9956799999999999,3.32,0.56,10.5,7
1027 | 8.6,0.83,0.0,2.8,0.095,17.0,43.0,0.9982200000000001,3.33,0.6,10.4,6
1028 | 7.9,0.31,0.32,1.9,0.066,14.0,36.0,0.99364,3.41,0.56,12.6,6
1029 | 6.4,0.795,0.0,2.2,0.065,28.0,52.0,0.9937799999999999,3.49,0.52,11.6,5
1030 | 7.2,0.34,0.21,2.5,0.075,41.0,68.0,0.9958600000000001,3.37,0.54,10.1,6
1031 | 7.7,0.58,0.01,1.8,0.08800000000000001,12.0,18.0,0.9956799999999999,3.32,0.56,10.5,7
1032 | 7.1,0.59,0.0,2.1,0.091,9.0,14.0,0.9948799999999999,3.42,0.55,11.5,7
1033 | 7.3,0.55,0.01,1.8,0.09300000000000001,9.0,15.0,0.9951399999999999,3.35,0.58,11.0,7
1034 | 8.1,0.82,0.0,4.1,0.095,5.0,14.0,0.99854,3.36,0.53,9.6,5
1035 | 7.5,0.57,0.08,2.6,0.08900000000000001,14.0,27.0,0.99592,3.3,0.59,10.4,6
1036 | 8.9,0.745,0.18,2.5,0.077,15.0,48.0,0.99739,3.2,0.47,9.7,6
1037 | 10.1,0.37,0.34,2.4,0.085,5.0,17.0,0.9968299999999999,3.17,0.65,10.6,7
1038 | 7.6,0.31,0.34,2.5,0.08199999999999999,26.0,35.0,0.99356,3.22,0.59,12.5,7
1039 | 7.3,0.91,0.1,1.8,0.07400000000000001,20.0,56.0,0.99672,3.35,0.56,9.2,5
1040 | 8.7,0.41,0.41,6.2,0.078,25.0,42.0,0.9953,3.24,0.77,12.6,7
1041 | 8.9,0.5,0.21,2.2,0.08800000000000001,21.0,39.0,0.99692,3.33,0.83,11.1,6
1042 | 7.4,0.965,0.0,2.2,0.08800000000000001,16.0,32.0,0.99756,3.58,0.67,10.2,5
1043 | 6.9,0.49,0.19,1.7,0.079,13.0,26.0,0.9954700000000001,3.38,0.64,9.8,6
1044 | 8.9,0.5,0.21,2.2,0.08800000000000001,21.0,39.0,0.99692,3.33,0.83,11.1,6
1045 | 9.5,0.39,0.41,8.9,0.069,18.0,39.0,0.99859,3.29,0.81,10.9,7
1046 | 6.4,0.39,0.33,3.3,0.046,12.0,53.0,0.9929399999999999,3.36,0.62,12.2,6
1047 | 6.9,0.44,0.0,1.4,0.07,32.0,38.0,0.9943799999999999,3.32,0.58,11.4,6
1048 | 7.6,0.78,0.0,1.7,0.076,33.0,45.0,0.9961200000000001,3.31,0.62,10.7,6
1049 | 7.1,0.43,0.17,1.8,0.08199999999999999,27.0,51.0,0.99634,3.49,0.64,10.4,5
1050 | 9.3,0.49,0.36,1.7,0.081,3.0,14.0,0.99702,3.27,0.78,10.9,6
1051 | 9.3,0.5,0.36,1.8,0.084,6.0,17.0,0.9970399999999999,3.27,0.77,10.8,6
1052 | 7.1,0.43,0.17,1.8,0.08199999999999999,27.0,51.0,0.99634,3.49,0.64,10.4,5
1053 | 8.5,0.46,0.59,1.4,0.414,16.0,45.0,0.99702,3.03,1.34,9.2,5
1054 | 5.6,0.605,0.05,2.4,0.073,19.0,25.0,0.9925799999999999,3.56,0.55,12.9,5
1055 | 8.3,0.33,0.42,2.3,0.07,9.0,20.0,0.99426,3.38,0.77,12.7,7
1056 | 8.2,0.64,0.27,2.0,0.095,5.0,77.0,0.9974700000000001,3.13,0.62,9.1,6
1057 | 8.2,0.64,0.27,2.0,0.095,5.0,77.0,0.9974700000000001,3.13,0.62,9.1,6
1058 | 8.9,0.48,0.53,4.0,0.10099999999999999,3.0,10.0,0.9958600000000001,3.21,0.59,12.1,7
1059 | 7.6,0.42,0.25,3.9,0.10400000000000001,28.0,90.0,0.99784,3.15,0.57,9.1,5
1060 | 9.9,0.53,0.57,2.4,0.09300000000000001,30.0,52.0,0.9971,3.19,0.76,11.6,7
1061 | 8.9,0.48,0.53,4.0,0.10099999999999999,3.0,10.0,0.9958600000000001,3.21,0.59,12.1,7
1062 | 11.6,0.23,0.57,1.8,0.07400000000000001,3.0,8.0,0.9981,3.14,0.7,9.9,6
1063 | 9.1,0.4,0.5,1.8,0.071,7.0,16.0,0.9946200000000001,3.21,0.69,12.5,8
1064 | 8.0,0.38,0.44,1.9,0.098,6.0,15.0,0.9956,3.3,0.64,11.4,6
1065 | 10.2,0.29,0.65,2.4,0.075,6.0,17.0,0.99565,3.22,0.63,11.8,6
1066 | 8.2,0.74,0.09,2.0,0.067,5.0,10.0,0.99418,3.28,0.57,11.8,6
1067 | 7.7,0.61,0.18,2.4,0.083,6.0,20.0,0.9963,3.29,0.6,10.2,6
1068 | 6.6,0.52,0.08,2.4,0.07,13.0,26.0,0.9935799999999999,3.4,0.72,12.5,7
1069 | 11.1,0.31,0.53,2.2,0.06,3.0,10.0,0.99572,3.02,0.83,10.9,7
1070 | 11.1,0.31,0.53,2.2,0.06,3.0,10.0,0.99572,3.02,0.83,10.9,7
1071 | 8.0,0.62,0.35,2.8,0.086,28.0,52.0,0.997,3.31,0.62,10.8,5
1072 | 9.3,0.33,0.45,1.5,0.057,19.0,37.0,0.99498,3.18,0.89,11.1,7
1073 | 7.5,0.77,0.2,8.1,0.098,30.0,92.0,0.99892,3.2,0.58,9.2,5
1074 | 7.2,0.35,0.26,1.8,0.083,33.0,75.0,0.9968,3.4,0.58,9.5,6
1075 | 8.0,0.62,0.33,2.7,0.08800000000000001,16.0,37.0,0.9972,3.31,0.58,10.7,6
1076 | 7.5,0.77,0.2,8.1,0.098,30.0,92.0,0.99892,3.2,0.58,9.2,5
1077 | 9.1,0.25,0.34,2.0,0.071,45.0,67.0,0.99769,3.44,0.86,10.2,7
1078 | 9.9,0.32,0.56,2.0,0.073,3.0,8.0,0.99534,3.15,0.73,11.4,6
1079 | 8.6,0.37,0.65,6.4,0.08,3.0,8.0,0.9981700000000001,3.27,0.58,11.0,5
1080 | 8.6,0.37,0.65,6.4,0.08,3.0,8.0,0.9981700000000001,3.27,0.58,11.0,5
1081 | 7.9,0.3,0.68,8.3,0.05,37.5,278.0,0.99316,3.01,0.51,12.3,7
1082 | 10.3,0.27,0.56,1.4,0.047,3.0,8.0,0.99471,3.16,0.51,11.8,6
1083 | 7.9,0.3,0.68,8.3,0.05,37.5,289.0,0.99316,3.01,0.51,12.3,7
1084 | 7.2,0.38,0.3,1.8,0.073,31.0,70.0,0.99685,3.42,0.59,9.5,6
1085 | 8.7,0.42,0.45,2.4,0.07200000000000001,32.0,59.0,0.9961700000000001,3.33,0.77,12.0,6
1086 | 7.2,0.38,0.3,1.8,0.073,31.0,70.0,0.99685,3.42,0.59,9.5,6
1087 | 6.8,0.48,0.08,1.8,0.07400000000000001,40.0,64.0,0.99529,3.12,0.49,9.6,5
1088 | 8.5,0.34,0.4,4.7,0.055,3.0,9.0,0.9973799999999999,3.38,0.66,11.6,7
1089 | 7.9,0.19,0.42,1.6,0.057,18.0,30.0,0.9940000000000001,3.29,0.69,11.2,6
1090 | 11.6,0.41,0.54,1.5,0.095,22.0,41.0,0.99735,3.02,0.76,9.9,7
1091 | 11.6,0.41,0.54,1.5,0.095,22.0,41.0,0.99735,3.02,0.76,9.9,7
1092 | 10.0,0.26,0.54,1.9,0.083,42.0,74.0,0.99451,2.98,0.63,11.8,8
1093 | 7.9,0.34,0.42,2.0,0.086,8.0,19.0,0.99546,3.35,0.6,11.4,6
1094 | 7.0,0.54,0.09,2.0,0.081,10.0,16.0,0.99479,3.43,0.59,11.5,6
1095 | 9.2,0.31,0.36,2.2,0.079,11.0,31.0,0.99615,3.33,0.86,12.0,7
1096 | 6.6,0.725,0.09,5.5,0.11699999999999999,9.0,17.0,0.99655,3.35,0.49,10.8,6
1097 | 9.4,0.4,0.47,2.5,0.087,6.0,20.0,0.99772,3.15,0.5,10.5,5
1098 | 6.6,0.725,0.09,5.5,0.11699999999999999,9.0,17.0,0.99655,3.35,0.49,10.8,6
1099 | 8.6,0.52,0.38,1.5,0.096,5.0,18.0,0.99666,3.2,0.52,9.4,5
1100 | 8.0,0.31,0.45,2.1,0.21600000000000003,5.0,16.0,0.9935799999999999,3.15,0.81,12.5,7
1101 | 8.6,0.52,0.38,1.5,0.096,5.0,18.0,0.99666,3.2,0.52,9.4,5
1102 | 8.4,0.34,0.42,2.1,0.07200000000000001,23.0,36.0,0.99392,3.11,0.78,12.4,6
1103 | 7.4,0.49,0.27,2.1,0.071,14.0,25.0,0.9938799999999999,3.35,0.63,12.0,6
1104 | 6.1,0.48,0.09,1.7,0.078,18.0,30.0,0.9940200000000001,3.45,0.54,11.2,6
1105 | 7.4,0.49,0.27,2.1,0.071,14.0,25.0,0.9938799999999999,3.35,0.63,12.0,6
1106 | 8.0,0.48,0.34,2.2,0.073,16.0,25.0,0.9936,3.28,0.66,12.4,6
1107 | 6.3,0.57,0.28,2.1,0.048,13.0,49.0,0.99374,3.41,0.6,12.8,5
1108 | 8.2,0.23,0.42,1.9,0.069,9.0,17.0,0.9937600000000001,3.21,0.54,12.3,6
1109 | 9.1,0.3,0.41,2.0,0.068,10.0,24.0,0.99523,3.27,0.85,11.7,7
1110 | 8.1,0.78,0.1,3.3,0.09,4.0,13.0,0.99855,3.36,0.49,9.5,5
1111 | 10.8,0.47,0.43,2.1,0.171,27.0,66.0,0.9982,3.17,0.76,10.8,6
1112 | 8.3,0.53,0.0,1.4,0.07,6.0,14.0,0.99593,3.25,0.64,10.0,6
1113 | 5.4,0.42,0.27,2.0,0.092,23.0,55.0,0.99471,3.78,0.64,12.3,7
1114 | 7.9,0.33,0.41,1.5,0.055999999999999994,6.0,35.0,0.9939600000000001,3.29,0.71,11.0,6
1115 | 8.9,0.24,0.39,1.6,0.07400000000000001,3.0,10.0,0.99698,3.12,0.59,9.5,6
1116 | 5.0,0.4,0.5,4.3,0.046,29.0,80.0,0.9902,3.49,0.66,13.6,6
1117 | 7.0,0.69,0.07,2.5,0.091,15.0,21.0,0.99572,3.38,0.6,11.3,6
1118 | 7.0,0.69,0.07,2.5,0.091,15.0,21.0,0.99572,3.38,0.6,11.3,6
1119 | 7.0,0.69,0.07,2.5,0.091,15.0,21.0,0.99572,3.38,0.6,11.3,6
1120 | 7.1,0.39,0.12,2.1,0.065,14.0,24.0,0.9925200000000001,3.3,0.53,13.3,6
1121 | 5.6,0.66,0.0,2.5,0.066,7.0,15.0,0.99256,3.52,0.58,12.9,5
1122 | 7.9,0.54,0.34,2.5,0.076,8.0,17.0,0.99235,3.2,0.72,13.1,8
1123 | 6.6,0.5,0.0,1.8,0.062,21.0,28.0,0.9935200000000001,3.44,0.55,12.3,6
1124 | 6.3,0.47,0.0,1.4,0.055,27.0,33.0,0.9922,3.45,0.48,12.3,6
1125 | 10.7,0.4,0.37,1.9,0.081,17.0,29.0,0.99674,3.12,0.65,11.2,6
1126 | 6.5,0.58,0.0,2.2,0.096,3.0,13.0,0.9955700000000001,3.62,0.62,11.5,4
1127 | 8.8,0.24,0.35,1.7,0.055,13.0,27.0,0.9939399999999999,3.14,0.59,11.3,7
1128 | 5.8,0.29,0.26,1.7,0.063,3.0,11.0,0.9915,3.39,0.54,13.5,6
1129 | 6.3,0.76,0.0,2.9,0.07200000000000001,26.0,52.0,0.99379,3.51,0.6,11.5,6
1130 | 10.0,0.43,0.33,2.7,0.095,28.0,89.0,0.9984,3.22,0.68,10.0,5
1131 | 10.5,0.43,0.35,3.3,0.092,24.0,70.0,0.99798,3.21,0.69,10.5,6
1132 | 9.1,0.6,0.0,1.9,0.057999999999999996,5.0,10.0,0.9977,3.18,0.63,10.4,6
1133 | 5.9,0.19,0.21,1.7,0.045,57.0,135.0,0.99341,3.32,0.44,9.5,5
1134 | 7.4,0.36,0.34,1.8,0.075,18.0,38.0,0.9933,3.38,0.88,13.6,7
1135 | 7.2,0.48,0.07,5.5,0.08900000000000001,10.0,18.0,0.99684,3.37,0.68,11.2,7
1136 | 8.5,0.28,0.35,1.7,0.061,6.0,15.0,0.99524,3.3,0.74,11.8,7
1137 | 8.0,0.25,0.43,1.7,0.067,22.0,50.0,0.9946,3.38,0.6,11.9,6
1138 | 10.4,0.52,0.45,2.0,0.08,6.0,13.0,0.99774,3.22,0.76,11.4,6
1139 | 10.4,0.52,0.45,2.0,0.08,6.0,13.0,0.99774,3.22,0.76,11.4,6
1140 | 7.5,0.41,0.15,3.7,0.10400000000000001,29.0,94.0,0.9978600000000001,3.14,0.58,9.1,5
1141 | 8.2,0.51,0.24,2.0,0.079,16.0,86.0,0.99764,3.34,0.64,9.5,6
1142 | 7.3,0.4,0.3,1.7,0.08,33.0,79.0,0.9969,3.41,0.65,9.5,6
1143 | 8.2,0.38,0.32,2.5,0.08,24.0,71.0,0.99624,3.27,0.85,11.0,6
1144 | 6.9,0.45,0.11,2.4,0.043,6.0,12.0,0.99354,3.3,0.65,11.4,6
1145 | 7.0,0.22,0.3,1.8,0.065,16.0,20.0,0.99672,3.61,0.82,10.0,6
1146 | 7.3,0.32,0.23,2.3,0.066,35.0,70.0,0.9958799999999999,3.43,0.62,10.1,5
1147 | 8.2,0.2,0.43,2.5,0.076,31.0,51.0,0.99672,3.53,0.81,10.4,6
1148 | 7.8,0.5,0.12,1.8,0.17800000000000002,6.0,21.0,0.996,3.28,0.87,9.8,6
1149 | 10.0,0.41,0.45,6.2,0.071,6.0,14.0,0.99702,3.21,0.49,11.8,7
1150 | 7.8,0.39,0.42,2.0,0.086,9.0,21.0,0.99526,3.39,0.66,11.6,6
1151 | 10.0,0.35,0.47,2.0,0.061,6.0,11.0,0.99585,3.23,0.52,12.0,6
1152 | 8.2,0.33,0.32,2.8,0.067,4.0,12.0,0.9947299999999999,3.3,0.76,12.8,7
1153 | 6.1,0.58,0.23,2.5,0.044000000000000004,16.0,70.0,0.9935200000000001,3.46,0.65,12.5,6
1154 | 8.3,0.6,0.25,2.2,0.11800000000000001,9.0,38.0,0.99616,3.15,0.53,9.8,5
1155 | 9.6,0.42,0.35,2.1,0.083,17.0,38.0,0.9962200000000001,3.23,0.66,11.1,6
1156 | 6.6,0.58,0.0,2.2,0.1,50.0,63.0,0.99544,3.59,0.68,11.4,6
1157 | 8.3,0.6,0.25,2.2,0.11800000000000001,9.0,38.0,0.99616,3.15,0.53,9.8,5
1158 | 8.5,0.18,0.51,1.75,0.071,45.0,88.0,0.99524,3.33,0.76,11.8,7
1159 | 5.1,0.51,0.18,2.1,0.042,16.0,101.0,0.9924,3.46,0.87,12.9,7
1160 | 6.7,0.41,0.43,2.8,0.076,22.0,54.0,0.99572,3.42,1.16,10.6,6
1161 | 10.2,0.41,0.43,2.2,0.11,11.0,37.0,0.9972799999999999,3.16,0.67,10.8,5
1162 | 10.6,0.36,0.57,2.3,0.087,6.0,20.0,0.9967600000000001,3.14,0.72,11.1,7
1163 | 8.8,0.45,0.43,1.4,0.076,12.0,21.0,0.99551,3.21,0.75,10.2,6
1164 | 8.5,0.32,0.42,2.3,0.075,12.0,19.0,0.99434,3.14,0.71,11.8,7
1165 | 9.0,0.785,0.24,1.7,0.078,10.0,21.0,0.99692,3.29,0.67,10.0,5
1166 | 9.0,0.785,0.24,1.7,0.078,10.0,21.0,0.99692,3.29,0.67,10.0,5
1167 | 8.5,0.44,0.5,1.9,0.369,15.0,38.0,0.99634,3.01,1.1,9.4,5
1168 | 9.9,0.54,0.26,2.0,0.111,7.0,60.0,0.9970899999999999,2.94,0.98,10.2,5
1169 | 8.2,0.33,0.39,2.5,0.07400000000000001,29.0,48.0,0.9952799999999999,3.32,0.88,12.4,7
1170 | 6.5,0.34,0.27,2.8,0.067,8.0,44.0,0.99384,3.21,0.56,12.0,6
1171 | 7.6,0.5,0.29,2.3,0.086,5.0,14.0,0.9950200000000001,3.32,0.62,11.5,6
1172 | 9.2,0.36,0.34,1.6,0.062,5.0,12.0,0.9966700000000001,3.2,0.67,10.5,6
1173 | 7.1,0.59,0.0,2.2,0.078,26.0,44.0,0.9952200000000001,3.42,0.68,10.8,6
1174 | 9.7,0.42,0.46,2.1,0.07400000000000001,5.0,16.0,0.99649,3.27,0.74,12.3,6
1175 | 7.6,0.36,0.31,1.7,0.079,26.0,65.0,0.99716,3.46,0.62,9.5,6
1176 | 7.6,0.36,0.31,1.7,0.079,26.0,65.0,0.99716,3.46,0.62,9.5,6
1177 | 6.5,0.61,0.0,2.2,0.095,48.0,59.0,0.99541,3.61,0.7,11.5,6
1178 | 6.5,0.88,0.03,5.6,0.079,23.0,47.0,0.99572,3.58,0.5,11.2,4
1179 | 7.1,0.66,0.0,2.4,0.052000000000000005,6.0,11.0,0.99318,3.35,0.66,12.7,7
1180 | 5.6,0.915,0.0,2.1,0.040999999999999995,17.0,78.0,0.99346,3.68,0.73,11.4,5
1181 | 8.2,0.35,0.33,2.4,0.076,11.0,47.0,0.9959899999999999,3.27,0.81,11.0,6
1182 | 8.2,0.35,0.33,2.4,0.076,11.0,47.0,0.9959899999999999,3.27,0.81,11.0,6
1183 | 9.8,0.39,0.43,1.65,0.068,5.0,11.0,0.9947799999999999,3.19,0.46,11.4,5
1184 | 10.2,0.4,0.4,2.5,0.068,41.0,54.0,0.99754,3.38,0.86,10.5,6
1185 | 6.8,0.66,0.07,1.6,0.07,16.0,61.0,0.99572,3.29,0.6,9.3,5
1186 | 6.7,0.64,0.23,2.1,0.08,11.0,119.0,0.9953799999999999,3.36,0.7,10.9,5
1187 | 7.0,0.43,0.3,2.0,0.085,6.0,39.0,0.99346,3.33,0.46,11.9,6
1188 | 6.6,0.8,0.03,7.8,0.079,6.0,12.0,0.9963,3.52,0.5,12.2,5
1189 | 7.0,0.43,0.3,2.0,0.085,6.0,39.0,0.99346,3.33,0.46,11.9,6
1190 | 6.7,0.64,0.23,2.1,0.08,11.0,119.0,0.9953799999999999,3.36,0.7,10.9,5
1191 | 8.8,0.955,0.05,1.8,0.075,5.0,19.0,0.99616,3.3,0.44,9.6,4
1192 | 9.1,0.4,0.57,4.6,0.08,6.0,20.0,0.9965200000000001,3.28,0.57,12.5,6
1193 | 6.5,0.885,0.0,2.3,0.166,6.0,12.0,0.99551,3.56,0.51,10.8,5
1194 | 7.2,0.25,0.37,2.5,0.063,11.0,41.0,0.99439,3.52,0.8,12.4,7
1195 | 6.4,0.885,0.0,2.3,0.166,6.0,12.0,0.99551,3.56,0.51,10.8,5
1196 | 7.0,0.745,0.12,1.8,0.114,15.0,64.0,0.9958799999999999,3.22,0.59,9.5,6
1197 | 6.2,0.43,0.22,1.8,0.078,21.0,56.0,0.9963299999999999,3.52,0.6,9.5,6
1198 | 7.9,0.58,0.23,2.3,0.076,23.0,94.0,0.9968600000000001,3.21,0.58,9.5,6
1199 | 7.7,0.57,0.21,1.5,0.069,4.0,9.0,0.9945799999999999,3.16,0.54,9.8,6
1200 | 7.7,0.26,0.26,2.0,0.052000000000000005,19.0,77.0,0.9951,3.15,0.79,10.9,6
1201 | 7.9,0.58,0.23,2.3,0.076,23.0,94.0,0.9968600000000001,3.21,0.58,9.5,6
1202 | 7.7,0.57,0.21,1.5,0.069,4.0,9.0,0.9945799999999999,3.16,0.54,9.8,6
1203 | 7.9,0.34,0.36,1.9,0.065,5.0,10.0,0.99419,3.27,0.54,11.2,7
1204 | 8.6,0.42,0.39,1.8,0.068,6.0,12.0,0.99516,3.35,0.69,11.7,8
1205 | 9.9,0.74,0.19,5.8,0.111,33.0,76.0,0.9987799999999999,3.14,0.55,9.4,5
1206 | 7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7
1207 | 7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7
1208 | 7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7
1209 | 9.9,0.72,0.55,1.7,0.136,24.0,52.0,0.9975200000000001,3.35,0.94,10.0,5
1210 | 7.2,0.36,0.46,2.1,0.07400000000000001,24.0,44.0,0.99534,3.4,0.85,11.0,7
1211 | 6.2,0.39,0.43,2.0,0.071,14.0,24.0,0.9942799999999999,3.45,0.87,11.2,7
1212 | 6.8,0.65,0.02,2.1,0.078,8.0,15.0,0.99498,3.35,0.62,10.4,6
1213 | 6.6,0.44,0.15,2.1,0.076,22.0,53.0,0.9957,3.32,0.62,9.3,5
1214 | 6.8,0.65,0.02,2.1,0.078,8.0,15.0,0.99498,3.35,0.62,10.4,6
1215 | 9.6,0.38,0.42,1.9,0.071,5.0,13.0,0.99659,3.15,0.75,10.5,6
1216 | 10.2,0.33,0.46,1.9,0.081,6.0,9.0,0.9962799999999999,3.1,0.48,10.4,6
1217 | 8.8,0.27,0.46,2.1,0.095,20.0,29.0,0.9948799999999999,3.26,0.56,11.3,6
1218 | 7.9,0.57,0.31,2.0,0.079,10.0,79.0,0.99677,3.29,0.69,9.5,6
1219 | 8.2,0.34,0.37,1.9,0.057,43.0,74.0,0.99408,3.23,0.81,12.0,6
1220 | 8.2,0.4,0.31,1.9,0.08199999999999999,8.0,24.0,0.996,3.24,0.69,10.6,6
1221 | 9.0,0.39,0.4,1.3,0.044000000000000004,25.0,50.0,0.9947799999999999,3.2,0.83,10.9,6
1222 | 10.9,0.32,0.52,1.8,0.132,17.0,44.0,0.99734,3.28,0.77,11.5,6
1223 | 10.9,0.32,0.52,1.8,0.132,17.0,44.0,0.99734,3.28,0.77,11.5,6
1224 | 8.1,0.53,0.22,2.2,0.078,33.0,89.0,0.9967799999999999,3.26,0.46,9.6,6
1225 | 10.5,0.36,0.47,2.2,0.07400000000000001,9.0,23.0,0.9963799999999999,3.23,0.76,12.0,6
1226 | 12.6,0.39,0.49,2.5,0.08,8.0,20.0,0.9992,3.07,0.82,10.3,6
1227 | 9.2,0.46,0.23,2.6,0.091,18.0,77.0,0.9992200000000001,3.15,0.51,9.4,5
1228 | 7.5,0.58,0.03,4.1,0.08,27.0,46.0,0.99592,3.02,0.47,9.2,5
1229 | 9.0,0.58,0.25,2.0,0.10400000000000001,8.0,21.0,0.99769,3.27,0.72,9.6,5
1230 | 5.1,0.42,0.0,1.8,0.044000000000000004,18.0,88.0,0.9915700000000001,3.68,0.73,13.6,7
1231 | 7.6,0.43,0.29,2.1,0.075,19.0,66.0,0.99718,3.4,0.64,9.5,5
1232 | 7.7,0.18,0.34,2.7,0.066,15.0,58.0,0.9947,3.37,0.78,11.8,6
1233 | 7.8,0.815,0.01,2.6,0.07400000000000001,48.0,90.0,0.99621,3.38,0.62,10.8,5
1234 | 7.6,0.43,0.29,2.1,0.075,19.0,66.0,0.99718,3.4,0.64,9.5,5
1235 | 10.2,0.23,0.37,2.2,0.057,14.0,36.0,0.9961399999999999,3.23,0.49,9.3,4
1236 | 7.1,0.75,0.01,2.2,0.059000000000000004,11.0,18.0,0.9924200000000001,3.39,0.4,12.8,6
1237 | 6.0,0.33,0.32,12.9,0.054000000000000006,6.0,113.0,0.99572,3.3,0.56,11.5,4
1238 | 7.8,0.55,0.0,1.7,0.07,7.0,17.0,0.99659,3.26,0.64,9.4,6
1239 | 7.1,0.75,0.01,2.2,0.059000000000000004,11.0,18.0,0.9924200000000001,3.39,0.4,12.8,6
1240 | 8.1,0.73,0.0,2.5,0.081,12.0,24.0,0.99798,3.38,0.46,9.6,4
1241 | 6.5,0.67,0.0,4.3,0.057,11.0,20.0,0.9948799999999999,3.45,0.56,11.8,4
1242 | 7.5,0.61,0.2,1.7,0.076,36.0,60.0,0.9949399999999999,3.1,0.4,9.3,5
1243 | 9.8,0.37,0.39,2.5,0.079,28.0,65.0,0.99729,3.16,0.59,9.8,5
1244 | 9.0,0.4,0.41,2.0,0.057999999999999996,15.0,40.0,0.9941399999999999,3.22,0.6,12.2,6
1245 | 8.3,0.56,0.22,2.4,0.08199999999999999,10.0,86.0,0.9983,3.37,0.62,9.5,5
1246 | 5.9,0.29,0.25,13.4,0.067,72.0,160.0,0.99721,3.33,0.54,10.3,6
1247 | 7.4,0.55,0.19,1.8,0.08199999999999999,15.0,34.0,0.99655,3.49,0.68,10.5,5
1248 | 7.4,0.74,0.07,1.7,0.086,15.0,48.0,0.9950200000000001,3.12,0.48,10.0,5
1249 | 7.4,0.55,0.19,1.8,0.08199999999999999,15.0,34.0,0.99655,3.49,0.68,10.5,5
1250 | 6.9,0.41,0.33,2.2,0.081,22.0,36.0,0.9949,3.41,0.75,11.1,6
1251 | 7.1,0.6,0.01,2.3,0.079,24.0,37.0,0.9951399999999999,3.4,0.61,10.9,6
1252 | 7.1,0.6,0.01,2.3,0.079,24.0,37.0,0.9951399999999999,3.4,0.61,10.9,6
1253 | 7.5,0.58,0.14,2.2,0.077,27.0,60.0,0.9963,3.28,0.59,9.8,5
1254 | 7.1,0.72,0.0,1.8,0.12300000000000001,6.0,14.0,0.9962700000000001,3.45,0.58,9.8,5
1255 | 7.9,0.66,0.0,1.4,0.096,6.0,13.0,0.99569,3.43,0.58,9.5,5
1256 | 7.8,0.7,0.06,1.9,0.079,20.0,35.0,0.9962799999999999,3.4,0.69,10.9,5
1257 | 6.1,0.64,0.02,2.4,0.069,26.0,46.0,0.9935799999999999,3.47,0.45,11.0,5
1258 | 7.5,0.59,0.22,1.8,0.08199999999999999,43.0,60.0,0.9949899999999999,3.1,0.42,9.2,5
1259 | 7.0,0.58,0.28,4.8,0.085,12.0,69.0,0.9963299999999999,3.32,0.7,11.0,6
1260 | 6.8,0.64,0.0,2.7,0.12300000000000001,15.0,33.0,0.9953799999999999,3.44,0.63,11.3,6
1261 | 6.8,0.64,0.0,2.7,0.12300000000000001,15.0,33.0,0.9953799999999999,3.44,0.63,11.3,6
1262 | 8.6,0.635,0.68,1.8,0.40299999999999997,19.0,56.0,0.9963200000000001,3.02,1.15,9.3,5
1263 | 6.3,1.02,0.0,2.0,0.083,17.0,24.0,0.9943700000000001,3.59,0.55,11.2,4
1264 | 9.8,0.45,0.38,2.5,0.081,34.0,66.0,0.99726,3.15,0.58,9.8,5
1265 | 8.2,0.78,0.0,2.2,0.08900000000000001,13.0,26.0,0.9978,3.37,0.46,9.6,4
1266 | 8.5,0.37,0.32,1.8,0.066,26.0,51.0,0.99456,3.38,0.72,11.8,6
1267 | 7.2,0.57,0.05,2.3,0.081,16.0,36.0,0.99564,3.38,0.6,10.3,6
1268 | 7.2,0.57,0.05,2.3,0.081,16.0,36.0,0.99564,3.38,0.6,10.3,6
1269 | 10.4,0.43,0.5,2.3,0.068,13.0,19.0,0.996,3.1,0.87,11.4,6
1270 | 6.9,0.41,0.31,2.0,0.079,21.0,51.0,0.9966799999999999,3.47,0.55,9.5,6
1271 | 5.5,0.49,0.03,1.8,0.044000000000000004,28.0,87.0,0.9908,3.5,0.82,14.0,8
1272 | 5.0,0.38,0.01,1.6,0.048,26.0,60.0,0.9908399999999999,3.7,0.75,14.0,6
1273 | 7.3,0.44,0.2,1.6,0.049,24.0,64.0,0.9935,3.38,0.57,11.7,6
1274 | 5.9,0.46,0.0,1.9,0.077,25.0,44.0,0.99385,3.5,0.53,11.2,5
1275 | 7.5,0.58,0.2,2.0,0.073,34.0,44.0,0.9949399999999999,3.1,0.43,9.3,5
1276 | 7.8,0.58,0.13,2.1,0.102,17.0,36.0,0.9944,3.24,0.53,11.2,6
1277 | 8.0,0.715,0.22,2.3,0.075,13.0,81.0,0.9968799999999999,3.24,0.54,9.5,6
1278 | 8.5,0.4,0.4,6.3,0.05,3.0,10.0,0.99566,3.28,0.56,12.0,4
1279 | 7.0,0.69,0.0,1.9,0.114,3.0,10.0,0.99636,3.35,0.6,9.7,6
1280 | 8.0,0.715,0.22,2.3,0.075,13.0,81.0,0.9968799999999999,3.24,0.54,9.5,6
1281 | 9.8,0.3,0.39,1.7,0.062,3.0,9.0,0.9948,3.14,0.57,11.5,7
1282 | 7.1,0.46,0.2,1.9,0.077,28.0,54.0,0.9956,3.37,0.64,10.4,6
1283 | 7.1,0.46,0.2,1.9,0.077,28.0,54.0,0.9956,3.37,0.64,10.4,6
1284 | 7.9,0.765,0.0,2.0,0.084,9.0,22.0,0.9961899999999999,3.33,0.68,10.9,6
1285 | 8.7,0.63,0.28,2.7,0.096,17.0,69.0,0.99734,3.26,0.63,10.2,6
1286 | 7.0,0.42,0.19,2.3,0.071,18.0,36.0,0.9947600000000001,3.39,0.56,10.9,5
1287 | 11.3,0.37,0.5,1.8,0.09,20.0,47.0,0.99734,3.15,0.57,10.5,5
1288 | 7.1,0.16,0.44,2.5,0.068,17.0,31.0,0.9932799999999999,3.35,0.54,12.4,6
1289 | 8.0,0.6,0.08,2.6,0.055999999999999994,3.0,7.0,0.9928600000000001,3.22,0.37,13.0,5
1290 | 7.0,0.6,0.3,4.5,0.068,20.0,110.0,0.9991399999999999,3.3,1.17,10.2,5
1291 | 7.0,0.6,0.3,4.5,0.068,20.0,110.0,0.9991399999999999,3.3,1.17,10.2,5
1292 | 7.6,0.74,0.0,1.9,0.1,6.0,12.0,0.99521,3.36,0.59,11.0,5
1293 | 8.2,0.635,0.1,2.1,0.073,25.0,60.0,0.9963799999999999,3.29,0.75,10.9,6
1294 | 5.9,0.395,0.13,2.4,0.055999999999999994,14.0,28.0,0.9936200000000001,3.62,0.67,12.4,6
1295 | 7.5,0.755,0.0,1.9,0.084,6.0,12.0,0.99672,3.34,0.49,9.7,4
1296 | 8.2,0.635,0.1,2.1,0.073,25.0,60.0,0.9963799999999999,3.29,0.75,10.9,6
1297 | 6.6,0.63,0.0,4.3,0.09300000000000001,51.0,77.5,0.9955799999999999,3.2,0.45,9.5,5
1298 | 6.6,0.63,0.0,4.3,0.09300000000000001,51.0,77.5,0.9955799999999999,3.2,0.45,9.5,5
1299 | 7.2,0.53,0.14,2.1,0.064,15.0,29.0,0.99323,3.35,0.61,12.1,6
1300 | 5.7,0.6,0.0,1.4,0.063,11.0,18.0,0.9919100000000001,3.45,0.56,12.2,6
1301 | 7.6,1.58,0.0,2.1,0.13699999999999998,5.0,9.0,0.9947600000000001,3.5,0.4,10.9,3
1302 | 5.2,0.645,0.0,2.15,0.08,15.0,28.0,0.99444,3.78,0.61,12.5,6
1303 | 6.7,0.86,0.07,2.0,0.1,20.0,57.0,0.99598,3.6,0.74,11.7,6
1304 | 9.1,0.37,0.32,2.1,0.064,4.0,15.0,0.9957600000000001,3.3,0.8,11.2,6
1305 | 8.0,0.28,0.44,1.8,0.081,28.0,68.0,0.9950100000000001,3.36,0.66,11.2,5
1306 | 7.6,0.79,0.21,2.3,0.087,21.0,68.0,0.9955,3.12,0.44,9.2,5
1307 | 7.5,0.61,0.26,1.9,0.073,24.0,88.0,0.9961200000000001,3.3,0.53,9.8,5
1308 | 9.7,0.69,0.32,2.5,0.08800000000000001,22.0,91.0,0.9979,3.29,0.62,10.1,5
1309 | 6.8,0.68,0.09,3.9,0.068,15.0,29.0,0.99524,3.41,0.52,11.1,4
1310 | 9.7,0.69,0.32,2.5,0.08800000000000001,22.0,91.0,0.9979,3.29,0.62,10.1,5
1311 | 7.0,0.62,0.1,1.4,0.071,27.0,63.0,0.996,3.28,0.61,9.2,5
1312 | 7.5,0.61,0.26,1.9,0.073,24.0,88.0,0.9961200000000001,3.3,0.53,9.8,5
1313 | 6.5,0.51,0.15,3.0,0.064,12.0,27.0,0.9929,3.33,0.59,12.8,6
1314 | 8.0,1.18,0.21,1.9,0.083,14.0,41.0,0.9953200000000001,3.34,0.47,10.5,5
1315 | 7.0,0.36,0.21,2.3,0.086,20.0,65.0,0.9955799999999999,3.4,0.54,10.1,6
1316 | 7.0,0.36,0.21,2.4,0.086,24.0,69.0,0.99556,3.4,0.53,10.1,6
1317 | 7.5,0.63,0.27,2.0,0.083,17.0,91.0,0.99616,3.26,0.58,9.8,6
1318 | 5.4,0.74,0.0,1.2,0.040999999999999995,16.0,46.0,0.9925799999999999,4.01,0.59,12.5,6
1319 | 9.9,0.44,0.46,2.2,0.091,10.0,41.0,0.9963799999999999,3.18,0.69,11.9,6
1320 | 7.5,0.63,0.27,2.0,0.083,17.0,91.0,0.99616,3.26,0.58,9.8,6
1321 | 9.1,0.76,0.68,1.7,0.414,18.0,64.0,0.9965200000000001,2.9,1.33,9.1,6
1322 | 9.7,0.66,0.34,2.6,0.094,12.0,88.0,0.9979600000000001,3.26,0.66,10.1,5
1323 | 5.0,0.74,0.0,1.2,0.040999999999999995,16.0,46.0,0.9925799999999999,4.01,0.59,12.5,6
1324 | 9.1,0.34,0.42,1.8,0.057999999999999996,9.0,18.0,0.99392,3.18,0.55,11.4,5
1325 | 9.1,0.36,0.39,1.8,0.06,21.0,55.0,0.99495,3.18,0.82,11.0,7
1326 | 6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6
1327 | 6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6
1328 | 6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6
1329 | 6.7,0.46,0.24,1.7,0.077,18.0,34.0,0.9948,3.39,0.6,10.6,6
1330 | 6.5,0.52,0.11,1.8,0.073,13.0,38.0,0.9955,3.34,0.52,9.3,5
1331 | 7.4,0.6,0.26,2.1,0.083,17.0,91.0,0.99616,3.29,0.56,9.8,6
1332 | 7.4,0.6,0.26,2.1,0.083,17.0,91.0,0.99616,3.29,0.56,9.8,6
1333 | 7.8,0.87,0.26,3.8,0.107,31.0,67.0,0.9966799999999999,3.26,0.46,9.2,5
1334 | 8.4,0.39,0.1,1.7,0.075,6.0,25.0,0.9958100000000001,3.09,0.43,9.7,6
1335 | 9.1,0.775,0.22,2.2,0.079,12.0,48.0,0.9976,3.18,0.51,9.6,5
1336 | 7.2,0.835,0.0,2.0,0.166,4.0,11.0,0.99608,3.39,0.52,10.0,5
1337 | 6.6,0.58,0.02,2.4,0.069,19.0,40.0,0.99387,3.38,0.66,12.6,6
1338 | 6.0,0.5,0.0,1.4,0.057,15.0,26.0,0.9944799999999999,3.36,0.45,9.5,5
1339 | 6.0,0.5,0.0,1.4,0.057,15.0,26.0,0.9944799999999999,3.36,0.45,9.5,5
1340 | 6.0,0.5,0.0,1.4,0.057,15.0,26.0,0.9944799999999999,3.36,0.45,9.5,5
1341 | 7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6
1342 | 7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6
1343 | 7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6
1344 | 7.6,0.54,0.02,1.7,0.085,17.0,31.0,0.9958899999999999,3.37,0.51,10.4,6
1345 | 7.5,0.51,0.02,1.7,0.084,13.0,31.0,0.9953799999999999,3.36,0.54,10.5,6
1346 | 11.5,0.42,0.48,2.6,0.077,8.0,20.0,0.9985200000000001,3.09,0.53,11.0,5
1347 | 8.2,0.44,0.24,2.3,0.063,10.0,28.0,0.99613,3.25,0.53,10.2,6
1348 | 6.1,0.59,0.01,2.1,0.055999999999999994,5.0,13.0,0.99472,3.52,0.56,11.4,5
1349 | 7.2,0.655,0.03,1.8,0.078,7.0,12.0,0.99587,3.34,0.39,9.5,5
1350 | 7.2,0.655,0.03,1.8,0.078,7.0,12.0,0.99587,3.34,0.39,9.5,5
1351 | 6.9,0.57,0.0,2.8,0.081,21.0,41.0,0.99518,3.41,0.52,10.8,5
1352 | 9.0,0.6,0.29,2.0,0.069,32.0,73.0,0.99654,3.34,0.57,10.0,5
1353 | 7.2,0.62,0.01,2.3,0.065,8.0,46.0,0.9933200000000001,3.32,0.51,11.8,6
1354 | 7.6,0.645,0.03,1.9,0.086,14.0,57.0,0.9969,3.37,0.46,10.3,5
1355 | 7.6,0.645,0.03,1.9,0.086,14.0,57.0,0.9969,3.37,0.46,10.3,5
1356 | 7.2,0.58,0.03,2.3,0.077,7.0,28.0,0.9956799999999999,3.35,0.52,10.0,5
1357 | 6.1,0.32,0.25,1.8,0.086,5.0,32.0,0.99464,3.36,0.44,10.1,5
1358 | 6.1,0.34,0.25,1.8,0.084,4.0,28.0,0.99464,3.36,0.44,10.1,5
1359 | 7.3,0.43,0.24,2.5,0.078,27.0,67.0,0.9964799999999999,3.6,0.59,11.1,6
1360 | 7.4,0.64,0.17,5.4,0.168,52.0,98.0,0.99736,3.28,0.5,9.5,5
1361 | 11.6,0.475,0.4,1.4,0.091,6.0,28.0,0.9970399999999999,3.07,0.65,10.0333333333333,6
1362 | 9.2,0.54,0.31,2.3,0.11199999999999999,11.0,38.0,0.9969899999999999,3.24,0.56,10.9,5
1363 | 8.3,0.85,0.14,2.5,0.09300000000000001,13.0,54.0,0.99724,3.36,0.54,10.1,5
1364 | 11.6,0.475,0.4,1.4,0.091,6.0,28.0,0.9970399999999999,3.07,0.65,10.0333333333333,6
1365 | 8.0,0.83,0.27,2.0,0.08,11.0,63.0,0.9965200000000001,3.29,0.48,9.8,4
1366 | 7.2,0.605,0.02,1.9,0.096,10.0,31.0,0.995,3.46,0.53,11.8,6
1367 | 7.8,0.5,0.09,2.2,0.115,10.0,42.0,0.9971,3.18,0.62,9.5,5
1368 | 7.3,0.74,0.08,1.7,0.094,10.0,45.0,0.9957600000000001,3.24,0.5,9.8,5
1369 | 6.9,0.54,0.3,2.2,0.08800000000000001,9.0,105.0,0.99725,3.25,1.18,10.5,6
1370 | 8.0,0.77,0.32,2.1,0.079,16.0,74.0,0.99656,3.27,0.5,9.8,6
1371 | 6.6,0.61,0.0,1.6,0.069,4.0,8.0,0.9939600000000001,3.33,0.37,10.4,4
1372 | 8.7,0.78,0.51,1.7,0.415,12.0,66.0,0.99623,3.0,1.17,9.2,5
1373 | 7.5,0.58,0.56,3.1,0.153,5.0,14.0,0.9947600000000001,3.21,1.03,11.6,6
1374 | 8.7,0.78,0.51,1.7,0.415,12.0,66.0,0.99623,3.0,1.17,9.2,5
1375 | 7.7,0.75,0.27,3.8,0.11,34.0,89.0,0.99664,3.24,0.45,9.3,5
1376 | 6.8,0.815,0.0,1.2,0.267,16.0,29.0,0.99471,3.32,0.51,9.8,3
1377 | 7.2,0.56,0.26,2.0,0.083,13.0,100.0,0.9958600000000001,3.26,0.52,9.9,5
1378 | 8.2,0.885,0.2,1.4,0.086,7.0,31.0,0.9946,3.11,0.46,10.0,5
1379 | 5.2,0.49,0.26,2.3,0.09,23.0,74.0,0.9953,3.71,0.62,12.2,6
1380 | 7.2,0.45,0.15,2.0,0.078,10.0,28.0,0.9960899999999999,3.29,0.51,9.9,6
1381 | 7.5,0.57,0.02,2.6,0.077,11.0,35.0,0.9955700000000001,3.36,0.62,10.8,6
1382 | 7.5,0.57,0.02,2.6,0.077,11.0,35.0,0.9955700000000001,3.36,0.62,10.8,6
1383 | 6.8,0.83,0.09,1.8,0.07400000000000001,4.0,25.0,0.99534,3.38,0.45,9.6,5
1384 | 8.0,0.6,0.22,2.1,0.08,25.0,105.0,0.99613,3.3,0.49,9.9,5
1385 | 8.0,0.6,0.22,2.1,0.08,25.0,105.0,0.99613,3.3,0.49,9.9,5
1386 | 7.1,0.755,0.15,1.8,0.107,20.0,84.0,0.99593,3.19,0.5,9.5,5
1387 | 8.0,0.81,0.25,3.4,0.076,34.0,85.0,0.9966799999999999,3.19,0.42,9.2,5
1388 | 7.4,0.64,0.07,1.8,0.1,8.0,23.0,0.9961,3.3,0.58,9.6,5
1389 | 7.4,0.64,0.07,1.8,0.1,8.0,23.0,0.9961,3.3,0.58,9.6,5
1390 | 6.6,0.64,0.31,6.1,0.083,7.0,49.0,0.99718,3.35,0.68,10.3,5
1391 | 6.7,0.48,0.02,2.2,0.08,36.0,111.0,0.99524,3.1,0.53,9.7,5
1392 | 6.0,0.49,0.0,2.3,0.068,15.0,33.0,0.99292,3.58,0.59,12.5,6
1393 | 8.0,0.64,0.22,2.4,0.094,5.0,33.0,0.9961200000000001,3.37,0.58,11.0,5
1394 | 7.1,0.62,0.06,1.3,0.07,5.0,12.0,0.9942,3.17,0.48,9.8,5
1395 | 8.0,0.52,0.25,2.0,0.078,19.0,59.0,0.9961200000000001,3.3,0.48,10.2,5
1396 | 6.4,0.57,0.14,3.9,0.07,27.0,73.0,0.99669,3.32,0.48,9.2,5
1397 | 8.6,0.685,0.1,1.6,0.092,3.0,12.0,0.99745,3.31,0.65,9.55,6
1398 | 8.7,0.675,0.1,1.6,0.09,4.0,11.0,0.99745,3.31,0.65,9.55,5
1399 | 7.3,0.59,0.26,2.0,0.08,17.0,104.0,0.99584,3.28,0.52,9.9,5
1400 | 7.0,0.6,0.12,2.2,0.083,13.0,28.0,0.9966,3.52,0.62,10.2,7
1401 | 7.2,0.67,0.0,2.2,0.068,10.0,24.0,0.9956,3.42,0.72,11.1,6
1402 | 7.9,0.69,0.21,2.1,0.08,33.0,141.0,0.9962,3.25,0.51,9.9,5
1403 | 7.9,0.69,0.21,2.1,0.08,33.0,141.0,0.9962,3.25,0.51,9.9,5
1404 | 7.6,0.3,0.42,2.0,0.052000000000000005,6.0,24.0,0.9963,3.44,0.82,11.9,6
1405 | 7.2,0.33,0.33,1.7,0.061,3.0,13.0,0.996,3.23,1.1,10.0,8
1406 | 8.0,0.5,0.39,2.6,0.08199999999999999,12.0,46.0,0.9985,3.43,0.62,10.7,6
1407 | 7.7,0.28,0.3,2.0,0.062,18.0,34.0,0.9952,3.28,0.9,11.3,7
1408 | 8.2,0.24,0.34,5.1,0.062,8.0,22.0,0.9974,3.22,0.94,10.9,6
1409 | 6.0,0.51,0.0,2.1,0.064,40.0,54.0,0.995,3.54,0.93,10.7,6
1410 | 8.1,0.29,0.36,2.2,0.048,35.0,53.0,0.995,3.27,1.01,12.4,7
1411 | 6.0,0.51,0.0,2.1,0.064,40.0,54.0,0.995,3.54,0.93,10.7,6
1412 | 6.6,0.96,0.0,1.8,0.08199999999999999,5.0,16.0,0.9936,3.5,0.44,11.9,6
1413 | 6.4,0.47,0.4,2.4,0.071,8.0,19.0,0.9963,3.56,0.73,10.6,6
1414 | 8.2,0.24,0.34,5.1,0.062,8.0,22.0,0.9974,3.22,0.94,10.9,6
1415 | 9.9,0.57,0.25,2.0,0.10400000000000001,12.0,89.0,0.9963,3.04,0.9,10.1,5
1416 | 10.0,0.32,0.59,2.2,0.077,3.0,15.0,0.9994,3.2,0.78,9.6,5
1417 | 6.2,0.58,0.0,1.6,0.065,8.0,18.0,0.9966,3.56,0.84,9.4,5
1418 | 10.0,0.32,0.59,2.2,0.077,3.0,15.0,0.9994,3.2,0.78,9.6,5
1419 | 7.3,0.34,0.33,2.5,0.064,21.0,37.0,0.9952,3.35,0.77,12.1,7
1420 | 7.8,0.53,0.01,1.6,0.077,3.0,19.0,0.995,3.16,0.46,9.8,5
1421 | 7.7,0.64,0.21,2.2,0.077,32.0,133.0,0.9956,3.27,0.45,9.9,5
1422 | 7.8,0.53,0.01,1.6,0.077,3.0,19.0,0.995,3.16,0.46,9.8,5
1423 | 7.5,0.4,0.18,1.6,0.079,24.0,58.0,0.9965,3.34,0.58,9.4,5
1424 | 7.0,0.54,0.0,2.1,0.079,39.0,55.0,0.9956,3.39,0.84,11.4,6
1425 | 6.4,0.53,0.09,3.9,0.12300000000000001,14.0,31.0,0.9968,3.5,0.67,11.0,4
1426 | 8.3,0.26,0.37,1.4,0.076,8.0,23.0,0.9974,3.26,0.7,9.6,6
1427 | 8.3,0.26,0.37,1.4,0.076,8.0,23.0,0.9974,3.26,0.7,9.6,6
1428 | 7.7,0.23,0.37,1.8,0.046,23.0,60.0,0.9971,3.41,0.71,12.1,6
1429 | 7.6,0.41,0.33,2.5,0.078,6.0,23.0,0.9957,3.3,0.58,11.2,5
1430 | 7.8,0.64,0.0,1.9,0.07200000000000001,27.0,55.0,0.9962,3.31,0.63,11.0,5
1431 | 7.9,0.18,0.4,2.2,0.049,38.0,67.0,0.996,3.33,0.93,11.3,5
1432 | 7.4,0.41,0.24,1.8,0.066,18.0,47.0,0.9956,3.37,0.62,10.4,5
1433 | 7.6,0.43,0.31,2.1,0.069,13.0,74.0,0.9958,3.26,0.54,9.9,6
1434 | 5.9,0.44,0.0,1.6,0.042,3.0,11.0,0.9944,3.48,0.85,11.7,6
1435 | 6.1,0.4,0.16,1.8,0.069,11.0,25.0,0.9955,3.42,0.74,10.1,7
1436 | 10.2,0.54,0.37,15.4,0.214,55.0,95.0,1.00369,3.18,0.77,9.0,6
1437 | 10.2,0.54,0.37,15.4,0.214,55.0,95.0,1.00369,3.18,0.77,9.0,6
1438 | 10.0,0.38,0.38,1.6,0.16899999999999998,27.0,90.0,0.9991399999999999,3.15,0.65,8.5,5
1439 | 6.8,0.915,0.29,4.8,0.07,15.0,39.0,0.99577,3.53,0.54,11.1,5
1440 | 7.0,0.59,0.0,1.7,0.052000000000000005,3.0,8.0,0.996,3.41,0.47,10.3,5
1441 | 7.3,0.67,0.02,2.2,0.07200000000000001,31.0,92.0,0.99566,3.32,0.68,11.066666666666698,6
1442 | 7.2,0.37,0.32,2.0,0.062,15.0,28.0,0.9947,3.23,0.73,11.3,7
1443 | 7.4,0.785,0.19,5.2,0.094,19.0,98.0,0.99713,3.16,0.52,9.56666666666667,6
1444 | 6.9,0.63,0.02,1.9,0.078,18.0,30.0,0.9971200000000001,3.4,0.75,9.8,5
1445 | 6.9,0.58,0.2,1.75,0.057999999999999996,8.0,22.0,0.9932200000000001,3.38,0.49,11.7,5
1446 | 7.3,0.67,0.02,2.2,0.07200000000000001,31.0,92.0,0.99566,3.32,0.68,11.1,6
1447 | 7.4,0.785,0.19,5.2,0.094,19.0,98.0,0.99713,3.16,0.52,9.6,6
1448 | 6.9,0.63,0.02,1.9,0.078,18.0,30.0,0.9971200000000001,3.4,0.75,9.8,5
1449 | 6.8,0.67,0.0,1.9,0.08,22.0,39.0,0.9970100000000001,3.4,0.74,9.7,5
1450 | 6.9,0.58,0.01,1.9,0.08,40.0,54.0,0.9968299999999999,3.4,0.73,9.7,5
1451 | 7.2,0.38,0.31,2.0,0.055999999999999994,15.0,29.0,0.99472,3.23,0.76,11.3,8
1452 | 7.2,0.37,0.32,2.0,0.062,15.0,28.0,0.9947,3.23,0.73,11.3,7
1453 | 7.8,0.32,0.44,2.7,0.10400000000000001,8.0,17.0,0.9973200000000001,3.33,0.78,11.0,7
1454 | 6.6,0.58,0.02,2.0,0.062,37.0,53.0,0.99374,3.35,0.76,11.6,7
1455 | 7.6,0.49,0.33,1.9,0.07400000000000001,27.0,85.0,0.9970600000000001,3.41,0.58,9.0,5
1456 | 11.7,0.45,0.63,2.2,0.073,7.0,23.0,0.99974,3.21,0.69,10.9,6
1457 | 6.5,0.9,0.0,1.6,0.052000000000000005,9.0,17.0,0.99467,3.5,0.63,10.9,6
1458 | 6.0,0.54,0.06,1.8,0.05,38.0,89.0,0.99236,3.3,0.5,10.55,6
1459 | 7.6,0.49,0.33,1.9,0.07400000000000001,27.0,85.0,0.9970600000000001,3.41,0.58,9.0,5
1460 | 8.4,0.29,0.4,1.7,0.067,8.0,20.0,0.99603,3.39,0.6,10.5,5
1461 | 7.9,0.2,0.35,1.7,0.054000000000000006,7.0,15.0,0.9945799999999999,3.32,0.8,11.9,7
1462 | 6.4,0.42,0.09,2.3,0.054000000000000006,34.0,64.0,0.99724,3.41,0.68,10.4,6
1463 | 6.2,0.785,0.0,2.1,0.06,6.0,13.0,0.99664,3.59,0.61,10.0,4
1464 | 6.8,0.64,0.03,2.3,0.075,14.0,31.0,0.99545,3.36,0.58,10.4,6
1465 | 6.9,0.63,0.01,2.4,0.076,14.0,39.0,0.9952200000000001,3.34,0.53,10.8,6
1466 | 6.8,0.59,0.1,1.7,0.063,34.0,53.0,0.9958,3.41,0.67,9.7,5
1467 | 6.8,0.59,0.1,1.7,0.063,34.0,53.0,0.9958,3.41,0.67,9.7,5
1468 | 7.3,0.48,0.32,2.1,0.062,31.0,54.0,0.9972799999999999,3.3,0.65,10.0,7
1469 | 6.7,1.04,0.08,2.3,0.067,19.0,32.0,0.9964799999999999,3.52,0.57,11.0,4
1470 | 7.3,0.48,0.32,2.1,0.062,31.0,54.0,0.9972799999999999,3.3,0.65,10.0,7
1471 | 7.3,0.98,0.05,2.1,0.061,20.0,49.0,0.99705,3.31,0.55,9.7,3
1472 | 10.0,0.69,0.11,1.4,0.084,8.0,24.0,0.9957799999999999,2.88,0.47,9.7,5
1473 | 6.7,0.7,0.08,3.75,0.067,8.0,16.0,0.99334,3.43,0.52,12.6,5
1474 | 7.6,0.35,0.6,2.6,0.073,23.0,44.0,0.99656,3.38,0.79,11.1,6
1475 | 6.1,0.6,0.08,1.8,0.071,14.0,45.0,0.99336,3.38,0.54,11.0,5
1476 | 9.9,0.5,0.5,13.8,0.205,48.0,82.0,1.00242,3.16,0.75,8.8,5
1477 | 5.3,0.47,0.11,2.2,0.048,16.0,89.0,0.99182,3.54,0.88,13.566666666666698,7
1478 | 9.9,0.5,0.5,13.8,0.205,48.0,82.0,1.00242,3.16,0.75,8.8,5
1479 | 5.3,0.47,0.11,2.2,0.048,16.0,89.0,0.99182,3.54,0.88,13.6,7
1480 | 7.1,0.875,0.05,5.7,0.08199999999999999,3.0,14.0,0.99808,3.4,0.52,10.2,3
1481 | 8.2,0.28,0.6,3.0,0.10400000000000001,10.0,22.0,0.99828,3.39,0.68,10.6,5
1482 | 5.6,0.62,0.03,1.5,0.08,6.0,13.0,0.99498,3.66,0.62,10.1,4
1483 | 8.2,0.28,0.6,3.0,0.10400000000000001,10.0,22.0,0.99828,3.39,0.68,10.6,5
1484 | 7.2,0.58,0.54,2.1,0.114,3.0,9.0,0.9971899999999999,3.33,0.57,10.3,4
1485 | 8.1,0.33,0.44,1.5,0.042,6.0,12.0,0.9954200000000001,3.35,0.61,10.7,5
1486 | 6.8,0.91,0.06,2.0,0.06,4.0,11.0,0.99592,3.53,0.64,10.9,4
1487 | 7.0,0.655,0.16,2.1,0.07400000000000001,8.0,25.0,0.9960600000000001,3.37,0.55,9.7,5
1488 | 6.8,0.68,0.21,2.1,0.07,9.0,23.0,0.99546,3.38,0.6,10.3,5
1489 | 6.0,0.64,0.05,1.9,0.066,9.0,17.0,0.9949600000000001,3.52,0.78,10.6,5
1490 | 5.6,0.54,0.04,1.7,0.049,5.0,13.0,0.9942,3.72,0.58,11.4,5
1491 | 6.2,0.57,0.1,2.1,0.048,4.0,11.0,0.9944799999999999,3.44,0.76,10.8,6
1492 | 7.1,0.22,0.49,1.8,0.039,8.0,18.0,0.99344,3.39,0.56,12.4,6
1493 | 5.6,0.54,0.04,1.7,0.049,5.0,13.0,0.9942,3.72,0.58,11.4,5
1494 | 6.2,0.65,0.06,1.6,0.05,6.0,18.0,0.9934799999999999,3.57,0.54,11.95,5
1495 | 7.7,0.54,0.26,1.9,0.08900000000000001,23.0,147.0,0.99636,3.26,0.59,9.7,5
1496 | 6.4,0.31,0.09,1.4,0.066,15.0,28.0,0.99459,3.42,0.7,10.0,7
1497 | 7.0,0.43,0.02,1.9,0.08,15.0,28.0,0.99492,3.35,0.81,10.6,6
1498 | 7.7,0.54,0.26,1.9,0.08900000000000001,23.0,147.0,0.99636,3.26,0.59,9.7,5
1499 | 6.9,0.74,0.03,2.3,0.054000000000000006,7.0,16.0,0.99508,3.45,0.63,11.5,6
1500 | 6.6,0.895,0.04,2.3,0.068,7.0,13.0,0.99582,3.53,0.58,10.8,6
1501 | 6.9,0.74,0.03,2.3,0.054000000000000006,7.0,16.0,0.99508,3.45,0.63,11.5,6
1502 | 7.5,0.725,0.04,1.5,0.076,8.0,15.0,0.99508,3.26,0.53,9.6,5
1503 | 7.8,0.82,0.29,4.3,0.083,21.0,64.0,0.9964200000000001,3.16,0.53,9.4,5
1504 | 7.3,0.585,0.18,2.4,0.078,15.0,60.0,0.9963799999999999,3.31,0.54,9.8,5
1505 | 6.2,0.44,0.39,2.5,0.077,6.0,14.0,0.99555,3.51,0.69,11.0,6
1506 | 7.5,0.38,0.57,2.3,0.106,5.0,12.0,0.99605,3.36,0.55,11.4,6
1507 | 6.7,0.76,0.02,1.8,0.078,6.0,12.0,0.996,3.55,0.63,9.95,3
1508 | 6.8,0.81,0.05,2.0,0.07,6.0,14.0,0.9956200000000001,3.51,0.66,10.8,6
1509 | 7.5,0.38,0.57,2.3,0.106,5.0,12.0,0.99605,3.36,0.55,11.4,6
1510 | 7.1,0.27,0.6,2.1,0.07400000000000001,17.0,25.0,0.9981399999999999,3.38,0.72,10.6,6
1511 | 7.9,0.18,0.4,1.8,0.062,7.0,20.0,0.9941,3.28,0.7,11.1,5
1512 | 6.4,0.36,0.21,2.2,0.047,26.0,48.0,0.99661,3.47,0.77,9.7,6
1513 | 7.1,0.69,0.04,2.1,0.068,19.0,27.0,0.9971200000000001,3.44,0.67,9.8,5
1514 | 6.4,0.79,0.04,2.2,0.061,11.0,17.0,0.9958799999999999,3.53,0.65,10.4,6
1515 | 6.4,0.56,0.15,1.8,0.078,17.0,65.0,0.9929399999999999,3.33,0.6,10.5,6
1516 | 6.9,0.84,0.21,4.1,0.07400000000000001,16.0,65.0,0.9984200000000001,3.53,0.72,9.23333333333333,6
1517 | 6.9,0.84,0.21,4.1,0.07400000000000001,16.0,65.0,0.9984200000000001,3.53,0.72,9.25,6
1518 | 6.1,0.32,0.25,2.3,0.071,23.0,58.0,0.9963299999999999,3.42,0.97,10.6,5
1519 | 6.5,0.53,0.06,2.0,0.063,29.0,44.0,0.9948899999999999,3.38,0.83,10.3,6
1520 | 7.4,0.47,0.46,2.2,0.114,7.0,20.0,0.9964700000000001,3.32,0.63,10.5,5
1521 | 6.6,0.7,0.08,2.6,0.106,14.0,27.0,0.99665,3.44,0.58,10.2,5
1522 | 6.5,0.53,0.06,2.0,0.063,29.0,44.0,0.9948899999999999,3.38,0.83,10.3,6
1523 | 6.9,0.48,0.2,1.9,0.08199999999999999,9.0,23.0,0.99585,3.39,0.43,9.05,4
1524 | 6.1,0.32,0.25,2.3,0.071,23.0,58.0,0.9963299999999999,3.42,0.97,10.6,5
1525 | 6.8,0.48,0.25,2.0,0.076,29.0,61.0,0.9953,3.34,0.6,10.4,5
1526 | 6.0,0.42,0.19,2.0,0.075,22.0,47.0,0.9952200000000001,3.39,0.78,10.0,6
1527 | 6.7,0.48,0.08,2.1,0.064,18.0,34.0,0.9955200000000001,3.33,0.64,9.7,5
1528 | 6.8,0.47,0.08,2.2,0.064,18.0,38.0,0.9955299999999999,3.3,0.65,9.6,6
1529 | 7.1,0.53,0.07,1.7,0.071,15.0,24.0,0.9951,3.29,0.66,10.8,6
1530 | 7.9,0.29,0.49,2.2,0.096,21.0,59.0,0.9971399999999999,3.31,0.67,10.1,6
1531 | 7.1,0.69,0.08,2.1,0.063,42.0,52.0,0.99608,3.42,0.6,10.2,6
1532 | 6.6,0.44,0.09,2.2,0.063,9.0,18.0,0.99444,3.42,0.69,11.3,6
1533 | 6.1,0.705,0.1,2.8,0.081,13.0,28.0,0.99631,3.6,0.66,10.2,5
1534 | 7.2,0.53,0.13,2.0,0.057999999999999996,18.0,22.0,0.9957299999999999,3.21,0.68,9.9,6
1535 | 8.0,0.39,0.3,1.9,0.07400000000000001,32.0,84.0,0.9971700000000001,3.39,0.61,9.0,5
1536 | 6.6,0.56,0.14,2.4,0.064,13.0,29.0,0.99397,3.42,0.62,11.7,7
1537 | 7.0,0.55,0.13,2.2,0.075,15.0,35.0,0.9959,3.36,0.59,9.7,6
1538 | 6.1,0.53,0.08,1.9,0.077,24.0,45.0,0.9952799999999999,3.6,0.68,10.3,6
1539 | 5.4,0.58,0.08,1.9,0.059000000000000004,20.0,31.0,0.99484,3.5,0.64,10.2,6
1540 | 6.2,0.64,0.09,2.5,0.081,15.0,26.0,0.9953799999999999,3.57,0.63,12.0,5
1541 | 7.2,0.39,0.32,1.8,0.065,34.0,60.0,0.9971399999999999,3.46,0.78,9.9,5
1542 | 6.2,0.52,0.08,4.4,0.071,11.0,32.0,0.99646,3.56,0.63,11.6,6
1543 | 7.4,0.25,0.29,2.2,0.054000000000000006,19.0,49.0,0.99666,3.4,0.76,10.9,7
1544 | 6.7,0.855,0.02,1.9,0.064,29.0,38.0,0.99472,3.3,0.56,10.75,6
1545 | 11.1,0.44,0.42,2.2,0.064,14.0,19.0,0.9975799999999999,3.25,0.57,10.4,6
1546 | 8.4,0.37,0.43,2.3,0.063,12.0,19.0,0.9955,3.17,0.81,11.2,7
1547 | 6.5,0.63,0.33,1.8,0.059000000000000004,16.0,28.0,0.99531,3.36,0.64,10.1,6
1548 | 7.0,0.57,0.02,2.0,0.07200000000000001,17.0,26.0,0.99575,3.36,0.61,10.2,5
1549 | 6.3,0.6,0.1,1.6,0.048,12.0,26.0,0.99306,3.55,0.51,12.1,5
1550 | 11.2,0.4,0.5,2.0,0.099,19.0,50.0,0.9978299999999999,3.1,0.58,10.4,5
1551 | 7.4,0.36,0.3,1.8,0.07400000000000001,17.0,24.0,0.99419,3.24,0.7,11.4,8
1552 | 7.1,0.68,0.0,2.3,0.087,17.0,26.0,0.9978299999999999,3.45,0.53,9.5,5
1553 | 7.1,0.67,0.0,2.3,0.083,18.0,27.0,0.9976799999999999,3.44,0.54,9.4,5
1554 | 6.3,0.68,0.01,3.7,0.10300000000000001,32.0,54.0,0.9958600000000001,3.51,0.66,11.3,6
1555 | 7.3,0.735,0.0,2.2,0.08,18.0,28.0,0.99765,3.41,0.6,9.4,5
1556 | 6.6,0.855,0.02,2.4,0.062,15.0,23.0,0.9962700000000001,3.54,0.6,11.0,6
1557 | 7.0,0.56,0.17,1.7,0.065,15.0,24.0,0.9951399999999999,3.44,0.68,10.55,7
1558 | 6.6,0.88,0.04,2.2,0.066,12.0,20.0,0.99636,3.53,0.56,9.9,5
1559 | 6.6,0.855,0.02,2.4,0.062,15.0,23.0,0.9962700000000001,3.54,0.6,11.0,6
1560 | 6.9,0.63,0.33,6.7,0.235,66.0,115.0,0.99787,3.22,0.56,9.5,5
1561 | 7.8,0.6,0.26,2.0,0.08,31.0,131.0,0.9962200000000001,3.21,0.52,9.9,5
1562 | 7.8,0.6,0.26,2.0,0.08,31.0,131.0,0.9962200000000001,3.21,0.52,9.9,5
1563 | 7.8,0.6,0.26,2.0,0.08,31.0,131.0,0.9962200000000001,3.21,0.52,9.9,5
1564 | 7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5
1565 | 7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5
1566 | 7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5
1567 | 6.7,0.67,0.02,1.9,0.061,26.0,42.0,0.9948899999999999,3.39,0.82,10.9,6
1568 | 6.7,0.16,0.64,2.1,0.059000000000000004,24.0,52.0,0.9949399999999999,3.34,0.71,11.2,6
1569 | 7.2,0.695,0.13,2.0,0.076,12.0,20.0,0.99546,3.29,0.54,10.1,5
1570 | 7.0,0.56,0.13,1.6,0.077,25.0,42.0,0.99629,3.34,0.59,9.2,5
1571 | 6.2,0.51,0.14,1.9,0.055999999999999994,15.0,34.0,0.9939600000000001,3.48,0.57,11.5,6
1572 | 6.4,0.36,0.53,2.2,0.23,19.0,35.0,0.9934,3.37,0.93,12.4,6
1573 | 6.4,0.38,0.14,2.2,0.038,15.0,25.0,0.9951399999999999,3.44,0.65,11.1,6
1574 | 7.3,0.69,0.32,2.2,0.069,35.0,104.0,0.9963200000000001,3.33,0.51,9.5,5
1575 | 6.0,0.58,0.2,2.4,0.075,15.0,50.0,0.99467,3.58,0.67,12.5,6
1576 | 5.6,0.31,0.78,13.9,0.07400000000000001,23.0,92.0,0.99677,3.39,0.48,10.5,6
1577 | 7.5,0.52,0.4,2.2,0.06,12.0,20.0,0.99474,3.26,0.64,11.8,6
1578 | 8.0,0.3,0.63,1.6,0.081,16.0,29.0,0.9958799999999999,3.3,0.78,10.8,6
1579 | 6.2,0.7,0.15,5.1,0.076,13.0,27.0,0.9962200000000001,3.54,0.6,11.9,6
1580 | 6.8,0.67,0.15,1.8,0.11800000000000001,13.0,20.0,0.9954,3.42,0.67,11.3,6
1581 | 6.2,0.56,0.09,1.7,0.053,24.0,32.0,0.9940200000000001,3.54,0.6,11.3,5
1582 | 7.4,0.35,0.33,2.4,0.068,9.0,26.0,0.9947,3.36,0.6,11.9,6
1583 | 6.2,0.56,0.09,1.7,0.053,24.0,32.0,0.9940200000000001,3.54,0.6,11.3,5
1584 | 6.1,0.715,0.1,2.6,0.053,13.0,27.0,0.9936200000000001,3.57,0.5,11.9,5
1585 | 6.2,0.46,0.29,2.1,0.07400000000000001,32.0,98.0,0.9957799999999999,3.33,0.62,9.8,5
1586 | 6.7,0.32,0.44,2.4,0.061,24.0,34.0,0.99484,3.29,0.8,11.6,7
1587 | 7.2,0.39,0.44,2.6,0.066,22.0,48.0,0.9949399999999999,3.3,0.84,11.5,6
1588 | 7.5,0.31,0.41,2.4,0.065,34.0,60.0,0.99492,3.34,0.85,11.4,6
1589 | 5.8,0.61,0.11,1.8,0.066,18.0,28.0,0.9948299999999999,3.55,0.66,10.9,6
1590 | 7.2,0.66,0.33,2.5,0.068,34.0,102.0,0.9941399999999999,3.27,0.78,12.8,6
1591 | 6.6,0.725,0.2,7.8,0.073,29.0,79.0,0.9977,3.29,0.54,9.2,5
1592 | 6.3,0.55,0.15,1.8,0.077,26.0,35.0,0.9931399999999999,3.32,0.82,11.6,6
1593 | 5.4,0.74,0.09,1.7,0.08900000000000001,16.0,26.0,0.9940200000000001,3.67,0.56,11.6,6
1594 | 6.3,0.51,0.13,2.3,0.076,29.0,40.0,0.99574,3.42,0.75,11.0,6
1595 | 6.8,0.62,0.08,1.9,0.068,28.0,38.0,0.99651,3.42,0.82,9.5,6
1596 | 6.2,0.6,0.08,2.0,0.09,32.0,44.0,0.9949,3.45,0.58,10.5,5
1597 | 5.9,0.55,0.1,2.2,0.062,39.0,51.0,0.9951200000000001,3.52,0.76,11.2,6
1598 | 6.3,0.51,0.13,2.3,0.076,29.0,40.0,0.99574,3.42,0.75,11.0,6
1599 | 5.9,0.645,0.12,2.0,0.075,32.0,44.0,0.9954700000000001,3.57,0.71,10.2,5
1600 | 6.0,0.31,0.47,3.6,0.067,18.0,42.0,0.99549,3.39,0.66,11.0,6
1601 |
--------------------------------------------------------------------------------